c语言停车场程序设计,停车场模拟管理程序的设计与实现,高手指教
时间: 2023-12-11 07:05:57 浏览: 86
要实现一个停车场模拟管理程序,可以采用队列数据结构来管理停车场内的车辆。以下是简单的 C 代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#define MAX_SPACE 10 // 停车场最大容量
typedef struct car {
char license[10]; // 车牌号
struct car *next; // 指向下一节点的指针
} Car;
Car *head = NULL; // 停车场队列头指针
Car *tail = NULL; // 停车场队列尾指针
int count = 0; // 当前停车场内车辆数量
// 进入停车场
void in() {
if (count >= MAX_SPACE) {
printf("停车场已满,无法进入!\n");
return;
}
char license[10];
printf("请输入车牌号:");
scanf("%s", license);
Car *car = (Car*)malloc(sizeof(Car));
strcpy(car->license, license);
car->next = NULL;
if (head == NULL) {
head = car;
} else {
tail->next = car;
}
tail = car;
count++;
printf("车辆 %s 进入停车场,当前车辆数:%d\n", license, count);
}
// 离开停车场
void out() {
if (count <= 0) {
printf("停车场内无车辆!\n");
return;
}
char license[10];
printf("请输入车牌号:");
scanf("%s", license);
Car *prev = NULL;
Car *cur = head;
while (cur != NULL) {
if (strcmp(cur->license, license) == 0) {
if (cur == head) {
head = cur->next;
} else if (cur == tail) {
tail = prev;
} else {
prev->next = cur->next;
}
free(cur);
count--;
printf("车辆 %s 离开停车场,当前车辆数:%d\n", license, count);
return;
}
prev = cur;
cur = cur->next;
}
printf("停车场内无此车辆!\n");
}
// 显示停车场内车辆信息
void show() {
if (count <= 0) {
printf("停车场内无车辆!\n");
return;
}
printf("停车场内车辆信息如下:\n");
Car *cur = head;
while (cur != NULL) {
printf("%s\n", cur->license);
cur = cur->next;
}
}
int main() {
while (true) {
printf("请选择操作:\n");
printf("1. 进入停车场\n");
printf("2. 离开停车场\n");
printf("3. 显示停车场内车辆信息\n");
printf("4. 退出程序\n");
int choice;
scanf("%d", &choice);
switch (choice) {
case 1:
in();
break;
case 2:
out();
break;
case 3:
show();
break;
case 4:
return 0;
default:
printf("输入有误,请重新选择操作!\n");
break;
}
}
}
```
该程序采用了简单的命令行交互方式,可以通过菜单选择进入停车场、离开停车场或查看停车场内车辆信息。停车场内车辆数量达到最大容量时,无法再进入车辆;停车场内无车辆时,无法离开车辆或查看车辆信息。
阅读全文