1、题目:高速公路计费系统设计题目:高速公路计费系统设计 功能:在某高速公路出口收费处,对三种类型的车辆计费,大型车每公里 0。5 元,中型车每公里 0。4 元,小型车每公里 0。3 元,来车验条,乘公里数即得该 收的款项。在交班时要统计出总数。 分步实施: 1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数; 2、完成最低要求:建立一个只有三个入口的计费系统,并能进行统计计算,打 印出报表; 3、进一步要求:完成任意多个入口的通用系统。 要求: 1、用 C 语言实现程序设计; 2、利用结构体数组实现信息的数据结构设计; 3、系统的各个功能模块要求用函数的形式实现; 4、界面友好(良
2、好的人机交互) ,程序加必要的注释。 总体设计总体设计 1.1.本程序涉及的知识点本程序涉及的知识点 变量的定义,输入输出函数、对文件的输入和输出和保存、for、switch、if 等 语句的使用,定义和使用结构体数组等等。 进入系统首页为主菜单,主菜单下分 4 个模块: 模块 1:录入车辆信息 进入模块 1 后按提示要求录入车牌号码、时间、型号大小(用 a、b、 c 分别表示大型、中型、 小型)和入站口(1、2、3、4表示不同入口站名称并分别对应不同公里路程数) 。 模块 2:查询车辆信息 进入模块 2 后按提示要求录入所要查询的车牌号码,即可查询其进站入口,时间,及所需费 用等信息 菜单菜
3、单 1.录入车辆信息录入车辆信息 2.查询车辆信息查询车辆信息 3.车辆统计报表车辆统计报表 4.保存关闭系统保存关闭系统 模块 3:车辆统计报表 进入模块 3 后即可显示操作员之前录入的所有车辆的各个信息, 并统计出车辆总数及应收总 费用。 模块 4:保存关闭系统 进入模块 4 后 系统自动保存所有车辆信息,并按提示可推出本系统。 流程图流程图 录入车辆 查询车辆 汇总报表 保存退出 菜单 输入车牌 输入进站 输入车型 输入入站口 是否继续录 是否退出系 统 输入车牌 是否继续 查询 保存数据 结束 Y N Y Y N N 显示车辆 显示所有车辆 信息、车辆总 数及应收总费 开始 主函数:主
4、函数: #include #include #include #include #define N 100 #define M 4 /入口数量,可设置多个路口 char a=20,30,40,50; /路口 1 :20 公里,路口 2 :30 公里,路口 3 :40 公里, 路口 4 :50 公里 char str3=“k1“,“k2“,“k3“,“k4“; /入口名称,分别对应上面数组的公里数 FILE*fp; int count; void input(); void cheak(); void tongji(); void read(); void menu(); void writef
5、ile(); struct vehicle /车辆信息 char num15; char time6; char size2; char road3; float cost; veN; void main() read(); while(1) menu(); void read() /导入文件 char filename20; if(fp=fopen(“tql.txt“,“r“)=NULL) printf(“无此文件,新建一个文件n“); printf(“输入文件名,回车键结束:“); scanf(“%s“,filename); if(fp=fopen(filename,“w“)=NULL)
6、printf(“新建失败“); exit(0); else printf(“新建文件成功,按任意键返回主菜单“); getchar(); return; fseek(fp,0,2); / 文件内部指针退回到离文件结尾 0 位置,即指针指向文 件内部末尾处 if(ftell(fp)0) / 使用 fseek 函数后再调用函数 ftell()就能非常容易地确定 文件的当前位置。 fseek(fp,0,0); for(count=0;!feof(fp)count+); return; void menu() system(“cls“); char i; printf(“t nt*欢迎来到公路计费系统*nnttt 主菜单nn“)