亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

新手一枚,剛寫的答答租車系統,還望大家多多指教~~

//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的簡寫,表示載客量
	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的簡寫,表示載貨量
	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的簡寫,表示載客量
	private?int?cC;//此處pC為cargo?capacity的簡寫,表示載貨量
	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?自動生成的方法存根
		Scanner?input=new?Scanner(System.in);
		System.out.println("歡迎使用答答租車系統:"+'\n'+"您是否要租車:1是?0否");
		int?b=input.nextInt();
		if(b==1){
			System.out.println("您可租車的類型及其價目表:"+'\n'+"序號??????汽車名稱???租金??????????????容量");
			Car[]?carArray={new?Bus(1,"奧迪A4",500,4),new?Bus(2,"馬自達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("請輸入您要租汽車的數量:");
			int?cNum=input.nextInt();
			int?s1,s2,s3;//s1總載客量,s2總載貨量,s3租一天的總價格
			s1=s2=s3=0;
			int[]?arr=new?int[cNum];//將用戶輸入的序號保存到數組arr中
			for(int?i=1;i<=cNum;i++){
				System.out.println("請輸入第"+i+"輛車的序號:");
				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("輸入序號有誤,請重新輸入!");
					i--;
					break;
				}
			}
			System.out.println("請輸入租車天數:");
			int?d=input.nextInt();
			System.out.println("您的賬單:");
			/*
			?*?以下的雙重for循環主要是保證輸出車名時不會有重復的情況出現
			?*?水平有限,如有更好方法還請賜教
			?*/
			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("***租車總價格:"+s3*d+"元");
		}else?if(b==0)System.out.println("已退出答答租車系統,謝謝訪問!");
		else?System.out.println("輸入錯誤!");
	}

}



正在回答

3 回答

整體寫的不錯啊,我參考你的寫的。不過,switch case 語句那樣控制不好,上面已經初始化對象了,為何不調用車輛的相關屬性輸出呢?

0 回復 有任何疑惑可以回復我~

前面定義了對象,怎么后面計算不用上對應的屬性,直接寫數字~

0 回復 有任何疑惑可以回復我~
#1

2302234023 提問者

是switch語句里的數字嗎? 在Bus類里定義一個getPC()方法獲取載客量,但父類引用不能調用子類新建的方法.s1+=carArray[0].getPC();通不過(⊙o⊙)…然后就寫數字了
2015-09-05 回復 有任何疑惑可以回復我~
#2

口袋妖怪 回復 2302234023 提問者

車子都有載客量的啊,在Car里定義
2015-09-05 回復 有任何疑惑可以回復我~
#3

2302234023 提問者 回復 口袋妖怪

貨車的載客量怎么辦?初始化為0,然后就不管了~~如果可以的話,也行
2015-09-05 回復 有任何疑惑可以回復我~

還不錯哦

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Java入門第二季 升級版
  • 參與學習       531142    人
  • 解答問題       6326    個

課程升級!以終為始告別枯燥,在開發和重構中體會Java面向對象編程的奧妙

進入課程

新手一枚,剛寫的答答租車系統,還望大家多多指教~~

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號