火车预售票系统_第1页
火车预售票系统_第2页
火车预售票系统_第3页
火车预售票系统_第4页
火车预售票系统_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 1 引言11 开发背景随着我国经济的快速发展,计算机作为信息的载体日益突显出其举足轻重的地位。当今社会已步入了信息时代,知识经济将成为新世纪的主导产业。伴随计算机的逐步推广和使用,计算机已在科研、生产、商业、服务等许多方面创造了提高效率的神话。特别是计算机网络技术和通信技术的发展,人类社会从工业社会向信息社会过渡的趋势越来越明显,人们对信息的意识、开发和使用信息资源的重视越来越加强。众所周知,我国地大物博、人口众多,这使得交通运输不发达一直是制约我国经济发展的瓶颈。改革开放以来伴随着中国工业化、现代化的加速,中国的流动人口越来越多,已经达到了2.6亿,每年客运量大于10亿人次,最高日发售客票

2、高达 400 万张之多,可以说没有任何一个国家的铁路客票系统具有如此庞大的规模,而且还会有越来越多的农村剩余劳动力进入城市,而且人民生活水平的不断提高,使得旅游业迅猛发展,这些都直接导致人民对交通运输的需求与其有限的运输力之间的矛盾愈加突出。而铁路由于其运费低廉,运输过程中的高安全性,一直深受广大乘客的青睐,是人们出行旅游、务工、商务、求学的首选交通工具。每到中秋、清明、国庆等客流高峰便很难买到车票,特别春运、暑运期间更是“一票难求”,不仅给外出人员造成很大不便,还引发了众多治安问题,成为每年公主关注的焦点。2009年1月14日,胡锦涛总书记在有关春运火车“买票难”问题的信息上作出重要批示,要

3、求“铁道部要开动脑筋,研究采取若干便利措施,并公布于众,以化解矛盾,确保春运任务顺利完成”。09年的两会中,全国人大代表陆琴对铁路票务改革提出的议案关于实行实名制缓解铁路买票难的建议引起了广泛讨论,得到了众多代表的签名支持。为了响应党中央的重要指示,有效的改善铁路客运服务质量方便广大乘客出行,并且在日益加剧的客运服务竞争中确保优势,铁道部门一直在努力寻找改善服务质量、提高效率的新途径。这个艰巨的任务毫无疑问的落到了现代化科学技术身上,因而用信息技术升级改造传统铁路运输,成为国家实现铁路现代化战略任务的迫切要求。铁路信息化是社会现代化的重要标志,通过将信息技术运用到铁路运输和各项管理决策中,可以

4、提高运行效率、方便广大乘客,提升我国的交通物流业的整体水平,因此开发出一款基于web的火车票预定系统就显得尤为重要了。12 火车售票系统现状目前我国的铁路售票主要为火车站窗口售票和分布在城镇的各代售点售票这两种,另外还有少量的电话订票和网友自发组织的网上转让模式,但是这种网上转让模式不安全、不规范,并且出现问题不容易解决,因而每逢节假日高峰期,绝大多数乘客只能是老老实实去排长队。这种买票难,难于上青天的我国独有地现状被广大乘客、媒体戏称为世界第九大奇观。尤其是在春运期间,身在异乡的广大游子都急切的希望能够与家人团聚,由于一票难求,回家路途更显漫长。这无疑为活跃在各火车站的黄牛党提供了发财的机会

5、,他们囤积居奇进一步加剧了票源供求紧张,给广大乘客带来极大地不便。尽管铁路部门制定紧急措施,搭建临时售票窗口,公安部门投入大量警力大力打击倒票,但这也只是治标不治本,根本不能解决目前的买票难问题。由上可知,目前铁路所面对的问题,除了春运等高峰期时运力确实不足外,票务体系落后也是广大乘客购票难的原因。13 课题研究的目的和意义1.3.1 课题研究的目的火车预售票系统是用计算机管理火车站票务信息的一种计算机应用技术的创新,在这之前售票业务都是由工作人员通过人工查询方式来操作的。现在一般的车站售票业务都采用计算机智能化管理,但是售票还未能够实现全自动化,乘客仍需要到火车站或代售点才能够买到车票,因此

6、造成了目前这种买票难,难于上青天的这种所谓的世界第九大奇观,使得广大旅客即使排了半天的队也不一定能够买到车票,同时也使得黄牛党屡禁不绝。此次所设计实现的网上预售票系统可以有效的缓解目前社会上的这种矛盾,极大地方便广大乘客。旅客只要能够上网,只需要注册一个账号,就可以通过本网站来实现订票,而不用在车站排队等候,更不用担心等了半天而被告知车票已售完。本系统也极大地缓解了车站售票工作人员的工作压力、提高了售票效率,同时也有效的维护了社会的治安。本系统是一个基于b/s构架的mis(management information system)系统。系统的开发和应用目的是使旅客通过系统查询到自己所需要的出

7、行信息。该系统主要有三种用户权限进行操作,分别是普通用户、注册用户、系统管理员。整个系统主要分为八大模块:用户注册模块、注册用户和系统管理员登录模块、车次车站与站站查询模块、订票与售票模块、密码修改模块、车站、车次与站站管理模块、列车类型管理模块、订票与注册用户管理模块1。1.3.2 课题研究的意义铁路系统是公共资源,是为广大的乘客出行提供方便的。现在的情况却是广大的乘客不能及时的买到车票,把宝贵的时间浪费到排队等待中。这样显然不利于维护广大人民的利益,不能够有效地提高社会的效率和维护社会的和谐稳定。所以说,实现网络售票是一项利国利民的重大举措。a) 方便旅客出行,极大满足人们日益增长的需要。

8、目前旅客乘车必须先到火车站排队购票,春运、暑运期间更是一票难求,有时候即使连续几天也不一定能够买到车票,浪费乘客的时间,这种状况影响了当今社会主义社会的和谐。实施本系统后,可以节省广大乘客的宝贵时间和大量的精力体力,提高社会的整体工作效率。b) 节约了巨额的社会财富。全国每年铁路旅客达10亿人次,相当有10亿人次浪费时间往返于售票点或火车站去买票。假如全部采用网上订票的方式,则可节约大量的社会劳动时间,交通费30亿元(每人往返按1.5元2计算),这是多么一大笔社会财富呀。 c) 减少售票工作量。本系统实施后,将大大减少铁道部门售票工作人员的工作量,特别是在春运、暑运期间客流高峰期间。d) 有效

9、维护公共安全和社会治安。本系统实施后,可以大幅度减少发生在公共场合比如说打架斗殴等危害社会公共安全的事件发生。e) 杜绝炒票倒票和贩卖假票行为。试想,如果广大乘客在家里通过互联网便可以方便的买到车票,而不用寒冬腊月的在火车站售票口排队等待,更不用担心当轮到自己的时候而被告知车票已售完,那么谁还会去花双倍的钱买黄牛的票。 f) 更能促进社会公平公正。本系统的实施,可以有效地杜绝铁道部门内部工作人员为个人或亲朋好友走后门现象的发生,使所有的乘客真正的做到公平公正的购票,促进社会的和谐。 g) 有利于促进科技进步。上网购物是现实生活中一件很平常的事,如果把购票系统运用在网络,广大旅客在出行的时候肯定

10、都乐意使用它的。如果出行旅客都用上了网上支付、网上购票,对于整个国家的信息技术的进步将是巨大的促进。 2 使用工具及相关知识本系统采用jsp编程语言实现程序的开发,开发工具主要采用myeclipse 6.5,后台服务器是tomcate 6.0,数据库采用mysql,运用sql语句实现数据库的操作并利用javabean组件完成数据库的连接及打开。以下将对系统的开发工具和主要技术作一个简单的介绍。21 b/s架构开发模式的简介b/s(browser/server)结构即浏览器和服务器结构。它是随着internet技术的兴起,对c/s结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过ww

11、w浏览器来实现,极少部分事务逻辑在前端(browser)实现,但是主要事务逻辑在服务器端(server)实现,形成所谓三层3-tier结构。相对于c/s结构属于“胖”客户端,需要在使用者电脑上安装相应的操作软件来说,b/s结构是属于一种“瘦”客户端,大多数或主要的业务逻辑都存在服务器端,因此,b/s结构的系统不需要安装客户端软件,它运行在客户端的浏览器之上,系统升级或维护时只需更新服务器端软件即可,这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(tco)。b/s结构系统的产生为系统面对无限未知用户提供了可能。当然,与c/s结构相比,b/s结构也存在着系

12、统运行速度较慢,访问系统的用户不可控的弱点2。以目前的技术看,局域网建立b/s结构的网络应用,并通过internet/intranet模式下数据库应用,相对易于把握,成本也是较低的。它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。特别是在java这样的跨平台语言出现之后,b/s架构管理软件更是方便、快捷、高效、优质。基于b/s结构的管理信息系统,在动态的web模式下,用户通过浏览器交互操作提交表单用(form)的形式实现,发出诸如对数据库的插入、修改、查询以及删除等请求。当用户在浏览器上填好表单并提交请求时,web服务器根据表单所设定的应用程序解析浏览器请求,如果请求的内容需要访问

13、数据库服务器,则把请求转换为标准的sql语句并通过数据访问接口(odbc-open database connection、ado-active data objects、jdbc等)提交给数据库服务器,由它来完成这个操作,然后把结果返回给web服务器,web服务器进行格式处理后以html的形式返回浏览器并显示。22 jsp简介jsp技术使用java编程语言编写类xml的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。jsp将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于web的应用程序

14、的开发变得迅速和容易。web服务器在遇到访问jsp网页的请求时,首先执行其中的程序段,然后将执行结果连同jsp文件中的html代码一起返回给客户。插入的java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。 jsp与java servlet一样,是在服务器端执行的,通常返回给客户端的就是一个html文本,因此客户端只要有浏览器就能浏览。jsp页面由html代码和嵌入其中的java代码所组成。服务器在页面被客户端请求以后对这些java代码进行处理,然后将生成的html页面返回给客户端的浏览器。java servlet 是jsp的技术基础,而且大型的web应用程序的开发需要

15、java servlet和jsp配合才能完成。jsp具备了java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。自jsp推出后,众多大公司都支持jsp技术的服务器,如ibm、oracle、bea公司等,所以jsp迅速成为商业应用的服务器端语言。 jsp可用一种简单易懂的等式表示为:html+java=jsp3。23 java简介java语言诞生于1991年,起初被称为oak语言,是sun公司为一些消费性电子产品而设计的一个通用环境。他们最初的目的只是为了开发一种独立于平台的软件技术,而且在网络出现之前,oak可以说是默默无闻,甚至差点夭折。但是,网络的出现

16、改变了oak的命运。java是一种简单的,面象对象的,分布式的,解释的,键壮的安全的,结构的中立的,可移植的,性能很优异的多线程的,动态的语言。java的开发环境有不同的版本,如sun公司的java developers kit, 简称 jdk。后来微软公司推出了支持java规范的microsoft visual j+ java开发环境,简称 vj+5。 java的特点如下:java能运行于不同的平台,java引进虚拟机 原理,并运行于虚拟机,实现不同平台的java接口之间。使用java编写的程序能在世界范围内共享。java的数据类型与 机器无关,java虚拟机(java virtual ma

17、chine)是建立在 硬件和操作系统之上,实现java二进制代码的解释执行功能,提供于不同平台的接口的;java的编程类似c+,学习过c+的读者将很快掌握java的精髓。java舍弃了c+的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针侵入系统。java对程序提供了安全管理器,防止程序的非法访问;java 吸取了c+面向对象的概念,将数据封装于类中,利用类的优点,实现了程序的简洁性和便于维护性。类的封装性、 继承性等有关对象的特性,使程序代码只需一次编译,然后 通过上述特性反复利用。程序员只需把主要精力用在类和接 口的设计和应用上。java 提供了众多的一

18、般对象的类,通 过继承即可使用父类的方法。在 java 中,类的继承关系是单一的非多重的,一个子类 只有一个父类,子类的父类又有一个父类。java 提供的 object 类及其子类的继承关系如同一棵倒立的树形,根类 为 object 类,object 类功能强大,经常会使用到它及其 它派生的子类;java建立在扩展tcp/ip网络平台上。库函数提供了用http和ftp协议传送和接受信息的方法。这使得程序员使用网络上的文件和使用本机文件一样容易;java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。java自已操纵内存减少了内存出错的可能性。java还实现了真数组

19、,避免了覆盖数据的可能。这些功能特征大大提高了开发java应用程序的周期。java提供:null指针检测、数组边界检测、异常出口、byte code校验6。24 html简介html(hyper text mark-up language)即超文本标记语言或超文本链接标示语言,是目前网络上应用最为广泛的语言,也是构成网页文档的主要语言。html文本是由html命令组成的描述性文本,html命令可以说明文字、图形、动画、声音、表格、链接等。html的结构包括头部(head)、主体(body)两大部分,其中头部描述浏览器所需的信息,而主体则包含所要说明的具体内容。设计html语言的目的是为了能把存

20、放在一台电脑中的文本或图形与另一台电脑中的文本或图形方便地联系在一起,形成有机的整体,人们不用考虑具体信息是在当前电脑上还是在网络的其它电脑上。我们只需使用鼠标在某一文档中点取一个图标,internet就会马上转到与此图标相关的内容上去,而这些信息可能存放在网络的另一台电脑中。另外,html是网络的通用语言,一种简单、通用的全置标记语言。它允许网页制作人建立文本与图片相结合的复杂页面,这些页面可以被网上任何其他人浏览到,无论使用的是什么类型的电脑或浏览器。 html只不过是组合成一个文本文件的一系列标签。它们像乐队的指挥,告诉乐手们哪里需要停顿,哪里需要激昂。html标签通常是英文词汇的全称(

21、如块引用:blockquote)或缩略语(如“p”代表paragraph),但它们的与一般文本有区别,因为它们放在单书名号里。故paragragh标签是,块引用标签是。有些标签说明页面如何被格式化(例如,开始一个新段落),其他则说明这些词如何显示(使文字变粗)还有一些其他标签提供在页面上不显示的信息例如标题。 基本html页面以doctype开始,它声明文档的类型,且它之前不能有任何内容(包括换行符和空格),否则将使文档声明无效,接着是标签,以结束。在它们之间,整个页面有两部分标题和正文。 标题词夹在和标签之间这个词语在打开页面时出现在屏幕底部最小化的窗口。正文则夹在和之间即所有页面的内容所在

22、。页面上显示的任何东西都包含在这两个标签之中。25 myeclipse简介eclipse是一个非常优秀的集成开发环境,是ibm多年来开发的开放源代码的、基于java的可扩展开发平台。eclipse最吸引人的地方是它的插件体系结构,它为用户提供了一个成熟的、精心设计的、可扩展的体系结构,该体系结构是一个开放的源码平台。这个平台允许任何人构建与环境和其他工具无缝结合的工具。其核心部分是插件,由于有了插件,eclipse系统的核心部分在启动时只要完成启动平台的基础部分和查找系统的插件即可4。eclipse软件可用于管理多种开发任务,例如测试、程序调试等,而且还能集成多个供货商的第三方应用程序开发工具

23、。此外,eclipse在web方面的应用也日益广泛。eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由eclipse项目、eclipse工具项目和eclipse技术项目三个项目组成,具体包括四个部分组成eclipse platform、jdt、cdt和pde。jdt支持java开发、cdt支持c开发、pde用来支持插件开发,eclipse platform则是一个开放的可扩展ide,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。eclipse platform允许工具建造者独立开发与他人工具无缝

24、集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始5。eclipse sdk(软件开发者包)是eclipse platform、jdt和pde所生产的组件合并,它们可以一次下载。这些部分在一起提供了一个具有丰富特性的开发环境,允许开发者有效地建造可以无缝集成到eclipse platform中的工具。eclipse sdk由eclipse项目生产的工具和来自其它开放源代码的第三方软件组合而成。eclipse项目生产的软件以 gpl发布,第三方组件有各自自身的许可协议。26 tomcattomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡

25、与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。tomcat 是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试jsp 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好apache 服务器,可利用它响应对html 页面的访问请求。实际上tomcat 部分是apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与apache 独立的进程单独运行的。当配置正确时,apache 为html页面服务,而tomcat 实际上运行jsp

26、页面和servlet。另外,tomcat和iis、apache等web服务器一样,具有处理html页面的功能,另外它还是一个servlet和jsp容器,独立的servlet容器是tomcat的默认模式。不过,tomcat处理静态html的能力不如apache服务器5。27 mysql数据库mysql是一个小型关系型数据库管理系统,mysql被广泛地应用在internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了mysql作为网站数据库,如雅虎、阿尔卡特朗讯、google公司、诺基亚公司、百度等公司就采用了mys

27、ql数据库。mysql数据库可以称得上是目前运行速度最快的sql语言数据库。除了具有许多其它数据库所不具备的功能和选择之外,mysql数据库是一种完全免费的产品,用户可以直接从网上下载. mysql数据库主要有以下特点:mysql使用c和c+编写,并使用了多种编译器进行测试,保证源代码的可移植性;mysql可以支持unix、linux和sun os以及windows等多种操作系统平台。在一个操作系统中实现的应用可以很方便地移植到其他操作系统。mysql作为开源性质的 数据库服务器,可以为那些想要增加独特需求的用户提供完全定制的功能;mysql有一个非常灵活且安全的权限和密码系统。为确保只有获授

28、权用户才能进入该数据库服务器,所有的密码传输均采用加密形式,同时也提供了 ssh和ssi。支持,以实现安全和可靠的连接。mysql强大的数据加密和解密功能,可以保证敏感数据不受未经授权的访问;虽然对于用php编写的网页来说,只要能够存放数百条以上的记录数据就是够了,但mysql可以方便地支持上千万条记录的数据库。作为一个开放源代码的数据库,mysql可以针对不同的应用进行相应的修改;mysql拥有一个非常快速而且稳定的基于线程的内存分配系统,可以持续使用而不必担心其稳定性。线程是轻量级的进程,它可以灵活地为用户提供服务,而不占用过多的系统资源。用多线程和c语言实现的mysql能很容易地充分利用

29、cpu;mysql支持查询的select和where语句的全部运算符和函数,并且可以在同一查询中混用来自不同数据库的表,从而使得查询变得快捷、方便10。本系统通过jdbc与mysql连接。jdbc是sun公司为了java访问数据库编写的一系列接口,并由各个数据库厂商实现,这些数据库厂商中有著名的oracle(甲骨文),还有后起之秀mysql。我们之所以在编程的时候会配置这些数据库的驱动,是因为这些驱动正是jdbc接口的实现。jdbc从物理结构上说就是java语言访问数据库的一套接口集合。从本质上来说就是调用者(程序员)和实现者(数据库厂商)之间的协议。jdbc api使得开发人员可以使用纯ja

30、va的方式来连接数据库,并进行操作。odbc基于c语言的数据库访问接口,是java版的odbc。jdbc 特性具有高度的一致性、简单性(常用的接口只有4、5个)。驱动程序按照工作方式分为四类:第一类是jdbc-odbc bridge+odbc驱动,jdbc-odbc bridge桥驱动将jdbc调用翻译成odbc调用,再由odbc驱动翻译成访问数据库命令。它的优点是可以利用现存的odbc数据源来访问数据库。不过也有缺点,从效率和安全性的角度来说的比较差,不适合用于实际项目。第二类是基于本地api的部分java驱动,我们应用程序通过本地协议跟数据库打交道,然后将数据库执行的结果通过驱动程序中的j

31、ava部分返回给客户端程序。第三类是纯java的网络驱动,它是两段通信,效率比较差,但是安全信较好。第四类是纯java本地协议,通过本地协议用纯java直接访问数据库。jdbc数据库连接池工作原理图如图2.1所示。用户1用户1jsp和servlet线程1线程2建立连接管理连接 释放连接dbms申请释放释放连接申请连接释放连接数据库访问图2.1 jdbc数据库连接池工作原理jdbc连接池技术的核心思想是:连接复用,通过建立一个数据库连接池以及一套连接使用、分配、管理策略,使得该连接池中的连接可以得到高效、安全的复用,避免了数据库连接频繁建立、关闭的开销。另外,由于对jdbc中的原始连接进行了封装

32、,从而方便了数据库应用对于连接的使用(特别是对于事务处理),提高了开发效率,也正是因为这个封装层的存在,隔离了应用的本身的处理逻辑和具体数据库访问逻辑,使应用本身的复用成为可能。连接池主要由三部分组成:连接池的建立、连接池中连接的使用管理、连接池的关闭。3 需求分析在软件工程中,需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、定义和功能时所要做的全部的工作。需求分析是软件工程中一个至关重要的过程。在这个过程中,系统分析员和软件工程师首先确定顾客的需要。只有在确定了这些需要后他们才能够分析和寻求新系统的解决方法。 在软件工程的历史中,很长时间里人们一直认为需求分析是

33、整个软件工程中极其简单的一个步骤,但在过去十年中越来越多的人开始认识到它是整个过程中最关键的一个过程。假如在需求分析时分析者们未能正确地认识到顾客的需要,那么最后的软件实际上不可能达到顾客的需要,或者软件无法在规定的时间里完工。网上售票系统也不例外,要对所做的项目的功能进行分析,并根据所列出的功能需求分析进行设计。31 系统功能需求分析该系统顶层是本系统的名称网上车票预订系统,在顶层之下可以分为两大用户模块,分别是用户模块和系统管理员模块,用户模块又分为普通用户模块和注册用户模块。在普通用户模块可以分为三个子模块,分别是车次查询模块、站点查询模块、站站查询模块;注册用户模块可以分为五个子模块,

34、分别包括车次查询模块、站站查询模块、站点查询与订票模块、订票模块、修改密码模块等。在系统管理员模块可以分为七大子模块,包括修改密码模块、站站管理模块、车次管理模块、车次类型模块、站点管理模块、列车类型模块、用户管理模块、售票模块等。32 系统可行性分析此可行性分析报告的目的是为了对此系统的可行性进行一下探索,论证实现本系统的可能性及以后的工作,为系统的下一步设计打下基础。在理论中,只要有足够的时间和资源,所有的项目都是可以设计实现的。然而,由于资源有限和用户要求的有限的交付时间等种种因素限制,使得基于网站系统的开发变得比较困难,因此应尽早对软件项目的可行性做出细致而准确的评估。如果在定义阶段就

35、能够及早的发现将来可能在开发过程中遇到的问题,并及时的做出应对,就可以避免大量的人力、物力、财力的浪费。可行性研究可以归档为一个单独的报告,提供给上级管理部门,也可以包括在“系统规格说明”的附录中。可行性研究报告首先由项目负责人审查(审查内容是否可靠),在上报给上级主管审阅(估价项目的地位)。从可行性研究应当得出“行与不行”的决断。进行可行性分析避免了走弯路,节约了大量的资源和时间,使系统开发变得更符合现实,有利于信息业的发展16。可行性分析与风险评估是密切相关的。如果项目的风险很大,就会降低产生高质量软件的可行性。可行性研究主要集中于经济可行性、技术可行性、法律可行性和抉择四个方面。a)经济

36、可行性,即进行开发成本的估算及可能取得的效益评估,确定待开发系统是否值得投资开发。此次开发实现的网上预售票系统主要实现工具为myeclipse、tomcat和mysql,这些工具都是免费的或者是不用用户交费使用得,可以直接从网上免费下载;还有就是本次开发的系统即可以再很大程度上缓解目前广大乘客买票难,买不到票的尴尬现状,又可以减轻售票人员的工作压力,提高工作效率,同时也为我国的和谐社会做出了重要贡献。所以在经济方面是完全可行的。b)技术可行性,即对待开发的系统进行功能、性能和限制条件的分析,确定在现有的资源的条件下,技术风险有多大,系统是否能实现。这里的资源包括已有的或可以搞到的硬件、软件资源

37、,现有技术人员的技术水平与已有的工作基础。首先此次所用到得技术为jsp编程语言和jdbc连接池技术与数据库连接,比较容易掌握和使用;还有就是由于本次网站开发用到的开发语言为jsp,可移植性好;另外网站的功能全面、性能优越,可以满足不同用户的不同要求。综上可知,本次设计的项目在技术方面是完全没有问题的。c)法律可行性,即确定待开发系统可能涉及的任何侵犯、妨碍、责任等问题。在保密方面,由于我们切实的做到对注册用户个人信息的保密,因此用户完全可以取消这个方面的担忧;还有就是我们此次所设计的为预售票系统,即不用用户在网上缴费,而是先预定,然后在去车站交钱取票,所以在财产安全方面更是不用担心的;另外我们

38、为了有效地消除有些顾客虽然定了车票,但不去缴费取票的现象的发生,我们也采取了相应的处罚,比如说如果一个注册用户上述行为超过两次,这个账户将被注销,这就意味着该用户以后就不能再通过本网站预订火车票了。d)社会可信性,即对系统开发的不同方案进行比较评价比如成本和时间的限制以及潜在的市场前景。在这方面我们完全可以相信,此次开发的项目定能够得到社会大众的普遍认同和欢迎。首先也是最重要的就是我们此次开个的项目完全是为了解决广大乘客买票难的窘境,使广大乘客可以轻松地买到车票,完全的做到了服务大众;其次随着我国经济的发展,人民生活水平的提高,外出务工旅游的人会越来越多,所以在市场发面试完全不用担心的。综上可

39、知,本次所设计开发的网上预定票系统是完全可行的,而且真正的解决了广大出行旅客买票难的窘境,满足了旅客的迫切要求,因此不但可行,而且还要加快步伐,是项目尽早的服务于人民。33 运行环境与其它要求此系统是基于客户端服务器(c/s)的系统,后台数据库采用mysql,前端使用visual studio环境进行开发,开发工具为myeclipse编程语言。3.3.1 运行环境简介a)软件环境操作系统可以是windowsxp professional、windows.net server及以上各版本;数据库应使用mysql。b)硬件环境内存要求为128mhz以上;cpu要求为intel pentium 80

40、0mhz或更高频率的cpu;硬盘容量要求为至少40g。3.3.2 其它要求网上预定票系统的主要目的是服务于广大乘客,能够使广大旅客能够及时的了解客车信息,方便定票,关于列车信息、定票信息等等都需要专门的管理员对这些数据进行维护更新,由于此软件涉及到国家交通大动脉的安全、关系到国计民生,所以此系统的安全性必须要有保障。当然,系统对方便性、快捷性也有比较高的要求。本系统要满足以下几点要求:a)系统安全性。为了保证系统的安全性,对所有的用户权限进行了严格的划分。非管理员只能编辑自己的个人信息、定票信息,而不允许对其它列车等各类信息进行添加、修改、删除。对于铁道部工作人员来说,可以对列车的进行各种信息

41、进行编辑。b)可扩展性。为了适应系统可以根据进行功能模块的调整,系统要符合乘客的需求,能够方便乘客查询列车信息及定票等等,故系统采用c/s结构,这有利于系统的维护和升级,可以减少维护的费用。4 概要设计概要设计的主要任务是把需求分析转换为软件结构和数据结构。设计软件结构的具体任务是:将一个复杂系统按功能进行模块划分、建立模块的层次结构及调用关系、确定模块间的接口及人机界面等。数据结构设计包括数据特征的描述、确定数据的结构特性、以及数据库的设计。41 系统介绍与功能模块功能模块结构图是从结构化设计的角度提出的一种描述系统功能的工具。它的基本做法是先将系统划分为若干子系统,子系统下再划分为若干的模

42、块,然后再将大模块内划分为更小的模块。本系统是一个集火车票查询和销售、列车查询和管理、用户信息及售票信息管理为一体的mis系统。该系统的用户有三类,他们分别是普通用户、注册用户、系统管理员。本系统是用jsp程序设计语言来开发的,本系统可按照具体实现功能的不同分为以下四个部分:系统登录模块、列车查询及订票功能模块、用户信息管理模块、列车及车票管理模块。以下是针对本次系统设计的功能模块总图的描述。系统功能模块结构总图如图4.1所示。网上车票预定系统系统登录列车查询及订票用户信息管理列车及车票管理图4.1 系统功能模块结构总图4.1.1 页面布局设计页面是组成本系统的最基本元素,是各个功能实现的载体

43、,因此通过页面展现给用户一个很生动的系统是十分重要的。在本系统中采取了70%的页面居中,页面主要分为三大区域,即顶层页面、中间页面(左边是功能栏目页面,右边是主页面即本页面所能提供的功能简介)和页面底层。在顶层页面上显示一张很醒目的系统名片,在图片下面设置了两个滚动条,滚动条上显示系统的欢迎信息和最新列车动态。在中间左边功能模块中,列出了本系统所能提供的全部功能;在右边的主页面功能模块中,展示该系统的主要操作功能及说明。在页面的最底层显示了有该系统的有关制作人员和日期信息及版权所有。页面基本布局图如图4.2所示。系统名片操作选项有关制作人员及版权所有选项信息及操作说明图4.2 页面基本布局4.

44、1.2 系统登录功能登录功能模块是指不同权限的用户访问系统并使用自己权限内的功能,这三类用户包括一般普通用户、注册用户登录和系统管理员登录。普通用户是指用户无需登录就可以通过浏览器访问该系统,并可以实现一些简单的列车信息、站点信息、站站信息的查询操作;注册用户是指用户持有该网站一个独一无二的账号和密码,当登录到系统后不但具有普通用户的功能,而且还能够实现订票和个人信息管理的功能,包括订票信息和个人的注册信息。系统管理员则是指当登录后可以进行包括列车信息、车票信息、用户信息等一系列信息的管理操作。系统登录模块图如图4.3所示。系统登录模块注册用户登录模块管理员登陆模块普通用户模块图4.3 系统登

45、录模块4.1.3 列车查询及订票功能模块本功能模块可以为普通用户和注册用户提供列车车次、站站之间及站点的查询功能,用户可以通过车次查询,也可以通过站点和站站之间查询列车信息,并且此模块还为注册用户提供了订票功能,注册用户只需要在查到自己满意的车票后就可以通过此模块来预订车票。列车查询及定票模块图如图4.4示。列车查询及定票模块车次查询站站查询站点查询图4.4 列车查询及定票模块4.1.4 用户个人信息管理模块此功能模块主要是为注册用户提供个人信息管理服务的。第一,此模块为用户提供了修改注册信息的功能,使注册用户只要登录到就可以方便的修改自己的基本信息;第二,此模块还为注册用户提供了已购车票信息

46、的管理,用户可以通过此模块查看已定车票,并且用户还可以在发车前一个小时修改或删除已定车票。个人信息管理模块图如图4.5所示。用户个人信息管理模块个人信息管理订票信息管理图4.5 个人信息管理模块4.1.5 列车及车票管理模块此功能模块为管理员提供了对列车信息的管理功能,其中包括了列车车次的更改,站站之间的增减,站点信息的更新和列车车票的更新等等。管理员可以根据需要通过此模块及时的更新列车的信息,比如节假日新增开的列车等等。在列车的车票管理是整个系统最重要的组成部分,管理员可以根据具体情况实现对车票信息的实时更新,这样用户就可以准确无误的了解最新车票信息。如列车及车票管理图如图4.6所示。列车管

47、理模块列车车次管理站站管理模块站点信息管理车票信息管理图4.6 列车及车票管理模块4. 2 数据库设计4.2.1 数据库概念数据库是“按照数据结构来组织、存储和管理数据的一个仓库”。在日常工作中,常常需要把某些相关的数据放进这样的“仓库”中,并根据管理的需要进行相应的处理操作。例如,企事业单位的人事部门通常要把本单位职工的基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历)存放到表中,我们把这张表叫做一个数据库。有了这个数据仓库我们就可以根据需求随时查询某个职工的基本信息,也可以查询工资在某个范围内的职工总人数等等。如果这些工作都能在计算机上自动运行,那么我们的人事管理就可以达到很高的水平。

48、另外,在财务管理、仓库管理、生产管理中同样需要建立众多的这样的数据库,使其可以利用计算机实现对财务、仓库、生产的自动化管理7。j.martin给出了一个数据库比较完整的定义:数据库是存储在一起的相关数据的集合,这些数据是结构化的,无有害的或不必要的冗余,并为多种应用服务;数据的存储独立于使用它的程序;对数据库插入新数据,修改和检索原有数据均能按一种公用的和可控制的方式进行。当某个系统中存在结构上完全分开的若干个数据库时,则该系统包含一个“数据库集合”14。4.2.2 数据库逻辑结构设计本系统共设计了九个表,分别是管理员信息表、车站信息表、列车类型信息表、用户注册表、订票信息表、车票信息表、车站

49、-车次关系表、站站信息表、车次信息表等。这九个表的详细设计如下:a) 系统管理员表(admin)系统管理员表主要存放的是系统管理员的数据,包括系统管理员帐户和密码。管理员信息表如表4.1所示。表4.1 管理员信息表(admin)字段名称字段类型主键是否非空备注admin_idvarchar(20)yesnot null管理员帐号passwordvarchar(30)nonot null管理员密码b) 订票信息表(book)订票信息表存放的是注册用户的订票信息,订票信息的字段分别是用户账号、起始站、终点站、订金、订票张数、应付金额。订票信息表如表4.2所示。 表4.2 订票信息表(book)字段

50、名称字段类型主键是否非空备注user_idvarchar(10)yesnot null用户idstart_stationvarchar(20)yesnut null始发站dest_stationvarchar(20)yesnot null终点站subscriptionnumbernonot null预 定countnumbernumbernonot null票 数affortnumbernonot null应付价格c) 车站信息表(station)车站信息表存放的是关于车站信息,包括了车站id、车站名称、进站时间和出站时间,车站信息表如表4.3所示。表4.3 车站信息表(station)字段名

51、称字段类型主键是否非空备注station_idvarchar(10)yesnot null车站idstation_namevarchar(10)nonot null车站名station_onnumbernonot null进站时间station_offnumbernonot null出站时间d) 站站信息表(station_station)站站信息表主要存放的是站站之间的数据,其中包括车站1、车站2、两站的距离和价格。站站信息表如表4.4所示。表4.4 站站信息表(station_station)字段名称字段类型主键是否非空备注station_id1varchar(10)yesnot null

52、车站id1station_id2varchar(10)yesnot null车站id2distancenumbernonot null距 离total_privenumbernonot null票 价e) 车票信息表(ticket)车票信息表用来存放车票数据,包括车票的车次、出发站、终点站、 发车日期、车票id、座位号、价格、火车类型。车票信息表如表4.5所示。表4.5 车票信息表(ticket)字段名称字段类型主键是否非空备注train_idvarchar(10)yesnot null车次start_stationvarchar(10)nonot null出发站dest_stationvar

53、char(10)nonot null终点站typevarchar(5)nonot null列车类型pricenumbernonot null票 价seatvarchar(5)nonot null座位号ticketvarchar(20)nonot null车票idstartdatevarchar(10)nonot null开车日期f) 列车信息表(train)列车信息表主要存放的是列的车次、始发站、终点站、发车时间、票数和单价等信息。列车信息表如表4.6所示。表4.6 列车信息表(train)字段名称字段类型主键是否非空备注train_idvarchar(10)yesnot null车次star

54、t_stationvarchar(10)nonot null出发站dest_stationvarchar(10)nonot null终点站starttimevarchar(10)nonot null出发时间speednumbernonot null速 度ticket_numnumbernonot null票数train_typevarchar(10)nonot null列车类型unit_pircenumbernonot null车票单价g) 车次-站站关系信息表(train_station)车次-站站关系信息表主要存放的是列车与站点之间关系的数据,包括了列车车次、车站id、发车时间、候车时间和

55、车站次序。车次-车关系表如表4.7所示。表4.7 车次-车站关系表(train_station)字段名称字段类型主键是否非空备注train_idvarchar(10)yesnot null车 次station_idvarchar(10)yesnot null车站idsequencenumbernonot null车站序列号wait_timevarchar(10)nonot null候车时间starttimevarchar(10)nonot null出发时间h) 信息表(user)信息表用来存放注册用户的信息,包括注册帐号、用户姓名、性别、住址、联系方式、邮箱、密码、身份证号等信息。信息表如表4

56、.8所示。表4.8 注册用户信息表(user)字段名称字段类型主键是否非空备注user_idvarchar(20)yesnot null注册用户帐号user_namevarchar(20)nonot null姓 名sexvarchar(2)nonot null性 别idvarchar(20)nonot null身份证号passwordvarchar(20)nonot null密 码emailvarchar(20)nonot null邮 箱phonevarchar(20)nonot null电 话addressvarchar(50)nonot null住 址i) 列车类型表(type)列车类型表用来存放关于列车类型的信息,包括类型站id和列车类型名称。列车类型表如表4.9所示。表4.9 列

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论