自寫的代碼,請大神們多多指教
測試類:
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("歡迎使用答答租車系統!");
System.out.println("您是否需要租車:1是 ?0否");
input = new Scanner(System.in);
int i=input.nextInt();
if(i==1){
System.out.println("您可租車的類型及其價目表:");
Car[] carForRent={new PersonCar(1,"奧迪A4",500,4),new PersonCar(2,"馬自達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("序號"+"\t"+"汽車名稱"+"\t"+"租金"+"\t"+"容量");
//遍歷Car類
for(Car car : carForRent){
?if(car instanceof PersonCar){
? ? ? ? ? ? ? ? ? ?//若它是客車類型的實例,則打印出客車應該有的屬性值,這里注意強轉,否則不會出現
? ? ? ? ? ? ? ? ? ?//passengerCar類的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("請輸入你租車的數量:");
int totalNum=input.nextInt(); //用于接收汽車的總數量
String[] name=new String[totalNum];
String[] name2=new String[totalNum];
int capacitySum=0;//總人數
int ccapacitySum=0;//總載貨量
int sum=0;//用于接收租車的總價格
for(int i1=0;i1<totalNum;i1++){
System.out.print("請輸入第"+(i1+1)+"輛車的序號:");
int num=input.nextInt();
System.out.print("請輸入租這輛車的天數:");
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("載人的車有:");
for(String n:name){
if(n==NULL){
continue;
}
System.out.print(n);
System.out.print("\t");
}
System.out.println("***可以乘坐人數:"+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("你輸入有誤!請重新輸入!");
}
System.out.println("\n");
System.out.println("\n");
}
}
/*if(i==1){
System.out.println("序號 ? ? ? ? ? ? 汽車名稱 ? ? 租金 ? ? ? ? ? ?容量");
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("請輸入你租車的數量:");
int a=input.nextInt();
int sum=0;
for(int b=0;b<a;b++){
System.out.print("請輸入你想租的車的序號:");
int c=input.nextInt();
System.out.print("請輸入租這輛車的天數:");
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類:
package com.carcrental;
//所有汽車的父類
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;
}
}
載人車類:
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;
}
}
皮卡車:
package com.carcrental;
//皮卡類,繼承了父類Car
public class Pickup extends Car{
private int carCapacity;
private int carrayingCapacity;
//構造函數
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;
}
//封裝過后必須有出口
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;
}
}
貨車:
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語言寫的吧,果然是很長。
phper表示看不了這么臃腫的代碼。精簡為此代碼的1/4,應該不是難事。
2016-10-04
贊,寫了個這么長的代碼,可以借鑒借鑒
2016-09-29
感謝樓主
2016-09-29
非常感謝
2016-09-08
我怎么看了一遍視頻到現在還是編不出這樣的diamante
2016-08-30
非常感謝樓主分享學習的代碼
2016-08-29
我寫不出來 謝謝樓主發出來參考
2016-08-10
這種基礎練習代碼有什么可改進的,真正的實際開發不會出現這樣的代碼,我在公司看了一天的代碼,早看吐了,沒心情再看你這么長的代碼。。。
2016-08-09
要我們看什么?是有bug嗎?
2016-08-09
贊一個