新人一枚,按照下面的做的,可是在车辆选择时,只能显示最后一类车的数据,前面车辆的信息被覆盖,怎么回事。
达达租车系统,详细代码菜鸟版_慕课手记 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://img1.sycdn.imooc.com//58e0f8a50001ff6e04570360.png
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦