版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、*实践教学* 兰州理工大学计算机与通信学院2014年春季学期 C程序设计 课程设计题 目: 班车信息管理系统 专业班级: 计算机科学与技术6班姓 名: 苏志飞 学 号: 13240623 指导教师: 唐建新 成 绩:_ 0摘 要随着信息技术在管理上越来越广泛的的应用,管理系统的实施在技术上已逐步成熟,管理系统是一个不断发展的学科,任何部门,服务系统的展开都离不开信息技术管理。鉴于此我们开发了一个采用语言编辑的基本班车信息管理查询服务系统,该系统具备了 1录入班车相关信息。2查询信息(按班车的发车时间及其车号查找)。并输出班车当前所在信息。3信息的输出,显示所有班车信息,满足乘客的需求。4删除班
2、车信息,使班车服务流畅化。5状态转换。运用c语言,编写程序使得复杂的交通变得井然有序。就现在的交通设施,我们开展了此次c语言课程设计,从多方面提升自己的编译能力,为以后的专业开展奠定基础。关键词:信息管理,车票,班车目 录一、前言1二、需求分析2三、总体设计3四、详细设计41、数据定义42、算法流程图4五、编码6六、测试与分析7七、设计总结8参考文献9致谢10附 录11一、 前言传统的班车信息管理存在着许多的弊端,比如计算方面的误差、整个系统的管理和班车信息的查询等。伴随着信息时代的来临,信息处理器计算机的应用于班车信息的日常管理为班车管理的现代化带来了从未有过的动力和机遇,采用计算机管理信息
3、系统已成为班车信息管理科学化和现代化的重要标志给班车服务行业带来了明显的经济效益和社会效益。利用班车信息系统管理整个运行的过程,可以节省大量的时间和精力,有助于及时了解各个环节中信息的变更,有利于提高工作人员的工作效率。在此背景下,本文论述了班车管理系统的设计和实现。我们学习程序设计课程的目的掌握设计程序的思路,学习会用计算机语言编写程序,以实现所需要处理的任务。要正确处理算法与语法的关系,算法是程序的核心、是灵魂,语法是外壳、是工具。不应把学习重点放在语法规则上,语法是重要的,不掌握语法规则就无法编写出正确的程序。一定要把重点放在解题的思路上,通过思考,和大量的阅读,来构造一个完整的程序。因
4、为:重要的是学会编程,而不是背语法。其次,主要是学习程序设计的方法,进行程序设计的基本训练,学生应该把精力放在最基本,最常用的内容上,学好基本功,在基础上加强自己。二、需求分析2.1选题背景:随着计算机的普及,信息产业的发展,现在计算机已经被各个领域使用。传统班车信息管理存在着许多的弊端,比如计算方面的误差、整个系统的管理和班车信息的查询等。但是现在班车管理已经信息化、自动化,通过一些编程语言来实现,再经过实践来验证,最后就有一个完整的班车信息管理系统。它包括班车信息的录入、浏览和查询。2.2编写目的:通过对用户需求进行调查分析,做出需求分析文档作为项目设计的基本准则要求,以及作为系统分析员进
5、行系统分析和测试人员进行测试时的手册2.3需求概述:设计一个班车信息管理系统,使之能提供以下功能:1) 录入班车信息并保存,包括发车时间、班车车号、班车型号、车票价格2) 浏览全部车次信息,并按输入顺序显示3) 查询班车信息,可按车号和发车时间4) 班车信息的删除5)班车状态的转换6)班车信息管理系统的初始化 2.4需求说明:班车信息包括车号、发车时间、班车型号、车票价格录入的班车信息要求用文件形式保存,并可以对其进行浏览、查询、等操作;班车信息的显式要求有一定的规范格式所设计的系统应以菜单方式工作,应为用户提供清晰的使用提示,依据用户的选择来进行各种处理,并要求在此过程中能够尽可能的兼容用户
6、使用过程中的异常情况三、总体设计根据需求分析,本人按照结构化程序设计的原则将整个系统划分若干个功能模块。 系统各子模块的设计如图1所示。班车信息管理系统班车 信息输出班车信息录入班车 信息查询系统初始化班车 状态转换班车 信息删除退出图1 班车信息管理系统功能模块图四、详细设计1、数据定义结构体类型typedef struct char number10;/*班车车号*/ char time20; /*发车时间*/ char model20; /*班车型号*/ int price; /*车票价格*/ int state; /*班车状态*/mbus;typedef struct mbus bus
7、1000; int count; mstop; mstop stop;指针变量 FILE *fp; /*定义1文件型指针变量,指针名叫fp*/*fp指向file类型结构体的指针*/ fp=fopen(stop.txt,wt); /*以写的方式打开stop*/ fwrite(&stop.count,sizeof(int),1,fp); fwrite(stop.bus,sizeof(stop.bus1),stop.count+1,fp); fclose(fp); /*关闭文件*/ 2、 主要算法流程图录入函数流程 startvoid luru() /*车辆信息录入while(a!=0)printf
8、(录入班车信息n) 输入有误 end查询函数流程图 start满足指令 endprintf(tt2发车时间查询n); printf(tt1 型号查询n)对不起,输入有误显示所有班车信息startvoid shanchu()班车信息删除流程图满足要求请输入要删除的班车型号和发车时间 输入有误已经修改的班车信息end start状态转换函数流程图 void setstate()printf(请输入班车车号,转换班车的状态: );是否转换 转换后的班车信息 原有的班车信息end 班车信息输出五、编码只写步骤和思路,源代码见光盘(附录:6号New Roman, 行距固定10磅)。void main()
9、 int i; char ch=1; FILE *fp; /*定义1文件型指针变量,指针名叫fp*/*fp指向file类型结构体的指针*/ if(fp=fopen(stop.txt,rt)=NULL) /*以写的方式打开stop*/ stop.count=0;else fread(&stop.count,sizeof(int),1,fp); fread(stop.bus,sizeof(stop.bus1),stop.count+1,fp); fclose(fp);/*关闭文件*/ printf(nnnttt欢迎使用班车管理系统!nt); /*班车管理系统欢迎界面*/ printf(操作说明:n
10、); printf( 1.数据输入完成后按 Enter 键确认.n); printf( 2.班车信息当中车费价格,车号只能是整数.n); printf( 3.班车信息状态栏中,1表示未发车,0表示已发车.n); printf( 4.对于录入的班车信息的状态,系统默认为1n); printf( 5.请严格按照要求操作.n); printf(nnttt请按任意键继续.); getch(); while(ch!=0) printf(nnnnn); printf(ttttt 班车管理系统n); /*班车管理系统菜单选项*/ for(i=0;i80;i+ ) printf(*); printf(n);
11、printf(tt1-班车信息录入n); printf(tt2-班车信息查询n); printf(tt3-班车信息输出n); printf(tt4-删除班车信息n); printf(tt5-系统初始化n); printf(tt6-班车状态转换n); printf(tt0-退出n); /*班车管理系统各个选项及其后继步骤*/ scanf(%c,&ch); switch(ch) case 1: luru(); break; case 2: search(); break; case 3: print(); break; case 4: shanchu(); break; case 5: initi
12、ate(); break; case 6: setstate(); break; default: break; printf(nnnnnnnnntttt谢谢使用!); /*班车管理系统关闭状态*/ getch(); void save() FILE *fp; /*定义1文件型指针变量,指针名叫fp*/*fp指向file类型结构体的指针*/ fp=fopen(stop.txt,wt); /*以写的方式打开stop*/ fwrite(&stop.count,sizeof(int),1,fp); fwrite(stop.bus,sizeof(stop.bus1),stop.count+1,fp);
13、 fclose(fp); /*关闭文件*/ void luru() /*车辆信息录入*/ while(a!=0) stop.count+; printf(录入班车信息n); printf(请输入班车车号: ); scanf(%s,stop.busstop.count.number); printf(请输入型号: ); scanf(%s,stop.busstop.count.time); printf(请输入发车时间: ); scanf(%s,stop.busstop.count.model); printf(请输入车费标价: ); fflush(stdin); scanf(%d,&stop.b
14、usstop.count.price); stop.busstop.count.state=1; printf(退出请按 0 ,继续请按 1 :); /*班车信息录入结束*/ scanf(%d,&a); save();void search() /*车辆信息查询*/ int a=0; printf(-班车信息查询-n); printf(tt1- 型号查询n); printf(tt2-发车时间查询n); printf(请选择查询方式: ); scanf(%d,&a); switch (a) case 1: search_by_time(); break; case 2: search_by_mo
15、del(); break; default: break; void search_by_time() int n=1,i; char a20; printf(请输入你要查找班车的型号: ); scanf(%s,a); printf(车号 t型号 t发车时间 t车费 t状态n); for(i=1;i=stop.count;i+) if(strcmp(a,stop.busi.time)=0) printf(%stt%stt%stt%dtt%dn,stop.busi.number,stop.busi.time,stop.busi.model,stop.busi.price,stop.busi.st
16、ate); /* 显示车号 型号 发车时间 车费 车辆状态*/ n=0; if(n=1) /*如果没有数据显示对不起.*/ printf(对不起,没有相应信息 ); getch();void search_by_model()char a20; int n=1,i; printf(请输入你要查找班车的发车时间: ); scanf(%s,a); printf(车号t 型号t 发车时间t 价格t 状态n); for(i=1;i=stop.count;i+) if(strcmp(a,stop.busi.model)=0) printf(%stt%stt%stt%dtt%dn,stop.busi.nu
17、mber,stop.busi.time,stop.busi.model,stop.busi.price,stop.busi.state); /* 显示车号 型号 发车时间 车费 车辆状态*/ n=0; if(n=1) /*如果没有数据显示对不起.*/ printf(对不起,没有相应信息 ); getch();void print() int i,n; printf(车号t 型号t 发车时间t 价格t 状态n); printf(%stt%stt%stt%dtt%dn,stop.busi.number,stop.busi.time,stop.busi.model,stop.busi.price,s
18、top.busi.state); /* 显示车号 型号 发车时间 车费 车辆状态*/ getch(); void shanchu() /* 班车信息删除*/ int i,j,ch,n=0; char a20,b20; printf(-班车信息删除-n); printf(请输入要删除的班车的型号和发车时间n); printf(t型号:); scanf(%s,a); printf(t发车时间: ); scanf(%s,b); for(i=1;i=stop.count;i+) if(strcmp(a,stop.busi.time)=0&strcmp(b,stop.busi.model)=0 ) n=
19、i; printf(车号t 型号t 发车时间t 价格t 状态n); printf(%stt%stt%stt%dtt%dttn,stop.busi.number,stop.busi.time,stop.busi.model,stop.busi.price,stop.busi.state); /* 显示车号 型号 发车时间 车费 车辆状态*/ printf(是否删除信息 ? 1(是),0(否) ); scanf(%d,&ch); if(ch=1) for(j=i+1;j=stop.count;j+) stop.busj-1=stop.busj; stop.count-; else break; s
20、ave(); if(n=0) printf(班车信息输入有误); getch(); void initiate() int i; FILE *fp; /*定义1文件型指针变量,指针名叫fp*/*fp指向file类型结构体的指针*/ fp=fopen(stop.txt,wt); /*以写的方式打开stop*/ printf(系统初始化后系统所有信息将全部丢失,n); printf(是否仍选择初始化?(是(1),否(0)); scanf(%d,&i); if(i=1) stop.count=0; save(); fclose(fp); /*关闭文件*/ return; return; void s
21、etstate() /*班车状态转换*/ int i,a,n=1; char ch20; printf(请输入班车车号,转换班车的状态: ); scanf(%s,ch); for(i=1;i=stop.count+1;i+) if(strcmp(ch,stop.busi.number)=0 ) printf(车号t 型号t 发车时间t 价格t 状态n); printf(%stt%stt%stt%dtt%dn,stop.busi.number,stop.busi.time,stop.busi.model,stop.b printf(状态转换(是 (1),否(0) : ); scanf(%d,&a
22、); if(a=1) if(stop.busi.state=1) stop.busi.state=0; else if(stop.busi.state=0 ) stop.busi.state=1 ; save(); 6、 测试与分析1欢迎及操作说明界面运行结果2菜单界面运行结果3录入班车信息运行结果4班车信息查询运行结果5班车信息输出运行结果:6班车信息删除运行结果3667班车信息初始化运行结果:8班车状态转换运行结果: 七、设计总结通过此次课程设计,使我更加扎实的掌握了有关c语言方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了
23、前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。过而能改,善莫大焉。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于游逆而解。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对
24、你的认可!回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识
25、,收获颇丰。参考文献1姜灵芝,余健. C语言课程设计案例精编.北京:清华大学出版社,20082王新,孙雷. C语言课程设计.北京:清华大学出版社,20093游洪跃、彭骏、谭斌.C语言程序设计实验与课程设计教程.北京:清华大学出版社,20114王连相.C/C+程序设计上机指导与测试. 北京:中国铁道出版社,20065C语言函数手册,机械工业出版社,1999致谢本课题在选题及进行过程中得到唐老师的悉心指导。论文行文过程中,唐老师多次帮助我分析思路,开拓视角,在我遇到困难想放弃的时候给予我最大的支持和鼓励。唐老师严谨求实的治学态度,踏实坚韧的工作精神,将使我终生受益。再多华丽的言语也显苍白。在此,谨
26、向唐老师致以诚挚的谢意和崇高的敬意。 附 录小五,Times New Raman,行距:固定行距10磅#include#include#include#includevoid save();void luru(); void search();void search_by_time();void search_by_model();void print();void shanchu();void initiate();void setstate();typedef struct char number10;/*班车车号*/ char time20; /*发车时间*/ char model20;
27、 /*班车型号*/ int price; /*车票价格*/ int state; /*班车状态*/mbus; typedef struct mbus bus1000; int count; mstop; mstop stop;void main() int i; char ch=1; FILE *fp; /*定义1文件型指针变量,指针名叫fp*/*fp指向file类型结构体的指针*/ if(fp=fopen(stop.txt,rt)=NULL) /*以写的方式打开stop*/ stop.count=0; else fread(&stop.count,sizeof(int),1,fp); fre
28、ad(stop.bus,sizeof(stop.bus1),stop.count+1,fp); fclose(fp);/*关闭文件*/ system(graftabl 936); /*调用Ms-Dos中文支持 */ printf(nnnttt欢迎使用班车管理系统!nt); /*班车管理系统欢迎界面*/ printf(操作说明:n); printf( 1.数据输入完成后按 Enter 键确认.n); printf( 2.班车信息当中车费价格,车号只能是整数.n); printf( 3.班车信息状态栏中,1表示未发车,0表示已发车.n); printf( 4.对于录入的班车信息的状态,系统默认为1
29、n); printf( 5.请严格按照要求操作.n); printf(nnttt请按任意键继续.); getch(); while(ch!=0) printf(nnnnn); printf(ttttt 班车管理系统n); /*班车管理系统菜单选项*/ for(i=0;i80;i+ ) printf(*); printf(n); printf(tt1-班车信息录入n); printf(tt2-班车信息查询n); printf(tt3-班车信息输出n); printf(tt4-删除班车信息n); printf(tt5-系统初始化n); printf(tt6-班车状态转换n);printf(tt0-
30、退出n); for(i=0;i80;i+ ) printf(*); printf(nn);printf( t请输入你的选择: ); /*班车管理系统各个选项及其后继步骤*/ scanf(%c,&ch); switch(ch) case 1: luru(); break; case 2: search(); break; case 3: print(); break; case 4: shanchu(); break; case 5: initiate(); break; case 6: setstate(); break; default: break; printf(nnnnnnnnnttt
31、t谢谢使用!); /*班车管理系统关闭状态*/ getch(); void save() FILE *fp; /*定义1文件型指针变量,指针名叫fp*/*fp指向file类型结构体的指针*/ fp=fopen(stop.txt,wt); /*以写的方式打开stop*/ fwrite(&stop.count,sizeof(int),1,fp); fwrite(stop.bus,sizeof(stop.bus1),stop.count+1,fp); fclose(fp); /*关闭文件*/ void luru() /*车辆信息录入*/int a=1; while(a!=0) stop.count+
32、; printf(录入班车信息n); printf(请输入班车车号: ); scanf(%s,stop.busstop.count.number); printf(请输入型号: ); scanf(%s,stop.busstop.count.time); printf(请输入发车时间: ); scanf(%s,stop.busstop.count.model); printf(请输入车费标价: ); fflush(stdin); scanf(%d,&stop.busstop.count.price); stop.busstop.count.state=1; printf(退出请按 0 ,继续请按
33、 1 :); /*班车信息录入结束*/ scanf(%d,&a); save();void search() /*车辆信息查询*/ int a=0; printf(-班车信息查询-n);printf(tt1- 型号查询n); printf(tt2-发车时间查询n); printf(请选择查询方式: ); scanf(%d,&a); switch (a) case 1: search_by_time(); break; case 2: search_by_model(); break; default: break; void search_by_time() int n=1,i; char a
34、20; printf(请输入你要查找班车的型号: ); scanf(%s,a); printf(车号 t型号 t发车时间 t车费 t状态n); for(i=1;i=stop.count;i+) if(strcmp(a,stop.busi.time)=0) printf(%stt%stt%stt%dtt%dn,stop.busi.number,stop.busi.time,stop.busi.model,stop.busi.price,stop.busi.state); /* 显示车号 型号 发车时间 车费 车辆状态*/ n=0; if(n=1) /*如果没有数据显示对不起.*/ printf(
35、对不起,没有相应信息 ); getch();void search_by_model()char a20; int n=1,i; printf(请输入你要查找班车的发车时间: ); scanf(%s,a); printf(车号t型号t发车时间t价格t状态n); for(i=1;i=stop.count;i+) if(strcmp(a,stop.busi.model)=0) printf(%stt%stt%stt%dtt%dn,stop.busi.number,stop.busi.time,stop.busi.model,stop.busi.price,stop.busi.state); /*
36、显示车号 型号 发车时间 车费 车辆状态*/ n=0; if(n=1) /*如果没有数据显示对不起.*/ printf(对不起,没有相应信息 ); getch();void print() int i,n; printf(车号t 型号t 发车时间t 价格t 状态n); for(i=1;i=stop.count;i+) printf(%stt%stt%stt%dtt%dn,stop.busi.number,stop.busi.time,stop.busi.model,stop.busi.price,stop.busi.state); /* 显示车号 型号 发车时间 车费 车辆状态*/ getch(); void shanchu() /* 班车信息删除*/ int i,j,ch,n=0; char a20,b20; printf(-班车信息删除-n); printf(请输入要删除的班车的车号和发车时间
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度地下车库买卖合同附带车位管理及增值服务协议3篇
- 2024年度员工职务行为规范及保密协议书3篇
- 2024年国家重大水利工程土方运输合同示范文本3篇
- 2024年度医疗设备租赁合作协议范本3篇
- 共同性斜视病因介绍
- 游戏安全的玩法
- 新疆警察学院《通信工程学》2023-2024学年第一学期期末试卷
- 白血病靶向药物研究报告
- 《人文精神的发展》课件
- 技术加盟合同范例封面
- DLT 754-2013 母线焊接技术规程
- 2021-2022学年上海市金山区海棠小学牛津上海版(试用本)三年级上册期末学业水平调研英语试卷
- 美食文创计划书
- 江西省赣州市赣县区2022-2023学年四年级上学期期末检测英语试卷
- GB/T 43439-2023信息技术服务数字化转型成熟度模型与评估
- 废水处理系统点检表
- 干湿球温度湿度换算表
- 儿童英文自我介绍演讲PPT模板(完整版)
- 请款单(可直接打印-标准模板)
- 最专业的无人机中文英语对应词汇
- 高中学生学籍表模板(范本)
评论
0/150
提交评论