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

上传人:doc321 文档编号:14921558 上传时间:2022-02-24 格式:DOC 页数:21 大小:557KB
返回 下载 相关 举报
高速公路收费系统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页
点击查看更多>>
资源描述

《高速公路收费系统C语言课程设计报告.doc》由会员分享,可在线阅读,更多相关《高速公路收费系统C语言课程设计报告.doc(21页珍藏版)》请在三一文库上搜索。

1、C语言程序设计课程设计报告设计题目:高速公路计费系统设计学 号 班 级 姓 名 完成方式:(单选)自我评分:(单选)独立完成 优秀参考他人工作的基础上完成 良好在他人的帮助下完成 中等完整拷贝他人成果 及格 不及格2010年 3 月27日题目:高速公路计费系统设计功能:在某高速公路出口收费处,对三种类型的车辆计费,大型车每公里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、界面设计此系统界面采用符号和数字化菜单设计。主界面设计如下:欢迎使用高速公路收费系统主菜单1. 输入车辆信息2. 显示车辆信息

4、3. 显示车辆总数4. 保存退出系统请输入数字选择操作类型:2、流程图3、数据结构设计:程序设计中用到的结构体类型: 车辆信息结构体类型: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*/struct vehicle/*车辆信息*/char

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

6、)/*从文件导入 */ 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);printf(t);printf(*n); if(fp=fopen(vehicle.txt,w)=NULL) /*只写*/

7、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(*n);exit(0); /*正常退出*/ else printf(n);printf(n);printf(n);printf(n); printf(t);printf(t); print

8、f(*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 get to mainmenu! *n); printf(t);printf(t); printf(* *n); printf(t);printf(t); printf(*n); getch(); return; exit(0); fseek(fp,0,2)

9、; /*文件指针fp指到到文件末尾*/ if(ftell(fp)0) /*文件不为空*/ fseek(fp,0,0);/*文件指针指到文件开始位置*/ for(count=0;!feof(fp)&fread(&vecount,sizeof(struct vehicle),1,fp);count+); 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); prin

10、tf(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);printf(*n);getch(); return; printf(n);printf(n);printf(n);printf(n);printf(t);printf(t);printf(*n);printf(t);printf(t);printf(* *n);printf(t)

11、;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);printf(*n);getch(); return; void menu()system(cls);/*清屏*/char n;printf(n);printf(n);printf(n);printf(n

12、);printf(t);printf(t*n);printf(n);printf(t);printf(t* 欢迎使用高速公路收费系统 *n);printf(n);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

13、);printf(t* 请输入数字选择操作类型: *n);printf(n);printf(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,&vecount.num); printf(车辆类型(a,b,c分别代表大,中

14、,小):n); scanf(%s,vecount.variety); printf(进入时间:n); scanf(%d,&vecount.entime); printf(入口(1,2,3代表三个入口):n); scanf(%s,&vecount.enter); 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=

15、400;/* 定义三个入口到出口的路程分别是l1 l2 l3(200 300 400)公里*/printf(nnnntt*n);printf(tt 请输入车牌号: n);scanf(%s,&number);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.n

16、um);R=i; if(strcmp(veR.variety,a)=0&strcmp(veR.enter,1)=0) a=0.5*l1; printf(tt 此车应缴费:%f元 n,a); else if(strcmp(veR.variety,a)=0&strcmp(veR.enter,2)=0) a=0.5*l2; printf(tt 此车应缴费:%f元 n,a); else if(strcmp(veR.variety,a)=0&strcmp(veR.enter,3)=0) a=0.5*l3; printf(tt 此车应缴费:%f元 n,a);else if(strcmp(veR.varie

17、ty,b)=0&strcmp(veR.enter,1)=0) b=0.4*l1; printf(tt 此车应缴费:%f元 n,b); else if(strcmp(veR.variety,b)=0&strcmp(veR.enter,2)=0) b=0.4*l2; printf(tt 此车应缴费:%f元 n,b); else if(strcmp(veR.variety,b)=0&strcmp(veR.enter,3)=0) b=0.4*l3; printf(tt 此车应缴费:%f元 n,b); else if(strcmp(veR.variety,c)=0&strcmp(veR.enter,1)

18、=0) c=0.3*l1; printf(tt 此车应缴费:%f元 n,c); else if(strcmp(veR.variety,c)=0&strcmp(veR.enter,2)=0) c=0.3*l2; printf(tt 此车应缴费:%f元 n,c); else if(strcmp(veR.variety,c)=0&strcmp(veR.enter,3)=0) c=0.3*l3; printf( tt 此车应缴费:%f元 n,c); if(de=0)printf(tt 此车记录为空 n);printf(ttPlease press anykey to get back to mainm

19、enu n);printf(tt*n); id2=getch();menu();void writefile() 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(&vei,sizeof(struct vehic

20、le),1,fp)!=1) printf(n); printf(n); printf(n); printf(n); printf(n); printf(t);printf(t); printf(*n); printf(t);printf(t); printf(* 写入文件错误! *); printf(t);printf(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); prin

21、tf(* *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 exit *n); printf(t);printf(t);printf(*n);exit(0); void all() system(cls);printf(n); printf(n); printf(n); printf(n); printf(n)

22、; printf(t);printf(t);printf(*n);printf(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();三、测试及调试1、调试采用了输入数据模拟路口汽车收费。输入的

23、数据及结果有(1) a 12 1 结果100.000000元(2) b 13 2 结果120.000000元(3) c 1 3 结果120.000000元2、在调试初期,由于程序输入时的许多错误,导致出现错误。后经仔细检查发现错误并及时更正。3、程序初期的界面没有做到界面友好,许多版面不够好看,看似程序粗糙,之后进行了一定程度的美化。四、小结(收获和建议)通过本次课程设计我学习到了要编写好一个完整性、可读性、健壮性好,效率与低存储量需求的C语言程序是十分不容易的。在经过很长时间的努力之后,看着劳动成果,很欣慰!虽然程序的完成有他人的帮助,资料的查询。但是,这毕竟是完成的第一个C语言大程序。由此可见,平时扎实的基础是很关键,因为如果平时学得就不怎么样,那么面对这么一个比较有难度的程序,可能会望而却步,看他人的程序都是个难点,更别说自己去设计。所以我们在平时要扎实地打好基础,认真听课和完成作业,遇到不懂的要及时向他人寻求帮助。另外,编写C语言程序也是一个长期积累的过程,任何人都不可能一下子就能编出一个C语言程序,我们要经常练习,平时多看他人的程序,自己编写一些小程序,不仅可以减少在输入时的输入错误,还可以学习到一些改正错误的方法,不断完善自己,从而达到一个可以轻松编写C语言程序的人。五、程序截图21 / 21文档可自由编辑打印

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1