写一个停车场管理系统c语音的代码
时间: 2023-07-27 20:06:18 浏览: 83
停车场管理系统和实验报告
好的,以下是一个简单的停车场管理系统的 C 语言代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_SIZE 100 // 停车场最大容量
struct Car {
char license_plate[8]; // 车牌号码
int park_time; // 停车时间
};
struct ParkingLot {
struct Car cars[MAX_SIZE]; // 车辆数组
int count; // 当前停车数量
};
// 初始化停车场
void init(struct ParkingLot *parking_lot) {
parking_lot->count = 0;
}
// 停车
void park(struct ParkingLot *parking_lot, char *license_plate, int park_time) {
if (parking_lot->count == MAX_SIZE) {
printf("停车场已满,无法停车!\n");
return;
}
// 查找是否已存在相同车牌
for (int i = 0; i < parking_lot->count; i++) {
if (strcmp(parking_lot->cars[i].license_plate, license_plate) == 0) {
printf("该车已在停车场内!\n");
return;
}
}
// 添加新车辆
struct Car car;
strcpy(car.license_plate, license_plate);
car.park_time = park_time;
parking_lot->cars[parking_lot->count++] = car;
printf("车辆 %s 已停入停车场,停车时间为 %d 分钟。\n", license_plate, park_time);
}
// 取车
void leave(struct ParkingLot *parking_lot, char *license_plate, int leave_time) {
for (int i = 0; i < parking_lot->count; i++) {
if (strcmp(parking_lot->cars[i].license_plate, license_plate) == 0) {
int park_time = leave_time - parking_lot->cars[i].park_time;
int fee = park_time <= 60 ? 5 : 5 + (park_time - 60) / 30 * 2;
printf("车辆 %s 已驶出停车场,停车时间为 %d 分钟,停车费用为 %d 元。\n", license_plate, park_time, fee);
// 移除车辆
for (int j = i; j < parking_lot->count - 1; j++) {
parking_lot->cars[j] = parking_lot->cars[j + 1];
}
parking_lot->count--;
return;
}
}
printf("停车场内未找到该车辆!\n");
}
// 显示当前停车场状态
void show(struct ParkingLot *parking_lot) {
printf("当前停车场内共有 %d 辆车:\n", parking_lot->count);
for (int i = 0; i < parking_lot->count; i++) {
printf("车辆 %s,停车时间 %d 分钟。\n", parking_lot->cars[i].license_plate, parking_lot->cars[i].park_time);
}
}
int main() {
struct ParkingLot parking_lot;
init(&parking_lot);
while (1) {
printf("\n请输入指令:\n");
printf("1. 停车\n");
printf("2. 取车\n");
printf("3. 显示当前停车场状态\n");
printf("4. 退出\n");
int choice;
scanf("%d", &choice);
switch (choice) {
case 1:
printf("请输入车牌号码和停车时间(分钟):\n");
char license_plate[8];
int park_time;
scanf("%s %d", license_plate, &park_time);
park(&parking_lot, license_plate, park_time);
break;
case 2:
printf("请输入车牌号码和离开时间(分钟):\n");
char license_plate2[8];
int leave_time;
scanf("%s %d", license_plate2, &leave_time);
leave(&parking_lot, license_plate2, leave_time);
break;
case 3:
show(&parking_lot);
break;
case 4:
exit(0);
default:
printf("无效的指令!\n");
break;
}
}
return 0;
}
```
该代码实现了停车、取车和显示当前停车场状态三个功能,以及一个简单的交互界面。停车费用按照停车时间计算,不足一小时的收费为 5 元,超过一小时的每半小时加收 2 元。
阅读全文