收藏 分享(赏)

车票管理系统.doc

上传人:cjc2202537 文档编号:6585413 上传时间:2019-04-18 格式:DOC 页数:24 大小:249.50KB
下载 相关 举报
车票管理系统.doc_第1页
第1页 / 共24页
车票管理系统.doc_第2页
第2页 / 共24页
车票管理系统.doc_第3页
第3页 / 共24页
车票管理系统.doc_第4页
第4页 / 共24页
车票管理系统.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

1、 一、课程设计的内容车票管理系统一车站每天有 n 个发车班次,每个班次都有一班次号(1、2、3n) ,固定的发车时间,固定的路线(起始站、终点站) ,大致的行车时间,固定的额定载客量。如班次 发车时间 起点站 终点站 行车时间 额定载量 已定票人数1 8:00 郫县 广汉 2 45 302 6:30 郫县 成都 0.5 40 403 7:00 郫县 成都 0.5 40 204 10:00 郫县 成都 0.5 40 2(一)功能要求:用 c/c+设计一系统,能提供下列服务:(1)录入班次信息(信息用文件保存),可不定时地增加班次数据(2)浏览班次信息,可显示出所有班次当前状总(如果当前系统时间超

2、过了某班次的发车时间,则显示“此班已发出”的提示信息)。(3)查询路线:可按班次号查询 ,可按终点站查询(4)售票和退票功能A:当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数B:退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数二、课程设计的要求与数据1、进一步掌握和利用 C 语言进行程设计的能力;2、进一步理解和运用结构化程序设计的思想和方法;3、初步掌握开发一个小型实用系统的基本方法;4、学会调试一个较长程序的基本方法;5、学会利用流程图或 N-S 图表示算法;6、掌握书写程序设计开发文档的能力。三、课程设计应完成的工作1、编写完成

3、相应题目的程序;2、编写课程设计报告,课程设计报告的内容应包括以下 6 个部分:1) 需求分析:包括设计题目、设计要求以及系统功能需求分析;2) 总体设计:包括系统总体设计框架和系统功能模块图;3) 详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图;4) 调试分析过程描述:包括测试数据、测试输出结果,以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等,适当的包含结果截图) ;5) 总结:课程设计完成了哪些功能,有没有什么扩展功能?还有哪些地方需要改进?课程设计过程中的学习体会与收获、对本次课程设计的认识以及自己的建议等内容; 6) 附录:主要源程

4、序代码,含必要的注释。3、答辩:在实验室建立程序运行的环境,并在指导教师的监督下,独立解决问题、运行程序和回答教师提出的问题。目 录第一章 目的与要求 .5第二章 总体设计 .6第三章 详细设计 .93.1 功能模块设计 .93.2 数据结构设计 11第四章 调试分析 12第五章 总 结 .14第六章 附录 15参考文献 .25第一章 目的与要求编写目的:便于车站管理部门对汽车班次信息的统计和管理,提高车站部门的工作效率,能够更好的为市民服务,同时也便于旅客了解相关的信息,方便出行。要求:1.能够录入汽车班次信息,如班次号,发车时间,起点站,终点站,行车时间,额载量,已订票人数等。2.能够浏览

5、班次信息,显示信息总和(如果已发出站的要要显示“已经开出” ) 。3.查询路线:可按班次号查询 ,可按终点站查询。4.售票功能:当查询出已定票人数小于额定载量且当前系统时间小于发车时间才能售票,自动更新已售票人数。5.退票功能:输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数。第二章 总体设计1)系统总体设计框架车票管理系统录入班次信息 浏览班次信息查询路线售票 退票保存信息 退出系统按班次查询 按终点站查询2)主要功能流程图:录入班次信息功能流程图: 浏览班次功能流程图:按y继续录入班次信息录入成功输入错误录入班次输入发车时间输入行车时间输入起点站输入额定载量按任意键返回主菜单进

6、入查询界面按1按班次查询按2终点站查询按 Y 继续查找,按任意键返回主菜单售票系统工作流程图: 依据提示操作进入售票界面售票成功 班次不存在 票已售完 车已发出继续售票按 Y,返回主菜单按任意键第三章 详细设计3.1 功能模块设计3.1.1 售票函数while(选择的是“Y”)打印当前时间打印“班次 发车时间 起点站 终点站 行车时间 额定载量 已定票人数”for()输出班次信息提示输入车的班次if(当查询出已定票人数小于额定载量且当前系统时间小于发车时间时)提示售票成功!订票人数加 1;IF(额定载量小于订票人数)提示票已售完!;else if(输入的班次号小于零)该车不存在!else if

7、(当前系统时间晚于发车时间)提示车已发出!提示继续售票按 Y,按任意键返回主菜单!输入一个字符;3.1.2 退票函数while(输入的是 Y 的时候)提示输入要退票的车次;输入一个字符;if(输入的班次号存在和系统时间比发车时间晚)订票人数-1;提示退票成功!else if(输入的班次号小于零)提示该班次不存在!;)else if(要退票的那辆车的发车时间早过现在系统时间)提示车已发出不能退票!;提示继续退票请按(Y),返回主菜单按任意键;输入一个字符;3.1.3 菜单函数打印“车票管理系统” ;打印“系统时间” ;打印“录入班次信息” ;打印“查询班次信息” ;打印“售票” ;打印“退票”

8、;打印“保存车次信;“;打印“退出系统” ;打印“请选择(0-6) ”;打印“车票管理系统;得到一个字符;返回值;3.2 数据结构设计(可选)程序中涉及的数据过多,本人决定采用两个结构体处理数据。其中时间为一个数据结构体(即结构 1) ,它又是汽车结构体(即结构 2)的一个成员元素,这样处理数据容易些。struct Timesint hour;int min;int sec;数据结构 1struct Buses/定义汽车int number;struct Times time;char start30;char end30;float time_cost;int carry_number;in

9、t booK_number;数据结构 2第四章 调试分析本人在写代码的过程中觉得难控制的是那个班次数。因为本系统提供了个录入信息功能,可以不定时的增加班次,即这个班次数是不确定的。而这个班次数又影响到查询函数,退票函数,售票函数等,另外还影响到一些功能小函数,如比较时间函数等。经过上网查找资料,我发现有一个巧妙的方法可以解决这个问题,即设定一个静态局部变量(即代码中的 H) ,这样每当班次号改变之后这个 H 的值就和它的班次号一样大,这样就可以解决之前提到的问题了。另外,这个系统要有一个保存文件功能,由于本人对文件保存处理不清楚,设计过程中一直搞不明白。最后在网上查到了相关信息才可以弄出。以下

10、是该程序运行的部分结果:主界面:信息录入图和浏览时刻表:查询售票图:退票图:保存信息图:第五章 总 结经历近几天的学习和锻炼,这个车票管理系统算是做出来了(不过我承认我是参考网上代码所得,我基本能看懂) 。它基本有前面提到过的功能,即录入班次信息,浏览班次信息,售票和退票,保存文件。有一个扩展功能,即可以退出系统(代码中的 sys_exit()函数) 。不过目前我发现它一个不足之出,就是不能对输入时间的格式起限制作用。如我可以输入 26:30:00,它系统不会提示说输入错误提示再输入一个正确的时间。还有,就是整个代码条理不够清晰,只是用到一个主函数和调用其他函数,可读性差!我认为最好是能分模块

11、化处理,分文件处理,这样条理性强,可读性高,再者修改也容易。不过由于本人水平有限,不能这样处理。经历这近几天的锻炼,我也比较满意自己的表现。在这过程中我查阅了很多书,学到了很多课堂上没有的东西。很多知识我之前不知道的现在大部分都知道了,不过理解不够深透,,导致在这近几天里碰了不少壁!近几天我觉得编程既是一项费时费力但也是有趣的事。说它费时费力是因为它繁琐,而有趣是因为我很享受一段段的小程序编成功之后的喜悦,苦尽干来啊。我觉得编程是一件快乐的差事,我想我今后会加把时间学习它,把它学好。第六章 附录程序代码:#include“stdio.h“#include“time.h“#include“win

12、dows.h“#include“string.h“#include“dos.h“#include“stdlib.h“#include“ctype.h“ #define Max 50/最大贮赌量#define null 0static int H=0;struct Times/定义时钟int hour;int min;int sec;struct Buses/定义汽车int number;struct Times time;char start30;char end30;float time_cost;int carry_number;int booK_number;struct Buses b

13、usMax;time_t now = time(0);tm *tnow =localtime(void load();/载入车次信息void lu(void);/声明录入函数void chaxun(struct Buses bus);/声明查询路线函数void save(struct Buses bus);/声明保存函数int caidan();/声明菜单录数void liulan(struct Buses bus);/声明浏览函数void tuipiao(struct Buses bus);/退票void shoupiao(struct Buses bus);/声明售票函数void xito

14、ngtuichu();/声明退出函数/工具函数struct Buses copy(struct Buses b1,struct Buses b2);/赋值void sort_time(struct Buses bus);/声明按时间发车的先后顺序排序int compare_time(struct Times t1,struct Times t2);/时间比较函数int compare_systime(struct Buses bus,tm *T);/比较发车时间与当前系统时间的函数void print(struct Buses bus);/声明输入出函数int number_search(st

15、ruct Buses bus,int num);/声明按班次查询函数int end_search(struct Buses bus,char ends);/声明按终点查询函数void main()/主函数while(1)system(“cls“);switch(caidan()case 1: lu(); break;case 2: liulan(bus); break;case 3: chaxun(bus); break;case 4: shoupiao(bus); break;case 5: tuipiao(bus); break;case 6: save(bus); break;case

16、0: xitongtuichu(); break;int compare_systime(struct Buses bus,tm *T)/与系统时间的比较函数if(bus.time.hour=T-tm_hour)return 1;if(bus.time.min=T-tm_min)return 1;if(bus.time.secT-tm_sec)return 1;else return 0;return 0;return 0;struct Buses copy(struct Buses b1,struct Buses b2)b1.booK_number=b2.booK_number;b1.car

17、ry_number=b2.carry_number;strcpy(b1.end,b2.end);b1.number=b2.number;strcpy(b1.start,b2.start);b1.time.hour=b2.time.hour;b1.time.min=b2.time.min;b1.time.sec=b2.time.sec;b1.time_cost=b2.time_cost;return b1;void liulan(struct Buses bus)/浏览车次getchar();system(“cls“);int i;printf(“ntttt 车辆时刻表n“);printf(“t

18、tt*n“);printf(“t 班次 发车时间 起点站 终点站 行车时间 额定载量 已定票人数“);printf(“nt-n“);sort_time(bus);for(i=0;it2.hour)return 1;if(t1.min=t2.min)return 1;if(t1.sec=t2.sec)return 1;else return 0;return 0;return 0;void sort_time(struct Buses bus)/按发车时间排序int i,j,k;struct Buses b=0;for(i=0;itm_year,tnow-tm_mon+1,tnow-tm_mda

19、y);printf(“tt|-|n“);printf(“tt| 菜单 |n“);printf(“tt|-|n“);printf(“tt| (1) 录入班次信息 |n“);printf(“tt|-|n“);printf(“tt| (2) 显示班次信息 |n“);printf(“tt|-|n“);printf(“tt| (3) 查询班次信息 |n“);printf(“tt|-|n“);printf(“tt| (4) 售票 |n“);printf(“tt|-|n“);printf(“tt| (5) 退票 |n“);printf(“tt|-|n“);printf(“tt| (6) 保存车次信息 |n“

20、);printf(“tt|-|n“);printf(“tt| (0) 退出系统 |n“);printf(“tt|-|n“);printf(“ntt 请选择(0-6):“);scanf(“%d“,return(a);void save(struct Buses bus)/保存函数体getchar();FILE *fp;int i;if(fp=fopen(“Bus_system“,“wb“)=null)printf(“不能打开文件n“);return;for(i=0;i=0)printf(“你输入的班次已存在请重新输入!:“);scanf(“%d“,getchar();printf(“请输入时间如

21、:(20:30:00) :“);scanf(“%d:%d:%d“,getchar();printf(“请输入车的起点站:“);scanf(“%s“,busi.start);getchar();printf(“请输入车的终点站:“);scanf(“%s“,busi.end);getchar();printf(“请输入行车时间:“);scanf(“%f“,getchar();printf(“请输入车的额定载量:“);scanf(“%d“,getchar();busi.booK_number=0;H+;i+;printf(“信息录入成功!n“);printf(“继续录入请按(Y),返回主菜单按任意键

22、.“);flag=getchar();void chaxun(struct Buses bus)/查询路线int a,i=0;int m=0;char flag=Y;while(toupper(flag)=Y)char end30;system(“cls“);printf(“n 按班次查询请按 1n 终点站查询请按 2n 请选择(1-2):“);scanf(“%d“,while(a!=1scanf(“%d“,getchar();switch(a)case 1:printf(“请输入车次号:“);scanf(“%d“,getchar();i=number_search(bus,m);if(i=0

23、)printf(“ntttt 车辆时刻表n“);printf(“ttt*n“);printf(“t 班次 发车时间 起点站 终点站 行车时间 额定载量 已定票人数“);printf(“nt-n“);print(busi);printf(“t-n“);elseprintf(“nttt 没有你要查找的记录!n“);break;case 2:printf(“请输入车的终点站:“);scanf(“%s“,end);getchar();while(itm_hour,tnow-tm_min,tnow-tm_sec);printf(“t 班次 发车时间 起点站 终点站 行车时间 额定载量 已定票人数“);p

24、rintf(“nt-n“);for(int j=0;j=0busn.booK_number+;printf(“t 班次 发车时间 起点站 终点站 行车时间 额定载量 已定票人数“);printf(“nt-n“);print(busn);printf(“nt-n“);if(busn.carry_number=0printf(“nttt 退票成功!n“);else if(i0)printf(“nttt 该车次不存在!n“);else if(!compare_systime(busn,tnow)printf(“nttt 车已发出不能退票!n“);printf(“t 继续退票请按(Y),返回主菜单按任

25、意键.“);flag=getchar();void load()/载入车次信息 FILE *fp;int i=0;while(fp=fopen(“Bus_system“,“rb“)=NULL) /以 rb 形式打开文件return;for(i;!feof(fp);i+,H+)if(fread(return;fclose(fp);void xitongtuichu()/退出函数system(“cls“);getchar();char flag=null;printf(“nntt 你确定要退出并保存信息吗?(Y/N)“);flag=getchar();if(toupper(flag)=Y)save

26、(bus);exit(0);else if(toupper(flag)=N)exit(0);elsereturn;参考文献1、 谭浩强编著, C 程序设计 1991 年 7 月2、 裘宗燕 著,从问题到程序科学出版社,北京大学出版社,1999 年 4 月。3、 刘瑞挺主编,计算机二级教程,南开大学出版社,1996 年 10 月。4、 陈朔鹰等编著,C 语言程序设计基础教程,兵器工业出版社,1994 年 9 月5、 姜仲秋等主编,C 语言程序设计,南京大学出版社,1998 年 1 月。 6、 C 程序设计(第二版) ,谭浩强编,清华大学出版社,1999 年 12 月。7、 C 语言程序设计题解与上机指导 ,谭浩强编,清华大学出版社,2000 年11 月。8、 Turbo C 2.0 实用大全 ,常玉龙等编写,北京航空航天大学出版社,1994年 9 月。9、 C 语言程序设计习题集(第二版) ,陈朔鹰 陈英主编,人民邮电出版社,2003 年 2 月。10、 C 语言趣味程序百例精解 ,陈朔鹰 陈英主编,北京理工大学出版社,1996 年。11、 C 语言程序设计辅导与习题集 ,田淑清等,中国铁道出版社,2000 年 1月。12、 C 语言编程常见问题解答 ,美Paul S. R. Chishohm 等著,张芳妮 吕波译,清华大学出版社,11996 年 12 月。

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

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

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


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

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

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