收藏 分享(赏)

高速公路收费系统C语言课程设计报告.doc

上传人:精品资料 文档编号:10719105 上传时间:2019-12-31 格式:DOC 页数:21 大小:580.50KB
下载 相关 举报
高速公路收费系统C语言课程设计报告.doc_第1页
第1页 / 共21页
高速公路收费系统C语言课程设计报告.doc_第2页
第2页 / 共21页
高速公路收费系统C语言课程设计报告.doc_第3页
第3页 / 共21页
高速公路收费系统C语言课程设计报告.doc_第4页
第4页 / 共21页
高速公路收费系统C语言课程设计报告.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、C 语言程序设计课程设计报告设计题目:高速公路计费系统设计学 号 班 级 姓 名 完成方式:(单选) 自我评分:(单选) 独立完成 优秀 参考他人工作的基础上完成 良好 在他人的帮助下完成 中等 完整拷贝他人成果 及格 不及格2010 年 3 月 27 日2题目:高速公路计费系统设计功能:在某高速公路出口收费处,对三种类型的车辆计费,大型车每公里0。5 元,中型车每公里 0。4 元,小型车每公里 0。3 元,来车验条,乘公里数即得该收的款项。在交班时要统计出总数。分步实施:1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2、完成最低要求:建立一个只有三个入口的计费系统,并能进

2、行统计计算,打印出报表;3、进一步要求:完成任意多个入口的通用系统。要求:1、用 C 语言实现程序设计;2、利用结构体数组实现信息的数据结构设计;3、系统的各个功能模块要求用函数的形式实现;4、界面友好(良好的人机交互) ,程序加必要的注释。课程设计实验报告要求:1、预习报告:题目、课程设计任务、数据结构、程序的总体设计(算法) 、模块划分 。2、实验总结报告:流程图、主要源程序代码(需打印) 、测试情况及调试中问题与解决方案、小结等。一、总体设计1、 仔细阅读系统要求,首先将此系统化分为如下模块(1)显示模块,是人机交互的界面,可引导操作员来完成程序的运行。比如:系统主界面(主菜单),包含了

3、输入车辆信息,显示车辆信息,显示车辆总数,退出程序四个可选操作,操作员可直观地完成信息处理。(2)文件模块,可执行文件建立、文件保存、文件打开和文件写入等命令来操作处理和放置车辆信息的文件。(3)输入模块是操作员向程序输入的模块,可输入操作内容和车辆的有关信息,比如:输入车牌号、车辆类型、进入口、时间,程序自动计算得出车辆应缴纳的费用并保存在文件。(4)输出模块,通过程序计算,向操作员输出车辆信息、数据等(5)退出模块, 可用一个函数 exit()来实现,首先将信息保存到文件中,然后退出程序二、详细设计1、界面设计此系统界面采用符号和数字化菜单设计。主界面设计如下:欢迎使用高速公路收费系统主菜

4、单1.输入车辆信息2.显示车辆信息3.显示车辆总数4.保存退出系统请输入数字选择操作类型:32、流程图43、数据结构设计:程序设计中用到的结构体类型:车辆信息结构体类型:struct vehicle/*车辆信息*/char num10000;/*车牌号 */char variety4;/*车辆类型 a,b,c(大,中,小 )*/int entime;/*进入时间 */char enter3;/*进入口 1,2,3分别为各个入口*/4、程序代码#include#include#include#include #define N 10/*定义三个入口到出口的路程分别是 l1 l2 l3*/stru

5、ct vehicle/*车辆信息*/char num10000;/*车牌号*/char variety4;/*车辆类型 a,b,c(大,中,小)*/int entime;/*进入时间*/char enter3;/*进入口 1,2,3分别为各个入口*/veN;int count=0;FILE *fp;/*函数声明*/void menu();/*主菜单*/void input();5/*输入函数*/void show();void all();void readfile();/*从文件导入*/void writefile();/*写入*/void main() readfile();while(1

6、)menu();void readfile()/*从文件导入 */ if(fp=fopen(“vehicle.txt“,“r“)=NULL) printf(“n“);printf(“n“);printf(“n“);printf(“n“);printf(“t“);printf(“t“);printf(“*n“);printf(“t“);printf(“t“);printf(“* *n“);printf(“t“);printf(“t“);printf(“* 文件为空,请添加信息 *n“); printf(“t“);printf(“t“);printf(“* *n“);printf(“t“);pri

7、ntf(“t“);printf(“*n“);if(fp=fopen(“vehicle.txt“,“w“)=NULL) /*只写*/printf(“n“);printf(“n“);6printf(“n“);printf(“n“);printf(“t“);printf(“t“);printf(“*n“);printf(“t“);printf(“t“);printf(“* *n“);printf(“t“);printf(“t“);printf(“* 建立失败 *n“); printf(“t“);printf(“t“);printf(“* *n“);printf(“t“);printf(“t“);pr

8、intf(“*n“);exit(0); /*正常退出*/ else printf(“n“);printf(“n“);printf(“n“);printf(“n“);printf(“t“);printf(“t“);printf(“*n“);printf(“t“);printf(“t“);printf(“* *n“);printf(“t“);printf(“t“);printf(“* 文件已建立 *n“);printf(“t“);printf(“t“);printf(“* *n“);printf(“t“);printf(“t“);printf(“*Please press any key to g

9、et to mainmenu! *n“); printf(“t“);printf(“t“);printf(“* *n“);7printf(“t“);printf(“t“);printf(“*n“);getch(); return; exit(0); fseek(fp,0,2); /*文件指针 fp 指到到文件末尾*/ if(ftell(fp)0) /*文件不为空*/ fseek(fp,0,0);/*文件指针指到文件开始位置*/ for(count=0;!feof(fp)count+); printf(“n“);printf(“n“);printf(“n“);printf(“n“);printf

10、(“t“);printf(“t“);printf(“*n“);printf(“t“);printf(“t“);printf(“* *n“);printf(“t“);printf(“t“);printf(“* 文件导入成功 *n“); printf(“t“);printf(“t“);printf(“* *n“);printf(“t“);printf(“t“);printf(“*Please press anykey to get back to mainmenu! *n“);printf(“t“);printf(“t“);printf(“* *n“);printf(“t“);printf(“t“

11、);printf(“*n“);getch(); 8return; printf(“n“);printf(“n“);printf(“n“);printf(“n“);printf(“t“);printf(“t“);printf(“*n“);printf(“t“);printf(“t“);printf(“* *n“);printf(“t“);printf(“t“);printf(“* 已成功打开文件! *n“); printf(“t“);printf(“t“);printf(“* *n“);printf(“t“);printf(“t“);printf(“*Please press anykey to

12、 get back to mainmenu! *n“); printf(“t“);printf(“t“);printf(“* *n“);printf(“t“);printf(“t“);printf(“*n“);getch(); return; void menu()system(“cls“);/*清屏*/char n;printf(“n“);printf(“n“);printf(“n“);printf(“n“);printf(“t“);printf(“t*n“);printf(“n“);printf(“t“);printf(“t* 欢迎使用高速公路收费系统 *n“);printf(“n“);9

13、printf(“t“);printf(“t* 主菜单 *n“); printf(“n“);printf(“t“);printf(“t* 1.输入车辆信息 *n“);printf(“n“);printf(“t“);printf(“t* 2.显示车辆信息 *n“);printf(“n“);printf(“t“);printf(“t* 3.显示车辆总数 *n“);printf(“n“);printf(“t“);printf(“t* 4.保存退出系统 *n“);printf(“n“);printf(“t“);printf(“t* 请输入数字选择操作类型: *n“);printf(“n“);printf

14、(“t“);printf(“t*n“);n=getch();switch(n)case 1: input();break;case 2: show();break; case 3: all();break;case 4: writefile();break;default: break;void input() system(“cls“);printf(“请输入车辆信息n“);printf(“车牌号:n“);scanf(“%s“,printf(“车辆类型(a,b,c 分别代表大,中,小):n“);scanf(“%s“,vecount.variety);printf(“进入时间:n“);scan

15、f(“%d“,10printf(“入口(1,2,3 代表三个入口):n“);scanf(“%s“,count+;printf(“是否继续添加(Y/N)n“);if(getch()=y|getch()=Y) input();else menu();void show() system(“cls“);char number10;char id2;int i,R,de=0;double a,b,c,l1=200,l2=300,l3=400;/* 定义三个入口到出口的路程分别是 l1 l2 l3(200 300 400)公里*/printf(“nnnntt*n“);printf(“tt 请输入车牌号:

16、 n“);scanf(“%s“,for(i=0;icount;i+)if(strcmp(vei.num,number)=0) de+;printf(“tt 车辆信息情况: n“);printf(“tt 车辆类型:%s n“,vei.variety);printf(“tt 入口站:%s n“,vei.enter);printf(“tt 进入时间:%d n“,vei.entime);printf(“tt 车牌号:%s n“,vei.num);R=i;if(strcmp(veR.variety,“a“)=0printf(“tt 此车应缴费:%f 元 n“,a);else if(strcmp(veR.

17、variety,“a“)=0printf(“tt 此车应缴费:%f 元 n“,a);else if(strcmp(veR.variety,“a“)=0printf(“tt 此车应缴费:%f 元 n“,a);else if(strcmp(veR.variety,“b“)=0printf(“tt 此车应缴费:%f 元 n“,b);else if(strcmp(veR.variety,“b“)=0printf(“tt 此车应缴费:%f 元 n“,b);else if(strcmp(veR.variety,“b“)=0printf(“tt 此车应缴费:%f 元 n“,b);else if(strcmp

18、(veR.variety,“c“)=0printf(“tt 此车应缴费:%f 元 n“,c);else if(strcmp(veR.variety,“c“)=0printf(“tt 此车应缴费:%f 元 n“,c);else if(strcmp(veR.variety,“c“)=0printf(“ tt 此车应缴费:%f 元 n“,c);if(de=0)printf(“tt 此车记录为空 n“);12printf(“ttPlease press anykey to get back to mainmenu n“);printf(“tt*n“);id2=getch();menu();void w

19、ritefile() int i; if(fp=fopen(“vehicle.txt“,“w“)=NULL) printf(“n“);printf(“n“);printf(“n“);printf(“n“);printf(“t“);printf(“t“);printf(“*n“);printf(“t“);printf(“t“);printf(“n* 文件打开失败 *“); printf(“t“);printf(“t“);printf(“*n“); for (i=0;icount;i+) if(fwrite(printf(“n“);printf(“n“);printf(“n“);printf(“n

20、“);printf(“t“);printf(“t“);printf(“*n“);printf(“t“);printf(“t“);printf(“* 写入文件错误! *“); printf(“t“);13printf(“t“);printf(“*n“); fclose(fp);printf(“n“);printf(“n“);printf(“n“);printf(“n“);printf(“n“);printf(“t“);printf(“t“);printf(“*n“);printf(“t“);printf(“t“);printf(“* *n“);printf(“t“);printf(“t“);pr

21、intf(“* 通讯录文件已保存 *n“); printf(“t“);printf(“t“);printf(“* *n“);printf(“t“);printf(“t“);printf(“* *n“);printf(“t“);printf(“t“);printf(“*Please press anykey to exit *n“);printf(“t“);printf(“t“);printf(“*n“);exit(0); void all() system(“cls“);printf(“n“);printf(“n“);printf(“n“);printf(“n“);printf(“n“);pr

22、intf(“t“);printf(“t“);printf(“*n“);14printf(“t“);printf(“t“);printf(“* 车辆总数为:%d *n“,count);printf(“t“);printf(“t“);printf(“* *n“);printf(“t“);printf(“t“);printf(“* *n“);printf(“t“);printf(“t“);printf(“*Please press anykey to get back to mainmenu *n“);printf(“t“);printf(“t“);printf(“*n“);getch();menu

23、();三、测试及调试1、调试采用了输入数据模拟路口汽车收费。输入的数据及结果有(1)2222222 a 12 1 结果 100.000000 元(2)5678934 b 13 2 结果 120.000000 元(3)2233445 c 1 3 结果 120.000000 元2、在调试初期,由于程序输入时的许多错误,导致出现错误。后经仔细检查发现错误并及时更正。3、程序初期的界面没有做到界面友好,许多版面不够好看,看似程序粗糙,之后进行了一定程度的美化。四、小结(收获和建议)通过本次课程设计我学习到了要编写好一个完整性、可读性、健壮性好,效率与低存储量需求的 C 语言程序是十分不容易的。在经过很

24、长时间的努力之后,看着劳动成果,很欣慰!虽然程序的完成有他人的帮助,资料的查询。但是,这毕竟是完成的第一个 C 语言大程序。由此可见,平时扎实的基础是很关键,因为如果平时学得就不怎么样,那么面对这么一个比较有难度的程序,可能会望而却步,看他人的程序都是个难点,更别说自己去设计。所以我们在平时要扎实地打好基础,认真听课和完成作业,遇到不懂的要及时向他人寻求帮助。另外,编写 C 语言程序也是一个长期积累的过程,任何人都不可能一下子就能编出一个 C 语言程序,我们要经常练习,平时多看他人的程序,自己编写一些小程序,不仅可以减少在输入时的输入错误,还可以学习到一些改正错误的方法,不断完善自己,从而达到一个可以轻松编写 C 语言程序的人。五、程序截图15161718192021

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报