汽车租赁系统

package com.zuchexitong;
//汽车类
public abstract class QiCheLei {
    //车牌号  品牌 日租金
    private String chePaiHao;
    private String pinPai;
    private int riZuJin;
    
    public QiCheLei() {}
    
    public QiCheLei(String chePaiHao,String pinPai,int riZuJin) {
        this.chePaiHao = chePaiHao;
        this.pinPai = pinPai;
        this.riZuJin = riZuJin;
    }
    public String getChePaiHao() {
        return chePaiHao;
    }
    public void setChePaiHao(String chePaiHao) {
        this.chePaiHao = chePaiHao;
    }
    public String getPinPai() {
        return pinPai;
    }
    public void setPinpai(String pinpai) {
        this.pinPai = pinpai;
    }
    public int getRiZuJin() {
        return riZuJin;
    }
    public void setRiZuJin(int riZuJin) {
        this.riZuJin = riZuJin;
    }
    
    
    
    //计算租金  抽象方法
    public abstract float JiSuanZuJin(int days);
}

package com.zuchexitong;
//轿车类
public class Car extends QiCheLei {
    //    型号
    private String xingHao;
    
    public String getXingHao() {
        return xingHao;
    }
    
    public void setXingHao(String xingHao) {
        this.xingHao = xingHao;
    }
    
    public Car() {}
    
    public Car(String chePaiHao,String pinPai,int riZuJin,String xingHao) {
        super(chePaiHao,pinPai,riZuJin);
        this.xingHao = xingHao;
        
    }
    public float JiSuanZuJin(int days) {
        float price = this.getRiZuJin()*days;
        if(days>7 && days<=30) {
            price *= 0.9f;
        }else if(days>30 && days<=150) {
            price *=0.8f;
        }else if(days>150) {
            price *= 0.7f;
        }
        return price;
    }
}


package com.zuchexitong;
//客车类
public class Bus extends QiCheLei {
    //    座位上
    private int zuoWeiShu;
    
    public int getZuoWeiShu() {
        return zuoWeiShu;
    }
    public void setZuoWeiShu(int zuoWeiShu) {
        this.zuoWeiShu = zuoWeiShu;
    }
    
    public Bus() {}
    
    public Bus(String chePaiHao,String pinPai,int riZuJin,int zuoWeiShu) {
        super(chePaiHao,pinPai,riZuJin);
        this.zuoWeiShu = zuoWeiShu;
        
    }
    
    //重写父类的计算租金方法,根据自己租车天数计算租金
    public float JiSuanZuJin(int days) {
        float price = this.getRiZuJin()*days;
        if(days>=3 && days<=7) {
            price *= 0.9f;
        }else if(days>=7 && days<=30) {
            price *=0.8f;
        }else if(days>=30 && days<150) {
            price *= 0.7f;
        }else if(days>=150) {
            price *= 0.6f;
        }
        return price;
    }
}


package com.yewu;

import com.zuchexitong.Bus;
import com.zuchexitong.Car;
import com.zuchexitong.QiCheLei;

//汽车业务类
public class YeWuLei {
    //汽车类型的数组,该数组声明为父类类型
    public QiCheLei[] qiChes = new QiCheLei[8];
    //初始化汽车信息
    public void init() {
        qiChes[0] = new Car("京B45454","宝马",800,"X6");
        qiChes[1] = new Car("京L21254","宝马",600,"550i");
        qiChes[2] = new Car("京N32454","别克",300,"林萌大道");
        qiChes[3] = new Car("京R45234","别克",600,"X6");
        qiChes[4] = new Bus("京N33314","金杯",800,16);
        qiChes[5] = new Bus("京F32222","金杯",1500,36);
        qiChes[6] = new Bus("京N55554","金龙",800,16);
        qiChes[7] = new Bus("京N56666","金龙",1500,36);
    }
    
    //租车 :根据用户提供的条件去汽车数组中查找相应的车类并返回
    //如果租赁的是客车  条件是:品牌  座位数  -- 型号null
    //如果是客车   条件是:品牌 型号    --座位数0
    public QiCheLei zuChe(String pinPai,String xingHao,int zuoWeiShu) {
        QiCheLei qiChe = null;
        for(QiCheLei myQiChe:qiChes) {
            if(myQiChe instanceof Car) {
                Car car = (Car)myQiChe;
                if(car.getPinPai().equals(pinPai) && car.getXingHao().equals(xingHao)) {
                    qiChe = car;
                    break;
                }
            }else {
                Bus bus = (Bus)myQiChe;
                if(bus.getPinPai().equals(pinPai) && bus.getZuoWeiShu()==zuoWeiShu) {
                    qiChe = bus;
                    break;
                }
            }
            
        }
        return qiChe;
        
    }
}

package com.yewu;
//汽车租赁管理类  测试类
import java.util.Scanner;

import com.zuchexitong.QiCheLei;
public final class Sest {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        YeWuLei che = new YeWuLei();
        //租赁公司首先需要购置汽车
        che.init();
        System.out.println("**************欢迎光临租赁公司*****************");
        
        System.out.println("1、轿车	2客车");
        System.out.println("请选汽车类型");
        int type = input.nextInt();
        //客户租车条件
        String pinPai ="";//品牌
        String xingHao ="";//型号
        int zuoWeiShu = 0;//座位数
        //收集用户条件
        if(type == 1) {
            //租赁轿车
            System.out.println("请选择您要租的轿车品牌:1、别克 2宝马");
            int choose = input.nextInt();
            if(choose == 1) {
                pinPai = "别克";
                System.out.println("请选择汽车型号:1、林萌大道 2、GL8");
                xingHao = (input.nextInt() == 1)?"林萌大道":"GL8";
            }else if(choose == 2) {
                pinPai = "宝马";
                System.out.println("请选择汽车型号:1、X6 2、550i");
                xingHao = (input.nextInt() == 1)?"X6":"550i";
            }
        }else if(type == 2) {
            //租赁客车
            xingHao = "";
            System.out.println("请选汽车品牌:1、金杯 2、金龙");
            pinPai = (input.nextInt() == 1)?"金杯":"金龙";
            System.out.println("请选择您要组的客车座位数:1、16 2、36");
            zuoWeiShu = (input.nextInt() == 1)?16:36;
        }
        //租车
        QiCheLei myChe = che.zuChe(pinPai, xingHao, zuoWeiShu);
        System.out.println("请输入您租赁的天数:");
        int days = input.nextInt();
        float money = myChe.JiSuanZuJin(days);
        System.out.println("租车成功,按照如下车牌取车:"+myChe.getChePaiHao());
        System.out.println("您需要支付:"+money+"");
    }
}

原文地址:https://www.cnblogs.com/zxbaoer/p/10383605.html