用C语言写一个停车场收费系统
时间: 2023-12-09 08:05:57 浏览: 131
好的,我可以为您提供一个简单的停车场收费系统的C语言实现,供您参考。
首先,我们需要定义一个车辆信息结构体,包括车牌号、入场时间和出场时间等信息,如下所示:
```c
struct CarInfo {
char plateNumber[10]; // 车牌号
int enterTime; // 入场时间
int exitTime; // 出场时间
};
```
接下来,我们需要实现计算停车费用的函数,该函数的输入是车辆信息结构体,输出是停车费用,如下所示:
```c
float calculateFee(struct CarInfo car) {
int duration = car.exitTime - car.enterTime; // 计算停车时长,单位为分钟
float fee = 0.0; // 停车费用
if (duration <= 60) { // 不足1小时,收费5元
fee = 5;
} else { // 超过1小时,按每小时收费3元计算
fee = 5 + (duration / 60 - 1) * 3;
}
return fee;
}
```
然后,我们需要实现一个函数来读取车辆信息文件,将文件中的车辆信息读入内存中的一个数组,如下所示:
```c
int readCarInfoFile(struct CarInfo carArray[]) {
FILE* fp = fopen("car_info.txt", "r"); // 打开车辆信息文件
if (fp == NULL) {
return 0;
}
int count = 0;
while (!feof(fp)) {
fscanf(fp, "%s %d %d", carArray[count].plateNumber, &carArray[count].enterTime, &carArray[count].exitTime);
count++;
}
fclose(fp);
return count;
}
```
最后,我们需要实现一个主函数,来调用上述函数,计算每个车辆的停车费用,并将结果输出到文件中,如下所示:
```c
int main() {
struct CarInfo carArray[100]; // 定义车辆信息数组
int carCount = readCarInfoFile(carArray); // 读取车辆信息文件
FILE* fp = fopen("fee_info.txt", "w"); // 打开停车费用文件
if (fp == NULL) {
return 0;
}
for (int i = 0; i < carCount; i++) {
float fee = calculateFee(carArray[i]); // 计算停车费用
fprintf(fp, "%s %.2f\n", carArray[i].plateNumber, fee); // 输出车牌号和停车费用
}
fclose(fp);
return 0;
}
```
这样,我们就完成了一个简单的停车场收费系统的C语言实现,具体实现可能还需要根据实际需求进行调整。
阅读全文