请用c++编写停车场管理程序,用于停车场对车辆的管理。程序能够实现可用 车位统计与查询、零车位提示、停车时长统计、按车型和时长收费、管理员收费累计等功能。 设计要求及提示如下:编写停车场收费管理系统,定义汽车类 Car 和管理员类 CarManager,Car 类有 number(车牌号),model(车型)、enterTime(入场时间)、 quitTime(出场时间)、price(每小时收费价)、cost(费用)等属性, CarManager 类有 id 和 key 等,实现以下收费功能:⑴可用车位统计与查询;⑵零车位提示;⑶停车时长统计;⑷按车型时长收费; ⑸ 管理员收费累计
时间: 2024-03-20 19:42:13 浏览: 171
好的,我可以为您解答这个问题。以下是一个基本的停车场管理程序的示例代码,其中包含了 Car 和 CarManager 类的定义及其实现。
```
#include <iostream>
#include <string>
#include <vector>
#include <ctime>
using namespace std;
class Car {
public:
string number; // 车牌号
string model; // 车型
time_t enterTime; // 入场时间
time_t quitTime; // 出场时间
double price; // 每小时收费价
double cost; // 费用
Car() {}
Car(string num, string mod, double p) {
number = num;
model = mod;
price = p;
enterTime = time(nullptr);
}
double getTime() {
return difftime(quitTime, enterTime) / 3600;
}
double getCost() {
return getTime() * price;
}
};
class CarManager {
public:
string id; // 账号
string key; // 密码
double total; // 管理员收费累计
CarManager() {}
CarManager(string i, string k) {
id = i;
key = k;
total = 0;
}
bool login(string i, string k) {
return id == i && key == k;
}
void charge(Car& car) {
car.cost = car.getCost();
total += car.cost;
}
};
class Parking {
public:
int capacity; // 停车场总容量
vector<Car> cars; // 停车场车辆列表
Parking(int cap) {
capacity = cap;
}
int getAvailable() {
return capacity - cars.size();
}
void addCar(Car car) {
cars.push_back(car);
}
void removeCar(Car car) {
for (auto it = cars.begin(); it != cars.end(); it++) {
if (it->number == car.number) {
cars.erase(it);
break;
}
}
}
void showCars() {
cout << "停车场车辆列表:" << endl;
for (auto car : cars) {
cout << car.number << " " << car.model << " " << car.getTime() << "h " << car.cost << "元" << endl;
}
}
};
int main() {
Parking parking(20);
CarManager manager("admin", "123456");
while (true) {
cout << "请输入车牌号:";
string number;
cin >> number;
if (number == "0") {
break;
}
if (parking.getAvailable() == 0) {
cout << "车位已满,请去其他停车场停车!" << endl;
continue;
}
cout << "请输入车型:";
string model;
cin >> model;
cout << "请输入每小时收费价:";
double price;
cin >> price;
Car car(number, model, price);
parking.addCar(car);
cout << "停车成功!" << endl;
}
parking.showCars();
if (parking.cars.size() == 0) {
cout << "停车场目前没有车辆!" << endl;
return 0;
}
cout << "请输入管理员账号:";
string id;
cin >> id;
cout << "请输入管理员密码:";
string key;
cin >> key;
if (!manager.login(id, key)) {
cout << "管理员账号或密码错误!" << endl;
return 0;
}
for (auto car : parking.cars) {
cout << "请输入车辆 " << car.number << " 的出场时间:";
cin >> car.quitTime;
manager.charge(car);
cout << "车辆 " << car.number << " 应缴费用:" << car.cost << "元" << endl;
}
cout << "管理员 " << manager.id << " 共收费:" << manager.total << "元" << endl;
return 0;
}
```
这段代码实现了一个简单的停车场管理程序,包含可用车位统计与查询、零车位提示、停车时长统计、按车型和时长收费、管理员收费累计等功能。其中 Car 类表示车辆信息,CarManager 类表示管理员信息,Parking 类表示停车场信息。程序通过用户输入车辆信息并将其添加到停车场车辆列表中,等待管理员输入出场时间后计算停车费用并累计管理员收费累计。
阅读全文