package?com.zuoye;
import?java.util.Scanner;
public?class?Initial?{
private?static?final?String?NULL=null;
private?static?Scanner?input;????//用來輸入數據
public?static?void?main(String[]?args)?{
//?TODO?Auto-generated?method?stub
for(;;){
//無條件執行語句,直到執行循環內部的跳出語句
System.out.println("歡迎使用租車系統!");
System.out.println("您是否需要租車1:是???2:否");
input=new?Scanner(System.in);
int?i=input.nextInt(); //完成數據的輸入
if(i==1){
//顯示可以租車的信息
System.out.println("您可以租車的相關信息:");
Car[]?car={new?PersonCar(1,"奧迪A4",500,4),new?PersonCar(2,"馬自達6",400,4),?new?PersonCar(3,"?金龍?",800,20),
new?Pickup(4,"皮卡雪6",450,4,2),new?Truck(5,"松花江",400,4),
new?Truck(6,"依維柯",1000,20)};????//初始化對象,建立Car類對象的數組car
//遍歷car類對象輸出
System.out.println("序號"+"??名稱"+"??價格"+"??容量1");
for(Car?rendcar:car){
if(rendcar?instanceof?PersonCar){
//判斷是否有客車類對象的元素,輸出相關的信息
System.out.println(rendcar.getCarNum()+"?"+rendcar.getCarName()+"?"+rendcar.getCarPrice()+"/天"+"?"+
((PersonCar)rendcar).getCarCapacity()+"人");????//注意這里必須進行強制類型轉換,轉換為客車類,否則無法調用輸出容量的信息
}
if(rendcar?instanceof?Pickup){
//判斷是否有皮卡類對象的元素,輸出相關的信息
System.out.println(rendcar.getCarNum()+"?"+rendcar.getCarName()+"?"+rendcar.getCarPrice()+"/天"+"?"+
((Pickup)rendcar).getCarCapacity()+"人"+"?"+((Pickup)rendcar).getCarryingCapacity()+"噸");
}
if(rendcar?instanceof?Truck){
//判斷是否有貨車類對象的元素,輸出相關的信息
System.out.println(rendcar.getCarNum()+"?"+rendcar.getCarName()+"?"+rendcar.getCarPrice()+"/天"+"?"+
((Truck)rendcar).getCarryingCapactity());
}
//System.out.println(rendcar);???//直接輸出,輸出的是對象的哈希碼
}
System.out.println("請輸入您的租車數量!");
int?rendNum=input.nextInt();???//獲取租車數量
String[]?name=new?String[rendNum];????//建立數組,保存租車的名稱
String[]?name2=new?String[rendNum];
int?sumCapacity=0; //計算總的載人數
int?sumCCapacity=0;?????//計算中的載貨量
int?sumPrice=0;?????????//計算總的價格
int?a=0;
int?b=0;
for(int?i1=0;i1<rendNum;i1++){
//獲取顧客租車的相關信息
System.out.println("請輸入租借的第"+(i1+1)+"輛車的編號");
int?num=input.nextInt();
System.out.println("請輸入租借天數");
int?day=input.nextInt();
switch(num){
case?1:
sumPrice=sumPrice+car[0].getCarPrice()*day;????//計算租車費用
sumCapacity=sumCapacity+((PersonCar)car[0]).getCarCapacity();???//計算租車的載人量
case?2:
sumPrice=sumPrice+car[1].getCarPrice()*day;
sumCapacity=sumCapacity+((PersonCar)car[1]).getCarCapacity();
case?3:
sumPrice=sumPrice+car[2].getCarPrice()*day;
sumCapacity=sumCapacity+((PersonCar)car[2]).getCarCapacity();
case?4:
sumPrice=sumPrice+car[3].getCarPrice()*day;
if(car[3]?instanceof?Pickup){
sumCapacity=sumCapacity+((Pickup)car[3]).getCarCapacity();
sumCCapacity=sumCCapacity+((Pickup)car[3]).getCarryingCapacity();??????//計算租車的載貨量
}else{
System.out.println("數據出差錯?。?!");
}
case?5:
sumPrice=sumPrice+car[4].getCarPrice()*day;
sumCCapacity=sumCapacity+((Truck)car[4]).getCarryingCapactity();
case?6:
sumPrice=sumPrice+car[5].getCarPrice()*day;
sumCCapacity=sumCapacity+((Truck)car[5]).getCarryingCapactity();
break;
}
//將選好的車分類
if(car[num-1]?instanceof?PersonCar){
//判斷是否為客車
name[a]=car[num-1].getCarName();
a++;
}else?if(car[num-1]?instanceof?Pickup){
//判斷是否為皮卡
name[a]=car[num-1].getCarName();
name2[b]=car[num-1].getCarName();
a++;
b++;
}else?if(car[num-1]?instanceof?Truck){
//判斷是否為貨車
name2[b]=car[num-1].getCarName();
b++;
}
}
//輸出客戶選擇的車的相關信息;
System.out.println("您一共要租"+rendNum+"輛車!");
if(a!=0){
//通過a的大小來判斷客戶是否租借載人的車
System.out.println("載人的車有");
for(String?n1:name){
System.out.println(n1);
}
System.out.println("一共可以乘坐"+sumCapacity+"位乘客");
}else{
System.out.println("您沒有租借載人的車");
}
if(b==0){
System.out.println("您沒有租借載貨的車");
}else{
System.out.println("載貨的車有");
for(String?n2:name2){
System.out.println(n2);
}
System.out.println("一共可以運輸"+sumCCapacity+"噸的貨物");
}
System.out.println("您一共需要支付"+sumPrice+"元");
}else?if(i==2){
System.out.println("歡迎下次光臨!");
break;
}else{
System.out.println("您的輸入有誤,系統自動退出!");
break;
}
}
}
}package?com.zuoye;
public?class?Car?{
//創建汽車父類
private?int?carNum;
private?String?carName;
private?int?carPrice;
public?Car(int?newCarNum,String?newCarName,int?newCarPrice){
this.setCarNum(newCarNum);
this.setCarName(newCarName);
this.setCarPrice(newCarPrice);
}
public?int?getCarNum()?{
return?carNum;
}
public?void?setCarNum(int?carNum)?{
this.carNum?=?carNum;
}
public?String?getCarName()?{
return?carName;
}
public?void?setCarName(String?carName)?{
this.carName?=?carName;
}
public?int?getCarPrice()?{
return?carPrice;
}
public?void?setCarPrice(int?carPrice)?{
this.carPrice?=?carPrice;
}
}package?com.zuoye;
public?class?PersonCar?extends?Car?{
//客車類
private?int?carCapacity;????//載人量
public?PersonCar(int?newCarNum,String?newCarName,int?newCarPrice,int?newCarCapacoty){
super(newCarNum,newCarName,newCarPrice);? //顯式調用父類的構造方法
this.setCarCapacity(newCarCapacoty);??????//初始化載貨量
}
public?int?getCarCapacity()?{
return?carCapacity;
}
public?void?setCarCapacity(int?carCapacity)?{
this.carCapacity?=?carCapacity;
}
}package com.zuoye;public class Pickup extends Car { //皮卡類 private int carCapacity; ? ? ?//載人量 private int carryingCapacity; ? ?//載貨量 public Pickup(int newCarNum,String newCarName,int newCarPrice,int newCarCapacity,int newCarryingCapacity){ super(newCarNum, newCarName, newCarPrice); this.setCarCapacity(newCarCapacity); ? ? //初始化載人量 this.setCarryingCapacity(newCarryingCapacity); ? ? ?//初始化載貨量 } public int getCarCapacity() { return carCapacity; } public void setCarCapacity(int carCapacity) { this.carCapacity = carCapacity; } public int getCarryingCapacity() { return carryingCapacity; } public void setCarryingCapacity(int carryingCapacity) { this.carryingCapacity = carryingCapacity; }}package com.zuoye;public class Truck extends Car { //貨車類 private int carryingCapactity; public Truck(int newCarNum,String newCarName,int newCarPrice,int newCarryingCapacity){ super(newCarNum, newCarName, newCarPrice); this.setCarryingCapactity(newCarryingCapacity); } public int getCarryingCapactity() { return carryingCapactity; } public void setCarryingCapactity(int carryingCapactity) { this.carryingCapactity = carryingCapactity; }}
添加回答
舉報
0/150
提交
取消