使用c语言写一个题目 题目:高速公路计费系统设计功能:在某高速公路出口收费处,对三种类型的车辆计费,大型车每公里 0。5元,中型车每公里 0。4 元,小型车每公里 0。3 元,来车验条,乘公里数即得该收的款项。在交班时要统计出总数。分步实施:1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2、完成最低要求:建立一个只有三个入口的计费系统,并能进行统计计算,打印出报表;3、进一步要求:完成任意多个入口的通用系统。要求:1、用 C 语言实现程序设计;2、利用结构体数组实现信息的数据结构设计;3、系统的各个功能模块要求用函数的形式实现;4、界面友好(良好的人机交互),程序加必要的注释。
时间: 2024-03-25 20:36:20 浏览: 41
以下是C语言代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100 // 最大车辆数量
// 车辆类型
typedef enum {
SMALL = 1,
MEDIUM,
LARGE
} VehicleType;
// 车辆信息
typedef struct {
int id; // 车辆编号
VehicleType type; // 车辆类型
int distance; // 行驶距离
float fee; // 应付金额
} Vehicle;
// 车辆信息数组
Vehicle vehicles[MAX_SIZE];
int vehicleCount = 0; // 车辆数量
// 添加车辆信息
void addVehicle(VehicleType type, int distance) {
if (vehicleCount >= MAX_SIZE) {
printf("车辆数量已达最大值,无法添加!\n");
return;
}
Vehicle vehicle;
vehicle.id = vehicleCount + 1;
vehicle.type = type;
vehicle.distance = distance;
switch (type) {
case SMALL:
vehicle.fee = distance * 0.3;
break;
case MEDIUM:
vehicle.fee = distance * 0.4;
break;
case LARGE:
vehicle.fee = distance * 0.5;
break;
default:
printf("无效的车辆类型!\n");
return;
}
vehicles[vehicleCount] = vehicle;
vehicleCount++;
printf("车辆信息已添加,编号为%d!\n", vehicle.id);
}
// 统计总费用
float getTotalFee() {
float totalFee = 0;
for (int i = 0; i < vehicleCount; i++) {
totalFee += vehicles[i].fee;
}
return totalFee;
}
// 打印报表
void printReport() {
printf("车辆编号\t车辆类型\t行驶距离\t应付金额\n");
for (int i = 0; i < vehicleCount; i++) {
printf("%d\t\t", vehicles[i].id);
switch (vehicles[i].type) {
case SMALL:
printf("小型车\t\t");
break;
case MEDIUM:
printf("中型车\t\t");
break;
case LARGE:
printf("大型车\t\t");
break;
}
printf("%d\t\t%.2f\n", vehicles[i].distance, vehicles[i].fee);
}
printf("总费用:%.2f元\n", getTotalFee());
}
int main() {
int choice, distance;
VehicleType type;
while (1) {
printf("请选择操作:\n");
printf("1. 添加车辆信息\n");
printf("2. 打印报表\n");
printf("3. 退出程序\n");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("请输入车辆类型(1:小型车,2:中型车,3:大型车):");
scanf("%d", &type);
printf("请输入行驶距离(单位:公里):");
scanf("%d", &distance);
addVehicle(type, distance);
break;
case 2:
printReport();
break;
case 3:
printf("谢谢使用,再见!\n");
exit(0);
default:
printf("无效的操作!\n");
break;
}
}
return 0;
}
```
代码中使用了结构体数组来存储车辆信息,使用函数实现了添加车辆、统计总费用和打印报表等功能。界面友好,程序加上了必要的注释。