编写一个停车场管理的代码
时间: 2024-02-18 18:03:38 浏览: 17
好的,以下是一个简单的停车场管理代码,仅供参考:
```
#include <stdio.h>
#define MAX_SIZE 10
struct car {
char plate_number[10];
int park_time;
};
struct parking_lot {
struct car cars[MAX_SIZE];
int count;
};
void park_car(struct parking_lot *parking_lot, char *plate_number, int park_time) {
if (parking_lot->count >= MAX_SIZE) {
printf("停车场已满,无法停车\n");
return;
}
struct car new_car;
strcpy(new_car.plate_number, plate_number);
new_car.park_time = park_time;
parking_lot->cars[parking_lot->count] = new_car;
parking_lot->count++;
printf("车辆 %s 已停入停车场,停车时间为 %d 分钟\n", plate_number, park_time);
}
void get_car(struct parking_lot *parking_lot, char *plate_number, int get_time) {
int i;
for (i = 0; i < parking_lot->count; i++) {
if (strcmp(parking_lot->cars[i].plate_number, plate_number) == 0) {
int park_time = get_time - parking_lot->cars[i].park_time;
float fee = (float)park_time / 60 * 10; //停车费用每小时 10 元
printf("车辆 %s 已取出,停车时间为 %d 分钟,停车费用为 %.2f 元\n", plate_number, park_time, fee);
parking_lot->count--;
for (; i < parking_lot->count; i++) {
parking_lot->cars[i] = parking_lot->cars[i + 1];
}
return;
}
}
printf("没有找到车牌号为 %s 的车辆\n", plate_number);
}
int main() {
struct parking_lot parking_lot;
parking_lot.count = 0;
int choice;
char plate_number[10];
int park_time, get_time;
while (1) {
printf("\n请选择操作:\n1. 停车\n2. 取车\n3. 退出\n");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("请输入车牌号和停车时间(分钟):\n");
scanf("%s %d", plate_number, &park_time);
park_car(&parking_lot, plate_number, park_time);
break;
case 2:
printf("请输入车牌号和取车时间(分钟):\n");
scanf("%s %d", plate_number, &get_time);
get_car(&parking_lot, plate_number, get_time);
break;
case 3:
printf("程序已退出\n");
return 0;
default:
printf("无效的操作,请重新选择\n");
break;
}
}
return 0;
}
```
这个代码中,我们使用了结构体来表示车辆信息和停车场信息,使用了函数来实现停车和取车操作。在主函数中,我们使用一个循环来不断接受用户的操作选择,直到用户选择退出程序为止。在每个操作中,我们通过调用相应的函数来实现停车和取车的功能,并根据不同的情况输出相应的信息。