报告车票管理系统_第1页
报告车票管理系统_第2页
报告车票管理系统_第3页
报告车票管理系统_第4页
报告车票管理系统_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、i 目 录第一章 课程设计目的和要求 . 11.1 课程设计的目的 . . 1 1.2 课程设计的基本要求 . 1第二章 课程设计任务内容 . 22.1 考核内容 . 22.1.1 编写的 c+ 语言程序 . 22.1.2 课程设计报告 . 22.2 课题 . 2第三章 详细设计说明 . 33.1 模板设计图 . 33.2 函数模块、功能分析、参数说明. 33.2.1 退票模块 . 33.2.2 订票模块 . 43.2.3 查询模块 . 53.2.4 程序中主要函数 . 63.3 函数流程图 . 7第四章 编码与调试 . 74.1 软件与测设 . 8 4.2 运行结果及截图 . 8第五章 课程

2、设计心得与体会 . 10附录 1参考文献 . 12附录 2程序清单 . 13程序设计综合课程设计1 课程设计基础课程设计车票管理系统第一章 课程设计目的和要求高级语言课程设计的主要目的是培养学生能够提高综合应用语言的能力,通过课程设计的训练,使学生能及时巩固已学的知识,补充未学的但有必要的内容,掌握应用计算机解决实际问题的基本方法,熟悉程序开发的全过程,提高综合应用语言的能力。高级语言程序设计的主要任务是要求学生遵循软件开发过程的基本规范,运用结构程序设计的方法按照课程设计的题目要求,分析,编写,调试和测试高级语言程序及编写设计报告。1.1 课程设计的目的1. 巩固和掌握高级语言程序设计基本概

3、念; 2. 掌握基本的程序设计方法; 3. 掌握开发软件所需的需求定义能力; 4. 提高书写程序设计说明文档的能力; 5. 提高综合运用高级语言的能力,强化编程和调试能力。1.2 课程设计的基本要求 1. 根据所给的课程设计题目,分析课程设计题目的要求; 2. 对系统功能模块进行分析,写出详细的设计说明文档; 3. 编写程序代码,调试所编写程序使其能正确运行; 4. 设计完成的软件便于完成和使用; 5. 设计完成后提交课程设计报告;程序设计综合课程设计2 第二章 课程设计任务内容2.1 考核内容2.1.1 编写的 c+ 语言程序1. 针对编写的 c+ 程序,应该主要考查下列内容:2. 是否符合

4、题目要求,是否完成了主要功能;3. 是否存在语法错误、逻辑错误及运行错误;4. 程序设计是否合理;5. 程序是否具有良好的可读性和可靠性;6. 是否符合结构化程序设计所倡导的基本理念;7. 用户界面是否友好。2.1.2 课程设计报告1. 针对提交的课程设计报告,应该主要考查下列内容;2. 程序设计的报告内容是否全面,观点是否正确;3. 设计过程是否符合结构化程序设计方法的基本原则;4. 层次是否清楚,语言是否通顺;5.各种图表是否规范;是否具有良好的程序设计习惯。2.2 课题设计一个车票信息管理系统,使之能提供以下功能:1. 录入车次信息并保存 ,包括班次、发车时间、起点站、终点站、行车时间、

5、额定载量、定票人数。2. 浏览全部车次信息,并按输入顺序显示。3. 查询班车信息,可按车次或终点站4. 售票和退票功能程序设计综合课程设计3 第三章 详细设计说明3.1 模板设计图该系统可以按功能进行模块划分,其模块如图3-1 所示:图 3-1 模板设计图其中:1. 信息输入模块完成班次信息的输入功能,输入信息包括班次、发车时间、起点站、终点站、行车时间、额定载量、定票人数等;2. 信息浏览模块完成已录入职工信息的显示;3. 信息查询模块完成班次信息的查询,查询时对应有按班次查询和按终点站查询两种方式;4. 售票和退票模块完成车票的购买和退订的功能;5. 菜单选择模块完成用户命令的接收,此模块

6、也是车票管理系统的入口,用户所要进行的各种操作均需在此模块中进行选择并进而调用其他模块实现相应的功能;3.2 函数模块、功能分析、参数说明3.2.1 退票模块 (back_ticket() )记录输入数字,记录输入字符,请输入您要退的班次,当车次号码与输入号码相同,canpan()函数返回 1,既发车时间大于当前时间时打印the train is started ,车次号码与输入号码相同,canpan() 函数返回 0,既发车时间小于当前时间,用户确认信息,确认时间,起始站终点站,退票成功已售票数减一。当满足输入车次程序设计综合课程设计4 与已有车次号码相同,当前时间大于发车时间,进入确认信息

7、,当用户看完确认信息同意后,退票成功,退票成功后,已售车票减一,记录到文件中,如图3-2所示:图 3-2 退票模式3.2.2 订票模块用了 void buy_system(),首先定义记录输入班次号码,输入想买车票的班次,用数组起始开始查找,输入班次与数组中的班次相同,但已买票大于或等于最大人数是打印票已卖完。输入班次与数组中的班次相同,已买票小于最大人数,但函数 canpan() 返回 1,即发车时间大于当前时间时打印此车已开,给出确认信息,包括发车时间,起始站终点站,让用户确认。购买成功已买票加一。当满足输入车次与已有车次号码相同,当前时间大于发车时间,且已售车票小于最大人数时,进入确认信

8、息,当用户看完确认信息同意后,购买成功,购买成功后,已售车票加一,并记录到文件中,答应购买成功信息。不满足时打印相应提示信息。此模块调用 save(),canpan() 两个函数,在退票模块中同样包含,如图3-3 所示:程序设计综合课程设计5 图 3-3 订票模式3.2.3 查询模块显示查询菜单( searsh() ) ,显示菜单,选择数字输入,查询菜单包括6 个选项,0-5,用户按需要输入数字, (按车次查询)模块(searsh1() ) ,定义变量记录输入班次,班次,发车时间,起点,终点,行车时间(小时),额定载量,已定票人数状态,查询车次是否开出。要求用户输入起始站或终点站,而查询到的是

9、起始站或终点站为所输入相同的车次的全部信息。此中用了search 函数,查询信息。如图 4-3 所示:程序设计综合课程设计6 图 3-4 查询模式3.2.4 程序中主要函数主函数,input()函数,output()函数,check1() 函数,check2() 函数,order()函数, switch选择语句, for循环语句,这些基本函数构成了程序的主要支架,主函数调用其他子函数, input ()函数输入车次信息, output ()函数输出所需输出的基本信息, order ()函数订购车票信息, switch ()在主界面中选择自己要输入输出的信息,是程序便于控制和管理,总之,使用这些

10、函数使程序更加玩善。程序设计综合课程设计7 3.3 函数流程图n n n 图 3-5 函数流程图开始主菜单选 择菜单订票界面订票选 择查询车次查询车票选择退票退票结束程序设计综合课程设计8 第四章 编码与调试4.1 软件与测设打开软件后,界面会出现你所需要的功能,根据你要进行的操作来选择。4.2 运行结果及截图 1.在程序运行成功时,出现此界面,界面中,可根据自己所需的进行操作图4-1 所示:图 4-1 主菜单 2.首先根据主菜单提示的信息,录入班次信息,如图4-2 所示:图 4-2 输入内容 3.在主菜单中选择 2,浏览班次信息,出现所有的班次信息。如图4-3 所示:程序设计综合课程设计9

11、图 4-3 录入的车次4. 在主菜单中输入 3, 查询班次信息,如图4-4 所示:图 4-4 查询菜单 5. 在查询菜单中输入1, 按车次查询, 查询班次为 14的车,如图 4-5 所示:图 4-5 查询车次14 6返回查询菜单,输入2 进入精确查询,如图4-6 所示:程序设计综合课程设计10 图 4-6 精确查询长沙到广州的车次7. 返回查询菜单输入3,进入粗略查询,如图4-7 所示:图 4-7 粗略查询经过长沙的车次8. 返回主菜单,输入4,进入售票系统,购买14 号车。如图 4-8 所示:图 4-8 购买 14 车次车票程序设计综合课程设计11 第五章 课程设计心得与体会课程设计是培养学

12、生综合运用所学知识,发现,提出,分析和解决实际问题 ,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,程序设计已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握程序设计是十分重要的。回顾起此次课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整三星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识

13、与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,一定把以前所学过的知识重新温故。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在老师的辛勤指导下,终于游逆而解。同时,在老师的身上我学得到很多实用的知识,在次我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!程序设计综合课程设计12 附录 1 参考文献1 谭浩

14、强c+ 程序设计清华大学出版社2严蔚敏数据结构清华大学出版社程序设计综合课程设计13 附录 2 程序清单#include #include #include #include #include #includestring.h const int max=20; const int n=50; const int maxfilename=100; enum false,true; struct time int hour; int minutes; ; struct ticket int serialnumber; struct time setout; char departurepoint

15、max; char terminalpointmax; float lasttime; int fixnumber; int fixednumber; carn; int recordnumber; 程序设计综合课程设计14 int flag=false; /*/ int showmessage(void); / 载入原始数据void mainmenu(void); / 主菜单void insertmessage(void); /录入班次信息void searchmenu(void); / 查询路线子菜单void searchbynumber(void); /按班次号查询void search

16、byaddress(void); /按终点站查询void ticketmanagement(void); /车票售出与退回void ticketorder(void); / 售票void ticketdelete(void); / 退票void exit(void); / 退出该系统void saverecord(ticket x); / 储存信息到文件中/*/ int main(void) do mainmenu(); while(flag=false); return 0; void mainmenu(void) system(color 1f); system(mode con: col

17、s=140 lines=130); char functionnumber; printf( 车票管理系统 nn); printf( 制作:b08011203n); printf( 日期:2009/05/31/19:57n); 程序设计综合课程设计15 printf(=n); printf( 1. 录入班次信息 tn); printf( 2. 浏览班次信息 tn); printf( 3. 查询行车路线 tn); printf( 4. 售票与退票系统 tn); printf( 5. 退出该系统 tn); printf(=n); printf(请选择你所需要的功能 :); scanf(%c,&am

18、p;functionnumber); switch(functionnumber) case 1: insertmessage(); printf(n按任意键回主菜单 .n); getchar(); getchar(); break; case 2: recordnumber=showmessage(); printf(n按任意键回主菜单 .n); getchar(); getchar(); break; 程序设计综合课程设计16 case 3: searchmenu(); printf(n按任意键回主菜单 .n); getchar(); getchar(); break; case 4: t

19、icketmanagement(); getchar(); getchar(); break; case 5:flag=true;exit();break; default: printf(输入错误 , 请确保你的输入为1-5.n); printf(按任意键回主菜单 .n); getchar(); getchar(); /switch ends flag=false; void insertmessage(void) file *fp; 程序设计综合课程设计17 char filenamemaxfilename; int i; printf(请输入文件名或者文件路径名:); scanf(%s,

20、filename); if(fp=fopen(filename,r)=null) printf(文件%s不可读,请确认文件 %s存在或者文件路径正确.nn,filename,filename); mainmenu(); for(i=recordnumber;!feof(fp)&!ferror(fp);i+) fscanf(fp,%d%d%d,&cari.serialnumber,&cari.setout.hour,&cari.setout.minutes); fscanf(fp,%s%s%f%d%d,&cari.departurepoint,&c

21、ari.terminalpoint,&cari.lasttime,&cari.fixnumber,&cari.fixednumber); saverecord(*(car+i); recordnumber=i; /*输出更新后的订票记录*/ printf(班次t发车时间 t 起点t终点t 行车时间 ( 小时)t额定载量 t 已定票人数n); for(i=0;irecordnumber;i+) printf(%dt%d:%dtt,cari.serialnumber,cari.setout.hour,cari.setout.minutes); printf(%st%stt%

22、.1ft %dtt%dn,cari.departurepoint,cari.terminalpoint,cari.lasttime,cari.fixnumber,cari.fixednumber); 程序设计综合课程设计18 fclose(fp); int showmessage(void) int i; file *fp; if(fp=fopen(add.txt,r)=null) printf(读取数据失败 , 请检查文件 add.txt是否存在 .n); exit(-1); for(i=recordnumber;!feof(fp)&!ferror(fp);i+) fscanf(fp

23、,%d%d%d,&cari.serialnumber,&cari.setout.hour,&cari.setout.minutes); fscanf(fp,%s%s%f%d%d,&cari.departurepoint,&cari.terminalpoint,&cari.lasttime,&cari.fixnumber,&cari.fixednumber); int count=i; printf(班次t发车时间 t 起点t终点t 行车时间 ( 小时)t额定载量 t 已定票人数n); for(i=0;itm_hour=cari.s

24、etout.hour&now-tm_mincari.setout.minutes)|(now-tm_hourcari.setout.hour) printf(此车已发出 ); printf(n); return count; void searchmenu(void) system(color 1f); system(mode con: cols=140 lines=130); char functionnumber; printf( 查询子菜单 n); printf(=n); printf( 1. 按班次号查询 tn); printf( 2. 按终点站查询 tn); printf(

25、3. 返回主菜单 tn); printf(=n); printf(请选择你所需要的功能 :); scanf(%*c%c,&functionnumber); switch(functionnumber) 程序设计综合课程设计20 case 1:searchbynumber();break; case 2:searchbyaddress();break; case 3: getchar(); mainmenu(); break; default: printf(输入错误 , 请确保你的输入为1-3.n); printf(按任意键回查询子菜单 .n); getchar(); getchar(

26、); searchmenu(); void searchbynumber(void) int searchnumber; printf(请输入要查询的班次号 :); scanf(%d,&searchnumber); printf(班次t发车时间 t 起点t终点t 行车时间 ( 小时)t额定载量 t 已定票人数n); printf(%dt%d:%dtt,carsearchnumber-1.serialnumber,carsearchnumber-1.setout.hour,carsearchnumber-1.setout.minutes); printf(%st%stt%.1ft %dt

27、t%dn,carsearchnumber-1.departurepoint,carsearchnumber-1.terminalpoint,carsearchnumber-1.lasttime,carsearchnumber-1.fixnumber,carsearchnumber-1.fixednumber); void searchbyaddress(void) 程序设计综合课程设计21 int i; char addressmax; printf(请输入终点站的名称 :); scanf(%s,&address); printf(班次t发车时间 t 起点t终点t 行车时间 ( 小时)

28、t额定载量 t 已定票人数n); for(i=0;irecordnumber;i+) / 对比终点站记录,找到并输出 if(strcmp(address,cari.terminalpoint)=0) printf(%dt%d:%dtt,cari.serialnumber,cari.setout.hour,cari.setout.minutes); printf(%st%stt%.1ft %dtt%dn,cari.departurepoint,cari.terminalpoint,cari.lasttime,cari.fixnumber,cari.fixednumber); void ticke

29、tmanagement(void) char functionnumber; system(color 1f); system(mode con: cols=140 lines=130); printf( 订票与退票菜单 n); printf(=n); printf( 1. 订票tn); printf( 2. 退票tn); 程序设计综合课程设计22 printf( 3. 返回主菜单 .n); printf(=n); printf(选择你需要的功能 :); scanf(%*c%c,&functionnumber); switch(functionnumber) case 1: ticke

30、torder(); /getchar(); /getchar(); break; case 2:ticketdelete();break; case 3: getchar(); mainmenu(); break; default: printf(输入错误 , 请确保你的输入为1-3.n); printf(按任意键回主菜单 .n); getchar(); getchar(); mainmenu(); 程序设计综合课程设计23 void ticketorder(void) int i; printf(请输入要订购的车票的班次:); scanf(%d,&i); if(irecordnumb

31、er) printf(对不起,今天没有这趟车 , 请明天再来,谢谢使用 !n); printf(按任意键回主菜单 .n); getchar();/getchar(); ticketmanagement(); time_t tval; struct tm *now; tval = time(null); now = localtime(&tval); if(now-tm_hour=cari.setout.hour&now-tm_mintm_hourcari.setout.hour) if(cari.fixednumbercari.fixnumber) (cari.fixednum

32、ber)+; printf(你的订票成功,请按时上车,谢谢使用!n); else printf(对不起,今天的这趟车的票已卖完 , 请明天再来, 谢谢合作 !n); 程序设计综合课程设计24 else printf(对不起,今天的这趟车已发出, 请明天再来,谢谢合作 !n); printf(班次t发车时间 t 起点t终点t 行车时间 ( 小时)t额定载量 t 已定票人数n); printf(%dt%d:%dtt,cari-1.serialnumber,cari-1.setout.hour,cari-1.setout.minutes); printf(%st%stt%.1ft %dtt%dn,cari-1.departurepoint,cari-1.terminalpoint,cari-1.lasttime,cari-1.fixnumber,cari-1.fixednumber); /printf(按任意键回主菜单 .n); /getchar();

温馨提示

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

评论

0/150

提交评论