Java-数组完成租车系统案例

Java-数组完成租车系统案例

要求:实现租车的种类选择,租车的天数,折扣租赁的费用计算,分配汽车的牌号。

创建汽车类:

public class Automobile {
    private String plate;//车牌
    private String brand;//品牌
    private int rent;//租金

    public Automobile(String plate, String brand, int rent) {
        this.plate = plate;
        this.brand = brand;
        this.rent = rent;
    }

    public String getPlate() {
        return plate;
    }

    public void setPlate(String plate) {
        this.plate = plate;
    }

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public int getRent() {
        return rent;
    }

    public void setRent(int rent) {
        this.rent = rent;
    }
}

创建轿车类:

public class Car extends Automobile {
    private String model;//型号

    public Car(String plate, String brand, int rent, String model) {
        super(plate, brand, rent);
        this.model = model;
    }


    public String getModel() {
        return model;
    }

    public void setModel(String model) {
        this.model = model;
    }
}

创建客车类:

public class Bus extends Automobile {
    private String seatNumber;//座位数

    public Bus(String plate, String brand, int rent, String seatNumber) {
        super(plate, brand, rent);
        this.seatNumber = seatNumber;
    }

    public String getSeatNumber() {
        return seatNumber;
    }

    public void setSeatNumber(String seatNumber) {
        this.seatNumber = seatNumber;
    }
}

汽车租赁管理类:

public class AutomobileManage {
    /*初始化轿车*/
    public Car[] initCar(){
        Car car1 = new Car("京NY28588","宝马",800,"X6");
        Car car2 = new Car("京CNY3282","宝马",600,"550i");
        Car car3 = new Car("京NT37465","别克",300,"绿荫大道");
        Car car4 = new Car("京NT96968","别克",600,"GL8");

        Car[] cars={car1,car2,car3,car4};

        return cars;
    }
    /*初始化客车*/
    public Bus[] initBus(){
        Bus bus1 = new Bus("京5673432","金杯",800,"16");
        Bus bus2 = new Bus("京NY28555","金龙",800,"16");
        Bus bus3 = new Bus("京NY23274","金杯",1500,"34");
        Bus bus4 = new Bus("京NY28573","金龙",1500,"34");

        Bus[] buses={bus1,bus2,bus3,bus4};

        return buses;
    }
}

汽车业务类:

public class AutomobileService {
    /*租车服务入口*/
    public void rentService(){
        System.out.println("**********欢迎来到秋名山租车系统************");

        Scanner scanner = new Scanner(System.in);
        System.out.print("请选择你要租的汽车类型:1.轿车,2.客车:");
        int type = scanner.nextInt();
        AutomobileManage automobileManage = new AutomobileManage();
        String brand;/*车的牌号*/
        int day;/*租车的天数*/
        if(type==1){
            Car[] cars = automobileManage.initCar();

            System.out.print("请选择你要租凭的汽车品牌:别克,宝马:");
            brand = scanner.next();
            String model;//车的型号

            if(brand.equals("宝马")){
                System.out.print("请选择你要租赁的汽车型号:X6,550i:");
                model = scanner.next();
                /*调用选择汽车的方法*/
                Car car = carChooesService(cars, brand, model);

                System.out.print("请输入您要租赁的天数:");
                day = scanner.nextInt();
                /*调用轿车的算钱方法*/
                carRantService(car,day);
            }else{
                System.out.print("请选择你要租赁的汽车型号:林荫大道,GL8:");
                model = scanner.next();
                Car car = carChooesService(cars, brand, model);
                System.out.print("请输入您要租赁的天数:");
                day = scanner.nextInt();
                carRantService(car,day);
            }
        }else{
            /*得到客车数组*/
            Bus[] buses = automobileManage.initBus();
            System.out.print("请选择你要租凭的汽车品牌:金龙,金杯:");
            brand = scanner.next();
            System.out.print("请选择你要租赁的汽车座位数:16,34:");
            String seatNumber=scanner.next();
            /*调用选择客车的方法*/
            Bus bus = busChooesService(buses, brand, seatNumber);
            System.out.print("请输入您要租赁的天数:");
            day = scanner.nextInt();
            /*调用计算客车租金的方法*/
            busRantService(bus,day);
        }
    }

    /*选择汽车服务服务*/
    public Car carChooesService(Car[] cars,String brand,String model){
        for (int i = 0; i < cars.length; i++) {
            if(brand.equals(cars[i].getBrand()) &&   model.equals(cars[i].getModel())){
                return cars[i];
            }
        }
        return null;
    }
    /*选择客车服务服务*/
    public Bus busChooesService(Bus[] buses,String brand,String seatNumber){
        for (int i = 0; i < buses.length; i++) {
            if(brand.equals(buses[i].getBrand()) &&  seatNumber.equals(buses[i].getSeatNumber())){
                return buses[i];
            }
        }
        return null;
    }

    /*计算轿车租金*/
    public void carRantService(Car car,int day){
        System.out.println("分配你的汽车牌号是:"+car.getPlate());
        if(day>150){
            System.out.println("您需要支付的租赁费用是:"+car.getRent() * day * 0.7+"元");
        }else if(day>30){
            System.out.println("您需要支付的租赁费用是:"+car.getRent() * day * 0.8+"元");
        }else if(day>7){
            System.out.println("您需要支付的租赁费用是:"+car.getRent() * day * 0.9+"元");
        }else{
            System.out.println("您需要支付的租赁费用是:"+car.getRent() * day+"元");
        }
    }
    /*计算客车租金*/
    public void busRantService(Bus bus,int day){
        System.out.println("分配你的汽车牌号是:"+bus.getPlate());
        if(day>=150){
            System.out.println("您需要支付的租赁费用是:"+bus.getRent() * day * 0.6+"元");
        }else if(day>=30){
            System.out.println("您需要支付的租赁费用是:"+bus.getRent() * day * 0.7+"元");
        }else if(day>=7){
            System.out.println("您需要支付的租赁费用是:"+bus.getRent() * day * 0.8+"元");
        }else if(day>=3){
            System.out.println("您需要支付的租赁费用是:"+bus.getRent() * day * 0.9+"元");
        }else{
            System.out.println("您需要支付的租赁费用是:"+bus.getRent() * day+"元");
        }
    }
}

测试类:

public class Test {
    public static void main(String[] args) {
        AutomobileService automobileService = new AutomobileService();
        automobileService.rentService();
    }
}

实现效果展示

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

记或往

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值