我做的JAVA第二季最后的那個(gè)租車系統(tǒng),最后有一個(gè)問題搞了很久都搞不定了。
問題出在最后的計(jì)算金額,詳情如下
文件:Menu.java
package?com.ybw.sys;
import?java.util.Scanner;
public?class?Menu?{
public?static?void?main(String[]?args)?{
System.out.println("歡迎使用達(dá)達(dá)租車系統(tǒng)!");
Truck[]?truck=new?Truck[3];
PassengerCar[]?passenger=new?PassengerCar[3];
PickUp[]?pickup=new?PickUp[3];
for(int?i=0;i<truck.length;i++)
truck[i]=new?Truck();
truck[0].Truck("T01","卡車",?"垃圾大王",10,1000);
truck[1].Truck("T02","卡車","公共事業(yè)卡車",20,1500);
truck[2].Truck("T03","卡車","礦石搬運(yùn)車",25,1800);
for(int?i=0;i<passenger.length;i++)
passenger[i]=new?PassengerCar();
passenger[0].PassengerCar("P01","中小型車","奧北?小辣椒",6,700);
passenger[1].PassengerCar("P02","中小型車","卡林?骷髏馬",4,500);
passenger[2].PassengerCar("P03","中小型車","絕品??先知(敞篷版)",4,600);
for(int?i=0;i<pickup.length;i++)
pickup[i]=new?PickUp();
pickup[0].PickUp("PU01","皮卡","叛亂分子",4,2,1000);
pickup[1].PickUp("PU02","皮卡","鐵尼高",3,1,800);
pickup[2].PickUp("PU03","皮卡","絕致?屌王",6,2,800);
?System.out.println("以下是可以租賃的所有車輛:");
?System.out.println("卡車:(ID、類型、型號、載重、租金)");
?for(int?i=0;i<truck.length;i++) ?
???truck[i].show();
?System.out.println("客車:(ID、類型、型號、載客、租金)");
?for(int?i=0;i<passenger.length;i++)
?passenger[i].show();
?System.out.println("皮卡:(ID、類型、型號、載客、載重、租金)");
?for(int?i=0;i<pickup.length;i++)
?pickup[i].show();
?System.out.println("請問您要租多少輛車:");
?Scanner?se=?new?Scanner(System.in);
?int?num=se.nextInt();//輸入租車的數(shù)量
?String[]?total=new?String[num];
?System.out.println("請輸入您要租賃的車輛ID:");
?for(int?i=0;i<num;i++)
?{
?Scanner?sw=?new?Scanner(System.in);
?System.out.println("第"+(i+1)+"輛車的ID:");
?total[i]=new?String(); ?
?total[i]=sw.nextLine(); ?
?}
?
?System.out.println("您所將租賃的車輛如下:");
?int?sum=0;//總價(jià)
?for(int?i=0;i<num;i++)
?{
?if(total[i].equals(truck[i].ID))
?{
?truck[i].show();
?sum=sum+truck[i].price;
?}
?//System.out.println("T"+i);
?}
?for(int?i=0;i<num;i++)
{
?if(total[i].equals(passenger[i].ID))
?{
?passenger[i].show();
?sum=sum+passenger[i].price;
?}
?//System.out.println("P"+i);
}
?
?for(int?i=0;i<num;i++)
?{
?????if(total[i].equals(pickup[i].ID))
?{
?pickup[i].show();
?sum=sum+pickup[i].price;
?}
????//?System.out.println("PU"+i);
?}
?System.out.println("您所需付款金額為:"+sum+"元");
?System.out.println("歡迎下次光臨!");
}//main
}//class
測試結(jié)果是這樣的,
比如我輸入租3輛車,然后輸入這3輛車的ID,如果這3輛車的ID屬于同一類(如同屬于PassengerCar,
或者都屬于Truck或都屬于PickUp,結(jié)果是正常的。但是如果這3輛車的ID不屬于同一類,
那么計(jì)算總價(jià)時(shí),只會出錯(cuò)。比如輸入的ID為?P1,P2,T1,那么運(yùn)行只會計(jì)算P1+P2的價(jià)格,
如果輸入的ID為,P1,T1,PU1,那么只會計(jì)算P1的價(jià)格,這個(gè)地方我已經(jīng)卡了一個(gè)多小時(shí)
了實(shí)在不知道怎么弄了,求救。
附上其他幾個(gè)類的源代碼
文件:Vehicle.java
package?com.ybw.sys;
public?class?Vehicle?{
??public?String?type;//車種類
??public?String?name;//車名
??public?String?ID;//ID
??public?int?price;
}
文件:PassengerCar.java
package?com.ybw.sys;
public?class?PassengerCar?extends?Vehicle?{
private?int?passenger;//載客量
??public?void?PassengerCar(String?ID1,String?type1,String?name1,int?passenger1,int?price1)
??{
??ID=ID1;
??type=type1;
??name=name1;
??passenger=passenger1;
??price=price1;
??}
??public?void?show()
??{
??System.out.printf(ID+"\t");
??System.out.printf(type+"\t???");
??System.out.printf(name+"\t???");
??System.out.printf(passenger+"人\t???");
??System.out.printf(price+"元\t???");
??System.out.println("?");
??}
}
文件:Truck.java
package?com.ybw.sys;
//貨車
public?class?Truck?extends?Vehicle?{
??private?float?carry;//載貨量
??public?void?Truck(String?ID1,String?type1,String?name1,float?carry1,int?price1)
??{
??ID=ID1;
??type=type1;
??name=name1;
??carry=carry1;
??price=price1;
??}
??public?void?show()
??{
??System.out.printf(ID+"\t");
??System.out.printf(type+"\t???");
??System.out.printf(name+"\t???");
??System.out.printf(carry+"噸\t???");
??System.out.printf(price+"元\t???");
??System.out.println("?");
??}
}
文件:PickUp.java
package?com.ybw.sys;
public?class?PickUp?extends?Vehicle?{
??private?int?passenger;
??private?float?carry;
??public?void?PickUp(String?ID1,String?type1,String?name1,int?passenger1,float?carry1,int?price1)
??{
??ID=ID1;
??type=type1;
??name=name1;
??carry=carry1;
??passenger=passenger1;
??price=price1;
??}
??public?void?show()
??{
??System.out.printf(ID+"\t");
??System.out.printf(type+"\t");
??System.out.printf(name+"\t");
??System.out.printf(passenger+"人\t");
??System.out.printf(carry+"噸\t");
??System.out.printf(price+"元\t");
??System.out.println("?");
??}
}
2016-04-11
機(jī)智如我自己解決了
2016-04-11
沒人嗎????