c++编写etc收费系统
时间: 2023-08-11 12:15:21 浏览: 113
实现一个基于 C++ 的 ETC 收费系统,可以分为以下几个步骤:
1. 确定系统需求和功能模块:ETC 收费系统可以包含车辆进出站、计算车辆费用、管理车辆信息等模块。
2. 设计数据结构和算法:可以使用队列和栈等数据结构来实现车辆进出站的记录和计算车辆费用。
3. 编写代码实现各个模块:根据需求和设计,编写代码实现各个功能模块。
4. 进行测试和调试:对各个模块进行测试和调试,确保系统正常运行。
下面是一个简单的 ETC 收费系统代码示例:
```c++
#include <iostream>
#include <stack>
#include <queue>
using namespace std;
class Car {
public:
string license; // 车牌号码
string type; // 车辆类型
int in_time; // 进站时间
int out_time; // 出站时间
};
class ETCSystem {
public:
void car_in(Car car); // 车辆进站
void car_out(Car car); // 车辆出站
void print_report(); // 打印报表
private:
stack<Car> in_cars; // 进站车辆
queue<Car> out_cars; // 出站车辆
};
void ETCSystem::car_in(Car car) {
in_cars.push(car);
}
void ETCSystem::car_out(Car car) {
Car in_car = in_cars.top(); // 获取进站车辆信息
in_cars.pop(); // 删除进站车辆信息
car.in_time = in_car.in_time; // 设置车辆进站时间
out_cars.push(car); // 添加车辆出站信息
}
void ETCSystem::print_report() {
int total_fee = 0; // 总收费
while (!out_cars.empty()) {
Car car = out_cars.front(); // 获取出站车辆信息
out_cars.pop(); // 删除出站车辆信息
int fee = 10; // 计算车辆费用
if (car.type == "truck") {
fee = 20;
}
int park_time = car.out_time - car.in_time;
fee = fee * (park_time / 60); // 每小时收费
total_fee += fee; // 累加收费
}
cout << "Total fee: " << total_fee << endl; // 打印总收费
}
int main() {
ETCSystem etc_system;
// 车辆进站
Car car1;
car1.license = "京A12345";
car1.type = "car";
car1.in_time = 100;
etc_system.car_in(car1);
Car car2;
car2.license = "京B67890";
car2.type = "truck";
car2.in_time = 200;
etc_system.car_in(car2);
// 车辆出站
Car car3;
car3.license = "京A12345";
car3.type = "car";
car3.out_time = 300;
etc_system.car_out(car3);
Car car4;
car4.license = "京B67890";
car4.type = "truck";
car4.out_time = 400;
etc_system.car_out(car4);
// 打印报表
etc_system.print_report();
return 0;
}
```
注意:以上示例代码仅为演示用途,实际应用中应根据需求进行调整和优化。
阅读全文