//Car.java
package?com.dadazuche;
public?abstract?class?Car?{
protected?int?num;
protected?String?name;
protected?int?rent;
public?abstract?void?show();
public?String?getName()?{
return?name;
}
}
//Bus.java
package?com.dadazuche;
public?class?Bus?extends?Car?{
private?int?pC;//此處pC為passenger?capacity的簡(jiǎn)寫,表示載客量
public?Bus(int?newNum,String?newName,int?newRent,int?newPC){
num=newNum;
name=newName;
rent=newRent;
pC=newPC;
}
public?void?show(){
System.out.println(num+"."+"???"+name+"???"+rent+"元/天???載人:"+pC+"人");
}
}
//Truck.java
package?com.dadazuche;
public?class?Truck?extends?Car?{
private?int?cC;//此處pC為cargo?capacity的簡(jiǎn)寫,表示載貨量
public?Truck(int?newNum,String?newName,int?newRent,int?newCC){
num=newNum;
name=newName;
rent=newRent;
cC=newCC;
}
public?void?show(){
System.out.println(num+"."+"???"+name+"???"+rent+"元/天???載貨:"+cC+"噸");
}
}
//PickUp.java
package?com.dadazuche;
public?class?PickUp?extends?Car?{
private?int?pC;//此處pC為passenger?capacity的簡(jiǎn)寫,表示載客量
private?int?cC;//此處pC為cargo?capacity的簡(jiǎn)寫,表示載貨量
public?PickUp(int?newNum,String?newName,int?newRent,int?newPC,int?newCC){
num=newNum;
name=newName;
rent=newRent;
pC=newPC;
cC=newCC;
}
public?void?show(){
System.out.println(num+"."+"???"+name+"???"+rent+"元/天???載人:"+pC+"人???載貨:"+cC+"噸");
}
}
//Initial.java
package?com.dadazuche;
import?java.util.*;
public?class?Initial?{
public?static?void?main(String[]?args)?{
//?TODO?自動(dòng)生成的方法存根
Scanner?input=new?Scanner(System.in);
System.out.println("歡迎使用答答租車系統(tǒng):"+'\n'+"您是否要租車:1是?0否");
int?b=input.nextInt();
if(b==1){
System.out.println("您可租車的類型及其價(jià)目表:"+'\n'+"序號(hào)??????汽車名稱???租金??????????????容量");
Car[]?carArray={new?Bus(1,"奧迪A4",500,4),new?Bus(2,"馬自達(dá)6",400,4),new?PickUp(3,"皮卡雪6",450,4,2),
new?Bus(4,"金龍 ",800,20),new?Truck(5,"松花江 ",400,4),new?Truck(6,"依維柯 ",1000,20)};
for(Car?car:carArray)
car.show();
System.out.println("請(qǐng)輸入您要租汽車的數(shù)量:");
int?cNum=input.nextInt();
int?s1,s2,s3;//s1總載客量,s2總載貨量,s3租一天的總價(jià)格
s1=s2=s3=0;
int[]?arr=new?int[cNum];//將用戶輸入的序號(hào)保存到數(shù)組arr中
for(int?i=1;i<=cNum;i++){
System.out.println("請(qǐng)輸入第"+i+"輛車的序號(hào):");
arr[i-1]=input.nextInt();
switch(arr[i-1]){
case?1:
s1+=4;
s3+=500;
break;
case?2:
s1+=4;
s3+=400;
break;
case?3:
s1+=4;
s2+=2;
s3+=450;
break;
case?4:
s1+=20;
s3+=800;
break;
case?5:
s2+=4;
s3+=400;
break;
case?6:
s2+=20;
s3+=1000;
break;
default:
System.out.println("輸入序號(hào)有誤,請(qǐng)重新輸入!");
i--;
break;
}
}
System.out.println("請(qǐng)輸入租車天數(shù):");
int?d=input.nextInt();
System.out.println("您的賬單:");
/*
?*?以下的雙重for循環(huán)主要是保證輸出車名時(shí)不會(huì)有重復(fù)的情況出現(xiàn)
?*?水平有限,如有更好方法還請(qǐng)賜教
?*/
System.out.println("***可載人的車有:");
for(int?i=0;i<cNum;i++){
boolean?p=true;
for(int?j=i+1;j<cNum;j++){
if(arr[j]==arr[i]){p=false;break;}
}
if(p&&arr[i]<=4)System.out.print(carArray[arr[i]-1].getName()+'\t');
}
System.out.println("共載人:"+s1+"人");
System.out.println("***載貨的車有:");
for(int?i=0;i<cNum;i++){
boolean?p=true;
for(int?j=i+1;j<cNum;j++){
if(arr[j]==arr[i]){p=false;break;}
}
if(p&&(arr[i]>4||arr[i]==3))System.out.print(carArray[arr[i]-1].getName()+'\t');
}
System.out.println("共載貨:"+s2+"噸");
System.out.println("***租車總價(jià)格:"+s3*d+"元");
}else?if(b==0)System.out.println("已退出答答租車系統(tǒng),謝謝訪問!");
else?System.out.println("輸入錯(cuò)誤!");
}
}
2015-11-19
整體寫的不錯(cuò)啊,我參考你的寫的。不過,switch case 語(yǔ)句那樣控制不好,上面已經(jīng)初始化對(duì)象了,為何不調(diào)用車輛的相關(guān)屬性輸出呢?
2015-09-05
前面定義了對(duì)象,怎么后面計(jì)算不用上對(duì)應(yīng)的屬性,直接寫數(shù)字~
2015-09-05
還不錯(cuò)哦