写一个停车管理收费系统
时间: 2024-05-27 15:11:49 浏览: 139
以下是一个停车管理收费系统的伪代码:
//定义停车场类
class ParkingLot {
private:
int totalSpots; //总停车位数
int availableSpots; //可用的停车位数
int occupiedSpots; //已占用的停车位数
float hourlyRate; //每小时的费率
map<string, int> parkedVehicles; //记录已停车辆的车牌号和停车时间
public:
//构造函数
ParkingLot(int totalSpots, float hourlyRate) {
this->totalSpots = totalSpots;
this->availableSpots = totalSpots;
this->occupiedSpots = 0;
this->hourlyRate = hourlyRate;
}
//车辆进入停车场
bool enterParkingLot(string licensePlate) {
if (availableSpots > 0) {
parkedVehicles[licensePlate] = time(nullptr); //记录停车时间
availableSpots--;
occupiedSpots++;
return true;
} else {
return false;
}
}
//车辆离开停车场,计算费用
float exitParkingLot(string licensePlate) {
if (parkedVehicles.find(licensePlate) != parkedVehicles.end()) { //检查是否停过车
float hoursParked = difftime(time(nullptr), parkedVehicles[licensePlate]) / 3600.0; //计算停车时间
float cost = hoursParked * hourlyRate; //计算停车费用
parkedVehicles.erase(licensePlate); //从记录中删除该车辆
availableSpots++;
occupiedSpots--;
return cost;
} else {
return -1; //表示该车辆没有停过车
}
}
//获取停车场状态
void getParkingLotStatus() {
cout << "停车场总共有" << totalSpots << "个停车位,其中" << availableSpots << "个可用," << occupiedSpots << "个已占用。" << endl;
}
};
//示例使用
int main() {
ParkingLot p(50, 5.0); //创建一个总共有50个停车位,每小时5元的停车场对象
p.enterParkingLot("京A12345"); //车辆进入停车场
p.enterParkingLot("京B67890");
p.getParkingLotStatus(); //获取停车场状态
cout << "车辆京A12345停车费用:" << p.exitParkingLot("京A12345") << "元" << endl; //车辆离开停车场,计算费用
p.getParkingLotStatus(); //获取停车场状态
return 0;
}
阅读全文