public class Test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
//************************************将汽车类封装到arrayList容器中**************************
Car<String, Integer> benz = new Bus<String, Integer>("奔驰", 600, 4);
Car<String, Integer> bmw = new Bus<String, Integer>("商务", 900, 10);
Car<String, Integer> dayun = new Truck<String, Integer>("大运", 1200, 30);
Car<String, Integer> fengtian = new Pickup<String, Integer>("丰田", 700, 4, 4);
Encapsulation encapsulation = new Encapsulation();
List<Car<String, Integer>> car = Encapsulation.getarrayList();
car.add(benz);
car.add(bmw);
car.add(dayun);
car.add(fengtian);
//***********************开始界面**************************************
System.out.println("欢迎您光临达达租车系统\n");
System.out.println("您是否要租车?");
System.out.println("y/是 n/否");
while (true) try {
String answer = input.nextLine();
if (answer.charAt(0) == 'y') {
System.out.println("您可租车的类型及其价目表\n");
System.out.println("序号 汽车名称 租金 容量\n");
Encapsulation.getMenu(car);
System.out.println("请输入您要租车的数量");
int totalNumber; //租车的总数量
//************** 要租车的总数量***************************
ok:
while (true) {
try {
totalNumber =Integer.parseInt(input.nextLine().trim());
break ok;
} catch (NumberFormatException e) {
System.out.println("输入不正确,请重新输入");
}
}
List<String> capacityCarName = Encapsulation.getArrayList(); //载客车名称
List<String> tonnageCarName = Encapsulation.getArrayList(); //载货车名称
int totalCapacity = 0; //总载客量
int totalTonnage = 0; //总吨位
int totalPrice = 0; //总价钱
int number; // 第i辆车的序号
//输入相应车型的序号
for (int i = 1; i <= totalNumber; i++) {
System.out.println("请输入您要租的第" + i + "辆车的序号");
number1:
while (true) {
try {
number = Integer.parseInt(input.nextLine().trim());
break number1 ;
} catch (NumberFormatException e) {
System.out.println("输入错误,重新输入");
}
}
if (number == 1) {
capacityCarName.add(benz.getName());
Bus car1 = (Bus) benz;
totalCapacity += (int)car1.getCapacity();
totalPrice += benz.getPrice();
}
if(number == 2){
capacityCarName.add(bmw.getName());
Bus car2 = (Bus) bmw;
totalCapacity += (int)car2.getCapacity();
totalPrice +=bmw.getPrice();
}
if(number ==3){
tonnageCarName.add(dayun.getName());
Truck car3 =(Truck) dayun;
totalTonnage += (int)car3.getTruck();
totalPrice +=dayun.getPrice();
}
if(number ==4){
tonnageCarName.add(fengtian.getName());
capacityCarName.add(fengtian.getName());
Pickup car4 = (Pickup)fengtian;
totalCapacity += (int)car4.getCapacity();
totalTonnage += (int)car4.getTonnage();
}
}
System.out.println("请输入租车的天数");
int day;
nubmer2:
while(true){
try {
day = Integer.parseInt(input.nextLine().trim());
break nubmer2;
}catch(NumberFormatException e){
System.out.println("输入有误,请重新输入");
}
}
System.out.println("您的账单\n");
System.out.println("*******可载人的车辆有******************");
Encapsulation.carBill(capacityCarName);
System.out.println(" "+"共载"+totalCapacity+"人\n");
System.out.println("*******可载人的车辆有******************");
Encapsulation.carBill(tonnageCarName);
System.out.println(" "+"共载"+totalTonnage+"吨\n");
System.out.println("租车总金额是:"+totalPrice*day);
System.out.println("谢谢惠顾");
System.exit(1);
} else if (answer.charAt(0) == 'n') {
System.out.println("欢迎您下次光临");
System.exit(1);
} else {
System.out.println("输入有误,请重新输入");
}
} catch (InputMismatchException e) {
System.out.println("输入有误,请重新输入");
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("输入有误,请重新输入");
}
}
}