【C语言程序设计】车票管理系统的设计与实现.doc

上传人:韩长文 文档编号:5120465 上传时间:2020-02-04 格式:DOC 页数:9 大小:198.01KB
返回 下载 相关 举报
【C语言程序设计】车票管理系统的设计与实现.doc_第1页
第1页 / 共9页
【C语言程序设计】车票管理系统的设计与实现.doc_第2页
第2页 / 共9页
【C语言程序设计】车票管理系统的设计与实现.doc_第3页
第3页 / 共9页
【C语言程序设计】车票管理系统的设计与实现.doc_第4页
第4页 / 共9页
【C语言程序设计】车票管理系统的设计与实现.doc_第5页
第5页 / 共9页
亲,该文档总共9页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《【C语言程序设计】车票管理系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《【C语言程序设计】车票管理系统的设计与实现.doc(9页珍藏版)》请在三一文库上搜索。

1、沈阳大学课 程 设 计 说 明 书学生姓名:学号:学 院:专 业:题 目:指导教师:一、设计目的1、通过课程设计使学生进一步加深对课程内容的理解。 2、用程序设计的基本思想进行程序的开发,进一步掌握编程的方法和技巧。3、提高同学用程序的思想来解决实际问题的能力。二、设计要求1、认真查阅资料。2、遵守课程设计时间安排。3、按时上机,认真调试程序。4、组员之间应相互合作,共同分析解决问题。5、认真撰写报告。 三、设计题目:车票管理系统1、功能说明 录入班次信息(信息用文件保存),可不定时增加班次数据。浏览班次信息,可显示所有班次当前状总(如果当前系统时间超过了某班次的发车时间,则显示“此班已发出”

2、的显示信息。 查询路线:可按班次号查询,可按终点站查询。 售票与退票功能A:当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数。B:退票时输入退票的班次,当本班车未发出时才能售票,自动更新已售票人数。2、运行环境:Windows,C语言环境 四、指导教师 五、主要参考资料(文献)1 谭浩强编著 C程序设计 清华大学出版社 20062 苏小红编著 C语言大学实用教材 清华大学出版社 2005一、 设计思想1.1总体思想在本次C语言课程设计的实训中,我们利用C语言的有关知识完成了车票管理系统的设计。车票信息采用半十字链表。横向链表中的每一个结点包含以下内容:车次

3、,起始站,发车时间,指向下一个结点的指针,指向中途站的指针.纵向链表中每一个结点包含以下内容:从始发站开始的依次到站,票价,到达时间,是否已被购买标识,才用mark标识,当mark为1时车票已售出,当mark为0时车票还未售出。以及指向下一个结点的指针。纵向链表采用循环链表,尾指针指向首指针。未购票用户信息使用队列来保存,因为考虑到用户会预订票,所以把用户以来订票的时间早晚排在队中。先来先买,后来后买。队列中的每个元素包含以下内容:用户姓名,身份证号码,要购票的车次,起始站,要到的站,时间。已经购票用户信息使用一个单链表来保存,链表中的没个结点包含以下内容:用户姓名,身份证号码,已购车票的车次

4、,出发时间,到达时间。用户进入欢迎界面后,按照提示进行相应的操作,来管理车票系统。1.2算法的设计主函数:利用case语句实现用户界面,用户输入需要的服务的数字代码,程序就会转到相应的函数,实现相应的功能。在主函数开始处做下First标识,以便在其他函数中使用goto语句返回主函数的用户界面。In()函数:In()函数负责输入各种信息,链表中车票信息的初始值。Book()函数:Book()函数负责订票功能,主要是遍历整个链表,查找到需要订票的结点后修改其mark值。Inquire()函数:Inquire()函数主要负责查询功能,主要是遍历整个链表查找到需要的结点,然后输出。Cancel()函数

5、:Cancel()函数主要负责退票功能,主要是遍历整个链表查找到需要的结点,然后修改mark的值。You()函数:You()函数主要负责输入用户信息,主要是创建一个单链表,将用户信息放入,并提供管理人员的查询功能。.Find()函数:Find()函数主要负责查询用户信息,遍历整个单链表后,输出需要的信息。Total()函数:Total()函数主要负责统计整个订票系统的情况。二、 需求分析2.1编写目的通过对用户需求进行调查分析,写出需求分析文档作为项目设计的基本准则要求,以及作为系统分析员进行系统分析和测试人员进行测试时的手册2.2需求概述设计一个车票管理系统能提供以下功能: 录入功能: 录入

6、班次信息(信息用文件保存),可不定时增加班次数据。浏览功能:浏览班次信息,可显示所有班次当前状总(如果当前系统时间超过了某班次的发车时间,则显示“此班已发出”的显示信息。查询功能:可按班次号查询,可按终点站查询。售票与退票功能:A:当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数。B:退票时输入退票的班次,当本班车未发出时才能售票,自动更新已售票人数。2.3需求说明当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数。退票时输入退票的班次,当本班车未发出时才能售票,自动更新已售票人数。可以实现以下功能:录入功能浏览功能查询

7、功能售票与退票功能三、个人设计3.1编写目的根据项目概要设计说明书,在项目概要设计的基础之上,对系统进行详细设计,以便下一步进行窗体设计和代码编码工作。用book()函数实现订购。3.2程序流程图,如图4.1所示:开始输入班次信息输入终点站否是否成功(mark=0)是是退票成功结束图4.13.3程序代码:void book() struct ticket *p,*o; struct station *q,*s; int f,h; printf(“请输入班次号:”);scanf(“%d”,&f); /*输入需要的车次*/printf(“请输入终点站:”); scanf(“%d”,&h); /*输

8、入需要到达的车站名*/p=head1; /*初始化p的值*/while(p!=null)if(p-number=t) q=p-down; o=p; /*把符合条件的横向链表结点的数据给o*/while(q-next!=head1) if(q-name=h)if (q-mark=1)printf(“你的票已过期”);elseq-mark=1; /*修改mark标记*/s=q; /*把符合条件的纵向链表的数据给s*/q=q-next; /*纵向链表移针*/p=p-next; /*横向链表移针*/ printf(“你的票已经被预定!”);printf(%d,%d,%d,o-num,o-num2, o

9、-time); /*输出横向链表的数据*/ printf(%s,%d,%d,%d,%d,&s-name,&s-time,&s-money,&s-seat,&s-mark); /*输出纵向链表的数据*/3.4功能说明:本函数主要是先遍历横向链表找到符合条件的结点后,转向该点的纵向链表,遍历纵向链表找到符合条件的结点,读出需要的数据.并且修改mark标记,使其成为已定车票.如果mark已经为1则输出错误信息.3.5调试界面 1.主菜单界面,如图6.4.1所示。 图6.4.12.订票函数界面:输入订票信息,如图6.4.2所示。图6.4.2结 论在为期三周的C语言程序设计中,我们小组相互合作,完成了车

10、票管理系统的设计任务。在这次程序设计中,我们了解了一些程序设计的基本步骤。在程序设计中,应该先分析问题,对所要编写的系统有一定的了解,掌握编写的目的,能说出程序运行的结果及要求。接着,针对自己的问题分析,做出相应的算法,画出合理的流程图。然后,根据每个模块的流程图,写出相应的函数模块。最后,把各个模块组合起来,写出程序的源代码,再进行程序的调试,完成全部工作。程序设计中,主要用到了链表结构。在构思中,认为链表非常的简单,但在实际编写中,才发现链表的交叉造成数据的混乱,对编程造成很大的影响。经过四个人的努力,才把程序编写出来。在分析问题中,以为用几天的时间就可以把程序作出来,但在这三星期的课程设

11、计中,我才发现,只一个简单的输入函数中我们就遇到了得多难以实现的问题,例如,如何进行车票信息的录入,车票应该如何进行排列等。我们所做的程序进行车票的录入、查询、退票、订票、统计等,进入程序后,看到欢迎界面,选择所需操作,进入相应子菜单,再进行下面的操作。通过这三周的课程设计,在精心老师的指导下,和我们的不段努力。我们学到了如何来调式程序中错误,如何来使用链表。虽然在这次课程设计中虽然我们所编写的程序可能还有很多漏洞,还有一些问题解决的不太好,但是我们明白了一个道理,凡事想的简单,面实现是困难的。同时我也感谢老师对我们学生的关心、负责和学校给我们这次机会,我知道老师这两周得辛苦,为我们学生调式程序。我要向老师表示感谢,我们以后在工作中也有可能用到这些知识。第 9 页

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

当前位置:首页 > 工程管理


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