数据结构课程设计火车订票系统.docVIP

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
HYPERLINK /ctu_85/archive/2007/09/20/1793381.aspx 软件课程设计--C语言设计火车票订票系统之源代码(模拟数据库功能)(需求分析+可行性分析) 设计题目:火车订票系统 小组成员: 指导教师: 完成时间: 一.需求设计: 1.每条线路所涉及的信息有:起点、终点、站名、车次、、票价、时间、座位号。 2.作为示意系统,全部数据可以只放在内存中。 3.系统能实现的功能和操作如下: ①.查询路线:根据旅客提出的终点站名输入下列信息:车次、车站名。 ? ②.承办订票业务:根据客户提出的要求查询该车次票额的情况,若尚有余票,则为客户办理订票手续,输出座位号;若已满员或余票额少于订票额,则需重新查询客户要求,若需要可登记排队候补。 ? ③.承办退票业务:根据客户提供的情况(车次、时间、座位号)为客户办理退票手续,然后查询该车次是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其他排队候补的客户。 ? ④登记旅客情况:包括旅客姓名,性别,年龄,家庭住址,联系方式等。 ? ⑤统计功能:将每次车的订票,退票结果统计出来。 ? ⑥管理功能:列车管理员可以通过调用函数来查看车票极其用户情况. ? ⑦.查询功能:用户可以查询自己需要的车辆信息. 二.总体设计 ? 1.程序流程图: 按1键 ? 按2键 ? 按3键 ? 按4键 ? 进入in函数 ? 进入book函数 ? 进入inquire函数 ? 进入cancel函数 ? 按5键 ? 进入you函数 2.总体设计说明: ①.数据结构设计: 程序=数据结构+算法,一个好的程序必定有一个好的数据结构.本设计主要考虑车票信息和用户信息的数据结构. 车票信息采用半十字链表.横向链表中的每一个结点包含以下内容:车次,起始站,发车时间,指向下一个结点的指针,指向中途站的指针.纵向链表中每一个结点包含以下内容:从始发站开始的依次到站,票价,到达时间,是否已被购买标识,才用mark标识,当mark为1时车票已售出,当mark为0时车票还未售出.以及指向下一个结点的指针.纵向链表采用循环链表,尾指针指向首指针. 未购票用户信息使用队列来保存,因为考虑到用户会预订票,所以把用户以来订票的时间早晚排在队中.先来先买,后来后买.队列中的每个元素包含以下内容:用户姓名,身份证号码,想要购票的车次,起始站,要到的站,时间. 已经购票用户信息使用一个单链表来保存,链表中的没个结点包含以下内容:用户姓名,身份证号码,已购车票的车次,出发时间,到达时间. 车票信息链表示意图: 车次 ? 起始站 ? 发车时间 ? downn ? next ? 下一站名 ? 到站时间 ? 票价 ? mark ? next ? 座位号 未购票用户信息队列: 用户姓名 ? 购票的车次 ? 起始站 ? 要到的站 ? 达到时间 用户姓名 ? 购票的车次 ? 起始站 ? 要到的站 ? 达到时间 注:座位号包含在车次号中 已购票用户信息链表示意图: 用户姓名 ? 身份证号码 ? 已购车票的车次号 ? 出发时间 ? 到达时间 注:座位号包含在车次号中 ②算法的设计: 主函数: ??????? 利用case语句实现用户界面,用户输入需要的服务的数字代码,程序就会转到相应的函数,实现相应的功能。在主函数开始处做下First标识,以便在其他函数中使用goto语句返回主函数的用户界面。 ? In()函数: ?????????? In()函数负责输入各种信息,链表中车票信息的初始值. ? Book()函数: ??????????? Book()函数负责订票功能.主要是遍历整个链表,查找到需要订票的结点后修改其mark值. ? Inquire()函数: ?????????????? Inquire()函数主要负责查询功能.主要是遍历整个链表查找到需要的结点,然后输出. ? Cancel()函数: ????????????? Cancel()函数主要负责退票功能.主要是遍历整个链表查找到需要的结点,然后修改mark的值. ? You()函数: ????????????? You()函数主要负责输入用户信息,主要是创建一个单链表,将用户信息放入.并提供管理人员的查询功能. ? Find()函数: ????????????? Find()函数主要负责查询用户信息,遍历整个单链表后,输出需要的信息. Total()函数: ????????????? Total()函数主要负责统计整个订票系统的情况. ? ? 三.详细设计: ? 1. 主函数: ? ①程序代码: ? Main() { int *t; int c; First:? printf(“welcome to our tick

文档评论(0)

celkhn5460 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档