按照临时车位:30分钟内免费停车;超过30分钟则按照每小时1.5元收费(停车30分钟以上,不足1小时按1小时收费)固定车位:一月150元原则实现停车场计费c++代码
时间: 2024-12-02 20:14:03 浏览: 80
智能停车收费系统数据流程图和数据字典
在C++中,我们可以使用条件判断和时间计算来实现这种计费逻辑。这里是一个简单的示例代码,假设我们有一个结构体表示车辆信息,包括停车开始时间和是否是临时车位:
```cpp
#include <iostream>
#include <chrono> // 引入用于处理时间的库
struct VehicleInfo {
std::time_t startTime; // 开始停车的时间戳
bool isTemporary; // 是否为临时车位
};
// 计算费用
double calculateParkingFee(const VehicleInfo& vehicle) {
auto now = std::chrono::system_clock::now(); // 获取当前时间
auto elapsed_minutes = std::chrono::duration_cast<std::chrono::minutes>(now - vehicle.startTime).count();
double fee = 0.0;
if (vehicle.isTemporary) { // 临时车位
if (elapsed_minutes <= 30) { // 30分钟内免费
fee = 0.0;
} else { // 超过30分钟
int hours = elapsed_minutes / 60; // 小数部分四舍五入为整数小时
fee = hours * 1.5; // 每小时1.5元
if (hours > 1 && elapsed_minutes % 60 != 0) { // 若不足1小时,则补1小时费用
fee += 1.5;
}
}
} else { // 固定车位
fee = 150.0; // 一个月150元
}
return fee;
}
int main() {
VehicleInfo myCar{std::chrono::system_clock::to_time_t(std::chrono::system_clock::now()), true}; // 示例临时车位
std::cout << "临时车位费用:" << calculateParkingFee(myCar) << "元" << std::endl;
VehicleInfo myCarFixed{std::chrono::system_clock::to_time_t(std::chrono::system_clock::now()), false}; // 示例固定车位
std::cout << "固定车位费用:" << calculateParkingFee(myCarFixed) << "元" << std::endl;
return 0;
}
```
注意,这是一个简化版的代码,实际应用中可能还需要处理日期和货币格式化等问题。同时,这个代码没有包含输入验证以及用户交互,如果要在实际环境中使用,可能需要添加UI界面接收用户输入和显示结果。
阅读全文