Java 6.24 OOP 租车案例

package Work02;

import java.util.ArrayList;
import java.util.Collections;
import java.util.InputMismatchException;
import java.util.Scanner;

public class Garage {
    private final Scanner input = new Scanner(System.in);
    private final ArrayList<MotoVechicle> allCars = new ArrayList<>();
    private final ArrayList<MotoVechicle> rentedCars = new ArrayList<>();

    // 静态代码块,初始化车辆信息
    {
        Car c1 = new Car("鄂A123456", "别克", 600, "商务舱GL8");
        Car c2 = new Car("鄂C763456", "宝马", 500, "GL8");
        Car c3 = new Car("鄂B123986", "别克", 300, "林荫大道");
        Bus b1 = new Bus("京B123986", "金杯", 800, 16);
        Bus b2 = new Bus("京D523986", "金杯", 1500, 26);
        Bus b3 = new Bus("京K123986", "金龙", 800, 16);
        Bus b4 = new Bus("京D923986", "金龙", 1500, 26);
        Collections.addAll(allCars, c1, c2, c3, b1, b2, b3, b4);
    }

    // 初始化界面
    public void init() {
        System.out.println("欢迎来到武汉鸿鹏汽车公司!");
        while (true) {
            System.out.println("请选择您需要的服务(1.租车)(2.还车)(3.退出):");
            int choose = input.nextInt();
            switch (choose) {
                case 1:
                    rentCar();
                    break;
                case 2:
                    System.out.println("欢迎来到汽车还车系统!");
                    returnCar();
                    break;
                case 3:
                    System.out.println("再见");
                    System.exit(0);
                default:
                    System.out.println("输入有误!");
            }
        }
    }

    // 租车方法
    public void rentCar() {
        System.out.println("欢迎来到汽车租赁系统!");
        System.out.println("请输入租车天数:");
        int days = input.nextInt();
        while (true) {
            System.out.println("以下是在库可租的车");
            showInfo();
            System.out.println("请输入心怡车的编号:");
            int choose = input.nextInt();
            if (choose >= 0 && choose < allCars.size()) {
                MotoVechicle chosenCar = allCars.get(choose);
                System.out.println("租车成功!租车信息:" + chosenCar.getCarNumber());
                rentedCars.add(chosenCar);
                allCars.remove(choose);
            } else {
                System.out.println("输入有误!租车失败");
            }
            System.out.println("是否继续租车?(y/n)");
            String yes = input.next();
            if (!yes.equalsIgnoreCase("y")) {
                break;
            }
        }
        int totalMoney = 0;
        for (MotoVechicle rentedCar : rentedCars) {
            totalMoney += rentedCar.getDayMoney() * days;
        }
        System.out.println("你需要支付:" + totalMoney + "元");
        init();
    }

    // 还车方法
    public void returnCar() {
        System.out.println("请输入需要还的车的车牌号:");
        String carNumber = input.next();
        MotoVechicle returnCar = null;
        for (MotoVechicle car : rentedCars) {
            if (car.getCarNumber().equals(carNumber)) {
                returnCar = car;
                break;
            }
        }
        if (returnCar != null) {
            System.out.println("归还成功!");
            rentedCars.remove(returnCar);
            allCars.add(returnCar);
        } else {
            System.out.println("车牌输入有误!");
        }
    }

    // 显示在库车辆信息
    public void showInfo() {
        int num = 0;
        for (MotoVechicle car : allCars) {
            if (car instanceof Car) {
                System.out.println("编号" + num + ". 车牌:" + car.getCarNumber() +
                        ", 品牌:" + car.getBrand() +
                        ", 租金:" + car.getDayMoney() +
                        ", 车型:" + ((Car) car).getType());
            } else {
                System.out.println("编号" + num + ". 车牌:" + car.getCarNumber() +
                        ", 品牌:" + car.getBrand() +
                        ", 租金:" + car.getDayMoney() +
                        ", 座位数:" + ((Bus) car).getSeatCount());
            }
            num++;
        }
    }
}
package Work02;

public class MotoVechicle {
    private String carNumber; // 车牌
    private String brand;  // 品牌
    private int dayMoney; // 日租金
    
    public MotoVechicle(String carNumber, String brand, int dayMoney) {
        this.carNumber = carNumber;
        this.brand = brand;
        this.dayMoney = dayMoney;
    }

    public String getCarNumber() {
        return carNumber;
    }

    public void setCarNumber(String carNumber) {
        this.carNumber = carNumber;
    }

    public String getBrand() {
        return brand;
    }

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

    public int getDayMoney() {
        return dayMoney;
    }

    public void setDayMoney(int dayMoney) {
        this.dayMoney = dayMoney;
    }
}


package Work02;

public class Car extends MotoVechicle {
    private String Type; // 型号

    public Car(String carNumber, String brand, int dayMoney, String type) {
        super(carNumber, brand, dayMoney);
        Type = type;
    }

    public String getType() {
        return Type;
    }

    public void setType(String type) {
        Type = type;
    }
}


package Work02;

public class Bus extends MotoVechicle {
    private int seatCount; // 座位数

    public Bus(String carNumber, String brand, int dayMoney, int seatCount) {
        super(carNumber, brand, dayMoney);
        this.seatCount = seatCount;
    }

    public int getSeatCount() {
        return seatCount;
    }

    public void setSeatCount(int seatCount) {
        this.seatCount = seatCount;
    }

}


package Work02.Text;

import Work02.Garage;


public class TextCar {
    public static void main(String[] args) {
        Garage g = new Garage();
        g.init();
    }
}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值