火车票订票系统

合集下载

火车站售票系统

火车站售票系统

火车站售票系统简介火车站售票系统是一种为火车站旅客提供售票服务的软件系统。

通过火车站售票系统,旅客可以方便地查询车次信息、选择座位、购买车票,并实现自助取票、改签、退票等功能。

该系统旨在为旅客提供便利的售票服务,缩短购票时间,提高售票效率,提升用户体验。

功能模块火车站售票系统包含以下功能模块:1.车次查询:旅客可以通过输入出发站、到达站、出发日期和车次类型等信息,查询符合条件的车次信息。

查询结果包括列车编号、车站信息、座位情况等。

2.车票预订:旅客可以选择符合条件的车次,并选择座位类型、乘车人数等。

预订成功后,系统会生成订单号和一张包含乘车信息的车票。

3.自助取票:旅客可以凭借订单号、身份证或者手机号码,在火车站的自助取票机上打印车票。

取票机可以扫描二维码并打印准确的车票信息。

4.改签功能:对于已购买的车票,旅客可以在一定时间范围内进行改签操作。

改签成功后,系统会生成新的车票,同时作废原有车票。

5.退票功能:对于不需要乘车的旅客,可以在一定时间范围内申请退票。

系统会根据退票规则计算退票金额,并完成退票操作。

6.订单管理:系统可以记录用户的订单信息,包括订单号、车次信息、座位类型、乘车人信息、支付金额等。

用户可以通过订单管理功能查询订单状态、取消订单等。

开发技术与架构火车站售票系统的开发可以采用以下技术与架构:1.后端开发:采用Java或者其他主流后端语言进行开发。

可以使用Spring Boot框架搭建后端业务处理与数据访问的逻辑。

2.前端开发:采用HTML、CSS和JavaScript等前端技术进行开发。

可以使用Vue.js或React.js等前端框架进行页面交互与展示设计。

3.数据库:可以选择关系型数据库如MySQL或者非关系型数据库如MongoDB作为数据存储。

数据库用于存储车次信息、订单信息、座位状态等。

4.接口设计:采用RESTful API设计模式进行接口设计,保证系统的可扩展性和易于维护。

火车票售票管理系统

火车票售票管理系统

电子商务分析与设计设计题目火车站售票管理系统组长成员成员目录一、需求分析 (1)1.1功能需求 (1)1.2系统用例分析 (1)1.2.1.火车站售票管理系统的参与者 (1)1.2.2.管理员用例图 (2)1.2.3.系统管理员用例图 (3)1.2.4.票务管理员用例图 (4)1.2.5.乘客用例图 (5)二、静态模型设计 (6)2.1类图 (6)2.2数据库字段 (7)三、动态模型设计 (9)3.1时序图 (9)3.1.1“系统管理员时序图 (9)3.1.2顾客时序图 (10)3.1.3.票务管理员时序图 (12)3.1.4.售票员时序图 (13)3.2 状态图 (15)3.3协作图 (16)3.4活动图 (17)3.4.1.“乘客查询”活动图 (17)3.5系统部署图 (19)四、小组成员分工说明 (20)五、课程设计的收获和总结 (21)参考资料 (22)一、需求分析1.1功能需求线上预订火车票系统是一款功能强大、操作简便、易维护的、具有良好人机交互界面的线上订票系统,它包括用户管理模块、系统参数设置模块、票务信息模块提供票价、列车的实时信息、订票管理模块提供订票和退订功能、实时信息提示模块提供车况、路况、列车晚点等实时信息、数据管理模块提供数据备份、数据操作功能;实现火车票线上预定的自动化的计算机系统,为旅客提供准确、精细、迅速的火车票销售信息和方便、简单的订票功能;线上预订火车票系统主要是对于订票信息的统一管理,满足了中小型线上订票网站对于用户的管理,订票信息的收集和处理方面的要求;用现代化的方式取代以前的传统模式,更有利于信息的流通,资源的宏观管理;具有体积小,代码简洁,易维护、易修改的优点;1.2系统用例分析1.2.1.火车站售票管理系统的参与者乘客:查询、预订车票的人员;售票员:具体负责乘客的车票订单;票务管理员:负责更新车票信息;系统管理员:系统管理员负责系统的员工信息管理,会员信息管理以及系统的维护等;根据以上分析,创建系统参与者,如图所示:管理员系统管理员票务管理员售票员乘客图1-1系统参与者1.2.2.管理员用例图火车站系统中的所有人都是管理员,管理员是一个抽象的概念,他包含的行为是所有管理员的共同行为;管理员在本系统中通过合法的身份验证能够修改自身的信息和密码;根据以上分析,建立用例图如下所示:查询信息图1-2系统管理员用例图1.2.3.系统管理员用例图系统管理员能够通过本系统进行如下活动;管理会员信息:系统管理员能够对当前注册到本系统的客户进行整理;管理售票员信息:系统管理员能够管理当前系统中的售票员信息,如添加、删除和修改售票员信息等;系统设置:系统管理员可以对系统进行必要的设置和维护,如升级等; 管理乘客信息系统管理管理售票员信息系统管理员系统设置系统维护<<include>><<include>>图1-3系统管理员用图1.2.4.票务管理员用例图票务管理员能够通过本系统进行如下活动:添加车票信息、删除车票信息、修改车票信息等;修改车票信息图1-4票务管理员用例图1.2.5.乘客用例图对于火车票售票系统,乘客可以登录和查询;其下为乘客的用例图,即乘客可以进行的活动;图1-5乘客用例图二、静态模型设计2.1类图2-1系统类图2.2数据库字段乘客姓名、性别、联系电话、有效证件列车班次发车时间、起点、终点、乘坐人数、价格火车站名称、所在地、车站经过车次订票票号、列车班次号、乘客号、票价、车票类型管理员密码、姓名付款方式付款序号、付款名字乘客表列车班次表订购车票表管理员表火车站表三、动态模型设计3.1时序图3.1.1“系统管理员时序图1)系统管理员进入登录界面2)系统管理员输入登录信息3)后台数据库检验信息是否合法4)若合法,则显示登录成功,否则转85)系统管理员进入火车站管售票理系统6)系统管理员修改系统信息7)后台数据库更新8)登录信息不合法;9)系统弹出“重新登录”对话框10)若选择“是”返回到第2步图3-1系统管理员时序图3.1.2顾客时序图1)进入登录界面2)验证用户的登录信息是否正确3)若正确,显示登录成功否则转第十一步4)用户进入管理系统查询界面,输入查询信息5)返回查询信息6)用户进入预定界面7)用户进行预订8)数据库更新9)返回预订票信息10)显示预订成功11)登录信息不正确12)系统显示错误原因,并提示是否重新登录13)若选择“是”,则返回到第2步;图3-2顾客时序图3.1.3.票务管理员时序图1)选择车票添加操作进入相关页面2)系统列出表单要求填写3)填写添加车票的信息4)提供更新信息给数据库5)用户表明填写完成6)系统显示表单请求确认7)确认表单完成操作8)数据库更新、保存9)用户要求修改信息;10)返回到第2步;图3-3票务管理员时序图3.1.4.售票员时序图1)售票员要求查看相关的车票信息2)后台系统整理3)后台数据库传递相应订票信息4)系统显示出有效的订票信息5)售票员从中选择订票选项6)更新订票信息7)售票员表明订票完成8)系统显示所订车票的信息9)系统请求确认信息10)售票员确认订票信息,完成订票11)数据库保存图3-4售票员时序图3.2 状态图1)进入数据库系统界面2)进入预订车票界面3)预订成功后推出4)进入退订车票界面5)退订成功后退出6)预订退订车票失败则退出图3-5 系统状态作图3.3协作图1客户首先要连接上网络的电脑2客户进行网站搜索,检索有关的票务信息3电脑将显示的票务信息给予客户4客户再通过查看信息后选择买票5客户输入自己的账号6验证帐户并提交扣钱7电脑将票的代码显示给客户,凭证取票图3-6 系统协作图3.4活动图3.4.1.“乘客查询”活动图查询系统方便人们的生活,人们不用注册即可按照一定的要求进行查询;如,按“始发站——-终点站”进行查询;系统接收查询信息后,进行相应的整理,其过程如下:图3-7“乘客查询”活动图3.4.2.“乘客登录”活动图乘客分老客户和新客户,新客户为没有注册过的客户,那么,其首先要注册;老用户是已经注册过的用户,其直接输入用户名登录即可;其活动图如下:图3-8“乘客登录”活动图3.5系统部署图在火车站售票管理系统中,系统包括五格节点,分别是系统管理员管理系统、票务管理员管理系统、售票员管理系统、客户管理系统和售票管理系统;票务管理员管理系统负责进系统车票信息更新,系统管理员管理系统负责进行系统维护,售票管理系统负责客户预订退订票管理,客户管理系统负责对客户信息的管理,售票员管理系统负责售票管理;图3-9系统部署图四、小组成员分工说明需求分析阶段是软件开发的最核心的部分,我们组成员通过上网查阅资料,去图书馆借阅有关的书籍以及根据课本上的知识,再经过我们组成员三个人之间的默契配合,共同完成了软件的核心部分-----需求分析;完成了我们所要做的项目的需求分析之后,下面的课程设计可根据需求分析来进行,我们组成进行分工合作共同完成了这次课程设计;静态模型中的类图由刘盈娣和燕京京完成;动态模型的四部分图,时序图由我们三个共同完成,状态图和协作图由陈斌完成,活动图由燕京京完成,系统部署图由刘盈娣完成;我们分工明确,互相帮助,顺利的完成了自己的任务;最后的总结由陈斌完成,再做了最后的文档的整理;五、课程设计的收获和总结经过一个星期的实践学习,使我们对UML有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,通过实践,我们也发现我们的好多不足之处,最主要是自己在UML图形正确使用上不够熟悉,通过实践,使我们在这个方面的认识有所提高;其次,经过查找资料,调查研究,获取需求以及在这些基础上做出的系统分析;总的来说,这个系统的设计考虑了大部分要考虑的因素,一些影响不大的因素就没有考虑在内,系统的需求分析中占相当一部分比例的用例规格说明采用表格的方式,直观,便于理解,不过需求分析在整体的格式多样性上有所欠缺,这在以后的设计中要吸取教训;通过这次的课程设计,我们不但学到了很多东西,也把原来学的东西理解的更透彻了,特别是把原来学的不同科目的东西结合起来了,收获很大;通过实践的学习,我们认到学好计算机要重视实践操作,不仅仅是学习UML 语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我们会更加注视实践操作,使自己更好地学好计算机;没有实践,学习就是无源之水,无本之木;以上就是我们在进行课程设计实训的心得和感受;参考资料1 李大友,陈明等实用软件工程基础清华大学出版社2吴建,汪杰等 UML基础与Rose建模案例人民邮电出版社3 Soren Lauesen 著软件需求电子工业出版社4 uml 和rational rose 2002 从入门到精通电子工业出版社。

12306流程架构设计

12306流程架构设计

12306流程架构设计1.引言1.1 概述12306是中国国家铁路局开发的在线订票系统,为乘客提供便捷的火车票购买和查询服务。

作为中国最大的铁路客运服务平台,12306的流程架构设计至关重要。

本文旨在探讨12306的流程架构设计要点,并为该系统的优化提供参考。

在进行12306流程架构设计之前,我们需要对该系统的概述进行了解。

12306系统一般包括用户界面、业务逻辑、数据库和外部接口等组件。

用户界面提供给用户进行查询、订购、退票等操作的页面,业务逻辑处理用户操作的请求并进行相应的业务处理,数据库储存用户信息、车票信息等数据,外部接口用于与其他系统进行交互。

12306的流程架构设计需要考虑以下几个重要因素。

首先,在用户界面方面,应该注重用户友好性和易用性,确保用户能够轻松地进行操作。

其次,在业务逻辑方面,需要设计合理的流程以满足用户的需求,同时考虑系统的性能和稳定性。

此外,数据库的设计应考虑数据的安全性和可扩展性,以便应对不断增长的用户数量和数据量。

最后,外部接口的设计需要与其他系统进行无缝集成,确保数据的准确和及时交换。

12306的流程架构设计的目的主要是为了提供高效、稳定和安全的服务。

通过合理的架构设计,可以提高系统的性能,并能应对高并发的请求。

此外,良好的架构设计还可以降低系统的维护成本,便于功能的扩展和更新。

综上所述,12306的流程架构设计是一个复杂而重要的任务,需要综合考虑用户界面、业务逻辑、数据库和外部接口等各个方面的因素。

只有通过科学、合理的架构设计,才能为用户提供更好的服务体验,并为系统的优化和发展提供支持。

1.2 文章结构文章结构部分是为了让读者可以清楚地了解整篇文章的组织结构和内容安排。

本文的文章结构如下所述:首先,在引言部分,我们将概述本文的背景和目的,以及阐明文章的重要性和意义。

接着,在正文部分,我们将详细介绍12306流程架构设计的要点。

这些要点将涵盖12306流程的各个方面,包括流程的整体架构和关键环节的设计。

12306火车票网上订票查询

12306火车票网上订票查询

12306火车票网上订票查询12306火车票网上订票查询随着互联网的快速发展,越来越多的人开始选择网上订票查询来购买火车票,这种方式不仅方便快捷,还能避免排队、浪费时间。

12306火车票网站作为中国铁路的官方订票平台,已经成为了乘坐火车的首选方式之一。

下面将详细介绍12306火车票网上订票查询的使用方法和注意事项。

首先,我们需要在电脑或手机上打开12306的官方网站。

登录页面显示在主页上方的导航栏中,可以选择使用电脑版或手机版。

根据个人喜好,选择适合自己的版本进行操作。

登录前需要注册一个帐号,填写相关个人信息,如真实姓名、身份证号码、手机号码等。

填写完整后,点击注册按钮完成注册。

登录成功后,我们就可以开始查询火车票信息了。

在首页的查询框内,填写出发地、目的地、出发日期等相关信息,点击查询按钮,系统将自动为我们展示符合条件的车次列表。

列表中会显示车次、发车时间、到达时间、历时、余票情况、票价等信息,方便我们选择合适的车次。

在选择好车次后,我们需要选择座位类型。

在车次列表中,每个车次后面都有座位类型的选项,如硬座、硬卧、软座、软卧、无座等。

根据自己的需求和经济能力,选择合适的座位类型,并点击“预定”按钮进行下一步操作。

接下来,系统会要求我们选择乘车人。

在乘车人页面,如果之前已经填写了乘车人的信息,系统会自动显示出来。

如果没有,我们需要点击“添加联系人”按钮,填写乘车人的姓名、证件类型(一般为身份证)、证件号码、票种等信息,并保存。

添加完乘车人后,可以选择票种,并点击“提交”按钮。

在提交订单页面,确认乘车人信息、座位类型、车票价格等无误后,我们需要选择支付方式。

12306网站目前支持支付宝、微信支付、银联卡等多种支付方式。

选择合适的支付方式,点击“付款”按钮进行支付。

支付成功后,我们会收到订单支付成功的提示,并且可以在订单管理页面查看火车票订单的详细信息。

12306网站还提供了手机短信服务,会在火车票离开起点站前30分钟发送火车信息提醒。

12306票务系统原理

12306票务系统原理

12306票务系统原理12306票务系统原理是指中国铁路客户服务中心开发的一套用于铁路车票销售和预订的互联网系统。

该系统的原理如下:1. 基础设施:12306票务系统基于高性能的服务器集群和分布式数据库构建,能够支持大量并发用户的访问和操作。

2. 数据库:系统中的核心数据是车次信息、车票信息、用户信息等。

这些数据保存在数据库中,并通过数据库管理系统实现高效的数据读取和写入。

3. 用户账号和认证:用户通过注册账号,登陆系统后,可以进行购票、查询、退票等操作。

账号信息保存在数据库中,系统通过用户认证机制保护用户的信息安全。

4. 车次查询和选座:用户可以通过系统提供的车次查询功能,查找满足其需求的列车班次。

查询结果显示车次的出发、到达站、车票价格、余票数量等信息。

用户可以选择心仪的车次,并预定座位。

5. 购票和支付:用户在选定座位后,可以将车票添加到购物车中,然后通过系统提供的支付接口完成支付操作。

12306系统支持多种支付方式,如网银支付、支付宝、微信支付等。

6. 订单处理和票据生成:完成支付后,系统生成订单,将乘客、乘车信息和购票金额等保存到数据库中。

系统同时生成电子票或纸质票,并向用户发送确认邮件或短信。

7. 余票管理和座位预留:系统将余票信息同步到数据库中,并通过座位预留机制,防止用户重复预订同一座位。

8. 退票和改签:用户可以在规定的时间范围内申请退票或改签。

系统处理用户的退票申请,并更新订单和余票数据库。

9. 数据统计和分析:系统还提供数据统计和分析功能,对车票销售情况、用户需求等进行分析,为车票供给、价格调整以及用户服务等方面提供参考。

通过以上原理,12306票务系统实现了在线购票、支付、订单处理、座位预留、改签、退票等功能,大大提高了用户购票的便利性和效率。

火车票预订系统

火车票预订系统

火车票预订系统
火车票预订系统是一个通过互联网进行火车票预订和购买
的系统。

它允许用户在电脑或手机上方便地查看火车票信息、选择座位、支付订单,并获得电子车票。

以下是一个
普遍的火车票预订系统的功能:
1. 火车票查询:用户可以根据出发地、目的地、日期等信
息查询火车票的可用性。

2. 车次选择:系统显示查询结果,并提供票价、出发时间、到达时间等信息,用户可以选择适合的车次。

3. 座位选择:用户可以查看火车车厢的座位布局图,选择
适合的座位。

4. 乘客信息:用户需要提供乘客的姓名、身份证号码等信息。

5. 支付:用户可以通过多种支付方式支付订单,如支付宝、微信支付、银联支付等。

6. 订单确认:用户确认订单后,系统生成订单号,并发送
确认信息到用户的手机或电子邮箱。

7. 电子车票:用户可以在系统上查看和下载电子车票,也
可以选择短信或电子邮件接收电子车票信息。

8. 订单管理:系统允许用户在个人账户中查看和管理订单
信息,包括修改座位、取消订单等操作。

9. 退票和改签:用户可以申请退票或改签,系统根据规定
的退票和改签规则进行处理。

10. 客户服务:系统提供在线客服和客服电话等渠道进行咨询和投诉。

以上只是火车票预订系统的一些基本功能,实际的系统可能还包括其他功能和特点,以满足用户的需求。

12306订票系统

12306订票系统

• 手机号 必须录入项。留存用户手机号 是为方便铁路给其发送购票、改签 成功以及晚点通知短信,也为后续 其他旅客服务建立购票渠道
• 邮箱地址 必须录入项、留存用户邮箱购 票服务过程中建立沟通渠道,以发 送购票、改签、退票等电子票的详 细服务信息。 用户要进行购票操作必须首先 进入邮箱激活注册用户。
提交订单并再次确认信息是否无误:
每日购票人每日连续取消3次订单,当日 无法订票,只能至次日网站服务 时间再次购票
确认订单,并在45分钟内完成付款
确认订单,并在45分钟内完成付款
确认订单,并在45分钟内完成付款
确认订单,并在45分钟内完成付款
确认订单,并在45分钟内完成付款
第二种可能:当上网的环境发生网络故障 时,网站对旅客订票申请的响应出 现了问题。 第三种可能:由于其他未知原因导致预订 车票没有成功,可以稍后再试一次;当 网站其他网页访问正常而订票申请 总是出现故障,且网站没有发布升 级或停机通知时,可以根据页面中的提示服 务电话进行咨询。
一个有效身份证件同一乘车日期同一车 次限购一张车票(但使用同行成年人的有效 身份证件信息为乘车儿童购买儿童票的除外 )。一笔订单不能超过5张票,网站 可根据具体情况做适当限制。
1.打开12306订票网站搜索页面
操作区
2.进行网上订票用户注册
2.进行网上订票用户注册
2.进行网上订票用户注册
在网上自主购票
订票速度 人力成本 定退票的便捷程度 个人信息的安全程度 订票效率 信息了解程度
快 较低 快捷 较安全 高 全面
谢谢欣赏 The End
Creຫໍສະໝຸດ dits
铁路订票系统
忻州培训站
李兆伟
目录
12306铁路网上订票系统概述

12306火车票网上订票查询

12306火车票网上订票查询

12306火车票网上订票查询12306火车票网上订票查询随着科技的发展,越来越多的人开始选择网上订票查询来购买火车票。

12306火车票网上订票查询系统是中国铁路总公司推出的一项便利的服务,为广大旅客提供了更加方便快捷的购票方式。

本文将详细介绍12306火车票网上订票查询系统的使用方法和优势,以及可能会遇到的问题和解决方法。

要使用12306火车票网上订票查询系统,首先需要在电脑或手机上下载并安装铁路12306客户端。

安装完成后,点击打开客户端,进入主界面。

在主界面上方可以看到一个搜索框,可以输入出发地和目的地的站名、车次或者城市名进行查询。

在搜索框下方有一系列筛选条件,比如车次种类、席别、发车时间等,可根据自己的需求进行选择。

点击搜索按钮后,系统将会呈现出符合条件的车次信息,包括出发时间、到达时间、历时等。

选定需要购买的车次后,点击购票按钮。

在购票页面上,需要填写旅客的姓名、证件类型和证件号码。

根据旅客的身份信息,系统会自动匹配相应的票价。

在填写完旅客信息后,点击确认购买按钮。

系统会提示选择座位,根据车次的不同,可以选择的座位种类也会有所差异。

座位选择完成后,点击确认按钮,系统会跳转到支付页面。

目前12306火车票网上订票查询系统支持支付宝、微信支付和银联支付三种方式。

选择其中一种支付方式,并按照系统的提示完成支付流程。

支付成功后,系统会生成一张购票凭证。

旅客可以在客户端上查看并下载购票凭证。

使用12306火车票网上订票查询系统的优势主要体现在以下几个方面。

首先,网上订票查询省去了排队购票的麻烦,旅客可以随时随地通过手机或电脑进行购票。

其次,系统提供了实时的车次查询和票价信息,旅客可以根据自己的需求进行选择。

再次,系统还提供了座位选择功能,旅客可以根据自己的喜好进行选择,增加了出行的舒适度。

然而,12306火车票网上订票查询系统也存在一些问题,比如系统繁忙导致订票速度慢,网络问题导致无法购票等。

遇到这些问题时,旅客可以尝试在非高峰时段进行购票,或者多次尝试。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

火车票订票系统内部编号:(YUUT-TBBY-MMUT-URRUY-UOOY-DBUYI-0128)目录软件技术基础课程设计说明书题目:火车订票系统的设计学生姓名:学号:院(系):电气与信息工程学院专业:电子信息科学与技术指导教师:杨帆2015 年 06月26日课程设计报告1 课程设计介绍课程设计内容软件技术基础课程是非计算机本科专业学习计算机软件基础知识的综合性基础课程。

学习本课程,要求学生对软件技术的各个组成部分的基础知识、发展趋势有全面、系统的了解;掌握基本数据结构,达到能熟练运用解决实际问题的程度;掌握操作系统基本原理和类型,了解系统各种管理功能。

通过自学了解软件工程的基本概念,软件设计开发的过程和相关技术。

实践环节具体任务:设计、开发一种火车订票系统。

通过此系统可以实现如下功能:火车车次信息录入、车次信息查询、火车票订票、火车票退票等。

课程设计要求系统应该至少提供以下模块:火车车次信息录入:可以录入车次情况(包含车次编号、出发时间、出发站、到达站、到达时间、途经主要大站(需要考虑如何保存这些信息)等信息)车次信息查询:可以查询某个车次的情况(如,输入车次号,查询出站、到站时间,票价,票价折扣,确定车次是否满员);可以输入出发站点、到达站点城市,查询火车车次情况;火车票订票:可以订票,如果该车次已经无票,可以提供相关可选择车次(同样到达点、途经出发站的其他火车)——订票时需要提供时间、车次、车厢号、座位号、票价、订票人姓名、订票人联系方式、证件号码、订票数量、订单号等,只能比这个多,不能少于这些信息;火车票退票:可退票,退票后修改相关数据;客户资料有姓名,证件号,订票数量及车次情况,订单要有编号。

要求:根据以上功能说明,设计火车票订票系统订票环节涉及的信息,订票信息的存储结构,设计程序完成功能。

2 概要介绍系统总体设计首先考虑好选用链表结构存储通讯录。

经过对程序设计题目的分析可知,整个程序的设计实现大致分为六个模块,每一个模块对应一个函数。

这些函数分别为:火车信息录入函数,火车车次查询函数,火车票订票函数,火车票退票函数,显示火车信息函数,主函数(包括菜单控制程序函数)。

各子模块设计实现程序最初运行时的菜单界面,以及对其他模块的调用。

同时建立火车信息单链表。

其中采用switch 函数实现对菜单目录的每个模块的运行。

结构框图:主要实现程序最初运行时火车信息的录入。

用头插入法建立带有头结点的单链表。

结构框图:号、身份证号等基本信息并依次保存到客户链表位置。

结构框图:结构框图:3个小模块,分别是按编号查询、按出发站查询、按终点站查询,用if 选择语句实现对这三个小模块的运行选择。

查询功能用strcmp 比较函数实现,Strcmp 函数比较原理:例如:strcmp (str1,str2);比较的结果由函数值带回。

如果字符串1=字符串2,则函数值为0.如果字符串1>字符串2,则函数值为一个正整数.如果字符串1<字符串2,则函数值为一个负整数.流程图:实现功能为显示链表中所有的火车信息。

原理是遍历链表,并输出所有信息。

结构框图:3 详细设计主函数模块所涉及的函数分析源代码:#include<>#include<>#include<>车信息录入\n");printf(" \ 2.火车信息查询\n");printf(" \ 3.购票\n");printf(" \ 4.退票\n");printf(" \ 5.显示火车信息\n");printf(" \ 6.退出管理系统\n");printf(" \ 请按键选择\n");while(true){printf("请按键选择操作:\n");fflush(stdin); 按编号查询 \n");printf(" 2. 按出发站查询 \n");printf(" 3. 按到达站查询 \n");printf("==================\n");printf(" 请选择: ");p=head->next;scanf("%d",&y);if (y==1){printf("请输入要查找的编号:");scanf("%s",num);while(p!=NULL){if(strcmp(p->num,num)==0){printf("编号:%s\n",p->num);printf("出发时间:%s\n",p->ltime); printf("到达时间:%s\n", p->atime); printf("出发站:%s\n",p->leave);printf("到达站:%s\n",p->arrive);printf("票价:%s\n",p->price);printf("途经城市:%s\n",p->through); printf("剩票:%s\n",p->shengpiao); return;}p=p->next;}}else if(y==2){ printf(" 请输入要查找的出发站:");scanf("%s",leave);while(p!=NULL){if(strcmp(p->leave,leave)==0){printf("编号:%s\n",p->num);printf("出发时间:%s\n",p->ltime);printf("到达时间:%s\n", p->atime);printf("出发站:%s\n",p->leave);printf("到达站:%s\n",p->arrive);printf("票价:%s\n",p->price);printf("途经城市:%s\n",p->through);printf("剩票:%s\n",p->shengpiao); return;}p=p->next;}printf("不存在此出发站的车次\n");}else if(y==3){printf(" 请输入要查找的到达站:"); scanf("%s",arrive);while(p!=NULL){if(strcmp(p->arrive,arrive)==0){printf("编号:%s\n",p->num);printf("出发时间:%s\n",p->ltime); printf("到达时间:%s\n", p->atime); printf("出发站:%s\n",p->leave);printf("到达站:%s\n",p->arrive);printf("票价:%s\n",p->price);printf("途经城市:%s\n",p->through); printf("剩票:%s\n",p->shengpiao); return;}p=p->next;}printf("不存在此终点站的车次\n");}}void show(train *head)编号查询:2.按出发站查询:3:按终点站查询:如果没有该列车的截图:显示功能模块运行结果截图5 总结设计中出现的问题以及解决的办法汇总(调试过程记录)没有解决的问题:设计中有一些问题没有在软件中得以实现,比如老师要求的在火车票订票模块中,如果该车次已经无票,可以提供相关可选择车次,该系统中没有实现这一功能;没有折扣等列车基本信息。

在订票模块中,输入客户信息时,信息错位,如下图:在输入客户信息时有错,输入名字后本应该输入手机号,但是系统没有弹出手机号而是需要继续输入,这样就导致后边退票时查询的客户信息发生错位,问题原因所在应该是指针的问题。

完成订票后,没有将单链表中火车剩余票数修改,没有将俩个单链表联系起来所以没有实现这一功能。

实现车厢号和座位号时,原计划是车厢号从1开始,每节车厢30个座位,座位满30后车厢号加一,然后座位号从一号重新开始,但是代码一直没有编译通过。

已经解决的问题:在录入信息输入后,一开始输出的页面是说有信息在一行,后面运行后发现会发生错位现象,后来在每输完一个信息后就换行,输出也同样如此,这样就可以更加直观的浏览到信息,不会错位。

而且一开始的输出方法录入信息时必须制定信息长度,比如编号是四位,手机号是十一位,时间地点等都有输入字数限制,后来发现这一弊端后进行改进,在换成了换行输入输出后,都不用规定长度。

但是这样有个缺陷就是数据输错后不容易发现,而且不符合常理,比如手机号只有11位,身份证号应该是18位。

课程设计心得体会本来一开始做的时通讯录系统,后来又在假期重新做的火车票订票系统。

如今系统还不是很完善,就如上文所说,有部分小细节还不能实现,而且还有点问题没有解决。

经过这次课程设计的训练,我的编程能力有了较明显的提高,尤其是对顺序表和链表的认识和使用有了显着的提高。

然而,虽然只是编写这么一个小小的程序,却是我意识到自己的不足以及需要提高的地方。

程序语句的不熟练使我在编程初期工作效率相当的低下。

不断地翻书让我很痛苦,而且浪费了很多时间。

最后,通过这两周的编程,我感觉到了程序的来之不易。

平时惯用的免费软件没觉得有什么,但通过本次的编程后我感觉到了编程者的艰辛。

这次编程我学到了很多,也懂得了很多。

我的C语言又有了新的提高,质的升华。

所有源代码:#include<>#include<>#include<>按编号查询 \n");printf(" 2. 按出发站查询 \n");printf(" 3. 按到达站查询 \n");printf("==================\n");printf(" 请选择: ");p=head->next;scanf("%d",&y);if (y==1){printf("请输入要查找的编号:");scanf("%s",num);while(p!=NULL){if(strcmp(p->num,num)==0){printf("编号:%s\n",p->num);printf("出发时间:%s\n",p->ltime);printf("到达时间:%s\n", p->atime);printf("出发站:%s\n",p->leave);printf("到达站:%s\n",p->arrive);printf("票价:%s\n",p->price);printf("途经城市:%s\n",p->through);printf("剩票:%s\n",p->shengpiao);return;}p=p->next;}}else if(y==2){ printf(" 请输入要查找的出发站:"); scanf("%s",leave);while(p!=NULL){if(strcmp(p->leave,leave)==0){printf("编号:%s\n",p->num);printf("出发时间:%s\n",p->ltime); printf("到达时间:%s\n", p->atime); printf("出发站:%s\n",p->leave);printf("到达站:%s\n",p->arrive);printf("票价:%s\n",p->price);printf("途经城市:%s\n",p->through); printf("剩票:%s\n",p->shengpiao); return;}p=p->next;}printf("不存在此出发站的车次\n");}else if(y==3){printf(" 请输入要查找的到达站:"); scanf("%s",arrive);while(p!=NULL){if(strcmp(p->arrive,arrive)==0){printf("编号:%s\n",p->num);printf("出发时间:%s\n",p->ltime); printf("到达时间:%s\n", p->atime); printf("出发站:%s\n",p->leave);printf("到达站:%s\n",p->arrive);printf("票价:%s\n",p->price);printf("途经城市:%s\n",p->through);printf("剩票:%s\n",p->shengpiao);return;}p=p->next;}printf("不存在此终点站的车次\n");}}void show(train *head)车信息录入\n");printf(" \ 2.火车信息查询\n");printf(" \ 3.购票\n");printf(" \ 4.退票\n");printf(" \ 5.显示火车信息\n");printf(" \ 6.退出管理系统\n");printf(" \ 请按键选择\n");while(true){printf("请按键选择操作:\n");fflush(stdin); 淑芬,计算机软件技术基础,机械工业出版社,2009 2.谭浩强,C语言程序设计(第二版).清华大学出版社,2002。

相关文档
最新文档