package?models;
import?java.util.*;
/**
?*?租車系統(tǒng)主要功能測(cè)試類
?*?@author?My
?*
?*/
public?class?test?{
????public?static?void?main(String[]?args)?{
????????//歡迎界面
????????System.out.println("歡迎使用嗒嗒租車系統(tǒng):");
????????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("輸入有誤,請(qǐng)根據(jù)提示重新輸入您想選擇的數(shù)字;\n您是否要租車:1.是\t0.否");
????????????????choose?=?scanner.nextInt();
????????????}
????????}
????????//顯示可用車型及相關(guān)信息
????????System.out.println("您可租車的類型及其價(jià)目表:");
????????System.out.println("序號(hào)\t汽車名稱\t租金\t\t容量");
????????Car[]?cars?={new?AudiA4(1,"奧迪A4",500,4),new?Mazda6(2,"馬自達(dá)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()+"噸");
????????????}
????????}
????????//判斷租車數(shù)量
????????System.out.println("請(qǐng)輸入您要租汽車的數(shù)量:");
????????int?sum?=?scanner.nextInt();
????????//定義總價(jià)并初始化為0
????????double?totalPrice?=?0;
????????//定義租車天數(shù)并初始化為0
????????int?days?=?0;
????????int[]?nums=new?int[sum];
????????//根據(jù)用戶輸入的選擇,累加金額
????????for(int?i=0;i<sum;i++){
????????????System.out.println("請(qǐng)輸入第"+(i+1)+"輛車的序號(hào):");
????????????int?num?=?scanner.nextInt();
????????????//判斷用戶輸入是否正確,如果錯(cuò)誤則提示重新輸入
????????????while(num<0||num>7){
????????????????System.out.println("輸入錯(cuò)誤,請(qǐng)重新輸入!");
????????????????System.out.println("請(qǐng)輸入第"+(i+1)+"輛車的序號(hào):");
????????????????num?=?scanner.nextInt();
????????????}
????????????//將用戶選擇的車型的編號(hào)保存到數(shù)組里,便于以后統(tǒng)計(jì)使用
????????????nums[i]=num-1;//這里為什么要減1我還沒(méi)想明白,求大神解釋一下。。。。。。。。。。
????????????totalPrice+=cars[num-1].getPrice();
????????}
????????System.out.println("請(qǐng)輸入租車天數(shù):");
????????days?=?scanner.nextInt();
????????//統(tǒng)計(jì)功能
????????System.out.println("您的賬單:");
????????System.out.println("***可載人的車有:");
????????//定義總載人量并初始化為0
????????int?passengers?=?0;
????????//如載人數(shù)為0則表示不能載人,循環(huán)輸出即可。
????????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表示無(wú)法載貨,循環(huán)輸出。
????????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?+"噸");
????????//總價(jià)*天數(shù)=最終價(jià)格
????????System.out.println("***租車總價(jià)格:"+(totalPrice*days)+"元");
????}
}
2016-06-07
你是多少輛車就有多少個(gè)對(duì)應(yīng)的子類么....
2016-05-28
需要優(yōu)化的地方很多,例如:你代碼全在一個(gè)main方法里寫完,應(yīng)該使用類和對(duì)象的方法構(gòu)寫,這樣的代碼看的很累的
2016-05-27
知道了,我被new對(duì)象時(shí)賦值的第一個(gè)數(shù)字迷惑了。實(shí)際上第一臺(tái)車是0。所以選擇的時(shí)候要減一。。
2016-05-27
父類和兩個(gè)接口以及子類我就沒(méi)貼出來(lái)了,比較簡(jiǎn)單。