系统要求:
测试类main方法代码:
package com.carPackage; import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner s = new Scanner(System.in); EasyCar car = new EasyCar(); car.init(); String brand = ""; String type = ""; int number = 0; System.out.println("***********欢迎来到红旗租车系统************"); System.out.println("请选择您要租的汽车类:1、轿车 2、客车"); int carType; while(true){ carType = s.nextInt(); if(carType==1||carType==2){ break; } System.out.println("输入错误!请选择1或2!" ); } if(carType == 1){ System.out.println("请输入您要租的汽车品牌:1、宝马 2、别克"); int cheXing; while(true){ cheXing = s.nextInt(); if(cheXing==1||cheXing==2){ break; } System.out.println("输入错误!请选择1或2!" ); } if(cheXing == 1){ brand ="宝马"; System.out.println("请选择您要租的宝马型号:1、X6 2、550i"); int xingHao; while(true){ xingHao = s.nextInt(); if(xingHao==1||xingHao==2){ break; } System.out.println("输入错误!请选择1或2!" ); } type = (xingHao == 1 ? "X6":"550i"); }else if(cheXing == 2){ brand ="别克"; System.out.println("请选择您要租的别克型号:1、GL8 2、林荫大道"); int xingHao; while(true){ xingHao = s.nextInt(); if(xingHao==1||xingHao==2){ break; } System.out.println("输入错误!请选择1或2!" ); } type = (xingHao == 1 ? "GL8":"林荫大道"); } }else if(carType == 2){ System.out.println("请输入您要租的汽车品牌:1、金龙 2、金杯"); int cheXing ; while(true){ cheXing = s.nextInt(); if(cheXing==1||cheXing==2){ break; } System.out.println("输入错误!请选择1或2!" ); } if(cheXing == 1){ brand ="金龙"; System.out.println("请选择您要租的金龙的座位数:1、16 2、34"); int xingHao; while(true){ xingHao = s.nextInt(); if(xingHao==1||xingHao==2){ break; } System.out.println("输入错误!请选择1或2!" ); } number = (xingHao == 1 ? 16:34); }else if(cheXing == 2){ type = ""; brand ="金杯"; System.out.println("请选择您要租的金杯的座位数:1、16 2、34"); int xingHao; while(true){ xingHao = s.nextInt(); if(xingHao==1||xingHao==2){ break; } System.out.println("输入错误!请选择1或2!" ); } number = (xingHao == 1 ? 16:34); } } Car rentCar = car.choose(brand,type,number); System.out.println("请输入您要租的天数:"); int day = s.nextInt(); double price = rentCar.pay(day); System.out.println("租车成功!您租的车的车牌号为:"+rentCar.getCarNumber()); System.out.println("您需要交费"+price+"元租金"); } }
汽车父类代码:
package com.carPackage; public abstract class Car { private String carNumber; private String cheXing; private int rent; public Car(){} public Car(String carNumber,String cheXing,int rent){ super(); this.carNumber = carNumber; this.cheXing = cheXing; this.rent = rent; } public String getCarNumber() { return carNumber; } public void setCarNumber(String carNumber) { this.carNumber = carNumber; } public String getCheXing() { return cheXing; } public void setCheXing(String cheXing) { this.cheXing = cheXing; } public int getRent() { return rent; } public void setRent(int rent) { this.rent = rent; } public abstract double pay(int day) ; }
轿车类代码:
package com.carPackage; public class SmallCar extends Car{ private String type; public SmallCar(String carNumber,String cheXing,int rent, String type){ super(carNumber,cheXing,rent); this.type = type; } public String getType() { return type; } public void setType(String type) { this.type = type; } public double pay(int day) { double money = getRent() * day; if(day>7 && day<=30){ money = money * 0.9; }else if(day>30 && day<=150){ money = money * 0.8; }else if(day>150){ money = money * 0.7; } return money; } }
客车类代码:
package com.carPackage; public class BigCar extends Car{ private String number; public BigCar(String carNumber,String cheXing,int rent, String number){ super(carNumber,cheXing,rent); this.number = number; } public String getNumber() { return number; } public void setNumber(String number) { this.number = number; } public double pay(int day) { double money = getRent() * day; if(day>=3 && day<7){ money = money * 0.9; }else if(day>=7 && day<30){ money = money * 0.8; }else if(day>=30 && day<150){ money = money * 0.7; }else if(day>=150){ money = money * 0.6; } return money; } }
租车类代码:
package com.carPackage; public class EasyCar { public Car[] cars = new Car[8]; public void init(){ cars[0] = new SmallCar("京A88888","宝马",800,"X6"); cars[1] = new SmallCar("京B66666","宝马",600,"550i"); cars[2] = new SmallCar("京C12345","别克",600,"GL8"); cars[3] = new SmallCar("京C68834","别克",300,"林荫大道"); cars[4] = new BigCar("京234566","金杯",800,"16"); cars[5] = new BigCar("京423479","金杯",1500,"34"); cars[6] = new BigCar("京124354","金龙",800,"16"); cars[7] = new BigCar("京765744","金龙",1500,"34"); } public Car choose(String cheXing,String type, int number){ Car car = null; for(int i = 0;i<8;i++){ if(cars[i] instanceof SmallCar){ SmallCar smallCar = (SmallCar)cars[i]; if(smallCar.getCheXing().equals(cheXing) && smallCar.getType().equals(type)){ car = cars[i]; break; } }else if(cars[i] instanceof BigCar){ BigCar bigCar = (BigCar) cars[i]; if(bigCar.getCheXing().equals(number) && bigCar.getNumber().equals(number)){ car = cars[i]; break; } } } return car; } }
运行结果: