停车场管理系统 普通用户和管理层用户多功能 c语言
时间: 2023-09-10 15:14:59 浏览: 49
好的,停车场管理系统可以分为两个部分:普通用户和管理层用户。
1.普通用户功能:
- 输入车牌号码进行停车
- 查看自己的停车信息,包括车牌号、停车时间、停车费用
- 缴纳停车费用并离开停车场
2.管理层用户功能:
- 查看停车场当前的停车情况,包括剩余车位数、已经停车的车辆数
- 增加、删除车位信息
- 查看停车记录,包括车牌号、停车时间、停车费用
- 修改停车费用标准
可以使用C语言实现该停车场管理系统,具体实现过程如下:
1.数据结构的设计:
首先,我们需要定义数据结构来存储停车场的信息,包括车位数量、已经停车的车辆信息等。
```
//定义车辆信息结构体
typedef struct CarInfo{
char plateNum[10]; //车牌号码
int parkTime; //停车时间
float parkFee; //停车费用
} CarInfo;
//定义停车场信息结构体
typedef struct ParkingLot{
int totalNum; //车位总数
int usedNum; //已用车位数
CarInfo carList[100]; //车辆信息列表
} ParkingLot;
```
2.实现普通用户功能:
用户输入车牌号码后,需要进行停车操作。停车成功后,记录车辆信息并更新停车场信息。
```
//普通用户停车操作
void parkCar(ParkingLot *lot, char plateNum[]){
if(lot->usedNum == lot->totalNum){
printf("停车场已满!\n");
return;
}
for(int i = 0; i < lot->totalNum; i++){
if(strlen(lot->carList[i].plateNum) == 0){
strcpy(lot->carList[i].plateNum, plateNum);
lot->usedNum++;
lot->carList[i].parkTime = time(NULL); //记录停车时间
printf("车辆 %s 停车成功!\n", plateNum);
return;
}
}
}
//普通用户缴纳停车费用并离开停车场
void leaveParkingLot(ParkingLot *lot, char plateNum[]){
for(int i = 0; i < lot->totalNum; i++){
if(strcmp(lot->carList[i].plateNum, plateNum) == 0){
float parkTime = (time(NULL) - lot->carList[i].parkTime) / 60.0; //计算停车时长
lot->carList[i].parkFee = parkTime * PARKING_FEE; //计算停车费用
printf("车辆 %s 停车费用为 %.2f 元\n", plateNum, lot->carList[i].parkFee);
strcpy(lot->carList[i].plateNum, ""); //清空车辆信息
lot->usedNum--;
return;
}
}
printf("找不到车辆 %s\n", plateNum);
}
//普通用户查看自己的停车信息
void checkCarInfo(ParkingLot *lot, char plateNum[]){
for(int i = 0; i < lot->totalNum; i++){
if(strcmp(lot->carList[i].plateNum, plateNum) == 0){
printf("车辆 %s 停车时间为 %d 分钟,停车费用为 %.2f 元\n", plateNum, (time(NULL) - lot->carList[i].parkTime) / 60, lot->carList[i].parkFee);
return;
}
}
printf("找不到车辆 %s\n", plateNum);
}
```
3.实现管理层用户功能:
管理层用户可以查看停车场信息、增加、删除车位信息、修改停车费用标准等。
```
//管理层用户查看停车场信息
void checkParkingLotInfo(ParkingLot *lot){
printf("停车场总共有 %d 个车位,已经停放了 %d 辆车\n", lot->totalNum, lot->usedNum);
for(int i = 0; i < lot->totalNum; i++){
if(strlen(lot->carList[i].plateNum) != 0){
printf("车位 %d 停放了车辆 %s,停车时间为 %d 分钟,停车费用为 %.2f 元\n", i+1, lot->carList[i].plateNum, (time(NULL) - lot->carList[i].parkTime) / 60, lot->carList[i].parkFee);
}
}
}
//管理层用户增加车位信息
void addParkingSpace(ParkingLot *lot, int num){
lot->totalNum += num;
}
//管理层用户删除车位信息
void deleteParkingSpace(ParkingLot *lot, int num){
if(lot->totalNum - lot->usedNum < num){
printf("无法删除 %d 个车位,因为停车场内有 %d 辆车\n", num, lot->usedNum);
return;
}
lot->totalNum -= num;
}
//管理层用户修改停车费用标准
void modifyParkingFee(float newFee){
PARKING_FEE = newFee;
}
```
完整代码如下:
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)