高速公路收费系统C语言课程设计报告.doc_第1页
高速公路收费系统C语言课程设计报告.doc_第2页
高速公路收费系统C语言课程设计报告.doc_第3页
高速公路收费系统C语言课程设计报告.doc_第4页
高速公路收费系统C语言课程设计报告.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计课程设计报告设计题目:高速公路计费系统设计学 号 班 级 姓 名 完成方式:(单选)自我评分:(单选)独立完成 优秀参考他人工作的基础上完成 良好在他人的帮助下完成 中等完整拷贝他人成果 及格 不及格2010年 3 月27日题目:高速公路计费系统设计功能:在某高速公路出口收费处,对三种类型的车辆计费,大型车每公里0。5元,中型车每公里0。4元,小型车每公里0。3元,来车验条,乘公里数即得该收的款项。在交班时要统计出总数。分步实施: 1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数; 2、完成最低要求:建立一个只有三个入口的计费系统,并能进行统计计算,打印出报表; 3、进一步要求:完成任意多个入口的通用系统。要求:1、用C语言实现程序设计;2、利用结构体数组实现信息的数据结构设计;3、系统的各个功能模块要求用函数的形式实现;4、界面友好(良好的人机交互),程序加必要的注释。课程设计实验报告要求:1、预习报告:题目、课程设计任务、数据结构、程序的总体设计(算法)、模块划分 。2、实验总结报告:流程图、主要源程序代码(需打印)、测试情况及调试中问题与解决方案、小结等。一、总体设计1、 仔细阅读系统要求,首先将此系统化分为如下模块(1)显示模块,是人机交互的界面,可引导操作员来完成程序的运行。比如:系统主界面(主菜单),包含了输入车辆信息,显示车辆信息,显示车辆总数,退出程序四个可选操作,操作员可直观地完成信息处理。(2)文件模块,可执行文件建立、文件保存、文件打开和文件写入等命令来操作处理和放置车辆信息的文件。(3)输入模块是操作员向程序输入的模块,可输入操作内容和车辆的有关信息,比如:输入车牌号、车辆类型、进入口、时间,程序自动计算得出车辆应缴纳的费用并保存在文件。(4)输出模块,通过程序计算,向操作员输出车辆信息、数据等(5)退出模块,可用一个函数exit()来实现,首先将信息保存到文件中,然后退出程序二、详细设计1、界面设计此系统界面采用符号和数字化菜单设计。主界面设计如下:欢迎使用高速公路收费系统主菜单1. 输入车辆信息2. 显示车辆信息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 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()/*从文件导入 */ 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) /*只写*/ 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); 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 get to mainmenu! *n); printf(t);printf(t); printf(* *n); printf(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)&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); 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; 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 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);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(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分别代表大,中,小):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=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.num);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.variety,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)=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 mainmenu 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 vehicle),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); 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 exit *n); printf(t);printf(t);printf(*n);exit(0); void all() system(cls);printf(n); printf(n); printf(n); printf(n); printf(n); 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);pri

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论