欢迎来到天天文库
浏览记录
ID:30875829
大小:250.53 KB
页数:29页
时间:2019-01-04
《软件课程设计--c语言》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、软件课程设计一C语言设计火车票订票系统之源代码(模拟数据库功能)(需求分析+可行性分析)设计题冃:火车订票系统小组成员:指导教师:完成吋间:一.需求设计:1・每条线路所涉及的信息有:起点、终点、站名、车次、、票价、时间、座位号。2.作为示惫系统,全部数据可以只放在内存中。3.系统能实现的功能和操作如下:①.查询路线:根据旅客提出的终点站名输入下列信息:车次、车站名。②.承办订票业务:根据客户提出的要求查询该车次票额的情况,若尚有余票,则为客户办理订票手续,输出座位号;若己满员或余票额少于订票额,则需重新查询客户要求,若需要可登记排队
2、候补。③.承办退票业务:根据客户提供的情况(车次、时间、座位号)为客户办理退票手续,然后查询该车次是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其他排队候补的客户。④登记旅客情况:包括旅客姓名,性别,年龄,家庭住址,联系方式等。⑤统计功能:将每次车的订票,退票结果统计出来。⑥管理功能:列车管理员可以通过调用函数来查看车票极其用户情况.⑦.查询功能:用户可以查询自己需要的车辆信息.二•总体设计1.程序流程图:按2键按3键按4键进入in函数进入book函数进入inquire函数进入c
3、ancel函数按5键进入you函数2•总体设计说明:①.数据结构设计:程序二数据结构+算法,一个好的程序必定有一个好的数据结构.本设计主要考虑车票信息和用户信息的数据结构.车票信息采用半十字链表.横向链表屮的每一个结点包含以卞内容:车次,起始站,发车时间,指向下一个结点的指针,指向中途站的指针.纵向链表中每一个结点包含以下内容:从始发站开始的依次到站,票价,到达时间,是否已被购买标识,才用mark标识,当mark为1时车票己售出,当mark为0时车票还未售出.以及指向下一个结点的指针.纵向链表采用循环链表,尾指针指向首指针.未购票用
4、户信息使用队列来保存•因为考虑到用户会预订票,所以把用户以来订票的时间早晩排在队中.先来先买■后来后买.队列中的每个元素包含以下内容:用户姓名,身份证号码■想要购票的车次,起始站,要到的站,时间.已经购票用户信息使用一个单链表来保存,链表中的没个结点包含以下内容:用户姓名,身份证号码,己购车票的车次,出发时间,到达时间.午•票信息链农示意图:车次起始站发车时间downnnext下一站名到站时间票价marknext座位号未购票用户信息队列:用户姓名购票的车次起始站要到的站达到时间用户姓名购票的车次起始站要到的站达到时间注:座位号包含在
5、车次号屮己购票用户信息链表示意图:用户姓名身份证号码已购车票的车次号出发时间到达时间注:座位号包含在车次号屮①算法的设计:主函数:利用case语句实现用户界面,用户输入需要的服务的数字代码,程序就会转到相应的函数,实现相应的功能。在主函数廿始处做卞First标识,以便在其他函数屮使用goto语句返回主函数的用户界面。5()函数:In()函数负责输入各种信息,链表中车票信息的初始值.Book()函数:Book()函数负责订票功能.主要是遍历整个链表,查找到需要订票的结点后修改其mark值.Tnquire()函数:Inquire()函数
6、主要负责查询功能.主要是遍历整个链表查找到需要的结点,然后输出.Cancel()函数:Cancel()函数主要负责退票功能.主要是遍历整个链表查找到需要的结点,然后修改mark的值.you()函数:you()函数主要负责输入用户信息,主要是创建一个单链表,将用户信息放入.并提供管理人员的查询功能.Find()函数:Find()函数主要负责查询用户信息,遍丿力整个单链表后,输出需要的信息.Total()函数:Total()函数主要负责统计整个订票系统的情况.三.详细设计:1.主函数:①程序代码:Main(){int*t;intc;Fi
7、rst:printf(''welcometoourticketsystem!");printf(Ml.intputthedata.H);/*按1键输入数据★/printfC'2.booktheticket.M);/★按2键订车票★/printf(u3.inquiretheticket.M);/★按3键查询车票*7printf(u4.canceltheticket.°);/★按4键退车票★/printf(u5.inputyourowndata.M);/★按5键输入个人信息*7scanf(n%dAc);swit
8、ch(c){caseT:1•二in();break;case'2':book();break;case3:inquire();break;case4:cancel();break;case‘5’:you();break;default
此文档下载收益归作者所有