停车场管理系统c语言代码实现并加以说明
时间: 2024-06-08 09:06:25 浏览: 331
停车场管理系统主要实现以下功能:
1. 车辆入场登记
2. 车辆出场计费
3. 车位管理
4. 停车记录查询
下面是一个简单的停车场管理系统C语言代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_CAR_NUM 100 // 最大车位数
#define MAX_CAR_TYPE 4 // 最大车型数
#define PRICE_RATE {0, 5, 8, 10} // 计费比率,单位:元/小时
typedef struct {
char car_num[10]; // 车牌号码
int car_type; // 车型
int in_time; // 入场时间,单位:小时
} Car;
Car cars[MAX_CAR_NUM]; // 停车场车辆信息
int park_num = 0; // 当前停车数量
int park_total = 0; // 总车位数
// 初始化停车场,设置车位数
void init_park() {
printf("请输入停车场总车位数:");
scanf("%d", &park_total);
printf("停车场初始化成功,总车位数为:%d\n", park_total);
}
// 显示菜单
void show_menu() {
printf("停车场管理系统\n");
printf("-----------------\n");
printf("1. 车辆入场登记\n");
printf("2. 车辆出场计费\n");
printf("3. 车位管理\n");
printf("4. 停车记录查询\n");
printf("0. 退出系统\n");
printf("-----------------\n");
}
// 车辆入场登记
void car_in() {
if (park_num >= park_total) {
printf("停车场已满,无法入场!\n");
return;
}
Car car;
printf("请输入车牌号码:");
scanf("%s", car.car_num);
printf("请输入车型(1.小车 2.中型车 3.大型车):");
scanf("%d", &car.car_type);
printf("请输入入场时间(小时):");
scanf("%d", &car.in_time);
cars[park_num] = car;
park_num++;
printf("车辆入场登记成功!\n");
}
// 车辆出场计费
void car_out() {
char car_num[10];
printf("请输入车牌号码:");
scanf("%s", car_num);
int i, pos = -1;
for (i = 0; i < park_num; i++) {
if (strcmp(cars[i].car_num, car_num) == 0) {
pos = i;
break;
}
}
if (pos == -1) {
printf("没有找到该车辆信息!\n");
return;
}
int out_time;
printf("请输入出场时间(小时):");
scanf("%d", &out_time);
int park_time = out_time - cars[pos].in_time;
int price = park_time * PRICE_RATE[cars[pos].car_type];
printf("停车时间:%d 小时,停车费用:%d 元\n", park_time, price);
// 车辆出场,从停车场中删除该车辆信息
int j;
for (j = pos; j < park_num - 1; j++) {
cars[j] = cars[j + 1];
}
park_num--;
printf("车辆出场成功!\n");
}
// 车位管理
void manage_park() {
printf("当前停车场车位数: %d\n", park_total);
printf("请输入修改后的车位数:");
scanf("%d", &park_total);
printf("车位数修改成功!\n");
}
// 停车记录查询
void query_park() {
if (park_num == 0) {
printf("停车场暂无车辆停放!\n");
return;
}
printf("车牌号码\t车型\t入场时间(小时)\n");
int i;
for (i = 0; i < park_num; i++) {
printf("%s\t\t%d\t%d\n", cars[i].car_num, cars[i].car_type, cars[i].in_time);
}
}
int main() {
init_park();
int choice;
do {
show_menu();
printf("请输入选项:");
scanf("%d", &choice);
switch (choice) {
case 1:
car_in();
break;
case 2:
car_out();
break;
case 3:
manage_park();
break;
case 4:
query_park();
break;
case 0:
printf("谢谢使用!\n");
break;
default:
printf("输入有误,请重新选择!\n");
break;
}
} while (choice != 0);
return 0;
}
```
上述代码实现了停车场管理系统的基本功能,包括车辆入场登记、车辆出场计费、车位管理和停车记录查询。其中,车辆信息使用结构体进行存储,停车场车位数和车型计费比率等信息使用常量进行定义。在菜单界面中,使用 switch 语句根据用户输入的选项进行相应的操作。在车辆出场计费中,根据停车时间和车型计算停车费用,同时从停车场中删除该车辆信息。
阅读全文