Java实现简单租车系统攻略
1.需求分析
租车系统需要考虑的功能有:
- 汽车种类和数量的分类管理
- 用户租车和归还车辆的操作
- 计算租车费用
根据以上需求,我们需要有以下的类:
- Car:汽车类,用于描述汽车对象的基本属性,如品牌、型号、日租金等。
- CarRentSystem:租车系统类,用于管理汽车的分类、添加、删除和租用操作等。
- User:用户类,用于描述租车人信息。
- RentRecord:租车记录类,用于描述一次租用的车辆信息,包括所租车辆的数量、租用时间、归还时间和总共费用等。
2.类的设计和实现
2.1 Car类
Car类是汽车类,用于描述汽车对象的基本属性,如品牌、型号、日租金等。在Java中,我们可以用以下代码来实现:
public class Car {
private String brand; //汽车品牌
private String model; //汽车型号
private double rentPerDay; //每日租金
private int stock; //汽车库存
public Car(String brand, String model, double rentPerDay, int stock) {
this.brand = brand;
this.model = model;
this.rentPerDay = rentPerDay;
this.stock = stock;
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model;
}
public double getRentPerDay() {
return rentPerDay;
}
public void setRentPerDay(double rentPerDay) {
this.rentPerDay = rentPerDay;
}
public int getStock() {
return stock;
}
public void setStock(int stock) {
this.stock = stock;
}
}
2.2 CarRentSystem类
CarRentSystem类是租车系统类,用于管理汽车的分类、添加、删除和租用操作等。在Java中,我们可以用以下代码来实现:
public class CarRentSystem {
private String name; //系统名称
private List<Car> cars; //汽车列表
public CarRentSystem(String name, List<Car> cars) {
this.name = name;
this.cars = cars;
}
public void addCar(Car car) {
cars.add(car);
}
public void removeCar(Car car) {
cars.remove(car);
}
public List<Car> getCars() {
return cars;
}
public void rent(User user, Car car, int days) {
if (car.getStock() <= 0) {
System.out.println(car.getBrand() + car.getModel() + "暂无库存!");
} else {
RentRecord rentRecord = new RentRecord();
rentRecord.setUser(user);
rentRecord.setCar(car);
rentRecord.setDays(days);
rentRecord.setRentedDate(new Date());
car.setStock(car.getStock() - 1);
System.out.println("租车信息:" + user.getName() + "租用了" + days + "天" +
car.getBrand() + car.getModel() + ",租金为:" + rentRecord.getTotalCost());
}
}
public void returnCar(RentRecord rentRecord) {
rentRecord.getCar().setStock(rentRecord.getCar().getStock() + 1);
rentRecord.setReturnDate(new Date());
System.out.println("租车信息:" + rentRecord.getUser().getName() + "归还了" +
rentRecord.getDays() + "天" + rentRecord.getCar().getBrand() + rentRecord.getCar().getModel() +
",应付款为:" + rentRecord.getTotalCost() + "元");
}
}
2.3 User类
User类是用户类,用于描述租车人信息。在Java中,我们可以用以下代码来实现:
public class User {
private String name; //用户姓名
private String email; //用户邮箱
public User(String name, String email) {
this.name = name;
this.email = email;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
2.4 RentRecord类
RentRecord类是租车记录类,用于描述一次租用的车辆信息,包括所租车辆的数量、租用时间、归还时间和总共费用等。在Java中,我们可以用以下代码来实现:
public class RentRecord {
private User user; //租车人
private Car car; //租用车辆
private int days; //租用天数
private Date rentedDate; //租用日期
private Date returnDate; //归还日期
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public Car getCar() {
return car;
}
public void setCar(Car car) {
this.car = car;
}
public int getDays() {
return days;
}
public void setDays(int days) {
this.days = days;
}
public Date getRentedDate() {
return rentedDate;
}
public void setRentedDate(Date rentedDate) {
this.rentedDate = rentedDate;
}
public Date getReturnDate() {
return returnDate;
}
public void setReturnDate(Date returnDate) {
this.returnDate = returnDate;
}
public double getTotalCost() {
return car.getRentPerDay() * days;
}
}
3. 应用场景示例
3.1 租用汽车
假设用户“张三”要租用一辆“奔驰S600”,租用4天,如下代码实现:
//汽车分类
List<Car> cars = new ArrayList<>();
CarRentSystem carRentSystem = new CarRentSystem("租车系统", cars);
//添加汽车
Car car = new Car("奔驰", "S600", 800.0, 1);
carRentSystem.addCar(car);
//租用汽车
User user = new User("张三", "zhangsan@qq.com");
carRentSystem.rent(user, car, 4);
输出结果:
租车信息:张三租用了4天奔驰S600,租金为:3200.0
3.2 归还汽车
假设用户“张三”租用了一辆“奔驰S600”,租用4天,现在要归还车辆,如下代码实现:
//汽车分类
List<Car> cars = new ArrayList<>();
CarRentSystem carRentSystem = new CarRentSystem("租车系统", cars);
//添加汽车
Car car = new Car("奔驰", "S600", 800.0, 1);
carRentSystem.addCar(car);
//租用汽车
User user = new User("张三", "zhangsan@qq.com");
RentRecord rentRecord = new RentRecord();
rentRecord.setUser(user);
rentRecord.setCar(car);
rentRecord.setDays(4);
rentRecord.setRentedDate(new Date());
car.setStock(car.getStock() - 1);
//归还汽车
carRentSystem.returnCar(rentRecord);
输出结果:
租车信息:张三归还了4天奔驰S600,应付款为:3200.0元
4. 总结
本文介绍了Java实现简单租车系统的攻略,通过分析需求,设计了包括Car、CarRentSystem、User、RentRecord四个类,实现了汽车的管理、添加、删除和租用操作等功能。在应用场景示例中,我们展示了两个常见的业务操作,即租用汽车和归还汽车。同理,我们还可以扩展其他功能,如查询和预订汽车等,以满足更多的实际需求。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java实现简单租车系统 - Python技术站