慕妹5212213
2019-04-25 09:47
package ca; import java.util.Scanner; class Car { public double price;//租金 public int busload;//载客量 public int boatload;//载货量 public String name;//车名 } public class Test { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); Car ad = new Car();//新建对象 ad.price = 500.0; ad.busload = 4; ad.name="奥迪A4"; Car mzd = new Car(); mzd.price = 400.0; mzd.busload = 4; mzd.name="马自达6"; Car pk = new Car(); pk.price = 450.0; pk.busload = 4; pk.boatload = 2; pk.name="皮卡雪6"; Car jl = new Car(); jl.price = 800.0; jl.busload = 20; jl.name="金龙"; Car shj = new Car(); shj.price = 400.0; shj.boatload = 4; shj.name="松花江"; Car ywk = new Car(); ywk.price = 1000.0; ywk.boatload = 20; ywk.name="依维柯"; System.out.println("欢迎使用租车系统"); System.out.println("您是否要租车:1是 0否"); int a = scanner.nextInt(); if (a == 0) { System.out.println("退出系统"); } else if (a == 1) { System.out.println("您可租车的类型及价目表:"); System.out.println("序号 汽车名称 租金 容量"); System.out.println("1 奥迪A4 500元/天 载人:4人"); System.out.println("2 马自达6 400元/天 载人:4人"); System.out.println("3 皮卡学6 450元/天 载人:4人 载货:2吨"); System.out.println("4 金龙 800元/天 载人:20人"); System.out.println("5 松花江 400元/天 载活:4吨"); System.out.println("6 依维柯 1000元/天 载活:20吨"); System.out.println("请输入您要租车的数量"); int num=scanner.nextInt(); //System.out.println(b); Car[] obj=new Car[num];//定义对象数组 //将输入的对象保存至对象数组 for (int i=1;i<=num;i++) { System.out.println("请输入第" + i + "量车的序号"); int c = scanner.nextInt(); switch (c){ case 1:obj[i-1]=ad; break; case 2:obj[i-1]=mzd; break; case 3:obj[i-1]=pk; break; case 4:obj[i-1]=jl; break; case 5:obj[i-1]=shj; break; case 6:obj[i-1]=ywk; break; default:{ System.out.println("输入错误,请重新输入"); i--; break; } } } System.out.println("请输入租车天数"); int day=scanner.nextInt(); System.out.println("您的账单"); System.out.println("可载人的车有:"); //计算载客量 int busload=0; for(int j=0;j<num;j++){ if(obj[j].busload>0){ System.out.print(obj[j].name+" "); } busload+=obj[j].busload; } System.out.println("共载人:"+busload+"人"); //计算载货量 System.out.println("可载货的车有:"); int boatload=0; for(int k=0;k<num;k++){ if(obj[k].boatload>0){ System.out.print(obj[k].name+" "); } boatload+=obj[k].boatload; } System.out.println("共载货:"+boatload+"吨"); //计算租金 int price=0; for(int m=0;m<num;m++){ price+=obj[m].price; } price=price*day; System.out.println("租车总价格:"+price+"元"); }else { System.out.println("输入错误"); } } }
在car类里写一个有参构造方法,这样new的时候可以直接 Car ad= new Car(500,4,"奥迪4");
System.out.println("1 奥迪A4 500元/天 载人:4人"); System.out.println("2 马自达6 400元/天 载人:4人"); System.out.println("3 皮卡学6 450元/天 载人:4人 载货:2吨"); System.out.println("4 金龙 800元/天 载人:20人"); System.out.println("5 松花江 400元/天 载活:4吨"); System.out.println("6 依维柯 1000元/天 载活:20吨");
这些应该用循环打印,不然你前面创建那6个Car对象有啥用?
//将输入的对象保存至对象数组 for (int i=1;i<=num;i++) { System.out.println("请输入第" + i + "量车的序号"); int c = scanner.nextInt(); switch (c){ case 1:obj[i-1]=ad; break; case 2:obj[i-1]=mzd; break; case 3:obj[i-1]=pk; break; case 4:obj[i-1]=jl; break; case 5:obj[i-1]=shj; break; case 6:obj[i-1]=ywk; break; default:{ System.out.println("输入错误,请重新输入"); i--; break; } } }
这里可以在循环里直接计算出载人和载货量和一天的租金m,不需要下面再写循环,然后用m乘以天数就是总租金了。这里你思考一下,是可以实现的。
对初学者来说,能实现就很棒了,加油。
在别的回答下看到,所选车名可以用String name =“ ”;解决 省了好多事
最后的界面
Java入门第二季 升级版
530652 学习 · 6091 问题
相似问题
回答 2
回答 1
回答 6
回答 1
回答 3