资源描述
火车订票系统的设计与实现摘 要随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分使用计算机对火车信息进行管理,具有手工管理所无法比拟的优点。例如:检索迅速查找方便可靠性高存储量大保密性好寿命长成本低等这些优点能够极大地提高火车信息管理的效率,也是企业的科学化正规化管理,与世界接轨的重要条件。本文针对火车站的订票实际情况,按照软件工程的结构化设计思想,经过项目的可行性研究和需求分析,总体设计,详细设计,以及编码实现和调试等步骤设计开发了火车站网上订票系统。并运用数据流图和数据字典,E-R 图和数据库逻辑结构,层次图,系统流程图,以及程序流程图,对该系统的数据需求,数据库,系统软件结构,系统流程,以及处理过程等进行了分析和设计。本系统前台主要使用 JSP 作为开发语言,后台使用 MySQL 作为数据库管理系统,开发环境是 MyEclipse,服务器采用 tomcat,开发出的一个基于 Web 技术的 B/S 结构的火车订票系统。关键词:信息管理 火车订票 JSP B/S 结构IThe Design and Implementation of Train ticketing systemAbstractWith the continuous improvement of science and technology, computer science increasingly mature, its powerful features for people to have a profound understanding, it has entered the human society in various fields and play an increasingly important role. As part of the computer application the use of computers to train information management, with a manual management of the incomparable advantages. For example: the rapid retrieval and search for convenient, high reliability, large storage capacity, confidentiality good, long life and low cost. These advantages can improve the efficiency of the train information management, the enterprise is also a scientific, standardized management, and an important condition for the world.Aiming at the train station booking the actual situation, in accordance with a structured software engineering design, after the project can do research and needs analysis, general design, detailed design, coding and debugging steps as well as the design and development of fire station online booking system. And use the data flow diagram and data dictionary, E-R diagram and database logical structure, hierarchy diagram, system flow chart, and program flow chart of the system, data requirements, database, system software structure, system flow process, and process is analyzed and design.The front of the system using JSP as a development language, the use of MySQL as a database management system, the development environment is MyEclipse, server using tomcat, developed a Web technology based on B/S structure of railway ticketing system.Key words: information management; train ticket; JSP; B / S structureII目 录中文摘要.i英文摘要.ii目录.iii第一章 绪论.11.1课题背景 .11.2目的和意义 .11.3开发工具及技术 .11.3.1开发工具 .11.3.2 JSP .21.3.3 JavaScript .21.3.4 Struts2简介 .31.3.5 Hibernate简介 .31.4软硬件需求 .3第二章 需求分析.42.1需求调研 .42.2可行性分析 .42.2.1技术的可行性 .42.2.2经济的可行性 .42.2.3操作可行性 .42.2.4法律的可行性 .52.3系统用户用例图 .52.3.1管理员用例图 .52.3.2会员用例图 .52.4功能模块需求分析 .62.5设计的 基本思想 .72.6性能需求 .72.6.1系统的安全性 .7III2.6.2数据的完整性 .72.7界面需求 .7第三章 系统分析与设计.83.1数据库的分析与设计 .83.1.1数据库的概念结构设计 .83.1.2数据库的逻辑结构设计 .103.1.3数据库的连接原理 .123.2中文乱码问题处理 .12第四章 系统功能实现.134.1前台网站模块 .134.1.1网站首面 .134.1.2用户注册 .134.1.3车票预订 .144.2会员功能模块 .144.2.1会员中心 .144.2.2我的基本信息 .154.2.3我的订单信息 .154.2.4修改密码 .164.3管理员功能模块 .164.3.1登录系统 .164.3.2管理员主页面 .174.3.3会员信息管理 .184.3.4车次信息管理 .184.3.5订单信息管理 .204.3.6修改密码 .214.3.7退出系统 .21第五章 系统测试.235.1系统测试目的与意义 .23IV5.2测试过程 .235.2.1主页面的登录模块测试 .235.2.2其他错误 .24第六章 结 论.25致 谢.26参考文献.270第一章 绪论1.1 课题背景火车站市场的管理和规范问题,是困扰我们多年的一个老问题,也是政府管理中的一个难点,订票是客运业务中的一个最基本的业务,表面上看,它只是火车站业务的一个简单的部分,但是它涉及到管理与客户服务等多方面 1,因此,过去传统的售票方式已经不能满足现代客运业务流量剧增的客观要求,这就要求一种全新的订票方式网上订票,来缓解订票高峰时期的客运压力,并为用户提供方便快捷的订票服务。1.2 目的和意义中国现在拥有非常先进、发达的铁路系统,但目前的售票系统还是上世纪 60 年代开发的。2003 年以后,中国铁路开始加快现代化建设,近几年来中国的火车订票系统已经逐步走向现代化,订票全路联网,实现了信息化管理 2。但是铁路历史由来的“老大难”问题售票问题,一直无法得到解决。每年的各大节假日,全国人民总会为买票问题而苦恼,一部分人更是无缘车票。虽然目前的电话订票,也极大地方便了旅客,然而最贴近现代化发展水平的还是网上订票项目,国家也积极推进。1.3 开发工具及技术1.3.1 开发工具此次设计主要采用 MyEclipse 加 Tomcat 后台服务器进行,设计过程中页面主要使用 JSP 技术完成,下面对 MyEclipse、Tomcat 和 MySQL 数据库进行简要介绍。1.3.1.1 MyEclipse MyEclipse,是一个十分优秀的用于开发 Java,J2EE 的 Eclipse 插件集合,MyEclipse 的功能非常强大,支持也十分广泛,尤其是对各种开元产品的支持十分不错。MyEclipse 企业级工作平台(MyEclipse Enterprise Workbench,简称 MyEclipse)是对 Eclipse IDE3的扩展,利用它我们可以在数据库和 JavaEE 的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的 JavaEE 集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持 HTML, Struts, JSP, CSS, Javascript, SQL, Hibernate。1.3.1.2 Tomcat Tomcat 是一个小型的轻量级应用服务1器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试 JSP 程序的首选。可以这样认为,当在一台机器上配置好 Apahce 服务器,可利用它响应对 HTML 页面的访问请求。实际上 Tomcat 部分是 Apache 服务器 3的扩展,但它是独立运行的,所以当运行 tomcat 时,它实际上作为一个与 Apache 独立的进程单独运行的。1.3.1.3 MySQL MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System,关系数据库管理系统)应用软件之一。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言 3。MySQL 软件由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。1.3.2 JSPJSP 技术使用 Java 编程语言编写类 XML 的 tags 和 scriptlets,来封装产生动态网页的处理逻辑。网页还能通过 tags 和 scriptlets 访问存在于服务端的资源的应用逻辑。JSP 将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计 4,可以使基于 Web 的应用程序的开发变得迅速和容易。Web 服务器在遇到访问 JSP 网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP 文件中的 HTML 代码一起返回给客户。插入的 Java 程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP 与 Servlet 一样,是在服务器端执行的,通常返回给客户端就是一个 HTML 文本,因此客户端只要有浏览器能浏览。JSP 页面由 HTML 代码和嵌入其中的Java 代码所组成。服务器在页面被客户端请求以后对这些 Java 代码进行处理,然后将生成的HTML 页面返回给客户端的浏览器 5。Servlet 是 JSP 的技术基础,而且大型的 Web 应用程序的开发需要 Java Servlet 和 JSP 配合才能完成。JSP 具备了 Java 技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点 6。1.3.3 JavaScriptJavaScript 是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端 Web 开发的脚本语言,常用来给 HTML 网页添加动态功能,比如响应用户的各种操作。JavaScript 的一个重要功能就是面向对象的功能,通过基于对象的程序设计,可以用更直观、模块化和可重复使用的方式进行程序开发。在 HTML 基础上,使用 Javascript 可以开发交互式 Web 网页。Javascript 的出现使得网页和用户之间实现了一种实时性的、动态的、交2互性的关系,使网页包含更多活跃的元素和更加精彩的内容 7。在本系统中很多地方使用了javascript 技术,比如说,检验用户输入数据的有效性,是否重复,是否为空等等。1.3.4 Struts2 简介Struts 最早是作为 Apache Jakarta 项目的组成部分问世运作。项目的创立者希望通过对该项目的研究,改进和提高 Java Server Pages、Servlet、标签库以及面向对象的技术水准。它的目的是为了减少在运用 MVC 设计模型来开发 Web 应用的时间。使用 Struts 的目的是为了帮助我们减少在运用 MVC 设计模型来开发 Web 应用的时间。Struts 是 Apache 软件基金会(ASF)赞助的一个开源项目。它最初是 Jakarta 项目中的一个子项目,并在 2002 年 3 月成为 ASF 的顶级项目。它通过采用 Java ServletJSP 技术,实现了基于 Java EE Web 应用的 Model-View-ControllerMVC设计模式的应用框架Web Framework3,是 MVC 经典设计模式中的一个经典产品。而 Struts2 则是 Struts 的升级版本。1.3.5 Hibernate 简介Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate 可以应用在任何使用 JDBC 的场合,既可以在 Java 的客户端程序使用,也可以在 Servlet/JSP 的 Web 应用中使用,最具革命意义的是,Hibernate 可以在应用 EJB 的 J2EE 架构中取代 CMP3,完成数据持久化的重任。Hibernate 的核心接口一共有 2 个,分别为:Session、SessionFactory、Transaction、Query 和 Configuration。这 2 个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制 3。1.4 软硬件需求硬 件 需 求 :CPU: Pentium 以 上 计 算 机 内 存 : 512M 以 上 软 件 需 求 :操 作 系 统 版 本 : Windows XP/vista/Win7 开 发 工 具 : MyEclipse 10 后 台 服 务 器 : Apache Tomcat 7 开 发 语 言 : Java 浏 览 器 : IE 10 3第二章 需求分析2.1 需求调研在项目的开始是需求调研,经过一系列的调查发现,火车站市场的管理和规范问题,是困扰我们多年的一个老问题,也是政府管理中的一个难点。订票是客运业务中的一个最基本的业务,表面上看,它只是火车站业务的一个简单的部分,但是它涉及到管理与客户服务等多方面 1,因此,过去传统的售票方式已经不能满足现代客运业务流量剧增的客观要求,这就要求一种全新的订票方式网上订票,来缓解订票高峰时期的客运压力,并为用户提供方便快捷的订票服务。2.2 可行性分析开发任何一个系统,都会受到时间和资源上的限制。因此,在每一个项目开发之前,都要进行可行性分析,可以减少项目的开发风险,避免人力、物力和财力的浪费。下面就技术、经济、操作和法律四个方面来介绍。2.2.1 技术的可行性本系统开发工具是 MyEclipse 和 MySQL 数据库,开发语言是 Java,主要使用了 J2EE 的技术,java 是一种面向对象编程语言,简单易学而且灵活方便。大三时就学习了 java 课程,大四期间也系统的了解了 J2EE 的知识,火车订票系统总体上开发难度不高,数据库的设计和操作是本系统设计的核心。在大学期间学习过 UML 统一建模语言等课程,每个学期也会完成对应的课程设计,具备一定的系统分析、设计和测试能力。因此,完成系统实现在技术上完全具有可行性。2.2.2 经济的可行性如今是信息化时代,信息化管理可以使车票管理、预订工作更加系统化、快速化、全面化。这样可以为企业带来较高的工作效益和经济效益,本系统对计算机配置的要求不高,企业机房更换下来的低配置电脑都可以完全满足需要,再者,企业在管理工作上的高效率和便捷性远远超过了开发本系统的成本 8,所以在经济上具有完全的可行性。2.2.3 操作可行性本系统操作简单,输入信息页面大多数都是下拉框的选择形式,在某些页面,信息可以自动生成,无需输入,时间的输入也是用的日历控件,操作简便,对操作人员的要求很低,只需对 WINDOWS 操作熟练,加之对本系统的操作稍加培训即可工作,而且本系统可视性非常好,所4以在技术上不会有很大难度。2.2.4 法律的可行性本系统是自行开发的管理系统,是很有实际意义的系统,开发环境软件和使用的数据库都是开源代码,开发这个系统不同于开发普通的系统软件,不存在侵权等问题,即法律上是可行的 8。综上所述,开发一个网络火车订票系统与传统售票的方式相比具有速度更快,操作更准确,节省开支等有利之处,因此,建立一个网络火车订票系统是必要可行的。2.3 系统用户用例图2.3.1 管理员用例图管理员是系统的核心用户,涉及到四大功能模块,管理员对系统的所有用户有着操作的权限,能够及时动态的掌握车票及订单的各项情况。管理员用例图如图 2-1 所示:管理员登录系统会员信息管理修改密码车次信息管理订单信息管理图 2-1 管理员用例图2.3.2 会员用例图会员是系统的主要用户,登录系统可进入会员中心。会员用例图如图 2-2 所示:5会员登录系统 修改个人信息修改密码我的车票订单管理图 2-2 会员用例图2.4 功能模块需求分析本系统最大的特点是使用操作简单、友好的提示信息。本系统将实现以下基本功能:(1)系统具有简洁大方的页面,使用简便,友好的错误操作提示。(2)管理员用户具有管理员信息管理、会员信息管理、车次信息管理、订单信息管理等功能。(3)具有较强的安全性,避免用户的恶意操作 9。管理员功能模块图说明:管理员是功能最多的一种用户角色。(1)管理员管理模块:在该模块中完成管理员的密码修改功能。(2)会员信息管理模块:在该模块中定义了注册会员信息的管理,其功能包括会员信息的查询、删除等操作。(3)车次信息管理模块:在该模块中定义了对车次信息的管理,其功能包括车次信息录入、查询、删除等操作。(4)订单信息管理模块:在该模块中定义了对订单信息的管理,其功能包括订单信息查询、受理、删除等操作。管理员用户功能模块图如图 2-3 所示:6管理员用户模块修改个人密码会员信息管理码车次信息管理订单信息管理会员删除会员管理车次管理车次添加订单受理订单管理图 2-3 管理员用户功能模块图2.5 设计的基本思想设计思想遵循以下几点:1. 采用 B/S 模式进行开发,其优点是后台与前台处理层次分明,而且符合众多已经习惯网页方式的用户。2. 采用面向对象的开发与设计理念。运用面向对象技术的前提是对整体系统的高度和准确抽象,通过它可以保证系统良好的框架,进而带来产品较强的稳定性和运行效率。3. 采用模块化设计。模块化设计要求将整个系统划分成基于小的模块,有利于代码的重载,简化设计和实现过程。4. 简单方便的系统界面。设计简单友好的系统界面,方便用户较快的适应系统的操作。5速度优先原则。由于此工具最重要的评测标准就是速度,因此在设计过程中,具体过程尽量做到资源占用少,速度快。6设计既要突出重点,又要细致周到。要符合设计需求,在有可能改进的地方进行扩充,使系统更适应用户的需要 9。72.6 性能需求2.6.1 系统的安全性火车订票系统在管理权限上要严格进行控制,具体要求如下:想登录火车订票系统后台进行操作,必须有操作权限,没有权限的用户不能通过任何方式登录系统查看系统的任何信息和数据,以确保系统的严密性和安全性;要在前台提交订单等信息,必须先进行注册,未注册的用户不能进行任何操作。2.6.2 数据的完整性1.各种记录信息的完整性,信息记录内容不能为空。2.各种数据间相互联系的正确性。3.相同数据在不同记录中的一致性。2.7 界面需求界面设计目前已经成为评价软件质量的一条重要指标,一个好的用户界面可以增加用户使用系统的信心和兴趣,提高工作效率,JSP 技术是用 JAVA 语言作为脚本语言的,JSP 网页为整个服务器端的 JAVA 库单元提供了一个接口来服务于 HTTP 的应用程序。创建动态页面非常方便。用户界面是指软件系统与用户交互的接口,通常包括输出、输入、人-机对话的界面格式等 10。第三章 系统分析与设计3.1 数据库的分析与设计计算机信息系统以数据库为核心,在数据库管理系统的支持下,进行信息的收集、整理、存储、检索、更新、加工、统计和传播等操作。数据库已经成为现在信息系统等计算机系统的基础与核心部分 10。数据库设计的好坏直接影响到整个系统的质量和效率。数据库的设计一般经过规划。需求分析、概念设计、逻辑设计、物理设计 5 个步骤。3.1.1 数据库的概念结构设计概念设计是指在数据分析的基础上自底向上的建立整个系统的数据库概念结构,从用户的角度进行视图设计,然后将视图集成,最后对集成的结构分析优化得到最后结果 9。数据库的概念结构设计采用实体联系(E-R)模型设计方法。E-R 模型法的组成元素有:实体、属性、联系,E-R 模型用 E-R 图表示,是提示用户工作环境中所涉及的事物,属性则是对8实体特性的描述 9。根据以上对数据库的需求分析,并结合系统概念模型的特点及建立方法,建立 E-R 模型图。(1)会员信息实体 E-R 图如图 3-1 所示:用户名密码会员信息真实姓名身份证号 性别联系电话电子邮箱地址图 3-1 会员信息实体 E-R 图(2)车次信息实体 E-R 图如图 3-2 所示车次号出发站车次信息到达站出发时间 发车时间到达时间剩余票数票价图 3-2 车次信息实体 E-R 图属性 实体间关系实体9(3)订单信息 E-R 图如图 3-3 所示会员信息车次信息订单信息预定金额支付方式 预订时间预定状态图 3-3 订单信息实体 E-R 图(4)管理员信息 E-R 图如图 3-4 所示管理员信息登录名密码图 3-4 管理员信息实体 E-R 图3.1.2 数据库的逻辑结构设计我们知道,数据库概念模型独立于任何特定的数据库管理系统,因此,需要根据具体使用10的数据库管理系统的特点进行转换。即转化为按计算机观点处理的逻辑关系模型,E-R 模型向关系数据库模型转换应遵循下列原则:*每一个实体要转换成一个关系*所有的主键必须定义非空(NOT NULL)*对于二元联系应按照一对多、弱对实、一对一、多对多等联系来定义外键 9。根据 E-R 模型,火车订票系统建立了以下逻辑数据结构,下面是各数据表的详细说明。(1)会员信息表主要是记录了会员基本信息。表结构如表 3-5 所示。表 3-5 会员信息表(t_user)列名 数据类型 长度 允许空 是否主键 说明user_id int 4 否 是 编号user_name varchar 50 否 否 登录名user_pw varchar 50 否 否 密码user_realname varchar 50 否 否 真实姓名user_idcard varchar 50 否 否 身份证号user_sex varchar 50 否 否 性别user_tel varchar 50 否 否 联系电话user_email varchar 50 否 否 电子邮箱user_address varchar 200 否 否 住址yxbz varchar 1 否 否 有效标志(2)车次信息表主要是记录了车次的基本信息,表结构如表 3-6 所示。表 3-6 车次信息表(t_checi)列名 数据类型 长度 允许空 是否主键 说明id int 4 否 是 编号checihao varchar 50 否 否 车次号shifazhan varchar 50 否 否 出发站daodazhan varchar 50 否 否 到达站piaoshijian varchar 50 否 否 出发时间startshijian varchar 50 否 否 发车时间endshijian varchar 50 否 否 到达时间piaojia double 10 否 否 票价11piaoshu int 8 否 否 剩余票数yxbz varchar 1 否 否 有效标志(3)订单信息表主要是记录订单的基本信息,表结构如表 3-7 所示。表 3-7 订单信息表(t_yuding)列名 数据类型 长度 允许空 是否主键 说明id int 4 否 是 编号user_id int 4 否 否 会员 IDcheci_id int 4 否 否 车次 IDyuding_jine varchar 50 否 否 预订金额zhifufangshi varchar 50 否 否 支付方式yuding_shijian varchar 50 否 否 预订时间yuding_zhuantai varchar 50 否 否 预订状态(6)管理员信息表主要记录管理员的账号信息,包括用户名和密码,表结构如表 3-8 所示。表 3-8 管理员信息表(t_admin)列名 数据类型 长度 允许空 是否主键 说明userId int 4 否 是 编号userName varchar 50 否 否 用户名userPw varchar 50 否 否 密码3.1.3 数据库的连接原理本系统采用 Hibernate 对数据库进行管理。Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了轻量级的对象封装,使 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。它不仅提供了从 Java 类到数据表之间的映射,也提供了数据查询和恢复机制 3。相对于使用 JDBC 和 SQL 来手工操作数据库, Hibernate 可以大大减少操作数据库的工作量。另外 Hibernate 可以利用代理模式来简化载入类的过程,这将大大减少利用 Hibernate QL 从数据库提取数据的代码的编写量,从而节约开发时间和开发成本 Hibernate 可以和多种Web 服务器或者应用服务器良好集成,如今已经支持几乎所有的流行的数据库服务器。Hibernate 技术本质上是一个提供数据库服务的中间件。它的架构如图 3-9 所示:12图 3-9 Hibernatre 架构图图 3.5 显示了 Hibernate 的工作原理,它是利用数据库以及其他一些配置文件如 Hibernate.properties,XML Mapping 等来为应用程序提供数据持久化服务的。Hibernate 具有很大的灵活性,但同时它的体系结构比较复杂,提供了好几种不同的运行方式。在轻型体系中,应用程序提供 JDBC 连接,并且自行管理事务,这种方式使用了 Hibernate 的一个最小子集 3;在全面解决体系中,对于应用程序来说,所有底层的 JDBC/JTA API 都被抽象了,Hibernate 会替你照管所有的细节。3.2 中文乱码问题处理在程序中经常会遇到中文乱码的情况,解决办法是将页面的编码方式和 struts.xml 的设置的编码方式都用成 utf-8。1. 在 jsp 页面设定字符编码,;2. 在 struts.properties 中加入参数 struts.i18n.encoding = UTF-8。第四章 系统功能实现在管理信息系统的生命周期中,经过了需求分析、系统设计等阶段之后,便开始了系统实施阶段。在系统分析和设计阶段,系统开发工作主要是集中在逻辑、功能和技术设计上,系统实施阶段要继承此前面各个阶段的工作成果,将技术设计转化为物理实现,因此系统实施的成果是系统分析和设计阶段的结晶 10-13。134.1 前台网站模块4.1.1 网站首面 1.描述:火车订票系统网首页分为顶部菜单、右侧的登录模块及日历表、中间主要的车次信息三部分组成。2.程序效果图如下图 4-1 所示:图 4-1 网站首页4.1.2 用户注册1.描述:新用户通过该模块实现网站注册会员功能的实现。2.程序效果图如下图 4-2 所示:14图 4-2 用户注册界面4.1.3 车票预订1.描述:注册用户浏览主页中的所有可预订的车票信息,点击预订,填写预订信息,完成车票预订操作。预订车票时要先判断用户是否登录,否则不能预订。2.程序效果图如下图 4-3 所示:图 4-3 车票预订界面4.2 会员功能模块4.2.1 会员中心1.描述:会员中心主页面:左方页面展示了会员可操作的两大功能,进入相关的管理页面可以链接到子菜单,每个管理模块下面都有相应的子菜单。152.程序运行效果图如图 4-4 所示:图 4-4 会员中心主页面4.2.2 我的基本信息1.描述:会员点击左侧的菜单“我的基本信息” ,页面跳转到我的基本信息界面,调用后台的 action 类查询出我的基本信息,并显示到页面上。2.程序效果图如下图 4-5 所示:图 4-5 我的基本信息4.2.3 我的订单信息1.描述:会员点击左侧的菜单“我的订单信息” ,页面跳转到会员订单信息管理界面,调用后台的 action 类查询出所有的会员订单信息,并把这些信息封转到数据集合 List 中,绑定到request 对象,然后页面跳转到相应的 jsp,显示出会员订单信息。2.程序效果图如下图 4-6 所示:16图 4-6 会员订单信息4.2.4 修改密码1.描述:输入用户的原有密码,输入新密码以后点击修改按钮即可修改密码成功。2.程序效果图如图 4-7 所示:图 4-7 修改密码4.3 管理员功能模块4.3.1 登录系统1.描述:为了保证后台管理系统的安全性,要使用本系统,必须先登陆到系统中,管理员需要正确的账号和密码登录本系统后台管理。2.程序运行效果图如图 4-8 所示:17图 4-8 后台系统登陆页面设计4.3.2 管理员主页面1.描述:管理员主页面:左方页面展示了管理员可操作的四大功能,进入相关的管理页面可以链接到子菜单,每个管理模块下面都有相应的子菜单。2.程序运行效果图如图 4-9 所示:图 4-9 管理员主页面184.3.3 会员信息管理4.3.3.1 会员信息管理1.描述:管理员点击左侧的菜单“会员信息管理” ,页面跳转到会员信息管理界面,调用后台的 action 类查询出所有的会员信息,并把这些信息封转到数据集合 List 中,绑定到 request对象,然后页面跳转到相应的 jsp,显示出会员信息。2.程序效果图如下图 4-10 所示图 4-10 会员信息管理4.3.3.2 会员信息删除1.描述:点击会员信息管理,页面跳转到会员信息管理界面,浏览所有的会员信息,点击要删除的会员信息,弹出的确定对话框,即可删除该会员信息。2.程序效果图如图 4-11 所示:图 4-11 会员信息删除4.3.4 车次信息管理4.3.4.1 查询车次信息1.描述:管理员点击左侧的菜单“车19次信息管理” ,页面跳转到车次信息管理界面,调用后台的 action 类查询出所有的车次信息,并把这些信息封转到数据集合 List 中,绑定到 request 对象,然后页面跳转到相应的 jsp,显示出车次信息。还可以通过输入条件查找到对应的车次,然后进行编辑或删除。2.程序效果图如图 4-12 所示:图 4-12 查询车次信息4.3.4.2 添加车次信息1.描述:管理员输入车次相关正确信息后点击提交按钮,如果是没有输入完整的车次信息,都会给出相应的错误提示,不能录入成功。输入数据都通过 form 表单中定义的方法onsubmit=return checkForm()来检查,checkForm()函数中是各种的校验输入数据的方式。2.程序效果图如图 4-13 所示:图 4-13 添加车次信息204.3.4.3 修改车次信息1.描述:点击车次信息管理,页面跳转到车次信息管理界面,浏览所有的车次信息,点击要修改的车次信息,跳转到车次信息修改页面修改该条车次信息。2.程序效果图如下图 4-14 所示图 4-14 修改车次信息4.3.5 订单信息管理4.3.5.1 订单信息管理1.描述:管理员点击左侧的菜单“订单信息管理” ,页面跳转到订单信息管理界面,调用后台的 action 类查询出所有的订单信息,并把这些信息封转到数据集合 List 中,绑定到 request对象,然后页面跳转到相应的 jsp,显示出订单信息。管理员可以对订单进行受理或删除。2.程序效果图如下图 4-15 所示图 4-15 订单信息管理214.3.5.2 订单信息删除1.描述:点击订单信息管理,页面跳转到订单信息界面,浏览所有的订单信息,点击要删除的订单信息,弹出的确定对话框,即可删除该订单信息。2.程序效果图如图 4-16 所示:图 4-16 订单信息删除4.3.6 修改密码1.描述:输入管理员的原有密码,输入新密码以后点击修改按钮即可修改密码成功。2.程序效果图如图 4-17 所示:图 4-17 修改密码4.3.7 退出系统1.描述:点此按钮回到系统的主页面。2.程序效果图如图 4-18 所示:22图 4-18 退出系统3.关键代码:主要是通过 javascript 语句来实现,item_word84=退出; item_link84=javascript:window.open(./index.jsp,_self); 23第五章 系统测试5.1 系统测试目的与意义系统测试是管理信息系统开发周期中一个十分重要而漫长的的阶段。其重要性体现在他是保证系统质量与可靠性的最后关口,是对整个系统开发过程包括系统分析、系统设计和系统实现的最终审查。系统测试的任务是尽可能彻底的检查出程序中的错误,提高软件系统的可靠性,其目的是检验系统“做得怎样” 。这这阶段又可以分为三个步骤:模块测试,测试每个模块的程序是否正确;组装测试,测试模块之间的接口是否正确;确认测试,测试整个软件系统是否满足用户功能和性能的要求。测试发现问题之后要经过调试找出错误原因和位置,然后进行改正。是基于系统整体需求说明书的黑盒测试,应覆盖系统随偶联合的部件 10-13。系统测试是正对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出需求规格不符合或与之矛盾的地方。5.2 测试过程在测试之初,由于将数据库中的数据是随便输入,没有实用性,为了使系统更加完善,在系统测试的过程中,本系统将一开始编程随便输入的数据全部清理后,输入了一些有效的测试数据,这样可以更真实的反映系统的功能实现情况。这样不断发现问题,经过反复的测试、调试,把问题一个个的解决,最终系统可以正常运行。5.2.1 主页面的登录模块测试测试流程: 1.打开系统首页,输入错误的登录信息2.登录3.输入正确的登录信息4.登录5.测试结果模块名称 测试用例 预期结果 实际结果 是否通过登录模块 用户名:null 密码:null 弹出错误提示,请输入用户名登陆失败,提示请输入用户名通过登录模块 用户名:m1 密码:null 弹出错误提示,请输入密码失败,提示输入密码 通过24登录模块 用户名:m1密码:1 弹出错误提示,用户名或者密码错误登陆失败,提示用户名或者密码错误通过5.2.2 其他错误在程序设计实现的过程中不可避免的会产生各种难以预料的错误,如书写错误、传值类型不一致、参数传递问题等等。这些都需要通过细心的检测与不断的调试才能够排除。比如在action 配置时因粗心错误导致运行导致所报错误,如图 5-1 所示:图 5-1 由于 action 配置错误,运行时的提示很多时候往往是一些小错误,debug 难找到错误所在,让我调试半天。因此做系统一定要思维严谨,编写代码要认真仔细,做事要细致。25第六章 结 论本次毕业设计将我大学四年所学的软件理论知识用到了具体的实践中去,深化了理论知识,同时也锻炼了动手实践能力。在这段日子里,我查阅了许多有关火车票网上订票系统的资料,翻阅了许多 JSP 的书籍,结合自己的经验,详细调查了网上订票=管理的工作内容与细节,开发设计了这个火车订票系统,虽然每个学期都会有相应课程的课程设计和实训来作为动手练习训练,不过在本次毕业设计具体的实践的时候还是遇到了很多小问题,比如说在 jsp 页面将输入框设为不可用是添加属性 readonly=“true”,而我在实际编程中却错写成 disable=“true”,这样直接导致了 request 对象取不到数据,调试了程序很久才发现 request 对象获得的返回值一直是空,之前一直以为是代码哪里出了问题,总是在查源程序的逻辑。这些虽然都是小问题,但是由于不细心在具体实践中却浪费了不少时间,看来平时还是要多多实践才是。在系统的开发过程中,我运用到了 B/S 三层结构技术和自己在平时学习中掌握的一些技术,通过这些技术的实现,整个系统的性能得到了大大的提高。这些技术都在论文中做了比较详细的介绍。本系统还存在许多的缺陷和不足之处,比如很多细节上做的还不行,有些功能模块还应再加强。希望在以后的时间里,我可以把这些缺陷都弥补过来,进一步完善系统。通过本次毕业设计我锻炼了自己的自学、研究能力,也从中学到不少在课堂上学不到的东西。通过实践我也深刻的体会到软件开发的艰辛及问题解决后的喜悦心情,培养我的独立思考问题的能力,同时也增强了我的理论联系实际的能力,这为自己以后的工作奠定了良好的基础。本系统可以在很大程度上增加人们售票的途径,减少购票的排队时间,但由于时间按和技术条件的限制,还存在一些不足之处,有些功能还需要改进,还应该做进一步的系统调查需求分析工作,更深入的完善系统。总之,一个紧跟时代步伐的真正使用的软件必需有一个不断完善改进的过程。26致 谢本次设计历时三个月。在本次毕业设计中,能够基本顺利的完成任务,是与钱亚冠老师的耐心指导分不开的。钱老师无论是在毕业设计过程中,还是在论文完成中都给予了我极大的帮助。同时,钱老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我受益匪浅。他勤奋严谨的教学态度也给我留下了极为深刻的印象。我从老师身上学到了很多东西。在理论上还是在实践中,我能力都得到不少的提高,这对于我以后的工作和学习都有一种巨大的帮助,在此,特向钱老师表示由衷的感谢。通过这次毕业设计的整个开发过程,我系统开发过程从需求分析到具体功能实现,再到最终测试和维护的理解有了很大的进步,让我对系统开发有了更深层次的认识。现在我的动手能力和独立解决问题的能力也得到了很大的锻炼和提高,这是这次毕业设计最好的收获。最后,在整个系统
展开阅读全文