嗒嗒打車的問題,希望大神能夠幫我解決一下問題。
具體的問題都在 initial 代碼的注釋里面了。
package?dadaCall;
public?abstract?class?AmotoCar?{
public?double?orderSnowPeiceSum;
public?abstract?void?motorMassege();
public?abstract?double?orderMassege(double?orderCount);
}package?dadaCall;
public?class?SnowCar?extends?AmotoCar?{
int?passager?=?0; //乘客數量
int?loadWeight?=?5; //載貨量
double?orderPeice?=?500.0;//價格
double?orderSnowPeiceSum;//本類車型訂單總花費
double?orderCount;//本類車型訂單數量
@Override
public?void?motorMassege()?{ //輸出本類車型信息
//?TODO?Auto-generated?method?stub
System.out.printf("%s\t%s\t%s\t%s\t%s\n","1","輕型雪弗蘭","0人","5T","500Y/Day");
}
@Override
public?double?orderMassege(double?orderCount)?{ //計算本類車型訂單花費
//?TODO?Auto-generated?method?stub
orderSnowPeiceSum?=?orderPeice?*?orderCount?;
return?orderSnowPeiceSum;
}
}package?dadaCall;
public?class?PickUp?extends?AmotoCar?{
int?passager?=?5;
int?loadWeight?=?2;
double?orderPeice?=?600.0;
double?orderPickUpPeiceSum;
int?orderCount;
@Override
public?void?motorMassege()?{
//?TODO?Auto-generated?method?stub
System.out.printf("%s\t%s\t%s\t%s\t%s\n","2","皮卡客貨","5人","2T","600Y/Day");
}
@Override
public?double?orderMassege(double?orderCount)?{
//?TODO?Auto-generated?method?stub
orderPickUpPeiceSum?=?orderPeice?*?orderCount?;
return?orderPickUpPeiceSum;
}
}package?dadaCall;
import?java.util.Scanner;
public?class?initial?{
private?static?Scanner?scanner;//讀取輸入數據
public?static?void?main(String[]?args)?{
scanner?=?new?Scanner(System.in);
System.out.printf("%s\n%s\n","你是否要選擇租車?","是請輸入1?,否請輸入其他數字。");
//判斷用戶是否需要租車。此處如果輸入其他字符就會報錯,如何解決呢?
int?a?=?scanner.nextInt();
SnowCar?snowCar?=new?SnowCar();
PickUp?pickUp =new?PickUp();
if(a?==?1){ //用戶選擇租車系統
System.out.printf("%s\t%s\t%s\t%s\t%s\n","編號","車型","載客數","載貨量","價格");
snowCar.motorMassege();
pickUp.motorMassege();
System.out.println("請輸入你想要租車數量:"); //此次(不使用鼠標點擊)進行輸入時,數字會卡在“編號”處,程序無法繼續進行,為什么呢?
int?b?=?scanner.nextInt();
int[]?Number?=?new?int?[b];//建立租車編號數組
int?i?=?0;
for?(;i<b;){ //for循環使用用戶輸入的租車編號對數組進行賦值
int?j?=?i+1;
System.out.println("請輸入第"+j+"輛車的編號");
Number[i]?=?scanner.nextInt();
System.out.println("你選擇的車輛編號是:"+Number[i]);
/*System.out.println("如需要重新選擇本倆車編號,請輸入數字?0?!否者請輸入其他任意整數。");
?int?c?=?scanner.nextInt(); //對用戶選擇車輛進行確認
//請問,為什么這里輸入0后,是從第二次輸入0才開始進行重置循環呢?如何解決?
if(c?==?0){???????????
i?=?0;
System.out.println(i);
}*/
i++;
}
System.out.println("你選擇租車的清單如下:");
for(int?number:Number){
switch?(number){
case?1?:? //遍歷租車編號數組,判斷租車的車型,并計數各種車型的租用數量
snowCar.motorMassege();
snowCar.orderCount++;
break;
case?2?:
pickUp.motorMassege();
pickUp.orderCount++;
break;
}
}
double?passagerSum?=?(snowCar.orderCount?*?snowCar.passager+pickUp.orderCount*pickUp.passager);
System.out.println("您租車的可載人數為:"+passagerSum);
double?loadWeightSum?=?snowCar.orderCount*snowCar.loadWeight+pickUp.orderCount*pickUp.loadWeight;?
System.out.println("您租車的可載貨量為:"+loadWeightSum);
double?costSum?=?snowCar.orderMassege(snowCar.orderCount)+?pickUp.orderMassege(pickUp.orderCount);
System.out.println("您租車的費用為:"+costSum);
}
else?
System.out.println("希望您下次需要租車的時候聯系我們");
}
}
2016-07-20
? ?//判斷用戶是否需要租車。此處如果輸入其他字符就會報錯,如何解決呢?
你可以捕捉異常 ? ??try{}catch(Exception e){}finally{執行業務邏輯}
?System.out.println("請輸入你想要租車數量:");??//此次(不使用鼠標點擊)進行輸入時,數字會卡在“編號”處,程序無法繼續進行,為什么呢?對于這個問題,我一開始也以為要用鼠標點,不過我試著直接輸入數字,數字會自動出現在最底部
------------------------------------------------------------------------------------------------------------------
對于你這一段的問題,我看得不是很懂,不知道你的意思是不是,比如第一輛車的編號輸入了0,回車之后還是從第二輛車開始 ?? ?如果是的話,我給你解決了,因為你令i=0之后,就進行i++,滿足i<b,再次進行循環,j=i+1就又等于2,所以一直都是第二輛車,這是運行的邏輯問題,你自己慢慢思考吧。
------------------------------------------------------------------------------------------------------------------? ? ? ?
?int?c?=?scanner.nextInt();?????//對用戶選擇車輛進行確認?????????????? ????????????????????????????????????????????????//請問,為什么這里輸入0后,是從第二次輸入0才開始進行重置循環呢?如何解決? ????????????????if(c?==?0){??????????????????????? ????????????????????i?=?0; ????????????????????System.out.println(i); ????????????????????? ????????????????} ????????????????else???i++;?//?此處加上else??其他沒有改動 ????????????????}2016-10-15
//判斷用戶是否需要租車。此處如果輸入其他字符就會報錯,如何解決呢?
if(a == 1){
????// 執行你的代碼
}else{
????System.out.println("退出系統!");
????System.exit(0);
}
2016-09-11
?if(c?==?0){???????????????????????
????????????????????i?=?0;
????????????????????System.out.println(i);? ?
?}
要將此處的?i?=?0改為i--
2016-07-18
?private?static?Scanner?scanner;//讀取輸入數據
scanner是靜態變量
可你接收
Number[i]?=?scanner.nextInt();
那數組有應該是靜態