 
		柒_夜4080291
2016-11-13 20:43
package demo.faceobj;
import java.util.*;
public class test {
    public static void main(String[] args) {
        int pSum=0;//总人数
        int oSum=0;//总货物量
        double sumMon=0;//总金额
        Car[] crent={new peCar("奥迪",500,4),new peCar("马自达",400,4),new pickCar("皮卡",450,4,2),new
                peCar("金龙",800,20),new obCar("松花江",400,4),new obCar("依维河",1000,20)};
        System.out.println("欢迎使用租车系统:");
        System.out.println("您是否需要租车:1是 0否");
        Scanner input=new Scanner(System.in);
        int n=input.nextInt();
        if(n==1){
            System.out.println("您可租车的类型及其价目表:");
            System.out.println("序号"+"\t"+"汽车名称"+"\t"+"租金"+"\t"+"容量");
            for(int i=0;i<crent.length;i++){
                System.out.print(i+1+".\t");
                crent[i].print();
            }
            
            
            System.out.println("请输入要租车的数量:");
            int num=input.nextInt();
            int [] x=new int[num];//用以保存车序的数组
            for(int i=0;i<num;i++){
                System.out.println("请输入第"+(i+1)+"量车的序号:");
                int Cnum=input.nextInt();
                int innum=Cnum-1;
                x[i]=innum;    
            }
            
            
            System.out.println("请输入租车天数:");
            int Day=input.nextInt();
            
            System.out.println("您的账单:");
            System.out.println("***可载人的车有:");
            for(int i=0;i<x.length;i++){
                if(x[i]==0||x[i]==1||x[i]==2||x[i]==3){
                    System.out.print(crent[x[i]].name+"\t");
                    pSum+=crent[x[i]].pnum;
                    sumMon+=crent[x[i]].mon;
                }
            }
            System.out.println("共载人:"+pSum+"人");
            System.out.println("***可载货的车有:");
            for(int i=0;i<x.length;i++){
                if(x[i]==2||x[i]==4||x[i]==5){
                    System.out.print(crent[x[i]].name+"\t");
                    oSum+=crent[x[i]].onum;
                    sumMon+=crent[x[i]].mon;
                }
            }
            for(int i=0;i<x.length;i++){
                if(x[i]==2){
                    sumMon=sumMon-crent[x[i]].mon;
                }
            }
            System.out.println("共载货:"+oSum+"吨");
            
            
            sumMon*=Day;
            System.out.print("***租车总价格:"+sumMon);
            
        }else{
            System.out.println("退出系统");
        }
    }
}
关于面向对象内容最后的一个习题。然后我这个代码我觉得输出的代码写的不好,有没大神能帮忙改正一下,而且这个存在BUG,如果选的车辆序号是同一辆最后会输出多个相同车名,如果要更改就需要增加一段代码进行判断是否有重复车序,所以我希望能有更简便的代码有没可以分享相互学习学习,万分感谢。
 
				package demo.faceobj;
public abstract class Car {
    public String name;
    public int mon;
    public int pnum;
    public int onum;
    public Car(){
        this.name=null;
        this.mon=0;
        this.pnum=0;
        this.onum=0;
    }
    public abstract void print();
}
***************
package demo.faceobj;
public class peCar extends Car {
    public peCar(String newname,int newmon,int newpnum){
        this.name=newname;
        this.mon=newmon;
        this.pnum=newpnum;
    }
    public void print(){
        System.out.println(name+"\t"+mon+"元/天"+"\t"+"载人:"+pnum+"人");
    }
}
*************
package demo.faceobj;
public class obCar extends Car {
    public obCar(String newname,int newmon,int newonum){
        this.name=newname;
        this.mon=newmon;
        this.onum=newonum;
    }
    public void print(){
        System.out.println(name+"\t"+mon+"元/天"+"\t"+"载货:"+onum+"吨");
    }
}
****************
package demo.faceobj;
public class pickCar extends Car {
    public pickCar(String newname,int newmon,int newpnum,int newonum){
        this.name=newname;
        this.mon=newmon;
        this.pnum=newpnum;
        this.onum=newonum;
    }
    public void print(){
        System.out.println(name+"\t"+mon+"元/天"+"\t"+"载人:"+pnum+"  载货:"+onum+"吨");
    }
}
 
				我不是大神哈,但是你能把其他几个子class粘出来一下吗?不然得自己编。
Java入门第二季
531292 学习 · 6327 问题
相似问题