c语言使用队列实现停车场管理系统
时间: 2023-09-10 11:15:14 浏览: 62
停车场管理系统可以使用队列来实现,具体步骤如下:
1. 定义停车场的容量,使用数组来存储每个停车位的状态,0表示空车位,1表示有车位。
2. 定义一个队列,用来存储当前停车场的车辆。每辆车进入停车场时,将其车牌号入队;每辆车离开停车场时,将其车牌号出队。
3. 当一辆车进入停车场时,从数组中找到第一个空车位,将其状态更新为1,表示该车位被占用。然后将该车辆的车牌号入队。
4. 当一辆车离开停车场时,从队列中取出该车辆的车牌号,然后将该车位的状态更新为0,表示该车位空闲。
以下是使用C语言实现停车场管理系统的代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100
int park[MAX_SIZE]; // 停车场状态数组
int front = 0; // 队头指针
int rear = 0; // 队尾指针
// 入队操作
void enqueue(int car_num) {
if (rear == MAX_SIZE) {
printf("停车场已满,无法停车\n");
return;
}
park[rear++] = car_num;
printf("车辆 %d 进入停车场\n", car_num);
}
// 出队操作
void dequeue() {
if (front == rear) {
printf("停车场已空,无车辆可出\n");
return;
}
int car_num = park[front++];
printf("车辆 %d 离开停车场\n", car_num);
}
int main() {
int capacity; // 停车场容量
printf("请输入停车场容量:");
scanf("%d", &capacity);
printf("停车场容量为 %d\n", capacity);
while (1) {
int op, car_num;
printf("请选择操作:1.停车 2.出车 3.退出\n");
scanf("%d", &op);
switch (op) {
case 1:
if (rear - front == capacity) {
printf("停车场已满,无法停车\n");
break;
}
printf("请输入车辆号码:");
scanf("%d", &car_num);
enqueue(car_num);
break;
case 2:
dequeue();
break;
case 3:
exit(0);
default:
printf("输入错误,请重新选择\n");
break;
}
}
return 0;
}
```
注意,上述代码只是一个简单的示例,实际应用中需要考虑更多的情况,例如停车场已满、车辆已在停车场内、车辆号码是否合法等等。