欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > 简单的停车场管理系统的C语言实现示例

简单的停车场管理系统的C语言实现示例

2025/4/13 1:01:41 来源:https://blog.csdn.net/go5463158465/article/details/145383774  浏览:    关键词:简单的停车场管理系统的C语言实现示例

以下是一个简单的停车场管理系统的C语言实现示例。该示例使用结构体来管理停车场的车位信息,并提供基本车辆进入、离开以及显示停车场状态功能。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>#define MAX_SLOTS 10 // 最大车位数
#define LICENSE_PLATE_LENGTH 10 // 车牌号最大长度// 定义车位结构体
typedef struct {int slotNumber;int isOccupied;char licensePlate[LICENSE_PLATE_LENGTH];
} ParkingSlot;// 初始化停车场
void initializeParkingLot(ParkingSlot *slots, int size) {for (int i = 0; i < size; i++) {slots[i].slotNumber = i + 1;slots[i].isOccupied = 0;strcpy(slots[i].licensePlate, "");}
}// 显示停车场状态
void displayParkingLot(ParkingSlot *slots, int size) {printf("停车场状态:\n");for (int i = 0; i < size; i++) {if (slots[i].isOccupied) {printf("车位 %d: 已占用, 车牌号: %s\n", slots[i].slotNumber, slots[i].licensePlate);} else {printf("车位 %d: 空闲\n", slots[i].slotNumber);}}
}// 车辆进入停车场
int enterParkingLot(ParkingSlot *slots, int size, const char *licensePlate) {for (int i = 0; i < size; i++) {if (!slots[i].isOccupied) {slots[i].isOccupied = 1;strcpy(slots[i].licensePlate, licensePlate);printf("车辆 %s 已进入车位 %d\n", licensePlate, slots[i].slotNumber);return slots[i].slotNumber;}}printf("停车场已满,车辆 %s 无法进入\n", licensePlate);return -1;
}// 车辆离开停车场
void leaveParkingLot(ParkingSlot *slots, int size, const char *licensePlate) {for (int i = 0; i < size; i++) {if (slots[i].isOccupied && strcmp(slots[i].licensePlate, licensePlate) == 0) {slots[i].isOccupied = 0;strcpy(slots[i].licensePlate, "");printf("车辆 %s 已离开车位 %d\n", licensePlate, slots[i].slotNumber);return;}}printf("未找到车辆 %s\n", licensePlate);
}int main() {ParkingSlot slots[MAX_SLOTS];initializeParkingLot(slots, MAX_SLOTS);int choice;char licensePlate[LICENSE_PLATE_LENGTH];while (1) {printf("\n停车场管理系统\n");printf("1. 显示停车场状态\n");printf("2. 车辆进入停车场\n");printf("3. 车辆离开停车场\n");printf("4. 退出\n");printf("请选择操作: ");scanf("%d", &choice);switch (choice) {case 1:displayParkingLot(slots, MAX_SLOTS);break;case 2:printf("请输入车牌号: ");scanf("%s", licensePlate);enterParkingLot(slots, MAX_SLOTS, licensePlate);break;case 3:printf("请输入车牌号: ");scanf("%s", licensePlate);leaveParkingLot(slots, MAX_SLOTS, licensePlate);break;case 4:exit(0);default:printf("无效的选择,请重新输入\n");}}return 0;
}

代码说明:

  1. 结构体定义ParkingSlot 结构体用于存储每个车位的信息,包括车位编号、是否被占用以及车牌号。
  2. 初始化函数initializeParkingLot 函数用于初始化停车场的所有车位为空闲状态。
  3. 显示函数displayParkingLot 函数用于显示当前停车场的状态,包括每个车位是否被占用以及对应的车牌号。
  4. 进入函数enterParkingLot 函数用于处理车辆进入停车场的操作,找到一个空闲车位并记录车牌号。
  5. 离开函数leaveParkingLot 函数用于处理车辆离开停车场的操作,根据车牌号找到对应的车位并将其标记为空闲。
  6. 主函数main 函数提供一个简单的菜单界面,让用户选择不同的操作,如显示停车场状态、车辆进入、车辆离开以及退出系统。

这个示例可以作为一个基础,根据实际需求进一步扩展和优化,例如添加更多的功能、改进用户界面等。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词