编写一个停车场管理的程序
时间: 2023-10-20 21:05:22 浏览: 72
好的,以下是一个简单的停车场管理程序的代码示例(使用C语言):
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SPOTS 100 // 停车场最大车位数
// 定义车辆信息结构体
typedef struct {
char plate[10]; // 车牌号
int type; // 车型(1:小型车,2:大型车)
int time; // 停车时间(单位:分钟)
} Car;
// 定义停车场结构体
typedef struct {
Car spots[MAX_SPOTS]; // 车位数组
int num_spots; // 当前车位数
} ParkingLot;
// 显示菜单
void display_menu() {
printf("\n停车场管理系统\n");
printf("----------------\n");
printf("1. 停车\n");
printf("2. 取车\n");
printf("3. 显示当前停车场情况\n");
printf("4. 退出\n");
printf("----------------\n");
printf("请选择操作:");
}
// 停车
void park_car(ParkingLot *lot) {
// 检查停车场是否已满
if (lot->num_spots >= MAX_SPOTS) {
printf("停车场已满,无法停车!\n");
return;
}
// 输入车辆信息
Car car;
printf("请输入车牌号:");
scanf("%s", car.plate);
printf("请输入车型(1:小型车,2:大型车):");
scanf("%d", &car.type);
printf("请输入停车时间(分钟):");
scanf("%d", &car.time);
// 将车辆停入车位
lot->spots[lot->num_spots] = car;
lot->num_spots++;
printf("车辆已停入停车场!\n");
}
// 取车
void retrieve_car(ParkingLot *lot) {
// 输入车牌号
char plate[10];
printf("请输入车牌号:");
scanf("%s", plate);
// 在车位中查找对应车牌号的车辆
int i;
for (i = 0; i < lot->num_spots; i++) {
if (strcmp(lot->spots[i].plate, plate) == 0) {
break;
}
}
// 没有找到对应车辆
if (i == lot->num_spots) {
printf("未找到对应车辆!\n");
return;
}
// 计算停车费用
int cost = 0;
if (lot->spots[i].type == 1) { // 小型车
cost = lot->spots[i].time / 60 * 5;
} else { // 大型车
cost = lot->spots[i].time / 60 * 10;
}
// 输出停车费用并将车辆移出车位
printf("停车费用为:%d 元\n", cost);
for (; i < lot->num_spots - 1; i++) {
lot->spots[i] = lot->spots[i + 1];
}
lot->num_spots--;
printf("车辆已取出停车场!\n");
}
// 显示当前停车场情况
void display_parking_lot(ParkingLot *lot) {
printf("当前停车场情况:\n");
printf("车位总数:%d,已用车位:%d,空余车位:%d\n", MAX_SPOTS, lot->num_spots, MAX_SPOTS - lot->num_spots);
printf("车牌号\t\t车型\t\t停车时间(分钟)\n");
int i;
for (i = 0; i < lot->num_spots; i++) {
printf("%s\t\t%d\t\t%d\n", lot->spots[i].plate, lot->spots[i].type, lot->spots[i].time);
}
}
int main() {
ParkingLot lot = {0}; // 初始化停车场
int choice;
do {
display_menu();
scanf("%d", &choice);
switch (choice) {
case 1:
park_car(&lot);
break;
case 2:
retrieve_car(&lot);
break;
case 3:
display_parking_lot(&lot);
break;
case 4:
printf("谢谢使用!\n");
exit(0);
default:
printf("无效操作,请重新选择!\n");
break;
}
} while (1);
return 0;
}
```
该程序实现了停车场管理的基本功能,包括停车、取车和显示当前停车场情况。当停车场已满时,将无法再停车。当取车时,程序将根据停车时间计算停车费用,并将车辆移出车位。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)