桃子叔叔
2016-05-27 22:58
package models; import java.util.*; /** * 租车系统主要功能测试类 * @author My * */ public class test { public static void main(String[] args) { //欢迎界面 System.out.println("欢迎使用嗒嗒租车系统:"); System.out.println("您是否要租车:1.是\t0.否"); Scanner scanner = new Scanner(System.in); int choose = scanner.nextInt(); //判断用户输入 while(true){ if(choose==1){ break; }else if(choose==0){ System.out.println("谢谢使用,再见!"); return; }else{ System.out.println("输入有误,请根据提示重新输入您想选择的数字;\n您是否要租车:1.是\t0.否"); choose = scanner.nextInt(); } } //显示可用车型及相关信息 System.out.println("您可租车的类型及其价目表:"); System.out.println("序号\t汽车名称\t租金\t\t容量"); Car[] cars ={new AudiA4(1,"奥迪A4",500,4),new Mazda6(2,"马自达6",400,4), new PickupSnow6(3,"皮卡雪6", 450, 4, 2),new GoldenDragon(4,"金龙", 800, 20), new SonghuaRiver(5,"松花江", 400, 4),new Iveco(6,"依维柯", 1000, 20)}; for(int i=0;i<cars.length;i++){ System.out.print((i+1)+".\t"+cars[i].getName()+"\t"+cars[i].getPrice()+"元/天"); if(cars[i].getPassengerCar()==0){ System.out.println("\t载货:"+cars[i].getCargo()+"吨"); }else if(cars[i].getCargo()==0){ System.out.println("\t载人:"+cars[i].getPassengerCar()+"人"); }else{ System.out.println("\t载人:"+cars[i].getPassengerCar()+"人载货:"+cars[i].getCargo()+"吨"); } } //判断租车数量 System.out.println("请输入您要租汽车的数量:"); int sum = scanner.nextInt(); //定义总价并初始化为0 double totalPrice = 0; //定义租车天数并初始化为0 int days = 0; int[] nums=new int[sum]; //根据用户输入的选择,累加金额 for(int i=0;i<sum;i++){ System.out.println("请输入第"+(i+1)+"辆车的序号:"); int num = scanner.nextInt(); //判断用户输入是否正确,如果错误则提示重新输入 while(num<0||num>7){ System.out.println("输入错误,请重新输入!"); System.out.println("请输入第"+(i+1)+"辆车的序号:"); num = scanner.nextInt(); } //将用户选择的车型的编号保存到数组里,便于以后统计使用 nums[i]=num-1;//这里为什么要减1我还没想明白,求大神解释一下。。。。。。。。。。 totalPrice+=cars[num-1].getPrice(); } System.out.println("请输入租车天数:"); days = scanner.nextInt(); //统计功能 System.out.println("您的账单:"); System.out.println("***可载人的车有:"); //定义总载人量并初始化为0 int passengers = 0; //如载人数为0则表示不能载人,循环输出即可。 for(int i=0;i<sum;i++){ if(cars[nums[i]].getPassengerCar()!=0){ passengers += cars[nums[i]].getPassengerCar(); System.out.print(cars[nums[i]].getName()+"\t"); } } System.out.println("共载人:"+ passengers +"人"); System.out.println("***可载货的车有:"); //定义总载货量并初始化为0 int goods = 0; //同理,载货量为0表示无法载货,循环输出。 for(int i=0;i<sum;i++){ if(cars[nums[i]].getCargo()!=0){ goods += cars[nums[i]].getCargo(); System.out.print(cars[nums[i]].getName()+"\t"); } } System.out.println("共载货:"+ goods +"吨"); //总价*天数=最终价格 System.out.println("***租车总价格:"+(totalPrice*days)+"元"); } }
你是多少辆车就有多少个对应的子类么....
需要优化的地方很多,例如:你代码全在一个main方法里写完,应该使用类和对象的方法构写,这样的代码看的很累的
知道了,我被new对象时赋值的第一个数字迷惑了。实际上第一台车是0。所以选择的时候要减一。。
父类和两个接口以及子类我就没贴出来了,比较简单。
Java入门第二季 升级版
530559 学习 · 6091 问题
相似问题