c语言模拟实现一个小型停车场管理系统,支持车辆驶入、车辆驶出、停车收费等功能。
时间: 2023-08-01 20:00:47 浏览: 109
基于C语言模拟停车场管理系统
停车场管理系统是一个小型的软件系统,用于模拟实现车辆在停车场中的驶入、驶出和收费等功能。下面是一个C语言的示例代码,实现了基本的功能需求:
```c
#include <stdio.h>
#define MAX_PARKING_SPACES 10 // 停车场可容纳的最大车辆数
struct Car {
char licensePlate[10]; // 车牌号
};
struct ParkingLot {
struct Car parkingSpaces[MAX_PARKING_SPACES]; // 停车位
int numOccupiedSpaces; // 当前已占用的停车位数量
};
void carEnter(struct ParkingLot *parkingLot, struct Car *car) {
if (parkingLot->numOccupiedSpaces < MAX_PARKING_SPACES) {
parkingLot->parkingSpaces[parkingLot->numOccupiedSpaces] = *car;
parkingLot->numOccupiedSpaces++;
printf("车辆已驶入停车场。\n");
} else {
printf("停车场已满,请稍后再试。\n");
}
}
void carExit(struct ParkingLot *parkingLot, struct Car *car) {
int i;
for (i = 0; i < parkingLot->numOccupiedSpaces; i++) {
if (strcmp(parkingLot->parkingSpaces[i].licensePlate, car->licensePlate) == 0) {
break;
}
}
if (i < parkingLot->numOccupiedSpaces) {
for (int j = i; j < parkingLot->numOccupiedSpaces - 1; j++) {
parkingLot->parkingSpaces[j] = parkingLot->parkingSpaces[j + 1];
}
parkingLot->numOccupiedSpaces--;
printf("车辆已驶出停车场。\n");
} else {
printf("未找到指定车辆。\n");
}
}
void calculateFee(struct Car *car) {
// 实现具体的计费逻辑
printf("车辆 %s 的停车费为xxx元。\n", car->licensePlate);
}
int main() {
struct ParkingLot parkingLot;
parkingLot.numOccupiedSpaces = 0;
struct Car car1 = { "粤A12345" };
struct Car car2 = { "粤B67890" };
carEnter(&parkingLot, &car1);
carEnter(&parkingLot, &car2);
struct Car car3 = { "粤C24680" };
carEnter(&parkingLot, &car3);
struct Car car4 = { "粤A12345" };
carExit(&parkingLot, &car4);
struct Car car5 = { "粤B67890" };
carExit(&parkingLot, &car5);
calculateFee(&car1);
calculateFee(&car2);
calculateFee(&car3);
return 0;
}
```
上述代码定义了两个结构体 `Car` 和 `ParkingLot`,前者代表车辆,后者代表停车场。 `carEnter` 函数用于将车辆驶入停车场, `carExit`函数用于将车辆驶出停车场, `calculateFee` 函数用于计算车辆的停车费用。在主函数中,演示了驶入、驶出和计费的操作。程序输出的结果为:
```
车辆已驶入停车场。
车辆已驶入停车场。
停车场已满,请稍后再试。
车辆已驶出停车场。
车辆已驶出停车场。
车辆 粤A12345 的停车费为xxx元。
车辆 粤B67890 的停车费为xxx元。
车辆 粤C24680 的停车费为xxx元。
```
这样就实现了一个简单的小型停车场管理系统,满足了车辆驶入、驶出和停车收费等功能需求。当然,代码只是一个示例,实际使用时需要根据具体需求进行完善和扩展。
阅读全文