自寫(xiě)的代碼,請(qǐng)大神們多多指教
測(cè)試類(lèi):
package com.carcrental;
import java.util.Scanner;
public class Test {
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("歡迎使用答答租車(chē)系統(tǒng)!");
System.out.println("您是否需要租車(chē):1是 ?0否");
input = new Scanner(System.in);
int i=input.nextInt();
if(i==1){
System.out.println("您可租車(chē)的類(lèi)型及其價(jià)目表:");
Car[] carForRent={new PersonCar(1,"奧迪A4",500,4),new PersonCar(2,"馬自達(dá)6",400,4),
? ? ? ? ? ? ? ? ? ? new Pickup(3,"皮卡雪6",450,4,2),new PersonCar(4," 金龍 ",800,20),
? ? ? ? ? ? ? ? ? ? new Truck(5,"松花江",400,4),new Truck(6,"依維柯",1000,20)};
System.out.println("序號(hào)"+"\t"+"汽車(chē)名稱(chēng)"+"\t"+"租金"+"\t"+"容量");
//遍歷Car類(lèi)
for(Car car : carForRent){
?if(car instanceof PersonCar){
? ? ? ? ? ? ? ? ? ?//若它是客車(chē)類(lèi)型的實(shí)例,則打印出客車(chē)應(yīng)該有的屬性值,這里注意強(qiáng)轉(zhuǎn),否則不會(huì)出現(xiàn)
? ? ? ? ? ? ? ? ? ?//passengerCar類(lèi)的CarCapacity屬性
? ? ? ? ? ? ? ? ? ?System.out.println(car.getCarNumber()+"\t"+car.getCarName()+"\t"+car.getCarPrice()
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?+"/天"+"\t"+"載人:"+((PersonCar)car).getCarCapacity()+"人");
? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ?if(car instanceof Pickup){
? ? ? ? ? ? ? ? ? ?System.out.println(car.getCarNumber()+"\t"+car.getCarName()+"\t"+car.getCarPrice()
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?+"/天"+"\t"+"載人:"+((Pickup)car).getCarCapacity()+"人"+"\t"
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?+"載貨:"+((Pickup)car).getCarrayingCapacity()+"噸");
? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ?if(car instanceof Truck){
? ? ? ? ? ? ? ? ? ?System.out.println(car.getCarNumber()+"\t"+car.getCarName()+"\t"+car.getCarPrice()
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?+"/天"+"\t"+"載貨:"+((Truck)car).getCarryingCapacity()+"噸");
? ? ? ? ? ? ? ?}
? ? ? ? ? ?}
System.out.print("請(qǐng)輸入你租車(chē)的數(shù)量:");
int totalNum=input.nextInt(); //用于接收汽車(chē)的總數(shù)量
String[] name=new String[totalNum];
String[] name2=new String[totalNum];
int capacitySum=0;//總?cè)藬?shù)
int ccapacitySum=0;//總載貨量
int sum=0;//用于接收租車(chē)的總價(jià)格
for(int i1=0;i1<totalNum;i1++){
System.out.print("請(qǐng)輸入第"+(i1+1)+"輛車(chē)的序號(hào):");
int num=input.nextInt();
System.out.print("請(qǐng)輸入租這輛車(chē)的天數(shù):");
int day=input.nextInt();
switch(num){
case 1:sum=sum+carForRent[num-1].getCarPrice()*day;
capacitySum=capacitySum+4;
break;
case 2:sum=sum+carForRent[num-1].getCarPrice()*day;
capacitySum=capacitySum+4;
break;
case 3:sum=sum+carForRent[num-1].getCarPrice()*day;
capacitySum=capacitySum+4;
ccapacitySum=ccapacitySum+2;
break;
case 4:sum=sum+carForRent[num-1].getCarPrice()*day;
capacitySum=capacitySum+20;
break;
case 5:sum=sum+carForRent[num-1].getCarPrice()*day;
ccapacitySum=ccapacitySum+4;
break;
case 6:sum=sum+carForRent[num-1].getCarPrice()*day;
ccapacitySum=ccapacitySum+20;
break;
}
if(carForRent[num-1] instanceof PersonCar){
name[i1]=carForRent[num-1].getCarName();
}else if(carForRent[num-1] instanceof Pickup){
name[i1]=carForRent[num-1].getCarName();
name2[i1]=carForRent[num-1].getCarName();
}else if(carForRent[num-1] instanceof Truck){
name2[i1]=carForRent[num-1].getCarName();
}
}
System.out.println("載人的車(chē)有:");
for(String n:name){
if(n==NULL){
continue;
}
System.out.print(n);
System.out.print("\t");
}
System.out.println("***可以乘坐人數(shù):"+capacitySum+"人");
for(String n2:name2){
if(n2==NULL){
continue;
}
System.out.print(n2);
System.out.print("\t");
}
System.out.println("***可載貨:"+ccapacitySum+"噸");
System.out.println("***你一共需要支付:"+sum);
}else if(i==0){
System.out.println("歡迎下次使用!");break;
}
else{
System.out.println("你輸入有誤!請(qǐng)重新輸入!");
}
System.out.println("\n");
System.out.println("\n");
}
}
/*if(i==1){
System.out.println("序號(hào) ? ? ? ? ? ? 汽車(chē)名稱(chēng) ? ? 租金 ? ? ? ? ? ?容量");
System.out.println(1+"\t"+p1.getCarName()+"\t"+p1.getCarPrice()+"元/天"+"\t"+"載人:"+p1.getCarCapacity()+"人");
System.out.println(2+"\t"+p2.getCarName()+"\t"+p2.getCarPrice()+"元/天"+"\t"+"載人:"+p2.getCarCapacity()+"人");
System.out.println(3+"\t"+p3.getCarName()+"\t"+p3.getCarPrice()+"元/天"+"\t"+"載人:"+p3.getCarCapacity()+"人;"+"載貨:"+p3.getCarrayingCapacity()+"噸");
System.out.println(4+"\t"+p4.getCarName()+"\t"+p4.getCarPrice()+"元/天"+"\t"+"載人:"+p4.getCarCapacity()+"人");
System.out.println(5+"\t"+p5.getCarName()+"\t"+p5.getCarPrice()+"元/天"+"\t"+"載貨:"+p5.getCarryingCapacity()+"噸");
System.out.println(6+"\t"+p6.getCarName()+"\t"+p6.getCarPrice()+"元/天 載貨:"+p6.getCarryingCapacity()+"噸");
}
System.out.print("請(qǐng)輸入你租車(chē)的數(shù)量:");
int a=input.nextInt();
int sum=0;
for(int b=0;b<a;b++){
System.out.print("請(qǐng)輸入你想租的車(chē)的序號(hào):");
int c=input.nextInt();
System.out.print("請(qǐng)輸入租這輛車(chē)的天數(shù):");
int day=input.nextInt();
switch(c){
case 1:sum=sum+p1.getCarPrice()*day;break;
case 2:sum=sum+p2.getCarPrice()*day;break;
case 3:sum=sum+p3.getCarPrice()*day;break;
case 4:sum=sum+p4.getCarPrice()*day;break;
case 5:sum=sum+p5.getCarPrice()*day;break;
case 6:sum=sum+p6.getCarPrice()*day;break;
}
}
System.out.println("你一共需要支付:"+sum);*/
}
Car類(lèi):
package com.carcrental;
//所有汽車(chē)的父類(lèi)
public class Car {
private int carNumber;
private String carName;
private int carPrice;
public Car(int carNumber,String carName,int carPrice){
this.carNumber=carNumber;
this.carName=carName;
this.carPrice=carPrice;
}
public int getCarNumber() {
return carNumber;
}
public void setCarNumber(int carNumber) {
this.carNumber = carNumber;
}
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;
}
}
載人車(chē)類(lèi):
package com.carcrental;
public class PersonCar extends Car{
private int carCapacity;
public PersonCar(int carNumber,String carName,int carPrice,int carCapacity){
super(carNumber,carName,carPrice);
/*this.setCarNumber(carNumber);
this.setCarName(carName);
this.setCarPrice(carPrice);*/
this.carCapacity=carCapacity;
}
public int getCarCapacity() {
return carCapacity;
}
public void setCarCapacity(int carCapacity) {
this.carCapacity = carCapacity;
}
}
皮卡車(chē):
package com.carcrental;
//皮卡類(lèi),繼承了父類(lèi)Car
public class Pickup extends Car{
private int carCapacity;
private int carrayingCapacity;
//構(gòu)造函數(shù)
public Pickup(int carNumber,String carName,int carPrice,int carCapacity,int carrayingCapacity){
super(carNumber,carName,carPrice);
/*this.setCarNumber(carNumber);
this.setCarName(carName);
this.setCarPrice(carPrice);*/
this.carCapacity=carCapacity;
this.carrayingCapacity=carrayingCapacity;
}
//封裝過(guò)后必須有出口
public int getCarCapacity() {
return carCapacity;
}
public void setCarCapacity(int carCapacity) {
this.carCapacity = carCapacity;
}
public int getCarrayingCapacity() {
return carrayingCapacity;
}
public void setCarrayingCapacity(int carrayingCapacity) {
this.carrayingCapacity = carrayingCapacity;
}
}
貨車(chē):
package com.carcrental;
public class Truck extends Car{
private int carryingCapacity;
public Truck(int carNumber,String carName,int carPrice,int carryingCapacity){
super(carNumber,carName,carPrice);
/*this.setCarNumber(carNumber);
this.setCarName(carName);
this.setCarPrice(carPrice);*/
this.carryingCapacity=carryingCapacity;
}
public int getCarryingCapacity() {
return carryingCapacity;
}
public void setCarryingCapacity(int carryingCapacity) {
this.carryingCapacity = carryingCapacity;
}
}
2018-08-24
是Java語(yǔ)言寫(xiě)的吧,果然是很長(zhǎng)。
phper表示看不了這么臃腫的代碼。精簡(jiǎn)為此代碼的1/4,應(yīng)該不是難事。
2016-10-04
贊,寫(xiě)了個(gè)這么長(zhǎng)的代碼,可以借鑒借鑒
2016-09-29
感謝樓主
2016-09-29
非常感謝
2016-09-08
我怎么看了一遍視頻到現(xiàn)在還是編不出這樣的diamante
2016-08-30
非常感謝樓主分享學(xué)習(xí)的代碼
2016-08-29
我寫(xiě)不出來(lái) 謝謝樓主發(fā)出來(lái)參考
2016-08-10
這種基礎(chǔ)練習(xí)代碼有什么可改進(jìn)的,真正的實(shí)際開(kāi)發(fā)不會(huì)出現(xiàn)這樣的代碼,我在公司看了一天的代碼,早看吐了,沒(méi)心情再看你這么長(zhǎng)的代碼。。。
2016-08-09
要我們看什么?是有bug嗎?
2016-08-09
贊一個(gè)