手记

哒哒租车系统,菜鸟照搬别人的,结果还是有问题,求解答。

新人一枚,按照下面的做的,可是在车辆选择时,只能显示最后一类车的数据,前面车辆的信息被覆盖,怎么回事。
达达租车系统,详细代码菜鸟版_慕课手记 http://www.imooc.com/article/17016?block_id=tuijian_wz
Car类

package dadacar;

public abstract class Car{
    public String ming;     //车名
    static int ren;         //载客人数
    static double dun;      //拉货吨数
    static double jia;      //车价
}
package dadacar;

public class CarIm extends Car{
    public CarIm(String ming,double jia,double dun){
        this.ming=ming;
        this.jia=jia;
        this.dun=dun;

    }

    @Override
    public String toString() {
        return (ming+"\t"+jia+"\t"+dun+"吨");
    }
}
package dadacar;

public class CarImpl extends Car{
    public CarImpl(String ming,double jia,int ren){
        this.ming=ming;
        this.jia=jia;
        this.ren=ren;

    }

    @Override
    public String toString() {                       //作用:重写toString方法,以防止后面要输出类的构造方法时,没办法输出构造。操作:Source-Generate toString()
        return (ming+"\t"+jia+"\t"+ren+"人");         //“\t”为空格
    }
}
package dadacar;

public class CarIp extends Car{
    public CarIp(String ming,double jia,int ren,double dun){
        this.ming=ming;
        this.jia=jia;
        this.dun=dun;

    }

    @Override
    public String toString() {
        return(ming+"\t"+jia+"\t"+ren+"人"+"\t"+dun+"吨");
    }
}

package dadacar;

import java.util.Scanner;

public class Test {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Car[]car={                           //利用数组的方法给每个类的构造方法赋值
                new CarImpl("奥迪a4",500,4),  //赋值客车的车型
                new CarImpl("金龙鱼",800,4),
                new CarImpl("马自达",800,20),  
                new CarIm("松花江上",400,4),    //赋值拉货车的车型
                new CarIm("维克托",1000,20),
                new CarIp("皮卡",450,4,2),     //赋值又拉货又拉客的车型
        };                       //数组后大括号(})有分号(;)
    System.out.println("欢迎使用哒哒租车系统");
    System.out.println("确认租车吗,1确定 2否");
    Scanner fake=new Scanner(System.in);       //输入1则进入系统
    if(fake.nextInt()==1){
        System.out.println("下列为现有车型");
        System.out.println("车号"+"\t车名"+"\t金额"+"\t拉客量&拉货量");
        for(int i=0;i<car.length;i++){
            System.out.println((i+1)+"\t"+car[i]);
        }
        System.out.println("你要租几辆车?");
        int a=fake.nextInt();                //用来保存用户要购买的车辆数量
        Car[] shu=new Car[a];                //设置一个数组,用来保存用户想要购买的车辆
        double jin=0;                        //用来保存金额总额
        int ren=0;                           //用来报讯人数总和
        double dun=0;                        //用来保存吨数总和
        int tian=0;                          //用来保存用户的租车天数
        for(int i=1;i<=a;i++){
            System.out.println("请输入第"+i+"辆车的车号");
            int b=fake.nextInt();            //用来保存用户输入的车辆序号
            shu[i-1]=car[b-1];               //吧用户选的车辆序号对应的车辆信息传给数组
            System.out.println(shu[i-1]);
            System.out.println("你要租几天?");
            tian=fake.nextInt();
            jin=jin+(shu[i-1].jia*tian);
        }
        System.out.println("****车辆清单****");
        System.out.println("载客的车辆是");
        for(int i=0;i<a;i++){                 //设置循环,输出数组里保存的车辆名称
            if(shu[i].ren!=0){                //如果是载客车的话就输出车名
                System.out.println(shu[i].ming+"\t");
            }
            ren=ren+shu[i].ren;               //用来保存车辆的总人数
        }
        System.out.println("载客人数共"+ren+"个人");
        System.out.println("拉货车辆有:");
        for(int i=0;i<a;i++){                 //设置循环,输出数组里保存的车辆名称
            if(shu[i].dun!=0){
                System.out.println(shu[i].ming+"\t");   //如果为载货车就输出车名
            }
            dun=dun+shu[i].dun;              //保存车辆总吨数
        }
        System.out.println("拉货吨数共"+dun+"吨");
        System.out.println("*****总金额共"+jin+"元*****");   
    }
    else{
        System.out.println("欢迎下次再来");

    }

    }

}

```![图片描述][1]

  [1]: http://img.mukewang.com/58e0f8a50001ff6e04570360.png
0人推荐
随时随地看视频
慕课网APP