模拟汽车租赁
用户输入选择车辆种类、品牌、型号以及租车天数,程序输出租车金额及车牌照。
代码如下:
1.父类(Car)
import java.util.Scanner;
public abstract class Car {
private String brand;//品牌
private double dayRent;//日租金
private String idCard;//车牌号
public Car(String brand,double dayRent,String idCard) {
this.brand=brand;
this.dayRent=dayRent;
this.idCard=idCard;
}
public Car() {
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand=brand;
}
public double getDayRent() {
return dayRent;
}
public void setDayRent(double dayRent) {
this.dayRent=dayRent;
}
public String getIdCard() {
return idCard;
}
public void setIdCard(String idCard) {
this.idCard=idCard;
}
public abstract double playRent(int days);
}
2.子类(SaloonCar)
class SaloonCar extends Car{
//型号
private String type;
public SaloonCar(String brand,double dayRent,String idCard,String type) {
super(brand,dayRent,idCard);
this.type=type;
}
public SaloonCar() {
}
public String getType() {
return type;
}
public void setType(String type) {
this.type=type;
}
@Override
public double playRent(int days) {
double money=0;
if(days>7&&days<=30) {
money=days*0.9;
}else if(days>30&&days<=150) {
money=days*0.8;
}else if(days>150) {
money=days*0.7;
}else {
money=days;
}
return money;
}
}
3.子类(Bus)
class Bus extends Car{
//座位数
private int num;
public Bus(String brand,double dayRent,String idCard,int num) {
super(brand,dayRent,idCard);
this.num=num;
}
public Bus() {
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num=num;
}
@Override
public double playRent(int days) {
double money=0;
if(days>=3&&days<7) {
money=days*0.9;
}else if(days>=7&&days<30) {
money=days*0.8;
}else if(days>=30&&days<150) {
money=days*0.7;
}else if(days>=150) {
money=days*0.6;
}else {
money=days;
}
return money;
}
}
4.调用函数类(Player)
class Player{
Scanner input=new Scanner(System.in);
Car[] cars=new Car[8];
public void addCar(){
cars[0]=new SaloonCar("宝马",800,"京NY28582","3系");
cars[1]=new SaloonCar("宝马",600,"京CNY3284","M5");
cars[2]=new SaloonCar("奥迪",300,"京NY37458","A6");
cars[3]=new SaloonCar("奥迪",600,"京NY96964","RS7");
cars[4]=new Bus("金杯",800,"京254631",16);
cars[5]=new Bus("金龙",800,"京355632",16);
cars[6]=new Bus("金杯",1500,"京256633",34);
cars[7]=new Bus("金龙",1500,"京357634",34);
}
//找车
public Car findCar(String brand,String type,int num) {
if(cars!=null&&cars.length>0) {
for(Car c:cars) {
if(c instanceof SaloonCar) {
SaloonCar saloonCar=(SaloonCar) c;
if(saloonCar.getBrand().equals(brand)&&saloonCar.getType().equals(type)) {
return saloonCar;
}
}else if(c instanceof Bus) {
Bus bus=(Bus) c;
if(bus.getBrand().equals(brand)&&bus.getNum()==num) {
return bus;
}
}
}
}
return null;
}
//选品牌(brand)
public String ChooseCar(int num){
String brand=null;
int brandId;
int num1=(num==1?1:2);
if(num1==1) {
System.out.print("请选择品牌:1.宝马\t2.奥迪");
brandId=input.nextInt();
brand=(brandId==1?"宝马":"奥迪");
}else {
System.out.print("请选择品牌:1.金杯\t2.金龙");
brandId=input.nextInt();
brand=(brandId==1?"金杯":"金龙");
}
return brand;
}
//选型号(type)
public String Choosetype(String brand1){
int typeId;
String type =null;
if("宝马".equals (brand1)||"奥迪".equals (brand1)){
if("宝马".equals (brand1)){
System. out.print("请选择你要订的型号:1.3系\t2.M5");
typeId= input.nextInt();
type=(typeId==1?"3系":"M5");
}else {
System.out.print("请选择你要订的型号:1.A6\t2.RS7");
typeId= input.nextInt();
type=(typeId==1?"A6":"RS7");
}
}
else {
type=null;
}
return type;
}
//选座位数
public int Choosenum(String brand1) {
int typeId;
int num=-1;
if("宝马".equals(brand1)||"奥迪".equals(brand1)) {
num=0;
}else {
if("金杯".equals(brand1)) {
System.out.print("请选择座位数:1.16\t2.34");
typeId=input.nextInt();
num=(typeId==1?16:34);
}else {
System.out.print("请选择座位数:1.16\t2.34");
typeId=input.nextInt();
num=(typeId==1?16:34);
}
}
return num;
}
}
5.主函数
class Test{
public static void main(String[] args) {
@SuppressWarnings("resource")
Scanner input=new Scanner(System.in);
Player a=new Player();
a.addCar();
System.out.print("输入订的车型:1.轿车\t2.客车");
int brandnum=input.nextInt();
String brand=a.ChooseCar(brandnum);
String type=a.Choosetype(brand);
int num=a.Choosenum(brand);
Car b=a.findCar(brand, type, num);
System.out.print("请输入天数:");
int days=input.nextInt();
SaloonCar c=new SaloonCar();
System.out.println("车牌号是:"+b.getIdCard());
System.out.println("费用是:"+c.playRent(days)*b.getDayRent());
}
}