用c++写一个停车场管理系统
时间: 2023-07-27 14:05:54 浏览: 129
好的,以下是一个简单的停车场管理系统的C++代码,希望能帮到您:
```cpp
#include <iostream>
#include <string>
#include <vector>
using namespace std;
struct Car {
string licensePlate; // 车牌号
int parkTime; // 停车时间
};
class ParkingLot {
private:
vector<Car> cars; // 存储所有车辆信息
int totalSpaces; // 停车场总共的停车位数量
int availableSpaces; // 停车场当前可用的停车位数量
public:
ParkingLot(int totalSpaces) {
this->totalSpaces = totalSpaces;
this->availableSpaces = totalSpaces;
}
// 进入停车场,添加一辆车
void enter(string licensePlate, int parkTime) {
if (availableSpaces > 0) {
Car car;
car.licensePlate = licensePlate;
car.parkTime = parkTime;
cars.push_back(car);
availableSpaces--;
cout << "车辆 " << licensePlate << " 进入停车场,停车时间为 " << parkTime << " 分钟" << endl;
} else {
cout << "停车场已满,无法进入!" << endl;
}
}
// 离开停车场,删除一辆车
void leave(string licensePlate, int leaveTime) {
for (int i = 0; i < cars.size(); i++) {
if (cars[i].licensePlate == licensePlate) {
int parkTime = leaveTime - cars[i].parkTime;
int fee = calculateFee(parkTime);
cars.erase(cars.begin() + i);
availableSpaces++;
cout << "车辆 " << licensePlate << " 离开停车场,停车时间为 " << parkTime << " 分钟,停车费用为 " << fee << " 元" << endl;
return;
}
}
cout << "未找到车辆 " << licensePlate << " 的信息!" << endl;
}
// 计算停车费用
int calculateFee(int parkTime) {
int fee = 0;
if (parkTime <= 60) {
fee = 5;
} else {
fee = 5 + (parkTime - 60) / 30 * 2;
}
return fee;
}
// 获取当前停车场可用的停车位数量
int getAvailableSpaces() {
return availableSpaces;
}
};
int main() {
ParkingLot parkingLot(10); // 初始化一个停车场,总共有10个停车位
parkingLot.enter("粤B12345", 30);
parkingLot.enter("粤C54321", 60);
parkingLot.leave("粤B12345", 120);
parkingLot.enter("粤D67890", 90);
cout << "当前停车场可用停车位数量为:" << parkingLot.getAvailableSpaces() << endl;
return 0;
}
```
代码中定义了一个`Car`结构体,用于存储车辆的信息(车牌号和停车时间),以及一个`ParkingLot`类,用于实现停车场的管理功能。
停车场的管理功能包括车辆进入停车场、离开停车场、计算停车费用、获取当前停车场可用的停车位数量等功能。具体实现细节请见代码注释。
以上代码仅为示例代码,实际开发中还需要考虑更多的细节问题,例如停车场的容量如何扩展、车辆信息如何存储、停车费用如何结算等。
阅读全文