#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义车位结构体
typedef struct {
int slotNumber;
int status; // 0: 空闲,1: 已占用
char vehicleNumber[20];
} ParkingSlot;
// 显示菜单
void showMenu() {
printf(“1. 车辆入场\n”);
printf(“2. 车辆出场\n”);
printf(“3. 查看车位状态\n”);
printf(“4. 退出\n”);
}
// 车辆入场
void vehicleEntry(ParkingSlot *slots, int numSlots) {
int availableSlot = -1;
for (int i = 0; i < numSlots; i++) {
if (slots[i].status == 0) {
availableSlot = i;
break;
}
}
if (availableSlot == -1) {
printf("停车场已满,无法入场!\n");
return;
}
printf("请输入车辆号码: ");
scanf("%s", slots[availableSlot].vehicleNumber);
slots[availableSlot].status = 1;
printf("车辆入场成功,车位号: %d\n", slots[availableSlot].slotNumber);
}
// 车辆出场
void vehicleExit(ParkingSlot *slots, int numSlots) {
char vehicleNumber[20];
printf(“请输入要出场的车辆号码: “);
scanf(”%s”, vehicleNumber);
int found = 0;
for (int i = 0; i < numSlots; i++) {
if (slots[i].status == 1 && strcmp(slots[i].vehicleNumber, vehicleNumber) == 0) {
slots[i].status = 0;
strcpy(slots[i].vehicleNumber, "");
printf("车辆出场成功!\n");
found = 1;
break;
}
}
if (!found) {
printf("未找到该车辆!\n");
}
}
// 查看车位状态
void viewSlotStatus(ParkingSlot *slots, int numSlots) {
printf(“车位状态:\n”);
for (int i = 0; i < numSlots; i++) {
printf("车位号: %d - ", slots[i].slotNumber);
if (slots[i].status == 0) {
printf(“空闲\n”);
} else {
printf(“已占用,车辆号: %s\n”, slots[i].vehicleNumber);
}
}
}
int main() {
ParkingSlot slots[50]; // 假设停车场有 50 个车位
int numSlots = 50;
// 初始化车位状态为空闲
for (int i = 0; i < numSlots; i++) {
slots[i].slotNumber = i + 1;
slots[i].status = 0;
strcpy(slots[i].vehicleNumber, "");
}
int choice;
do {
showMenu();
printf("请选择操作: ");
scanf("%d", &choice);
switch (choice) {
case 1:
vehicleEntry(slots, numSlots);
break;
case 2:
vehicleExit(slots, numSlots);
break;
case 3:
viewSlotStatus(slots, numSlots);
break;
case 4:
printf("退出程序\n");
break;
default:
printf("无效的选择,请重新输入\n");
}
} while (choice!= 4);
return 0;
}