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("輸入有誤,請重新輸入");
????????}
????}
}
2017-05-29