嗒嗒打車的問題,希望大神能夠幫我解決一下問題。
具體的問題都在 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; //乘客數(shù)量 int?loadWeight?=?5; //載貨量 double?orderPeice?=?500.0;//價(jià)格 double?orderSnowPeiceSum;//本類車型訂單總花費(fèi) double?orderCount;//本類車型訂單數(shù)量 @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)?{ //計(jì)算本類車型訂單花費(fèi) //?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;//讀取輸入數(shù)據(jù) public?static?void?main(String[]?args)?{ scanner?=?new?Scanner(System.in); System.out.printf("%s\n%s\n","你是否要選擇租車?","是請(qǐng)輸入1?,否請(qǐng)輸入其他數(shù)字。"); //判斷用戶是否需要租車。此處如果輸入其他字符就會(huì)報(bào)錯(cuò),如何解決呢? int?a?=?scanner.nextInt(); SnowCar?snowCar?=new?SnowCar(); PickUp?pickUp =new?PickUp(); if(a?==?1){ //用戶選擇租車系統(tǒng) System.out.printf("%s\t%s\t%s\t%s\t%s\n","編號(hào)","車型","載客數(shù)","載貨量","價(jià)格"); snowCar.motorMassege(); pickUp.motorMassege(); System.out.println("請(qǐng)輸入你想要租車數(shù)量:"); //此次(不使用鼠標(biāo)點(diǎn)擊)進(jìn)行輸入時(shí),數(shù)字會(huì)卡在“編號(hào)”處,程序無法繼續(xù)進(jìn)行,為什么呢? int?b?=?scanner.nextInt(); int[]?Number?=?new?int?[b];//建立租車編號(hào)數(shù)組 int?i?=?0; for?(;i<b;){ //for循環(huán)使用用戶輸入的租車編號(hào)對(duì)數(shù)組進(jìn)行賦值 int?j?=?i+1; System.out.println("請(qǐng)輸入第"+j+"輛車的編號(hào)"); Number[i]?=?scanner.nextInt(); System.out.println("你選擇的車輛編號(hào)是:"+Number[i]); /*System.out.println("如需要重新選擇本倆車編號(hào),請(qǐng)輸入數(shù)字?0?!否者請(qǐng)輸入其他任意整數(shù)。"); ?int?c?=?scanner.nextInt(); //對(duì)用戶選擇車輛進(jìn)行確認(rèn) //請(qǐng)問,為什么這里輸入0后,是從第二次輸入0才開始進(jìn)行重置循環(huán)呢?如何解決? if(c?==?0){??????????? i?=?0; System.out.println(i); }*/ i++; } System.out.println("你選擇租車的清單如下:"); for(int?number:Number){ switch?(number){ case?1?:? //遍歷租車編號(hào)數(shù)組,判斷租車的車型,并計(jì)數(shù)各種車型的租用數(shù)量 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("您租車的可載人數(shù)為:"+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("您租車的費(fèi)用為:"+costSum); } else? System.out.println("希望您下次需要租車的時(shí)候聯(lián)系我們"); } }
2016-07-20
? ?//判斷用戶是否需要租車。此處如果輸入其他字符就會(huì)報(bào)錯(cuò),如何解決呢?
你可以捕捉異常 ? ??try{}catch(Exception e){}finally{執(zhí)行業(yè)務(wù)邏輯}
對(duì)于這個(gè)問題,我一開始也以為要用鼠標(biāo)點(diǎn),不過我試著直接輸入數(shù)字,數(shù)字會(huì)自動(dòng)出現(xiàn)在最底部
------------------------------------------------------------------------------------------------------------------
對(duì)于你這一段的問題,我看得不是很懂,不知道你的意思是不是,比如第一輛車的編號(hào)輸入了0,回車之后還是從第二輛車開始 ?? ?如果是的話,我給你解決了,因?yàn)槟懔頸=0之后,就進(jìn)行i++,滿足i<b,再次進(jìn)行循環(huán),j=i+1就又等于2,所以一直都是第二輛車,這是運(yùn)行的邏輯問題,你自己慢慢思考吧。
------------------------------------------------------------------------------------------------------------------? ? ? ?
2016-10-15
//判斷用戶是否需要租車。此處如果輸入其他字符就會(huì)報(bào)錯(cuò),如何解決呢?
if(a == 1){
????// 執(zhí)行你的代碼
}else{
????System.out.println("退出系統(tǒng)!");
????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;//讀取輸入數(shù)據(jù)
scanner是靜態(tài)變量
可你接收
Number[i]?=?scanner.nextInt();
那數(shù)組有應(yīng)該是靜態(tài)