版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、广州大学华软软件学院毕业论文(设计)课题名称 基于SSH框架的携程铁路网上售票系统 网上时刻查询及网上订票子系统的设计与实现 学 院 华软软件学院 系 别 软件工程系 专 业 计算机科学与技术 班 级 06级软件开发3班 姓 名 任正国 学 号 0640108263 指导教师 聂常红 日 期 2010年4月5日 摘要:本文阐述了一个基于SSH框架的携程铁路网上售票系统-网上时刻查询及网上订票子系统的设计与实现,该系统采用了J2EE的主流框架技术Struts2、Spring 和Hibernate ,并结合MYSQL的存储过程,AJAX的异步请求, DIV+CSS网页重构;采用了软件工程面向对象的
2、分析与设计UML建模。实现了网上用户对携程铁路网上时刻查询及网上订票的信息化。增强了系统的安全性和稳定性,提高了B/S 模式Web 应用程序的响应速度,改善了用户的体验,使用户可以快速便捷的在互联网上进行列车时刻查询和网上订票。关键词:Struts2,Spring,Hibernate,AJAX,存储过程ABSTRACT: This article elaborated sells tickets the system based in the SSH frames Xiecheng railway network-On-line time inquiry and on-line order f
3、orm subsystems design with realizes, this system has used J2EE mainstream frame technology Struts2, Spring and Hibernate, and unifies MYSQL the memory process, the AJAX asynchronous request, DIV+CSS homepage restructuring; Has used the software engineering object-oriented analysis and the design-UML
4、 modelling. Realized on-line user the time to inquire and on-line order form informationization to the Xiecheng railway network on. Strengthened systems security and the stability, enhanced B/S the pattern Web application procedure speed of response, improved users experience, enables the user to be
5、 possible fast convenient to carry on the train time on the Internet to inquire and on-line order form.KEY WORDS: Struts2;Spring;Hibernate;AJAX;Storage Process 目 录前 言1第1章 系统开发环境21.1 系统开发平台21.2 开发工具2第2章 系统分析52.1 系统目标52.2 系统功能结构图52.3 系统功能描述62.4 数据流图72.4.1 携程铁路网上售票系统的顶层DFD72.4.2 携程铁路网上售票系统的第二层DFD82.4.3
6、 第三层DFD-网上时刻查询及网上订票子系统82.4.4 第三层DFD-前台售票子系统92.5 运行环境92.6 系统性能要求10第3章 需求建模113.1 网上时刻查询及网上订票用例图113.2 类图123.3 时序图153.3.1 普通用户网上时刻查询时序图153.3.2 会员网上订票时序图18第4章 数据库设计224.1 数据库设计分析224.2 数据字典224.2.1 名词和符号定义224.2.2 网点管理234.2.3 车站管理234.2.4 列车管理244.2.5 售票管理254.2.6 订票管理274.3 数据表之间的关系284.4 数据库模型图29第5章 系统总体设计305.1
7、 网上查询页面架构设计305.2 网上订票页面设计315.3 携程铁路网上售票系统部署图35第6章 核心功能模块实现366.1 中转算法存储过程的实现366.1.1 中转算法的核心代码366.1.2 中转查询的界面426.1.3 实现中遇到的问题以及解决的方案426.2 用户订票的实现436.2.1 用户订票的核心代码436.2.2 会员网上订票的界面486.2.3 实现中遇到的问题以及解决的方案48第7章 核心模块的测试507.1 测试描述507.2 测试方法507.2.1 黑盒测试507.2.2 白盒测试527.3 软件测试547.3.1 界面测试547.3.2 功能测试557.4 测试评
8、价577.4.1 软件功能577.4.2 缺陷和限制577.4.3 建议587.4.4 测试结论58结束语59参考文献60致 谢61 前 言 随着我国国民经济的发展和人民生活水平的提高,我国旅客对铁路运输提出了更高的要求,希望购票过程更加简便、快捷。同时传统的人工售票方式不但速度慢,而且票源难以掌握、调剂,给票贩子猖獗提供了可乘之机。因此铁路部门,也迫切需要开发一套使用计算机网络来管理的全国联网的售票系统,用来实现计算机联网售票,并且有预订、退票、统计等多种功能。 本文论述的基于SSH框架的携程铁路网上售票系统设计与实现,就是为了解决上述问题而提出来的。该系统的最终目标就是建立一个覆盖全国铁路
9、的计算机售票网络,实现客票管理和发售工作现代化,达到国际先进水平,方便旅客购票,提高铁路客运管理水平和服务质量。 本课题主要的研究范围是:基于SSH框架的携程铁路网上售票系统的设计与实现。 本课题采用的研究方法包括:软件工程中结构化的分析与设计和面向对象的分析与设计以及UML的静态建模和动态建模。本课题要达到的要求包括:方便人们在网上进行铁路时刻查询和网上订票,减轻售票工作人员的工作量,实现计算机联网售票,并且有出售返程、联程等异地购票的功能国外售票系统的开发及应用起步的比较早,而且国外的通信发达,所以在售票系统的结构上大都采用的是集中处理的主机/终端方式。尤其在欧洲这样的结构更加适合。但是在
10、对于国土辽阔,人口众多的中国,考虑到网络的覆盖,通信等众多方面,主要采用的是近代发展的集中与分布相结合的客户机/服务器体系结构。但这种结构在某种程度上还是不能完全满足数据库的全国联网。所以目前我国对于售票系统的开发还是处于进一步的探索和发展当中。目前我国开发售票系统的方向是整个系统由中央级、地区级和车站级三层结构组成的。包括全国票务中心管理系统、地区票务中心管理系统和车站电子售票系统。第1章 系统开发环境1.1 系统开发平台开发平台:MyEclipse6.0 操作系统:Windows 7 数据库软件:Mysql 5.0 部署服务器:Tomcat 5.0 1.2 开发工具系统采用SSH框架开发,
11、并结合AJAX、Mysql的存储过程、DIV+CSS。Struts2框架Struts2是基于模型-视图-控制器(MVC)模式的开源框架,主要用于企业应用中表示层的实现。借助于Struts2,开发人员可以把主要精力集中在业务处理上,简化遵循MVC设计模式的Web应用开发工作,很好地实现代码重用,提高开发效率。Struts2的工作流程图来源于百度百科 图1-1 Struts2的工作流程图在HttpServletRequest到达Servlet容器之前要经过一系列过滤器链,包括ActionContextCleanUp过滤器等;然后,FileterDispatcher被调用,FileterDispat
12、cher参考ActionMapper来决定请求是否与相应Action相关联。如果ActionMapper确定了请求对一个Action的调用,它就会将控制权委托给ActionProxy,ActionProxy创建对应的Action实例,然后ActionProxy参考由struts.xml配置的ConfigurationManager生成ActionInvocation。之后,Action和Interceptor的执行都由ActionInvocation来控制。在Action执行前可能会执行多个Interceptor。当Action执行结束后,ActionInvocation根据struts.xm
13、l中的result配置查找相应的结果页面,并将Action的执行结果输出到结果页面中。这个页面一般是使用Struts2提供的标签库编写的JSP页面。ActionInvocation控制Interceptor以反序执行。 HttpServletResponse根据Web.xml中的配置通过相应的过滤器,返回客户端。Spring 框架Spring 是一个开源的框架, 由Rod Johnson 创建。简单的说, Spring 是一个轻量级的、能实现控制反转( IoC) 和面向切面编程(AOP)的容器框架。Spring 框架处于应用服务器和服务库的上方,服务整合的代码属于框架,并暴露于应用开发者。它是
14、一个分层架构,由七个定义好的模块组成。Spring 模块构建在核心容器之上。核心容器定义了创建、配置和管理bean 的方式。Hibernate 框架Hibernate 是一个高性能、开放源代码的持久框架,是对象/关系映射的解决方案。简单地讲,就是将JAVA 中的对象实体及实体之间的关系映射到关系数据库中的表与表之间的关系,Hibernate 提供了这个过程中的自动对应转换方案。Hibernate 是JAVA 应用和关系数据库之间的桥梁, 负责JAVA 对象和关系数据之间的映射。内部封装了JDBC 访问数据库的操作, 向上层应用提供了面向对象的数据库访问API。DIV+CSS网页重构 DIV+C
15、SS是网站标准(或称“WEB标准”)中常用术语之一,通常为了说明与HTML网页设计语言中的表格(table)定位方式的区别,因为XHTML网站设计标准中,不再使用表格定位技术,而是采用DIV+CSS的方式实现各种定位。 CSS是英语Cascading Style Sheets(层叠样式表单)的缩写,它是一种用来表现 HTML 或 XML 等文件式样的计算机语言。 DIV元素是用来为HTML文档内大块(block-level)的内容提供结构和背景的元素。DIV的起始标签和结束标签之间的所有内容都是用来构成这个块的,其中所包含元素的特性由DIV标签的属性来控制,或者是通过使用样式表格式化这个块来进
16、行控制。使页面载入得更快由于将大部分页面代码写在了CSS当中,使得页面体积容量变得更小。相对于表格嵌套的方式,DIV+CSS将页面独立成更多的区域,在打开页面的时候,逐层加载。而不像表格嵌套那样将整个页面圈在一个大表格里,使得加载速度很慢。降低流量费用页面体积变小,浏览速度变快,这就使得对于某些控制主机流量的网站来说是最大的优势了。修改设计时更有效率由于使用了DIV+CSS制作方法,在修改页面的时候更加容易省时。根据区域内容标记,到CSS里找到相应的ID,使得修改页面的时候更加方便,也不会破坏页面其他部分的布局样式。保持视觉的一致性DIV+CSS最重要的优势之一:保持视觉的一致性;以往表格嵌套
17、的制作方法,会使得页面与页面,或者区域与区域之间的显示效果会有偏差。而使用DIV+CSS的制作方法,将所有页面,或所有区域统一用CSS文件控制,就避免了不同区域或不同页面体现出的效果偏差。对浏览者和浏览器更具亲和力我们都知道网站做出来是给浏览者使用的,对浏览者和浏览器更具亲和力,DIV+CSS在这方面更具优势。由于CSS富含丰富的样式,使页面更加灵活性,它可以根据不同的浏览器,而达到显示效果的统一和不变形。第2章 系统分析2.1 系统目标基于SSH框架的携程铁路网上售票系统是一个独立的软件,且全部内容自含。开发目的在于方便人们在网上实时查询列车的时刻信息,并实现人们进行网上订票和取消订票的功能
18、,以及实现售票员进行多网点联网售票和取票的功能,还实现系统管理员对网点授权和后台信息管理等功能。2.2 系统功能结构图图2-1 系统功能结构图2.3 系统功能描述 本系统是基于SSH框架的携程铁路网上售票系统;系统用户包括:普通用户、会员、售票员、系统管理员;普通用户可以使用该系统来查询列车车次信息,会员可以使用该系统进行网上订票和取消订票的功能;售票员可以使用该系统进行多网点联网售票和取票;系统管理员可以使用该系统对站点及列车信息进行管理。1普通用户查询列车信息系统提供普通用户对全国各次列车详细信息的查询功能,如果没有直达目的地的车次,系统提供可换乘的中转站供用户选择。列车查询的条件包括:始
19、发站、终点站、列车编号及发车时间等2普通用户注册成为会员系统提供普通用户注册成为会员的功能,并自动发送电子邮件到会员的邮箱提示注册成功。 注册的条件包括:用户名、密码、电子邮箱、手机号码。3会员登录系统提供会员登录的功能,如果会员忘记密码可通过邮箱得到密码。 登录条件包括:用户名、密码。4会员网上订票系统提供会员对全国各次列车的车票进行网上订票的功能,并自动提示用户订票成功。(注:用户可以根据自己的实际需要选择取票网点)网上订票的条件包括: 有效身份证件、车次、发车时间、上车车站等。5会员取消订票系统提供会员在48小时内取消订票,超过时间系统将自动取消订票。系统自动发送邮件提示用户取消订票的信
20、息。 取消订票的条件包括:订单号。6售票员进行多网点联网售票和取票系统提供售票员对全国各地的车次进行查询、售票和取票并打印火车票的功能。 多网点联网售票和取票信息包括:有效身份证件、订单号、座位类型、起点站、终点站、发车时间等。7.系统管理员对站点及列车信息进行管理系统提供系统管理员对后台的数据进行维护、更新和管理以及权限管理和网点授权的功能。站点及列车信息包括:站点编号、站点名称、列车编号、发车时间、到达时间、途经站点及时刻、列车车厢编号、列车座位编号等。2.4 数据流图2.4.1 携程铁路网上售票系统的顶层DFD图2-2 携程铁路网上售票系统的顶层DFD图图2-2显示了携程铁路网上售票系统
21、的顶层图。它表明系统从网上用户接受订票申请,经过处理后把订票单返回给网上用户,使网上用户可凭订票单到售票网点取票。2.4.2 携程铁路网上售票系统的第二层DFD 图2-3 携程铁路网上售票系统的第二层DFD图图2-3 显示了网上用户与网上时刻查询及网上订票子系统联系,售票员与前台售票子系统相联系。 2.4.3 第三层DFD-网上时刻查询及网上订票子系统图2-4 第三层DFD图-携程铁路网上时刻查询及网上订票子系统图2-4 显示网上时刻查询及网上订票子系统被分解为3个子加工,编号从1.1至1.3。网上用户成功登录后,可以进行网上订票,系统查看是否还有车票,如果有则进行订票处理,并可以打印订单。如
22、果没有则提示用户车票已售完。2.4.4 第三层DFD-前台售票子系统图2-5 第三层DFD图-前台售票子系统图2-5显示前台售票子系统被分解为2个子加工,编号从2.1至2.2。售票员售票,系统查找是否有车票,如果有则打印火车票;如果没有则提示售票员车票已售完。以上共画了3层、4个DFD图,组成了携程铁路网上售票系统的分层DFD图。愈到下层加工愈细。第三层的加工已是足够满足简单的”基本加工”,不必再分解了。分层DFD具有一下优点:A、便于实现。采用逐步细化的扩展方法,可避免一次引入过多细节,有利于控制问题的复杂度。B、便于实现,用一组图代替一张总图,使用户中的不同业务人员可各自选择与本身有关的图
23、形,不必阅读全图。2.5 运行环境1软件环境操作系统:WindowsXP/2003/VISTA/Windows7浏览器:IE6.0以上数据库:Mysql 5.0服务器:Tomcat 5.02硬件环境A服务器端:处理器:2.2GHz以上内存:2048MB硬盘空间:500GB客户端: 处理器: 1.6GHz 以上内存:128MB硬盘空间:2GB2.6 系统性能要求l 精度 A、 输入输出数据必须为正数。相对应的类型数据输出时,可匹配输入时的格式B、 需要经过网络传输的数据,都采用二进制的格式进行传输。l 时间特性要求A、响应时间本软件有些模块需要处理一些同步操作要求很高的事情,所以响应时间不能大于
24、2ms;B、数据的转换和传送时间部分功能需要特定的数据格式,所有在获取数据和转换数据的时间不能大于3ms;l 其他专门要求 数据库备分功能,局域网可以联机备分。有安全的数据恢复功能。必要的断电处理和数据安全处理。第3章 需求建模3.1 网上时刻查询及网上订票用例图 图3-1 网上时刻查询及网上订票用例图网上时刻查询及网上订票用例规约:A.描述:普通用户利用本系统可以进行车次查询、站点查询、站站查询以及中转站查询,普通用户还可以注册成为会员,并进行网上订票和取消订单。B.基本事件流:1、用例起始于普通用户网上查询车次信息2、普通用户根据需要输入查询条件3、系统显示符合条件的车次信息4、普通用户注
25、册成为会员5、会员登录后可以修改密码、基本信息及网上订票6、会员根据需要输入查询条件7、系统显示符合条件的车次信息8、会员选择车次进行网上订票9、系统显示订票成功的信息。C.后置条件:系统成功记录本次订票信息、相关车票的状态被成功标识。D.备选事件流: 1、会员没有查询到需要的车票,本次订票业务终止 2、车票已经售完,本次订票业务终止E.其他预定的信息包括:订票人的姓名、身份证、取票网点和本次订票的情况:车次、开车时间、出发站、目的站、座位类型、票价。3.2 类图 类图的设计使用DIP原则(依赖倒置原则,The Dependency Inversion Principle)A、高层模块不应依赖
26、于低层模块。二者都应该依赖于抽象B、抽象不应该依赖于细节。细节应该依赖于抽象C、针对接口编程,不针对实现编程1用户查询类图图3-2 用户查询类图图3-2显示了用户进行网上时刻查询用例的类及各个类之间的关系。2.会员网上订票类图图3-3 会员网上订票类图图3-3显示了会员网上订票用例的类/对象及各个类之间的关系。3.3 时序图3.3.1 普通用户网上时刻查询时序图1普通用户车次查询时序图图3-4普通用户车次查询时序图说明:(1)普通用户向系统发送车次查询的请求。(2)CheckAction接收请求,调用UsersService的checkTick()方法进行查询。(3)调用UsersDAO的Ch
27、eckTick()方法进行查询。(4)获取列车车次的详细信息。(5)返回列车车次的详细信息。(6)显示列车车次的详细信息。2普通用户站点查询时序图图3-5 普通用户站点查询时序图说明:(1)普通用户向系统发送站点查询的请求。(2)CheckAction接收请求,调用UsersService的checkStation()方法进行查询。(3)调用UsersDAO的CheckStation()方法进行查询。(4)获取列车车次信息。(5)返回列车车次信息。(6)显示列车车次信息。3普通用户站站查询和中转站查询时序图图3-6 普通用户站站查询和中转站查询时序图说明:(1)普通用户向系统发送站站查询的请求
28、。(2)CheckAction接收请求,调用UsersService的stationToStation()方法进行查询。(3)调用UsersDAO的stationToStation()方法进行查询。(4)获取列车车次信息。(5)返回列车车次信息。(6)显示列车车次信息。(7)如果没有查询到站站查询的信息,则调用UsersService的transferStation()方法进行中转站查询。(8)调用UsersDAO的transferStation的方法进行查询。(9)获取中转站的车次信息。(10)返回中转站的车次信息。(11)显示中转站的车次信息。3.3.2 会员网上订票时序图1会员登录时序图
29、图3-7 会员登录时序图说明:(1)会员向系统发送登录请求。(2)PassengerLoginAction接收请求,调用LoginService的login()方法进行登录验证。(3)调用LoginDAO的login()方法进行登录验证。(4)获取会员登录验证的信息(5)返回验证结果。(6)显示会员登录信息。2会员网上订票时序图图3-8 会员网上订票时序图说明:(1)会员向系统发送查询车次信息的请求。(2)OrderAction接收请求,调用OrderService的orderTicker()方法,进行查询。(3)调用OrderDAO的orderTicker()方法进行查询。(4)获取列车的车
30、次信息。(5)返回查询结果。(6)显示查询到的车次信息。(7)会员向系统提交订票申请。(8)OrderAction接收请求,调用OrderService的booking()方法,进行订票处理。(9)调用OrderDAO的booking()方法,进行订票处理。(10)向订单表添加订票记录。(11)向售票表添加订票记录。(12)返回订单信息。(13)显示订单信息。3会员取消订票时序图图3-9 会员取消订票时序图说明:(1)会员向系统发送查询订单信息的请求。(2)OrderAction接收请求,调用OrderService的checkOrders ()方法,进行查询。(3)调用OrderDAO的ch
31、eckOrders ()方法进行查询。(4)获取会员订单信息。(5)返回查询结果。(6)显示查询到的订单信息。(7)会员向系统发送取消订票请求。(8)OrderAction接收请求,调用OrderService的removeOrder()方法,进行取消订票处理。(9)调用OrderDAO的removeOrder()方法,进行取消订票处理。(10)将订单表的订票记录改为取消。(11)将售票表的订票记录改为退票。(12)返回取消订票的信息。(13)显示取消订票的信息。第4章 数据库设计4.1 数据库设计分析数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储
32、数据,满足用户信息要求。A、需求分析阶段:综合考虑携程列车各个用户的应用需求,确定用户需求的信息在数据库表中的存储。B、在概念设计阶段:形成独立于机器和各DBMS产品的概念模式,用E-R图来描述。C、在逻辑设计阶段:将E-R图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式。D、在物理设计阶段:根据DBMS特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。4.2 数据字典4.2.1 名词和符号定义 *:主关键字符号; K:主关键字缩写; +:外关键字符号; FK:外关键字缩写; &:复合关键字符号; CPK:复合关键字缩写; UNIQUE:唯一索引;4.2.2
33、 网点管理1授权网点表 AUTHORIZE_WEBSITE 表4-1 授权网点表字 段类 型说 明备 注*AUTHORIZE_WEBSITE_IDVARCHAR (20)PK(授权网点编号)+COUNTY_IDVARCHAR (20)区县编号FK: COUNTYAUTHORIZE_NAMEVARCHAR (50)网点名称AUTHORIZE_ADDRESSVARCHAR (150)网点地址AUTHORIZE_TELEPHONEINT (20)联系电话UNIQUESTATUSINT (10)状态SIM_NAMEVARCHAR(10)网点简称REMARKSVARCHAR (200)备注2区县表 -
34、COUNTY 表4-2 区县表字 段类 型说 明备 注* COUNTY_IDVARCHAR (20)PK(区县编号)COUNTY_NAMEVARCHAR (20)区县名CITY_IDINT(10)城市编号4.2.3 车站管理1站点信息表 STATION表4-3 站点信息表字 段类 型说 明备 注* STATION_IDINT (10)PK(站点编号)+ PROVINCE_IDINT (10)省份编号FK: PROVINCESTATION_NAMEVARCHAR (50)站点名称STATION_PRONOUNCEVARCHAR (50)站点拼音名2省份信息表 PROVINCE表4-4 省份信息表
35、字 段类 型说 明备 注*PROVINCE_IDINT (10)PK(省份编号)PROVINCE_NAMEVARCHAR (20)省份名称UNIQUE3城市信息表 CITY表4-5 城市信息表字 段类 型说 明备 注*CITY_IDINT (10)PK(城市编号)CITY_NAMEVARCHAR (50)城市名称UNIQUE+PROVINCE_IDINT (10)省份编号FK: PROVINCE4.2.4 列车管理1列车信息表 TRAIN_INFORMATION表4-6 列车信息表字 段类 型说 明备 注* TRAIN_IDVARCHAR(10)PK(车次)+ TYPE_IDINT(10)列车
36、类型编号FK: TRAIN_TYPESTART_STATION_IDINT(10)始发站站点编号START_STATIONVARCHAR(50)始发站点END_STATION_IDINT(10)终点站站点编号END_STATIONVARCHAR(50)终点站COACH_NUMINT车厢数量TOTAL_MILEAGEINT总里程TOTAL_TIMESINT总运行时间2列车线路表 train_station表4-7 列车线路表字 段类 型说 明备 注+ TRAIN_IDVARCHAR(10)PK(车次)FK: TRAIN_INFORMATION+ STATION_IDINT (10)PK站点编号F
37、K: STATIONSTATION_NAMEVARCHAR(50)站点名称START_TIMEVARCHAR(20)发车时刻终点站没有发车时间END_TIMEVARCHAR(20)到站时刻始发站没有到站时间STATION_QUANTITYINT第几站从1开始累加DISTANCEINT距离始发站的路程TRAIN_TIMEINT距离始发站的运行时间3列车类型表 TRAIN_TYPE表4-8 列车类型表字 段类 型说 明备 注* TYPE_IDINT(10)PK(列车类型编号)TRAIN_TYPEVARCHAR (20)列车类型4.2.5 售票管理1车票销售表 TICKET_SELL表4-9 车票销
38、售表字 段类 型说 明备 注* SELL_IDINT (20)PK(主键)自动增长TICKET_IDVARCHAR(50)车票编号+AUTHORIZE_WEBSITE_IDVARCHAR (20)授权网点编号FK:AUTHORIZE_WEBSITE续表4-9字 段类 型说 明备 注+COACH_TYPE_IDINT车厢类型编号FK:SEAT_TYPE+TRAIN_IDVARCHAR(10)车次FK:TRAIN_INFORMATIONTICKET_STATEVARCHAR (20)车票状态已售出、退票、已预定COACH_IDINT车厢编号从1开始累加,依据不同的列车有不同的数量SEAT_IDVA
39、RCHAR (20)座位编号从1开始累加(硬座118,硬卧60,软座100,软卧32,站票依据车次类型)SELL_TIMEVARCHAR (20)销售时间START_SITEVARCHAR (20)上车站点DESTINATIONVARCHAR (20)目的站点START_DATAVARCHAR (20)上车日期START_TIMEVARCHAR (20)开车时间FAREFLOAT票价SELL_CODEVARCHAR(100)防伪编号2车厢类型表 SEAT_TYPE表4-10 车厢类型表字 段类 型说 明备 注*COACH_TYPE_IDINT(10)PK(车厢类型编号)SEAT_TYPE_NA
40、MEVARCHAR(20)座位类型SEAT_NUMINT座位数量PRICEFLOAT每公里车票价格3列车结构表 TRAIN_STRUCTURE表4-11 列车结构表字 段类 型说 明备 注*STRUCTURE_IDINT(20)PK(主键)自动增长+TRAIN_IDVARCHAR(10)车次FK:TRAIN_INFORMATIONTRAIN_NOINT车厢编号+COACH_TYPE_IDINT车厢类型编号FK: SEAT_TYPE4.2.6 订票管理1乘客信息表 PASSENGER表4-12 乘客信息表字 段类 型说 明备 注* PASSENGER _IDINT(100)PK(主键)自动增长P
41、ASSENGER_NAMEVARCHAR(30)用户名UNIQUEPASSENGER_PASSWORDVARCHAR(20)密码PASSENGER_MOBILEVARCHAR(20)手机号码PASSENGER_EMAILVARCHAR(50)邮箱PASSENGER_STATEVARCHAR(20)用户状态正常、停用2用户订单表 ORDERS表4-13 用户订单表字 段类 型说 明备 注*ORDERS_IDINT(20)PK(主键)自动增长ORDER_IDVARCHAR(50)订单号+PASSENGER_IDINT(100)用户表主键FK:PASSENGER+TRAIN_IDVARCHAR(10
42、)车次FK:TRAIN_INFORMATION+SELL_IDINT(20)销售表主键FK:TICKET_SELL+AUTHORIZE_WEBSITE_IDVARCHAR (20)取票网点编号FK:AUTHORIZE_WEBSITE续表4-13字 段类 型说 明备 注ORDER_TIMEDATETIME订票时间START_SITEVARCHAR (20)出发站START_TIMETIME开车时间START_DATEDATA开车日期DESTINATIONVARCHAR (20)目的站END_TIMETIME到站时间END_DATEDATA到站日期TOTAL_TIMESINT运行时间TOTAL_M
43、ILEAGEINT里程ID_CHARVARCHAR(30)身份证号码REAL_NAMEVARCHAR(20)真实姓名ORDER_STATEVARCHAR(20)订票状态(已定票,已取票,已取消)4.3 数据表之间的关系图4-1 数据表之间的关系4.4 数据库模型图 图4-2数据库模型图第5章 系统总体设计5.1 网上查询页面架构设计1车次查询页面设计图5-1 车次查询页面设计用户输入车次并进行车次查询,系统查询并显示查询到的该车次信息。如果不存在该车次信息,系统提示没有查到该车次信息。2站点查询页面设计图5-2 站点查询页面设计用户输入站点信息并进行车站查询,系统查询所有经过该站点的车次信息并
44、显示给用户,如果不存在该站点的车次信息,系统提示没有查询到该站点的车次信息。3站站查询页面设计图5-3 站站查询页面设计 用户输入出发站和目的站并进行站站查询,系统查询所有符合条件的车次信息并显示给用户,如果不存在符合条件的车次信息,系统自动进行中转站的查询。5.2 网上订票页面设计1用户注册页面设计图5-4 用户注册页面设计用户输入用户名、密码、手机号码、电子邮箱进行网上注册。系统检查用户名是否存在并校验密码、手机号码、电子邮箱的格式,如果用户名不存在并且格式正确,则提示用户注册成功;否则提示用户重新注册。2用户登录页面设计 图5-5 用户登录页面设计用户输入用户名、密码并进行登录;系统校验
45、输入信息是否正确,如果正确则进入订单页面,否则提示用户用户名或密码错误请重新输入。3用户查询车票页面设计图5-6 用户查询车票页面设计 用户输入出发地点、到达地点、出行日前或者车次并进行搜索;系统查询符合条件的信息并显示给用户,如果不存在相关车次信息,系统提示用户没有查询到所需的车次信息。4用户查询订单页面设计图5-7 用户查询订单页面设计 用户输入查询的时间范围并进行搜索,系统查询符合条件的车次信息,并显示给用户,如果不存在订单信息,系统提示用户没有查询到订单信息。5用户取消订单页面设计图5-8 用户取消订单页面设计 用户点击“取消订单”,系统进行取消订单,如果执行成功,系统提示用户订单取消
46、成功,否则提示用户订单取消失败。6用户修改信息页面设计图5-9 用户修改信息页面设计 用户可以根据需要修改手机号码和电子邮箱,用户名为不可编辑,用户编辑手机号码和电子邮箱并选择修改,系统校验输入是否符合格式,如果格式正确系统提示用户修改成功,否则提示用户修改失败。7用户修改密码页面设计图5-10 用户修改密码页面设计用户输入现在密码和新密码并选择修改,系统验证现在密码是否正确以及新密码是否符合长度,如果正确系统提示用户密码修改成功,否则提示用户密码修改失败,请重新输入。5.3 携程铁路网上售票系统部署图 图5-11 携程铁路网上售票系统部署图第6章 核心功能模块实现6.1 中转算法存储过程的实
47、现6.1.1 中转算法的核心代码/ UsersDAOImpl.java /中转站查询public ArrayList transferStation(String startStation,String endStation) StringqueryString= calltransfer(+startStation+,+endStation+); ArrayList listinfor = new ArrayList(); try Session session = this.getHibernateTemplate().getSessionFactory().openSession();
48、List list = session.createSQLQuery(queryString).list(); for(Object item:list) Object obj = (Object) item; Transfer transfer = new Transfer(obj); listinfor.add(transfer); session.close(); catch(Exception e)e.printStackTrace(); return listinfor; /tmpTable DELIMITER $ DROP PROCEDURE IF EXISTS train.tmp
49、Table$ CREATE DEFINER=rootlocalhost PROCEDURE tmpTable() BEGIN /*-不存在则创 建临时表TMPTABLE1,用来存储中转站*/ CREATE TEMPORARY TABLE IF NOT EXISTS TMPTABLE1 ( ID INT(20) PRIMARY KEY AUTO_INCREMENT, TRANSFER_STATION VARCHAR(50) UNIQUE ); truncate table TMPTABLE1; END$ DELIMITER ; /tmpTable2 DELIMITER $ DROP PROCEDURE IF EXISTS train.tmpTable2$ CREATE DEFINER=rootlocalhost PROCEDURE tmpTable2() BEGIN /*-不存在则创建临时表,用来存储中转站的详细信息*/ CREATE TEMPORARY TABLE IF NOT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年1月广东广州市天河区美好居幼儿园编外聘用制专任教师招聘1人考试备考试题及答案解析
- 2026新疆昆东经开区管委会招聘19人考试备考试题及答案解析
- 2026青海海东市第二人民医院校园引才招聘10人考试参考题库及答案解析
- 2026湖南师大附中双语实验学校(南校区)教师招聘考试备考题库及答案解析
- 2026福建厦门市集美区新亭幼儿园非在编教职工招聘1人考试参考试题及答案解析
- 2026中煤陕西能源化工集团有限公司面向社会招聘54人考试参考题库及答案解析
- 2026年西安庆华医院招聘(9人)考试参考题库及答案解析
- 2026上海大学招聘岗位210人(第一批)考试参考试题及答案解析
- 高级护理查房:姑息治疗与安宁疗护
- 2026年河南实达国际人力资源合作有限公司关于招聘公共安全服务人员备考题库参考答案详解
- 整体护理病历课件
- 算法歧视法律规制-洞察及研究
- 《质量比较仪校准规范》
- 去极端化宣传课件
- 2025至2030中国智能VR手术眼镜市场发展现状及未来前景预测分析报告
- 2025春季学期国开电大本科《人文英语4》一平台机考真题及答案(第八套)
- 2025-2030中国房地产与房地产软件行业市场发展趋势与前景展望战略研究报告
- 委托贷款购车协议书
- 婚后子女抚养协议书
- R-Breaker交易系统策略(TB版)
- 光伏劳务居间合同范例
评论
0/150
提交评论