简单汽车租赁管理软件设计 设计实现一个简单的汽车租赁管理系统。 要求: ① 车辆基本信息管理(车辆的添加、删除、修改); ② 租车管理功能(租车、换车、计费等); ③ 统计功能(统计出租率、出租费用)。 要求包括文件的创建读取 用C++代码实现
时间: 2024-03-16 12:41:47 浏览: 179
500行单文件学生信息管理系统,c++实现+文件读写+单链表+排序,可直接运行 应付课程设计绝对没问题
5星 · 资源好评率100%
以下是一个简单的汽车租赁管理系统的设计和实现,使用C++语言进行编写:
1. 车辆基本信息管理
车辆信息包括车牌号、品牌、型号、颜色、日租金等。我们可以使用一个结构体来存储这些信息,示例如下:
```c++
struct Car {
string licensePlate; // 车牌号
string brand; // 品牌
string model; // 型号
string color; // 颜色
double dailyRent; // 日租金
};
```
我们可以使用一个vector来存储所有车辆的信息,使用文件来保存和读取这些信息。
添加车辆的实现如下:
```c++
void addCar(vector<Car>& cars) {
Car car;
cout << "请输入车牌号:";
cin >> car.licensePlate;
cout << "请输入品牌:";
cin >> car.brand;
cout << "请输入型号:";
cin >> car.model;
cout << "请输入颜色:";
cin >> car.color;
cout << "请输入日租金:";
cin >> car.dailyRent;
cars.push_back(car);
}
```
删除车辆的实现如下:
```c++
void deleteCar(vector<Car>& cars) {
string licensePlate;
cout << "请输入要删除的车牌号:";
cin >> licensePlate;
for (auto iter = cars.begin(); iter != cars.end(); iter++) {
if (iter->licensePlate == licensePlate) {
cars.erase(iter);
cout << "删除成功!" << endl;
return;
}
}
cout << "未找到该车辆!" << endl;
}
```
修改车辆的实现如下:
```c++
void modifyCar(vector<Car>& cars) {
string licensePlate;
cout << "请输入要修改的车牌号:";
cin >> licensePlate;
for (auto& car : cars) {
if (car.licensePlate == licensePlate) {
cout << "请输入新的品牌:";
cin >> car.brand;
cout << "请输入新的型号:";
cin >> car.model;
cout << "请输入新的颜色:";
cin >> car.color;
cout << "请输入新的日租金:";
cin >> car.dailyRent;
cout << "修改成功!" << endl;
return;
}
}
cout << "未找到该车辆!" << endl;
}
```
2. 租车管理功能
租车需要记录租车人的信息、租车时间、租车天数等信息,我们可以使用一个结构体来存储这些信息,示例如下:
```c++
struct RentRecord {
string licensePlate; // 车牌号
string name; // 租车人姓名
string phone; // 租车人电话
int days; // 租车天数
double totalPrice; // 租车总价
time_t rentTime; // 租车时间
};
```
我们可以使用一个vector来存储所有租车记录的信息,使用文件来保存和读取这些信息。
租车的实现如下:
```c++
void rentCar(vector<Car>& cars, vector<RentRecord>& records) {
string licensePlate;
cout << "请输入要租的车牌号:";
cin >> licensePlate;
for (auto& car : cars) {
if (car.licensePlate == licensePlate) {
RentRecord record;
cout << "请输入您的姓名:";
cin >> record.name;
cout << "请输入您的电话:";
cin >> record.phone;
cout << "请输入租车天数:";
cin >> record.days;
record.licensePlate = car.licensePlate;
record.totalPrice = record.days * car.dailyRent;
record.rentTime = time(nullptr);
records.push_back(record);
cout << "租车成功!" << endl;
return;
}
}
cout << "未找到该车辆!" << endl;
}
```
换车的实现类似于租车,只需要先将原来的租车记录标记为已归还,再新建一条租车记录即可。
计费的实现可以根据租车记录中的租车天数和车辆的日租金来计算,示例如下:
```c++
void calculatePrice(vector<Car>& cars, vector<RentRecord>& records) {
double totalRent = 0;
for (auto& record : records) {
if (record.rentTime != 0) {
int days = (time(nullptr) - record.rentTime) / (24 * 60 * 60);
if (days > record.days) {
record.totalPrice += (days - record.days) * cars[record.licensePlate].dailyRent;
record.days = days;
}
}
totalRent += record.totalPrice;
}
cout << "总租金为:" << totalRent << endl;
}
```
3. 统计功能
统计出租率可以根据已租车辆数和总车辆数来计算,示例如下:
```c++
void calculateRentRate(vector<Car>& cars, vector<RentRecord>& records) {
int rented = 0;
for (auto& record : records) {
if (record.rentTime != 0) {
rented++;
}
}
cout << "出租率为:" << (double)rented / cars.size() << endl;
}
```
统计出租费用可以直接遍历所有租车记录并累加总租金即可,见上面的计费实现。
完整代码如下:
阅读全文