想了两天,参考了@悟和@Jaster scz的方法,勉强写了出来,代码如下:
Vehicle.java:
package com.imooc.rentCar; public abstract class Vehicle { public int orderNum; public String carName; public int rentMoney; }
Audi4.java:
package com.imooc.rentCar; public class Audi4 extends Vehicle{ Audi4(){ orderNum = 1; carName = "奥迪A4"; rentMoney = 500; } }
CX_5.java:
package com.imooc.rentCar; public class CX_5 extends Vehicle{ CX_5(){ orderNum = 2; carName = "马自达6"; rentMoney = 400; } }
PikaSnow.java:
package com.imooc.rentCar; public class PikaSnow extends Vehicle{ PikaSnow(){ orderNum = 3; carName = "皮卡雪6"; rentMoney = 450; } }
GoldenDragon.java:
package com.imooc.rentCar; public class GoldenDragon extends Vehicle{ GoldenDragon(){ orderNum = 4; carName = "金龙"; rentMoney = 800; } }
SonghuaRiver.java:
package com.imooc.rentCar; public class SonghuaRiver extends Vehicle{ SonghuaRiver(){ orderNum = 5; carName = "松花江"; rentMoney = 400; } }
Iveco.java:
package com.imooc.rentCar; public class Iveco extends Vehicle{ Iveco(){ orderNum = 6; carName = "依维柯"; rentMoney = 1000; } }
test.java
package com.imooc.rentCar; import java.util.Scanner; public class test { public static void main(String[] args) { // TODO Auto-generated method stub Vehicle veh1 = new Audi4(); Vehicle veh2 = new CX_5(); Vehicle veh3 = new PikaSnow(); Vehicle veh4 = new GoldenDragon(); Vehicle veh5 = new SonghuaRiver(); Vehicle veh6 = new Iveco(); System.out.println("欢迎使用嗒嗒租车系统: "); System.out.println("您是否要租车: 1是 0否"); Scanner input1 = new Scanner(System.in); int i = input1.nextInt(); if(i == 0){ System.out.println("欢迎下次光临"); }else{ System.out.println("您可租车的类型及价目表:"); System.out.println("序号\t汽车名称\t租金\t容量"); System.out.println("1.\t奥迪A4\t500元/天\t载人:4人"); System.out.println("2.\t马自达6\t400元/天\t载人:4人"); System.out.println("3.\t皮卡雪6\t450元/天\t载人:4人 载货:2吨"); System.out.println("4.\t金龙\t800元/天\t载人:20人"); System.out.println("5.\t松花江\t400元/天\t载货:4吨"); System.out.println("6.\t依维柯\t1000元/天\t载货:20吨"); } System.out.println("请输入您要租车的数量:"); Scanner input2 = new Scanner(System.in); int carNum = input2.nextInt(); int[] carOrder = new int[carNum]; for(int j = 0; j < carNum; j++){ System.out.println("请输入第"+(j+1)+"辆车的序号:"); Scanner input3 = new Scanner(System.in); carOrder[j] = input3.nextInt(); } System.out.println("请输入租车天数:"); Scanner input4 = new Scanner(System.in); int rentDay = input4.nextInt(); System.out.println("您的账单:"); System.out.println("***可载人的车有:"); int sumPeople=0; int sumCargo=0; int sumRent=0; for(int j = 0; j < carNum; j++){ if(carOrder[j] == 1 ){ System.out.println(veh1.carName+"\t"); sumPeople +=4; sumRent +=500*rentDay; } if(carOrder[j] == 2 ){ System.out.println(veh2.carName); sumPeople +=4; sumRent += 400*rentDay; } if(carOrder[j] == 3){ System.out.println(veh3.carName); sumPeople += 4; sumCargo += 2; sumRent += 450*rentDay; } if(carOrder[j] == 4){ System.out.println(veh4.carName); sumPeople += 20; sumRent += 800*rentDay; } } System.out.println("共载人:" + sumPeople+ "人"); System.out.println("***载货的车有:"); for(int j = 0; j < carNum; j++){ if(carOrder[j] == 3){ System.out.println(veh3.carName); sumPeople += 4; sumCargo += 2; sumRent += 450*rentDay; } if(carOrder[j] == 5){ System.out.println(veh5.carName); sumCargo += 4; sumRent += 400*rentDay; } if(carOrder[j] == 6){ System.out.println(veh6.carName); sumCargo += 20; sumRent += 1000*rentDay; } } System.out.println("共载货:" + sumCargo+ "吨"); System.out.println("租车总价格:"+ sumRent +"元"); } }
运行结果如下:
欢迎使用嗒嗒租车系统:
您是否要租车: 1是 0否
1
您可租车的类型及价目表:
序号 汽车名称 租金 容量
1. 奥迪A4 500元/天 载人:4人
2. 马自达6 400元/天 载人:4人
3. 皮卡雪6 450元/天 载人:4人 载货:2吨
4. 金龙 800元/天 载人:20人
5. 松花江 400元/天 载货:4吨
6. 依维柯 1000元/天 载货:20吨
请输入您要租车的数量:
5
请输入第1辆车的序号:
1
请输入第2辆车的序号:
6
请输入第3辆车的序号:
4
请输入第4辆车的序号:
2
请输入第5辆车的序号:
2
请输入租车天数:
1
您的账单:
***可载人的车有:
奥迪A4
金龙
马自达6
马自达6
共载人:32人
***载货的车有:
依维柯
共载货:20吨
租车总价格:3100元
我的问题是我最后显示可载人和载货的车名是竖着显示的,而不是例子中横着显示的,请各位老师同学指点一下我的代码需要怎么修改。