Java实现简单汽车租赁系统的完整攻略
系统需求分析
该汽车租赁系统应该具备以下功能:
-
显示当前的租赁车辆列表
-
租客可以查询所需汽车类型的库存量
-
租客可以租车,并计算租车天数、费用等信息
-
车辆归还,更新库存
系统设计
类的设计-属性和方法
Car(汽车类)
属性:
-
carType:汽车类型
-
carId:汽车编号
-
carPrice:汽车租金(元/天)
-
isRented:是否已被租赁
方法:
-
showCar():展示汽车信息
-
getIsRented(): 获取汽车是否已被租赁状态
-
setIsRented(): 设置汽车是否已被租赁状态
Customer(租户类)
属性:
-
cusId:租户编号
-
cusName:租户姓名
-
rentedCar:所租汽车
-
rentDays:租车天数
-
rentFee:租车费用
方法:
-
showRentInfo():展示租车信息
-
rentCar():租车
-
returnCar():还车
流程
初始化
-
创建两个集合,分别存储汽车和租户
-
创建Car和Customer实例,并添加到集合中(模拟汽车和租户库存信息)
展示租赁信息
-
遍历汽车集合,展示所有可租赁的汽车信息
-
类似的,展示租户信息
租车
-
根据租户输入查询车辆库存
-
如果车辆库存不足,则提示租户,否则进入下一步
-
获取租车天数,计算租车费用
-
将租车的租户信息存入租户集合中,并将车辆状态更改为“已租赁”
还车
-
根据租户编号和汽车编号查询租户和车辆信息
-
计算租车费用,更新租户信息(金额、租车天数等),更新汽车状态为“未租赁”
代码实现
以下是Java实现的汽车租赁系统示例:
import java.util.ArrayList;
import java.util.Scanner;
class Car {
private String carType;
private int carId;
private double carPrice;
private boolean isRented;
// 构造方法
public Car(String carType, int carId, double carPrice, boolean isRented) {
this.carType = carType;
this.carId = carId;
this.carPrice = carPrice;
this.isRented = isRented;
}
public void showCar() {
System.out.println("车型:" + this.carType);
System.out.println("编号:" + this.carId);
System.out.println("价格:" + this.carPrice + "元/天");
System.out.println("状态:" + (this.isRented ? "已租赁" : "未租赁"));
}
public boolean getIsRented() {
return isRented;
}
public void setIsRented(boolean isRented) {
this.isRented = isRented;
}
}
class Customer {
private int cusId;
private String cusName;
private Car rentedCar;
private int rentDays;
private double rentFee;
public Customer(int cusId, String cusName) {
this.cusId = cusId;
this.cusName = cusName;
}
public void showRentInfo() {
System.out.println("客户编号:" + this.cusId);
System.out.println("客户姓名:" + this.cusName);
System.out.println("租用的汽车");
this.rentedCar.showCar();
System.out.println("租用日期:" + rentDays + "天");
System.out.println("租用费用:" + rentFee + "元");
}
public void rentCar(Car car, int days) {
if (car.getIsRented()) {
System.out.println("车辆 " + car.carId + " 已被租赁,请选择其他车辆。");
return;
}
this.rentedCar = car;
this.rentDays = days;
this.rentFee = car.carPrice * days;
car.setIsRented(true);
System.out.println("客户编号:" + cusId);
System.out.println("客户姓名:" + cusName);
System.out.println("租用的汽车");
this.rentedCar.showCar();
System.out.println("租用日期:" + this.rentDays + "天");
System.out.println("租用费用:" + this.rentFee + "元");
}
public void returnCar(int carId) {
if (this.rentedCar == null || this.rentedCar.carId != carId) {
System.out.println("客户 " + this.cusName + " 没有租用编号为 " + carId + " 的车辆。");
return;
}
this.rentedCar.setIsRented(false);
System.out.println("客户编号:" + cusId);
System.out.println("客户姓名:" + cusName);
System.out.println("租用的汽车");
this.rentedCar.showCar();
System.out.println("租用日期:" + this.rentDays + "天");
System.out.println("租用费用:" + this.rentFee + "元");
this.rentedCar = null;
this.rentDays = 0;
this.rentFee = 0;
}
}
public class CarRentalSystem {
public static void main(String[] args) {
ArrayList<Car> carList = new ArrayList<>();
ArrayList<Customer> customerList = new ArrayList<>();
carList.add(new Car("小轿车", 1, 100, false));
carList.add(new Car("面包车", 2, 150, true));
carList.add(new Car("越野车", 3, 200, false));
carList.add(new Car("商务车", 4, 250, false));
carList.add(new Car("大巴车", 5, 300, false));
customerList.add(new Customer(1, "张三"));
customerList.add(new Customer(2, "李四"));
customerList.add(new Customer(3, "王五"));
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("欢迎使用汽车租赁系统,请选择以下功能:");
System.out.println("1. 查看车辆信息");
System.out.println("2. 查看客户信息");
System.out.println("3. 租车");
System.out.println("4. 还车");
System.out.println("0. 退出系统");
int choice = sc.nextInt();
switch (choice) {
case 1:
for (Car car : carList) {
car.showCar();
}
break;
case 2:
for (Customer customer : customerList) {
customer.showRentInfo();
}
break;
case 3:
System.out.println("请输入客户编号:");
int id = sc.nextInt();
System.out.println("请输入租赁天数:");
int days = sc.nextInt();
System.out.println("请选择车辆类型(输入数字1-5):");
System.out.println("1. 小轿车");
System.out.println("2. 面包车");
System.out.println("3. 越野车");
System.out.println("4. 商务车");
System.out.println("5. 大巴车");
int carType = sc.nextInt();
for (Car car : carList) {
if (car.carType.equals("小轿车") && carType == 1) {
customerList.get(id - 1).rentCar(car, days);
break;
} else if (car.carType.equals("面包车") && carType == 2) {
customerList.get(id - 1).rentCar(car, days);
break;
} else if (car.carType.equals("越野车") && carType == 3) {
customerList.get(id - 1).rentCar(car, days);
break;
} else if (car.carType.equals("商务车") && carType == 4) {
customerList.get(id - 1).rentCar(car, days);
break;
} else if (car.carType.equals("大巴车") && carType == 5) {
customerList.get(id - 1).rentCar(car, days);
break;
}
}
break;
case 4:
System.out.println("请输入客户编号:");
id = sc.nextInt();
System.out.println("请输入车辆编号:");
int carId = sc.nextInt();
customerList.get(id - 1).returnCar(carId);
break;
case 0:
System.exit(0);
default:
System.out.println("输入错误,请重新输入。");
}
}
}
}
上述示例提供了展示租车信息、租车、还车等的实现,可以自行测试、优化。对于输入、输出等交互细节,可以根据实际需求进行适当调整。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java实现简单汽车租赁系统 - Python技术站