//Auto.java,?所有車(chē)型的父類(lèi)
package?com.imooc.dadacarrental;
public?class?Auto?{
private?String?autoType;
private?String?autoName;
private?int?autoRent;
protected?int?passengerCount;
protected?int?cargoWeight;
public?void?setAuto(String?autoType,?String?autoName,?int?autoRent){
this.autoType?=?autoType;
this.autoName?=?autoName;
this.autoRent?=?autoRent;
}
public?void?printCar(){
System.out.println("車(chē)型:"+autoType);
System.out.println("名稱(chēng):"+autoName);
}
public?String?getAutoType(){
return?autoType;
}
public?String?getAutoName(){
return?autoName;
}
public?int?getAutoRent(){
return?autoRent;
}
public?int?getPassengerCount(){
return?passengerCount;
}
public?int?getCargoWeight(){
return?cargoWeight;
}
}
//IPassengerAuto.java,?載客車(chē)型接口
package?com.imooc.dadacarrental;
public?interface?IPassengerAuto?{
void?setPassengerCount(int?passengerCount);
void?printPassengerCount();
}
//ICargoAuto.java,?載貨車(chē)型接口
package?com.imooc.dadacarrental;
public?interface?ICargoAuto?{
void?setCargoWeight(int?cargoWeight);
void?printCargoWeight();
}
//Car.java,?小客車(chē)類(lèi)
package?com.imooc.dadacarrental;
public?class?Car?extends?Auto?implements?IPassengerAuto?{
Car(String?carName,?int?carRent,?int?passengerCount){
setPassengerCount(passengerCount);
setAuto("小客車(chē)",?carName,?carRent);
}
@Override
public?void?setPassengerCount(int?passengerCount)?{
if(passengerCount?>?5){
System.out.println("小客車(chē)載人數(shù)應(yīng)為5人以下!");
}
else{
this.passengerCount?=?passengerCount;
}
}
@Override
public?void?printPassengerCount()?{
System.out.println("載客人數(shù):"+passengerCount);
}
}
//Bus.java,?大客車(chē)類(lèi)
package?com.imooc.dadacarrental;
public?class?Bus?extends?Auto?implements?IPassengerAuto?{
Bus(String?busName,?int?busRent,?int?passengerCount){
setPassengerCount(passengerCount);
setAuto("大客車(chē)",?busName,?busRent);
}
@Override
public?void?setPassengerCount(int?passengerCount)?{
if?(passengerCount?<?10){
System.out.println("大客車(chē)載客數(shù)應(yīng)為10人以上!");
}
else{
this.passengerCount?=?passengerCount;
}
}
@Override
public?void?printPassengerCount()?{
System.out.println("載客人數(shù):"+passengerCount);
}
}
//SmallVan.java,?小貨車(chē)類(lèi)
package?com.imooc.dadacarrental;
public?class?SmallVan?extends?Auto?implements?ICargoAuto?{
SmallVan(String?vanName,?int?vanRent,?int?cargoWeight){
setCargoWeight(cargoWeight);
setAuto("小貨車(chē)",?vanName,?vanRent);
}
@Override
public?void?setCargoWeight(int?cargoWeight)?{
if?(cargoWeight?>?5){
System.out.println("小貨車(chē)的載貨量應(yīng)為5噸以下!");
}
else{
this.cargoWeight?=?cargoWeight;
}
}
@Override
public?void?printCargoWeight()?{
System.out.println("載貨量:"+cargoWeight);
}
}
//BigVan.java,?大客車(chē)類(lèi)
package?com.imooc.dadacarrental;
public?class?BigVan?extends?Auto?implements?ICargoAuto?{
BigVan(String?vanName,?int?vanRent,?int?cargoWeight){
setCargoWeight(cargoWeight);
setAuto("大貨車(chē)",?vanName,?vanRent);
}
@Override
public?void?setCargoWeight(int?cargoWeight)?{
if?(cargoWeight?<?5?||?cargoWeight?>?20){
System.out.println("大貨車(chē)的載貨量應(yīng)在5噸和20噸之間!");
}
else{
this.cargoWeight?=?cargoWeight;
}
}
@Override
public?void?printCargoWeight()?{
//?TODO?Auto-generated?method?stub
}
}
//Pickup.java,?皮卡車(chē)類(lèi)
package?com.imooc.dadacarrental;
public?class?Pickup?extends?Auto?implements?ICargoAuto,?IPassengerAuto?{
Pickup(String?pickupName,?int?pickupRent,?int?passengerCount,?int?cargoWeight){
setPassengerCount(passengerCount);
setCargoWeight(cargoWeight);
setAuto("皮卡",?pickupName,?pickupRent);
}
@Override
public?void?setPassengerCount(int?passengerCount)?{
this.passengerCount?=?passengerCount;
}
@Override
public?void?printPassengerCount()?{
//?TODO?Auto-generated?method?stub
}
@Override
public?void?setCargoWeight(int?cargoWeight)?{
this.cargoWeight?=?cargoWeight;
}
@Override
public?void?printCargoWeight()?{
//?TODO?Auto-generated?method?stub
}
}
//DisplayProcess.java,?顯示和處理類(lèi)
package?com.imooc.dadacarrental;
import?java.io.*;
public?class?DisplayProcess?{
private?int[]?autoNoArray;
private?int?rentalDays?=?0;
private?int?totalPassengerCount?=?0;
private?int?totalCargoWeight?=?0;
private?int?totalRent?=?0;
private?boolean?welcome()?throws?IOException{
int?result;
System.out.println("歡迎使用答答租車(chē)系統(tǒng)!");
System.out.println("您是否要租車(chē):1是?0否");
BufferedReader?br1?=?new?BufferedReader(new?InputStreamReader(System.in));
result?=?Integer.parseInt(br1.readLine());
if?(result?!=?1){
// System.out.println(result);
return?false;
}
return?true;
}
private?void?listAuto(Auto[]?autoModel){
System.out.println("您可租車(chē)的類(lèi)型及價(jià)目表:");
System.out.println("序號(hào)\t"?+?"汽車(chē)名稱(chēng)\t"?+?"租金(元/天)\t"?+?"容量");
for?(int?i?=?0;?i?<?autoModel.length;?i++){
if?(autoModel[i]?instanceof?Car?||?autoModel[i]?instanceof?Bus){
System.out.println((i+1)?+?".\t"?+?autoModel[i].getAutoName()?+?"\t"?+?autoModel[i].getAutoRent()?+?"元/天\t\t載人:"?+?autoModel[i].getPassengerCount()?+?"人");
}
else?if?(autoModel[i]?instanceof?SmallVan?||?autoModel[i]?instanceof?BigVan){
System.out.println((i+1)?+?".\t"?+?autoModel[i].getAutoName()?+?"\t"?+?autoModel[i].getAutoRent()?+?"元/天\t\t載貨:"?+?autoModel[i].getCargoWeight()?+?"噸");
}
else?if?(autoModel[i]?instanceof?Pickup){
System.out.println((i+1)?+?".\t"?+?autoModel[i].getAutoName()?+?"\t"?+?autoModel[i].getAutoRent()?+?"元/天\t\t載人:"?+?autoModel[i].getPassengerCount()?+?"人?載貨:"?+?autoModel[i].getCargoWeight()?+?"噸");
}
}
}
private?void?rentAuto()?throws?IOException{
System.out.println("請(qǐng)選擇租車(chē)數(shù)量:");
BufferedReader?br?=?new?BufferedReader(new?InputStreamReader(System.in));
int?i?=?Integer.parseInt(br.readLine());
autoNoArray?=?new?int[i];
for?(int?j?=?0;?j?<?i;?j++){
System.out.println("請(qǐng)輸入第"?+?(j+1)?+?"輛車(chē)的序號(hào):");
autoNoArray[j]?=?Integer.parseInt(br.readLine())?-?1;
}
System.out.println("請(qǐng)輸入租車(chē)天數(shù):");
rentalDays?=?Integer.parseInt(br.readLine());
}
private?void?generateOrder(Auto[]?autoModel){
System.out.println("您的賬單:");
System.out.println("***可載人的車(chē)有:");
for?(int?i?=?0;?i?<?autoNoArray.length;?i++){
if(autoModel[autoNoArray[i]]?instanceof?Car?||?autoModel[autoNoArray[i]]?instanceof?Bus?||?autoModel[autoNoArray[i]]?instanceof?Pickup){
totalPassengerCount?+=?autoModel[autoNoArray[i]].getPassengerCount();
totalRent?+=?autoModel[autoNoArray[i]].getAutoRent()*rentalDays;
System.out.print(autoModel[autoNoArray[i]].getAutoName()?+?"\t");
}
else{
continue;
}
}
System.out.println("共載人:"?+?totalPassengerCount?+?"人");
System.out.println("***可載貨的車(chē)有:");
for?(int?i?=?0;?i?<?autoNoArray.length;?i++){
if(autoModel[autoNoArray[i]]?instanceof?SmallVan?||?autoModel[autoNoArray[i]]?instanceof?BigVan){
totalCargoWeight?+=?autoModel[autoNoArray[i]].getCargoWeight();
totalRent?+=?autoModel[autoNoArray[i]].getAutoRent()*rentalDays;
System.out.print(autoModel[autoNoArray[i]].getAutoName()?+?"\t");
}
else?if(autoModel[autoNoArray[i]]?instanceof?Pickup){
totalCargoWeight?+=?autoModel[autoNoArray[i]].getCargoWeight();
System.out.print(autoModel[autoNoArray[i]].getAutoName()?+?"\t");
}
else{
continue;
}
}
System.out.println("共載貨:"+?totalCargoWeight?+?"噸");
System.out.println("***租車(chē)總價(jià)格:"?+?totalRent?+?"元");
}
public?void?processing(Auto[]?autoModel)?throws?IOException{
if?(welcome()){
listAuto(autoModel);
rentAuto();
generateOrder(autoModel);
}
else
return;
}
}
//CreateAutoModel.java,?創(chuàng)建車(chē)型類(lèi)
package?com.imooc.dadacarrental;
public?class?CreateAutoModel?{
private?Auto[]?autoModel?=?new?Auto[6];
private?void?createModel(){
autoModel[0]?=?new?Car("奧迪A4",?500,?4);
autoModel[1]?=?new?Car("馬自達(dá)6",?400,?4);
autoModel[2]?=?new?Pickup("皮卡雪6",?450,?4,?2);
autoModel[3]?=?new?Bus("金龍",?800,?20);
autoModel[4]?=?new?SmallVan("松花江",?400,?4);
autoModel[5]?=?new?BigVan("依維柯",?1000,?20);
}
public?Auto[]?getModel(){
createModel();
return?autoModel;
}
}
//DadaCarRental.java,?主類(lèi)
package?com.imooc.dadacarrental;
import?java.io.IOException;
public?class?DadaCarRental?{
public?static?void?main(String[]?args)?throws?IOException{
Auto[]?models?=?new?CreateAutoModel().getModel();
new?DisplayProcess().processing(models);
}
}
2015-03-01
你這也太繁瑣 了
2015-01-24
厲害~~~
2015-01-04
有點(diǎn)看不懂