还剩49页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
火车站售票管理系统摘要火车站售票系统是一个基于B/S构架的系统系统的开发和应用目的是使售票活动能够在多个不同的地点(除火车站外)进行并且能够使旅客通过系统查询到自己所需要的出行信息本论文围绕如何实现基于B/S结构的客票系统展开讨论,通过对现有C/S结构的售票系统与B/S结构的优缺点进行比较,给出基于B/S结构售票系统的具体解决方案查询,买票,订票,退票,新闻管理,用户管理等六大模块,并研究B/S结构在网络中面临的安全问题及提出相应的解决方案在软件的结构设计中侧重售票系统主要功能的设计与实现本论文的研究内容还涉及现有客车售票系统中常用的算法设计,对如何将B/S结构的售票系统与车票打印机连接起来也做了简要介绍本论文关于客票系统的研究分为以下几个章节 :第一章绪论;第二章B/S模式与开发平台介绍;第三章需求分析;第四章系统总体设计与数据库设计;第五章系统的具体实现细节;第六章结论等关键字B/S结构,售票,铁路TheticketsexchangesystemofrailwaystationAuthor:XiaoweiWuTutor:ShuyangSunAbstractThesystemwhichthestationsellstheticketisasystemthatbaseontheframeoftheB/S.Thepurposeinexploitationandapplianceofthesystemistomaketheactivityofsellingtheticketsatmanydifferentlocationexceptthetrainstationandmakethetravellerinquireabouttheinformationofgoingoutbythesystem.ThispapergiveasolutionofticketssellingthroughcomparingtheC/SstructurewiththeB/Sstructure.ItalsoresearchestheproblemsofsafewhichB/Sstructurefaces.Itfeaturesthemainfunctionofthesystem.Thispaperalsoresearchesthecommonarithmeticsofthesellsystemwhichisnowusing.Andalsoitgivesabriefintroductionofhowtoconnectthissystemwithprinter.Thispaperhave6parts.Thechapter1:introductionsomethingaboutticketssystemoftrain;Thechapter2:theintroductionofb/sstructure;Thechapter3:requestanalyze;Thechapter4:thecollectivitydesignofsystem;Thechapter5:introductionthedetailsofdesign;Thechapter6:conclusionandonKeyword:B/SstructureticketsexchangerailwayTOC\o1-3\h\u目录HYPERLINK\l_Toc9533第1章绪论1HYPERLINK\l_Toc
24491.1铁路信息化的现状及目标1HYPERLINK\l_Toc
265701.2铁路售票系统的现状2HYPERLINK\l_Toc
42101.3文章概要2HYPERLINK\l_Toc23985第2章B/S模式和开发平台3HYPERLINK\l_Toc
114512.1B/S模式介绍3HYPERLINK\l_Toc
138192.
1.1关于B/S(浏览器/服务器)模式3HYPERLINK\l_Toc
100082.2开发工具介绍3HYPERLINK\l_Toc
75082.
2.1关于SQLServer20003HYPERLINK\l_Toc
197942.
2.2关于.NET3HYPERLINK\l_Toc
304552.
2.3关于ASP.NET4HYPERLINK\l_Toc
143653.1查询功能需求6HYPERLINK\l_Toc
147473.2售票功能需求6HYPERLINK\l_Toc
104393.3退票功能需求6HYPERLINK\l_Toc
309743.4订票功能需求6HYPERLINK\l_Toc
12983.5新闻功能需求6HYPERLINK\l_Toc
104583.6留言功能需求7HYPERLINK\l_Toc
273703.7用户管理功能需求7HYPERLINK\l_Toc
195053.8注册功能需求8HYPERLINK\l_Toc
253173.9性能需求8HYPERLINK\l_Toc
72603.
9.1系统的准确性和及时性8HYPERLINK\l_Toc
122063.
9.2系统的开放性和可扩展性8HYPERLINK\l_Toc
197833.
9.3系统的易用性和易维护性9HYPERLINK\l_Toc
270733.10数据需求9HYPERLINK\l_Toc
1793.
10.1数据录入和处理的准确性9HYPERLINK\l_Toc
210363.
10.2数据的一致性和完整性9HYPERLINK\l_Toc
185613.
10.3数据的共享与独立性9HYPERLINK\l_Toc
236004.1系统总体设计11HYPERLINK\l_Toc
226054.
1.1设计目标11HYPERLINK\l_Toc
114994.
1.2设计原则11HYPERLINK\l_Toc
186564.
1.3功能设计11HYPERLINK\l_Toc
24354.2系统功能模块设计12HYPERLINK\l_Toc
92884.
2.1注册模块12HYPERLINK\l_Toc
121274.
2.2登录模块12HYPERLINK\l_Toc
265174.
2.3售票模块13HYPERLINK\l_Toc
121474.
2.4订票模块13HYPERLINK\l_Toc
203594.
2.5退票模块13HYPERLINK\l_Toc
278234.
2.6查询模块13HYPERLINK\l_Toc
122174.
2.7个人资料模块14HYPERLINK\l_Toc
79444.
2.8留言板模块14HYPERLINK\l_Toc
204864.
2.9用户管理模块14HYPERLINK\l_Toc
19804.
2.10车次刷新模块14HYPERLINK\l_Toc
271984.
2.11销售统计模块14HYPERLINK\l_Toc
104264.3数据库设计15HYPERLINK\l_Toc
292904.
3.1用户表15HYPERLINK\l_Toc
82864.
3.2车次详细信息表15HYPERLINK\l_Toc
261504.
3.3普通列车价格表16HYPERLINK\l_Toc
50794.
3.4普通列车卧铺价格表16HYPERLINK\l_Toc
9894.
3.5空调列车价格表17HYPERLINK\l_Toc
97124.
3.6空调列车卧铺价格表17HYPERLINK\l_Toc
43384.
3.7订票纪录表18HYPERLINK\l_Toc
95084.
3.8留言信息表19HYPERLINK\l_Toc
199924.
3.9新闻信息表20HYPERLINK\l_Toc
130724.
3.10客车售票系统E-R图21HYPERLINK\l_Toc
295345.1登陆模块23HYPERLINK\l_Toc
309195.
1.1实现原理23HYPERLINK\l_Toc
65935.
1.2关键代码23HYPERLINK\l_Toc
221765.2注册模块25HYPERLINK\l_Toc
261875.
2.1实现原理25HYPERLINK\l_Toc
131565.
2.2Button_queding_Click事件(提交事件)25HYPERLINK\l_Toc
110005.3系统主界面26HYPERLINK\l_Toc
281765.4售票模块27HYPERLINK\l_Toc
51175.
4.1实现原理27HYPERLINK\l_Toc
201035.
4.2绑定车次代码28HYPERLINK\l_Toc
276935.
4.3价格计算原理及代码29HYPERLINK\l_Toc
299205.5订票模块33HYPERLINK\l_Toc
65345.6退票模块33HYPERLINK\l_Toc
10905.7查询模块33HYPERLINK\l_Toc
151565.
7.1查询模块关键代码34HYPERLINK\l_Toc
280005.9站内新闻模块37HYPERLINK\l_Toc
236825.10意见反馈模块38HYPERLINK\l_Toc
77035.11用户管理模块39HYPERLINK\l_Toc
32275.12管理用户模块39HYPERLINK\l_Toc
181075.13查询剩余票模块40HYPERLINK\l_Toc
268855.14更新车次模块41HYPERLINK\l_Toc
110315.15新闻公告管理模块42HYPERLINK\l_Toc
228435.16留言管理模块42HYPERLINK\l_Toc
256515.17销售统计模块43HYPERLINK\l_Toc27602结论44HYPERLINK\l_Toc24908致谢45HYPERLINK\l_Toc2573参考文献45第1章绪论
1.1铁路信息化的现状及目标用信息化推动工业化,用信息技术改造传统产业,这是我国迫切要完成的一项战略性任务作为工业文明的产物—铁路,如何借助信息技术的帮助,实现管理方式,运营组织,服务标准的现代化,这是摆在我国铁路工作者面前的重大课题铁路信息化是铁路现代化的重要标志,其根本目的是将信息技术应用到铁路生产经营与管理决策等各项活动中,改造传统产业,提高铁路生产率,提高市场竞争力,提高铁路运营经济效益国内外已有运作合理完善的火车售票管理系统,其具有售票、查询、管理和维护等功能,系统管理员可以进行对车次的更改、票价的变动及调度功能,票价的修改可以通过修改运价来进行,车次调度可通过对发车时刻表的修改来进行,维护功能即可对表进行修改满足当前火车售票管理的需求,并且运作十分良好铁路信息化建设目前主要集中在搞好铁路运输生产管理上,加快计算机调度系统建设,完善客票发售与预订系统,搞好各地信息系统的结合,实现资源有效利用,信息共享其总体目标是形成具有国际水平的铁路信息化基础通信平台,实现各部门各系统之间的信息数据共享,互联互通;建成车,机,工,电,辆各部门调度控制,安全生产,运输指挥的现代化保障体系为铁路运输各部门提供所需的管理信息资源和强有力的决策支持通过现代客货营销手段和电子商务手段,带动铁路运输经济发展,大幅度提高运输效益建立建全与信息化相适应的管理体制我国目前的铁路信息化总体程度居国内领先,国际先进水平
1.2铁路售票系统的现状铁路客票发售和预订系统经过几年的建设,取得了很大的进展火车售票系统的推广使用,大大方便了旅客购票,也预示着我国铁路售票系统正日趋合理与完善,并且具有良好的交互界面,容易被用户所接受本系统为了解决售票大厅拥挤和团体集中购票的问题,提高铁路客运的售票效率及为旅客提供更多的便捷服务,本系统利用计算机网络,通过网络或代售点售票系统,使得售票服务更为便捷效率,使铁路售票系统应用更为广泛,使得铁路售票业务,铁路客运及运输发展更为稳定,迅猛
1.3文章概要全文分为六章:第一章:绪论介绍我国目前铁路信息化的有关背景和B/S结构铁路售票系统在铁路信息化中的特点及优势第二章:B/S模式和开发工具介绍B/S结构本系统所选则开发平台是asp.net2000,数据库用的是sqlserver2000第三章:需求分析分析了该系统的功能需求,提出了火车站售票系统的总体设计方案第四章:售票系统设计针对火车售票系统业务的数据结构,数据管理特点进行数据库设计,系统总体设计第五章:售票系统的实现详细介绍售票系统中每个功能模块如何实现,主要代码的思想及功能第2章B/S模式和开发平台
2.1B/S模式介绍
2.
1.1关于B/S(浏览器/服务器)模式B/S结构即浏览器和服务器结构它是随着Internet技术的兴起,对C/Shttp://baike.baidu.com/view/
45170.htm\t_blank结构的一种变化或者改进的结构它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LANWANInternet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效
2.2开发工具介绍伴随着Internet/Intranet技术的发展,开发基于Web的应用程序势在必行,数据库技术更是需要和Web数据相结合,才是更为广阔的前景ASP.Net作为微软推出的新兴Web应用程序开发技术,在数据库应用方面发挥着越来越重要的作用本系统的开发平台是ASP.NET2000,数据库选择用的SQLServer
20002.
2.1关于SQLServer2000 SQLServer2000是Microsoft公司推出的SQLServer数据库管理系统的最新版本该版本继承了SQLServer
7.0版本的优点同时又比它增加了许多更先进的功能,具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行MicrosoftWindows98的膝上型电脑到运行MicrosoftWindows2000的大型多处理器的服务器等多种平台使用
2.
2.2关于.NET.NET是MicrosoftXMLWebservices平台XMLWebservices允许应用程序通过Internet进行通讯和共享数据,而不管所采用的是哪种操作系统、设备或编程语言Microsoft.NET平台提供创建XMLWebservices并将这些服务集成在一起之所需对个人用户的好处是无缝的、吸引人的体验而且.NET平台的基础架构.NET框架Framework,采用统一的命令集支持各种编程语言从而消除各种异类框架之间的差异,提供强的跨语言继承性、错误处理和调试功能
2.
2.3关于ASP.NETASP.net是把基于通用语言的程序在服务器上运行不像以前的ASP即时解释程序,而是将程序在服务器端首次运行时进行编译,这样的执行效果,当然比一条一条的解释强很多因为ASP.net是基于通用语言的编译运行的程序,所以它的强大性和适应性,可以使它运行在Web应用软件开发者的几乎全部的平台上(笔者到现在为止只知道它只能用在Windows2000/2003Server上)通用语言的基本库,消息机制,数据接口的处理都能无缝的整合到ASP.net的Web应用中ASP.net同时也是language-independent语言独立化的,所以,你可以选择一种最适合你的语言来编写你的程序,或者把你的程序用很多种语言来写,现在已经支持的有C#(C++和Java的结合体),VB,Jscript将来,这样的多种程序语言协同工作的能力保护您现在的基于COM+开发的程序,能够完整的移植向ASP.netASP.net使运行一些很平常的任务如表单的提交客户端的身份验证、分布系统和网站配置变得非常简单ASP.net使用一种字符基础的,分级的配置系统,使你服务器环境和应用程序的设置更加简单因为配置信息都保存在简单文本中,新的设置有可能都不需要启动本地的管理员工具就可以实现这种被称为ZeroLocalAdministration的哲学观念使Asp.net的基于应用的开发更加具体,和快捷一个ASP.net的应用程序在一台服务器系统的安装只需要简单的拷贝一些必须的文件,不需要系统的重新启动,一切就是这么简单多处理器环境的可靠性ASP.net已经被刻意设计成为一种可以用于多处理器的开发工具,它在多处理器的环境下用特殊的无缝连接技术,将很大的提高运行速度即使你现在的ASP.net应用软件是为一个处理器开发的,将来多处理器运行时不需要任何改变都能提高他们的效能,但现在的ASP却做不到这一点自定义性和可扩展性ASP.net设计时考虑了让网站开发人员可以在自己的代码中自己定义plug-in的模块这与原来的包含关系不同,ASP.net可以加入自己定义的如何组件网站程序的开发从来没有这么简单过安全性基于Windows认证技术和每应用程序配置,你可以确保你的原程序是绝对安全的ASP.NET的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护可以通过在现有ASP应用程序中逐渐添加ASP.NET功能,随时增强ASP应用程序的功能ASP.NET是一个已编译的、基于.NET的环境,把基于通用语言的程序在服务器上运行将程序在服务器端首次运行时进行编译,比ASP即时解释程序速度上要快很多.而且是可以用任何与.NET兼容的语言(包括VisualBasic.NET、C#和JScript.NET.)创作应用程序第3章需求分析该系统是利用ASP.NET2000平台开发,数据库采用的是SQLSever2000旨在开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的火车售票系统,为用户提供满意的火车票销售服务
3.1查询功能需求查询功能要能满足至少两种方式的查询按车次查询,按站点查询如果查询出来满足条件的车次后,用户可以直接点击购买查询出来的信息里面应该包括车次,开车时间,到达时间,起始站,终点站,车辆类型等信息
3.2售票功能需求售票界面应具有起始站,终点站,里程数,车票类型,购买数量,价格自动结算等项目,其有两个入口,一个是直接购票入口,以及查询结果界面的购票入口,以方便购票
3.3退票功能需求退票模块要能实现两种功能退订和退票退订是指用户有过订票记录,但票还没拿到;退票是指用户退掉已经拿到的车票,退票只能退回票价80%的金额
3.4订票功能需求订票模块和买票模块主要有两点区别用户进行订票操作时必须要输入用户信息;订票的和买票的提前时间不同,订票可以提前更多的时间
3.5新闻功能需求用户可以从新闻模块里了解近期的最新站内通知以及国内外新闻
3.6留言功能需求用户可以把整个购票订票服务中的体会,意见以及建议反馈给车站工作人员,以方便工作人员更好的改进工作当中的疏漏以及不足
3.7用户管理功能需求当高级管理员登录系统时,用户管理界面入口可见,其他用户登录后则不能看到用户管理模块用户管理模块主要有六个子模块管理用户,剩余票查询,更新车次,销售情况统计,新闻管理,留言管理◆管理用户系统的用户有三类,管理员,代售点用户和企业用户,不同的用户权限不同这些权限具体体现在提前买票和订票时间上除了高级管理员,其他的用户都要先注册才能使用,不同类型的用户登录系统后操作界面不太一样◆剩余票查询管理员要能查询某个车次或者所有的车次剩余票信息◆更新车次管理员可在第一次使用系统时通过这个功能模块来建立基本的车次信息库,在以后的业务活动中根据具体需要删除或者修改某些车次信息◆销售情况统计用户可以统计某一时间段内某个车次或者某个代售点的销售情况,当然也可以查询所有车次或者所有代售点的销售情况◆新闻管理管理员要能添加,修改,删除新闻内容◆留言管理管理员可以查看,删除用户留言
3.8注册功能需求第一次使用系统时,首先要做的是注册用户,注册用户模块里主要分两种类型的注册代售点注册和企业用户注册这两种注册方式的差别体现在所填注册信息上不同的用户拥有不同的权限
3.9性能需求为了保证客车售票系统能够长期、安全、稳定、可靠、高效的运行,客车售票系统应该满足以下的性能需求
3.
9.1系统的准确性和及时性系统处理的准确性和及时性是系统的必要性能在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足用户对信息处理的需求由于客车售票系统的查询功能对于整个系统的功能和性能完成举足轻重作为系统的很多数据来源,车票销售数量和销售时间又影响企业的决策活动,其准确性很大程度上决定了客车售票系统的成败在系统开发过程中,必须采用一定的方法保证系统的准确性
3.
9.2系统的开放性和可扩展性售票系统在开发过程中,应该充分考虑以后的可扩充性例如车次信息的临时或者永久性改变,用户查询的需求也会不断的更新和完善所有这些,都要求系统提供足够的手段进行功能的调整和扩充而要实现这一点,应通过系统的开放性来完成,即系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件通过软件的修补、替换完成系统的升级和更新换代
3.
9.3系统的易用性和易维护性售票系统是直接面对普通用户的,而大多普通用户往往对计算机并不是非常熟悉这就要求系统能够提供良好的用户界面要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息界面;针对用户在使用中出现的错误操作,尽量给出中文提示售票系统中涉及到的数据是铁路部门的相当重要的信息,系统应提供方便的手段供系统维护人员进行数据的备份,日常的安全管理,以及系统意外崩溃时数据的恢复等工作
3.10数据需求
3.
10.1数据录入和处理的准确性数据的输入是否正确是数据处理的前提,错误的输入会导致系统输出的不正确和不可用,从而得不到想要的结果数据的输入来源是手工输入所以系统地界面要让用户容易使用,如果用户出现误操作,系统能简单明了的给出中文提示
3.
10.2数据的一致性和完整性由于系统的数据是共享的,在不同的代售点中,车次信息是共享数据,所以如何保证这些数据的一致性,是系统必须解决的问题要解决这一问题,要求系统能保证数据的一致性,在数据录入处控制数据的去向,并且要求对数据库的数据完整性进行严格的约束对于输入的数据,要为其定义完整性规则,如果不能符合完整性约束,系统应该拒绝该数据,并给出出错提示
3.
10.3数据的共享与独立性整个售票系统的数据是共享的然而,从系统开发的角度上看,共享会给设计和调试带来困难因此,应该提供灵活的配置,使不同权限的用户都可以正常进行操作第4章系统设计
4.1系统总体设计
4.
1.1设计目标采用现有的互联网资源,实现B/S结构的火车售票系统
4.
1.2设计原则◆安全性未经注册的用户不能登录系统,用户个人信息和购票信息通过互联网上传输时,要确保信息的安全性◆时效性用户对系统进行操作时,系统及时给与响应,一般响应速度应为秒级◆可扩展性对于用户新的需求,能做到只需添加新模块即可满足用户要求
4.
1.3功能设计系统总的功能模块结构如图图4-
14.2系统功能模块设计针对系统总体功能结构图,下面是每个功能模块的详细设计
4.
2.1注册模块注册模块是每个信息系统必须有的一个功能模块,用户正确输入注册信息后,系统直接通过验证,把用户注册的用户名作为合法用户,这种是最常用的本系统用的就是这种登录方式,这种注册方式用户名和密码都可以修改
4.
2.2登录模块首先出现的是登录页面,登陆页面的主要功能是验证用户是否具有登录权限登录页面上有注册用户选项,用户首次使用本系统应该先注册,后使用
4.
2.3售票模块买票模块可以说是客车售票系统最重要最核心的模块,其它的功能模块都是为是以它为核心,为它服务进入买票页面后,用户可以选择或输入车次,开车时间,起始站,终点站,座位类型,是否学生票,票数等信息,可以点击计算价格和购买按钮买票成功后可以给出用户具体的票据,也就是车票,本系统暂时先模拟了一张车票,车票上有打印按钮,当用户点击打印按钮,理论上可以打印出实际的车票,这个功能要设计到系统和车票打印机的连接,本系统主要侧重软件实现
4.
2.4订票模块订票模块也是客票系统中必不可少的功能模块,订票是指在超出买票期限时用户可以和代售点达成协议,先付款预定车票,这也是缓解客票销售紧张的一种好方法订票界面和买票界面差不多,只是在买票页面上多了用户信息栏当用户想要订票时候,除了需要输入车次信息和票数外,还要输入自己的信息,如姓名,联系方式,身份证号,地址等用户的订票信息将会被保存到订票表
4.
2.5退票模块现在火车站退票的原则是在列车开车前可以退票,只能退还原票价80%的金额退票模块分为两种退票方式退票和退订本系统设置的退票,退订返现为票价的80%,即无论退票还是退订返回给用户的金额是票价的80%客户完成退票后,客户的在订票表的纪录要进行删除,以保证数据同步
4.
2.6查询模块如果用户以已知车次进行购票,那么直接在买票模块里输入车次就可以进行购票;如果用户买票时只知道出发地点和到达地点,这时可选择使用查询功能,在查询功能支持两种查询方式按车次查询和按站点查询按车次查询直接输入车次就可以查出来该车次的车次信息;按站点查询又分为三种查询方式按起始站,按终点站,按起始站和终点站的组合无论以哪种方式查询,查询结果里面除了显示每一趟车次的详细信息外,每趟车次后面还有一个购买链接,可以直接跳转到购票页面,用户就可以在这里购买该趟车次车票
4.
2.7个人资料模块个人资料模块是个相对比较小的功能模块,它的作用是供用户查看或者修改自己的资料用户登录系统主界面后,点个人资料系统就可以显示当前登陆用户的信息用户可以在上面修改保存自己的信息
4.
2.8留言板模块留言板的功能是让用户可以及时向管理员反馈在系统使用中的出现问题和用户建议,留言时要输入留言标题和内容,作者和留言时间系统可以自动获得,用户不用手动输入
4.
2.9用户管理模块管理用户功能主要是为了方便系统管理员对所有用户的管理,系统管理员在这里可以查看,修改和增加用户如果某个代售点被取消,管理员就可以在这里删除它的用户信息
4.
2.10车次刷新模块更新车次模块主要作用是方便管理员建立基本车次信息库管理员可查看,修改,增加删除车次信息和详细路段信息
4.
2.11销售统计模块统计方式选择按车次,按代售点等统计结果显示方式,它分为两种记录和合计
4.3数据库设计本系统采用的数据库软件为SQLserver2000本系统用到的数据库名为selltickets(售票),它里面包括9张表,下面逐一介绍
4.
3.1用户表用户表用来存储注册用户的信息,它的结构如表表4-1字段名称数据类型长度描述序号Int4主键用户名Char10用户名密码Char10密码联系方式Varchar50联系方式负责人Char10负责人单位全称Varchar50单位全称具体地址Varchar20具体地址身份证Char20身份证号代售点编号Int4为代售点用户自动分配编号用户类型Int4代售点为1,企业用户为
24.
3.2车次详细信息表表存储的是车次的具体路段信息,它的结构如表4-2表4-2字段名称数据类型长度描述序号Decimal9主键车次Char18车次开车时间Datatime8开车时间到达时间Datetime8到达时间出发站Char50出发站到达站Char50到达站行程Decimal9每两站之间的距离
4.
3.3普通列车价格表普通列车价格表存储的是普通列车的票价计算参数,它的具体结构如表表4-3普通列车价格表字段名称数据类型长度描述序号Int4主键里程Int4路程分段计费普通列车Decimal9普通列车对应路段价格普快列车Decimal9普快列车对应路段价格特快列车Decimal9特快列车对应路段价格空调费率Int9路段空调费率座位类型Char10座位类型
4.
3.4普通列车卧铺价格表普通列车卧铺价格表存储的是普通列车卧铺票价的计算参数,它的具体结构如表4-4表4-4普通列车卧铺价格表字段名称数据类型长度描述序号Int4主键里程Int4路程分段计费上铺Decimal9上铺对应路段的价格中铺Decimal9中铺对应路段的价格下铺Decimal9下铺对应路段的价格空调费率Decimal9路段空调费率车辆类型Char18有普通,普快,特快之分座位类型Char18有软卧和硬卧之分
4.
3.5空调列车价格表空调列车价格表存储的是空调列车票价的计算参数,它的具体结构如表4-5表4-5空调列车价格表字段名称数据类型长度描述序号Int4主键里程Int4路程分段计费普通列车Decimal9普通列车对应价格普快列车Decimal9普快列车对应价格特快列车Decimal9特快列车对应价格
4.
3.6空调列车卧铺价格表空调列车卧铺价格表存储的是空调列车卧铺票价的计算参数,它的具体结构如表4-6表4-6空调列车卧铺价格表字段名称数据类型长度描述序号Int4主键里程Int4路程分段计费上铺Decimal9上铺对应路段的价格中铺Decimal9中铺对应路段的价格下铺Decimal9下铺对应路段的价格车辆类型Char18有普通,普快,特快之分座位类型char18有软卧和硬卧之分
4.
3.7订票纪录表订票纪录表存储的是用户的买票记录和订票信息,买票和订票操作产生的记录有不同的字段,本系统中把两种不同字段放在一张表里,如果订票字段为空,则系统可判断这是一条买票记录,它的具体结构如表4-7表4-7订票记录表字段名称数据类型长度描述序号Int4主键车次Char10车次出发站Char10车发站到达站Char10到达站座位类型Char10座位类型票数Decimal9票数总价格Decimal9总价格用户名Char50用户名联系方式Decimal20联系方式身份证Decimal20身份证发车日期Datetime8发车日期时间Datetime8时间座位号Int4座位号
4.
3.8留言信息表留言信息表存储的是用户反馈给管理员的信息,它的具体结构如表4-8表4-8留言信息表字段名称数据类型长度描述序号Int4主键标题Varchar50标题内容Varchar1000留言内容作者Varchar50留言的用户名时间Datetime8发表留言的时间
4.
3.9新闻信息表新闻信息表存储的是管理员发布的站内新闻,它的具体结构如表4-9表4-9新闻信息表字段名称数据类型长度描述序号Int4主键标题Varchar100标题发布时间Datetime8留言时间内容Varchar5000留言内容
4.
3.10客车售票系统E-R图图4-2客车售票系统E-R图第5章系统实现本章主要讲如何在前面分析和设计的基础上通过ASP.NET和sqlserver2000来实现售票系统下面将详细介绍每个功能模块是如何实现在讲系统实现之前,现讲一下asp.net是如何对数据库进行操作的,因为本系统的所有模块基本上都涉及到数据库操作SQLserver2000数据库属于关系型数据库,而关系型数据库中最重要的也是最基础的是数据表,数据表是一系列相关数据的集合,每张数据表可分为行和列,每一行是一条记录,每一列是一个字段,为了存储数据,可以建立相应的数据表,使得数据以一条一条的记录方式存储在数据表中,当然这些都是用数据库管理软件来实现的数据库和数据表创建好后,我们就可以对数据库进行读写操作,asp.net是用ado.net来对数据库进行操作的,ado.net是一组有.NETFramework提供的对象类的名称,用于数据存储中的数据交互,需要注意的是,ado.net使用的是数据存储的概念,而不是数据库的概念,就是说,ado.net不但可以处理数据库中的数据,还可以处理其他存储方式中的数据,例如XML格式,Excel格式和文本文件格式中的数据Ado.net与ado相比有更大的可伸缩性和互操作性,它的一大特点是可以对断开的数据集进行操作在Web应用程序中,由于用户在使用网页访问数据库时,网络一般是断开的,只有当用户发出请求时才与数据库建立连接,一旦请求完毕,就断开连接,这样做的最大好处就是可以节约服务器的资源,所以ado.net这个特性可以很大程度上提高应用程序的效率建立数据库连接的方法很多,如果使用的OLEDB编程接口,就要使用OleDbConnection对象,如果使用的是SQLServer编程接口,就要使用Sqlconnection对象(本系统使用的就是Sqlconnection对象)
[3]如果要与数据库中的某一张表建立连接,在服务器资源管理器中找到对应的表,把它拖到对应的页面中去,系统会自动生成sqlDataAdapter对象和sqlConnection对象,我们可以用sqlConnection来生成数据集dataset对sqlDataAdapter按照提示向导做简单的配置,就可以在程序里调用它
5.1登陆模块
5.
1.1实现原理用户输入用户名和密码点击登录后,系统首先判断用户名和密码是否为空,若为空,则显示输入信息不完整,若都不为空,则以用户名查询用户表,将查询到的信息填入数据集,若数据集中信息小于一行,则用户非法,反之,则登陆成功,进入系统页面
5.
1.2关键代码点击”登陆”按扭后执行下面代码privatevoidButton_denglu_ClickobjectsenderSystem.EventArgse{ifthis.sqlConnection_user.State.ToString==Closedthis.sqlConnection_user.Open;//如果数据库连接状态为关闭,打开数据库连接ifthis.text_name.Text.Trim!=this.text_password.Text.Trim!=//如果用户名和密码栏不为空{stringsql=select*from[user]where用户名=+this.text_name.Text.Trim+and密码=+this.text_password.Text.Trim+;//构造查询语句以用户名为条件查询数据库,this.sqlDataAdapter_user.SelectCommand.CommandText=sql;this.sqlDataAdapter_user.Fillthis.dataSet_user;//把查询结果填充到数据集里面ifthis.dataSet_user.Tables
[0].Rows.Count0//如果查询结果不为空{Session[username]=this.text_name.Text.Trim;//把当前用户名纪录在Session[username]this.Response.Redirectmain.aspx;//跳转到系统主界面}elseGlobal.Alertthis用户名或密码输入有误,请重新输入!;//如果查询结果为空,提示错误信息}else{Global.Alertthis用户名或密码输入不完整!;//如果用户名和密码栏由空值,提示错误信息Session[username]=null;}}
5.2注册模块
5.
2.1实现原理注册模块里有两种注册方式代售点注册和企业用户注册代售点指的是火车票售票窗口,企业则指的是学校,公司等企业类型用户这两种不同的注册方式要求用户填写的注册信息不同,但是它们的注册信息是存放在同一张用户表里面的系统从用户表里的两个字段来区分两种注册方式一是“代售点编号”字段,如果是代售点注册,则这里有系统自动分给的一个编号,如果是企业用户注册,该字段为空;二是通过“用户类型来区分”,如果是代售点注册,用户类型为“1”,如果是企业用户注册,该字段值为“2”,在注册页面当用户点击两个RadioButton按钮代售点注册和企业用户注册,系统会自动把这两个组件的AutoPostBack属性的值都为True,并且它们Grounpname相同,点击两个RadioButton出现的用户信息填写框不同这里是把两种用户注册信息放到一个页面里,在页面的page_load事件里,判断是那种注册方式,显示信息栏当用户点击确定(注册)按钮时,系统首先判断页面上所有的信息栏有没有空,有空则提示“信息输入不完整”,否则进入下一步判断,用户注册页面这里要求用户名6-16个字符,密码8-16个字符,如果输入信息都满足条件,把用户的注册信息存储到用户表里面,然后系统跳转到注册成功页面,然后自动回到用户登录页面,这里也可以手动点击回到用户登录页面
5.
2.2Button_queding_Click事件(提交事件)◆Button_queding_Click事件的核心代码如下this.sqlDataAdapter_user.InsertCommand.CommandText=insertinto[user]序号用户名密码联系方式负责人代售点编号具体地址身份证用户类型values+xuhao++xingming++mima++lxfs++fzr++bianhao++dz++sfz++yonghuleixing+;//构造sql插入语句ifthis.sqlConnection
1.State.ToString==Closedthis.sqlConnection
1.Open;//打开数据库连接this.sqlDataAdapter_user.InsertCommand.ExecuteNonQuery;//执行插入语句this.Response.Redirectzhucechenggong.aspx;//跳转到注册成功信息页面◆获取IP的代码如下this.Label_IP.Text=Page.Request.UserHostAddress;◆获取浏览器版本号的代码如下this.Label_LLQ.Text=Request.Browser.Version;
5.3系统主界面系统主界面是所有其它所有模块的入口,主界面上的所有按钮鼠标点击事件主要执行两种代码一是直接跳转如this.Response.Redirectxxx.aspx;,“xxx.aspx”是其它功能页面的名称二是在主界面的上弹出新的窗口,如stringmsg;msg=scriptlanguage=javascript;msg+=window.openyh个人height=220width=650top=150left=200toolbar=nomenubar=noscrollbars=noresizable=nolocationnn=nostatus=no;//设置弹出窗口的大小及位置msg+=/script;this.RegisterStartupScript个人信息msg;//执行javascript脚本
5.4售票模块
5.
4.1实现原理在买票页面,用户需要输入购买的车次,开车时间,起始站,终点站,座位类型,是不是学生票,票数,等信息这里要注意的是当用户输入车次后,直接去点起始站和终点站的下拉菜单是没有可选值的,正确定操作是输入车次后,点确定,系统会根据车次把该车次的详细路段信息绑定到起始站和终点站的下拉菜单里面,为什么要输入车次后点击确定?这就是B/S结构系统得特点,要想得到结果必须要把数据提交给后台服务器,如果只是输入车次不点确定,后台无法或者车次信息同样的道理,当上面的车票信息都填写完后要点击价格按钮,系统会根据车次信息把价格计算出来,显示给用户计算出来价格后,用户就可以点击购买按钮,进行买票点击购买按钮后,系统首先从Senssion[“name”]里面得到当前登录的用户名,根据用户名在用户表里面找到该用户的用户类型,根据用户类型得出该用户的提前买票时间,然后把当前的系统时间和开车时间求差值,把这个差值和提前买票时间做个比较,如果差值大于提前买票时间,提示“不在购票期限内!”否则,在订票表里面添加买票纪录,在车次信息表里把对应的车次对应座位类型的票数减去购买的票数最后给出买票详单,买票详单上显示了车票的具体信息,这些字段信息是如何获得的?通常有两种方法一,买票操作成功后,调用买票详单页面,通过URL把所有的车票信息传递过去;二,调用买票详单页面时,只传递车次,详单页面的page_load事件里面直接获取车次,根据车次去订票表里面查找购票信息,再把它们显示出来,本系统用的是第二种方法买票详单上面有打印按钮,点击它可以把车票打印出来
5.
4.2绑定车次代码DropDownList_qsz(起始站下拉框)和DropDownList_zdz(终点站下拉框)两个下拉框开始时是空的,当用户输入车次后,点击“确定”按钮,系统会根据车次从数据库里面的ticketsinf表查询该车次的所有沿途站点,并把它绑定到DropDownList_qsz和DropDownList_zdz上,用户就可以从DropDownList_qsz和DropDownList_zdz里面分别选择起始站和终点站Button_quding_click(确定车次)事件里绑定起始站的核心代码如下dsbegin=newDataSet;//存放起始站的查询结果sql=SELECT出发站FROMticketsinf;/*构造查询语句sql+=where车次=+this.Text_checi.Text.Trim+;*/ifthis.sqlConnection
1.State.ToString==Closed/*打开数据库连接this.sqlConnection
1.Open;*/this.sqlDataAdapter_ticketsinf.SelectCommand.CommandText=sql;/*执行查询操作this.sqlDataAdapter_ticketsinf.Fillthis.dsbegin;*/this.DropDownList_qsz.DataSource=this.dsbegin;//以下为绑定起始站代码this.DropDownList_qsz.DataMember=this.dsbegin.Tables
[0].ToString;this.DropDownList_qsz.DataTextField=this.dsbegin.Tables
[0].Columns
[0].ToString;this.DropDownList_qsz.DataValueField=this.dsbegin.Tables
[0].Columns
[0].ToString;this.DropDownList_qsz.DataBind;
5.
4.3价格计算原理及代码火车票价格计算参数有四张表,它们分别是“普通列车硬座价格表”,“普通列车卧铺价格表”,“空调列车硬座价格表”,“空调列车卧铺价格表”他们的大体结构如下
1.普通列车硬座价格表表5-
12.普通列车卧铺价格表表5-
23.空调列车硬座价格表表5-
34.空调列车卧铺价格表表5-4本系统数据库中有四张表(putongliechejiageputonglichewopujiagekongtiaoliejiagekongtiaoliechewopujiage)分别与上面四张表结构相对应下面讲具体实现价格计算的流程,图5-1价格计算的核心代码ifkongtiao==zuoweileixing==卧铺//如果是卧铺{this.sqlDataAdapter_putongche.SelectCommand.CommandText=select里程普通列车普快列车特快列车空调费率座位类型fromputongliechejiage;//构造查询语句ifthis.sqlConnection
2.State.ToString==Closedthis.sqlConnection
2.Open;//打开数据库this.sqlDataAdapter_putongche.Fillthis.dsputongche;//执行查询语句inthangshu=this.dsputongche.Tables
[0].Rows.Count;//记录查询结果的行数ifleixing==普通//如果车辆类型为“普通”{forinti=0;ihangshu;i++{iflucheng=decimal.Parsethis.dsputongche.Tables
[0].Rows[i]
[0].ToStringluchengdecimal.Parsethis.dsputongche.Tables
[0].Rows[i+1]
[0].ToString//判断路程是在那个范围内{jiage=decimal.Parsethis.dsputongche.Tables
[0].Rows[i]
[1].ToString+decimal.Parsethis.dsputongche.Tables
[0].Rows[i]
[4].ToString;//得出价格break;//退出}}
5.5订票模块订票模块和买票模块共用一个界面,当在软件主界面分别点击买票和订票按钮时,通过URL传递给买票页面的参数(flag)不一样,买票页面在page_load事件里面先判断flag的值,如果flag=1,买票界面下面的用户信息栏不显示,如果flag=2则显示用户信息栏图5-
25.6退票模块退票模块主要有两个功能退票和退订,如果用户已经买到票,又想把票退掉,可以选择退票功能,前提是车票上的开车日期在退票之后,否则不能退;如果用户有过订票记录,现在又想取消订票,可以选择退订功能,退票和退订在合法的时间范围内返给用户的金额是原车票价格的80%退订和退票的操作流程一致这里要注意的是,如果用户选择的是退订方式,底下的用户信息栏用户要如实填写,即和订票时输入的信息要完全一样,否则退票操作不能完成
5.7查询模块查询模块的功能是当用户买票时,他只知道开车时间,起始站和终点站,但是不知道坐哪趟车,或者是用户想了解车次的详细信息等等用户这些需求都可以通过查询功能来实现查询模块的操作流程图如图图5-
35.
7.1查询模块关键代码
1.DateGrid控件DateGrid控件是用来把数据库中的查询结果展示给用户,使用之前先要设置好它的数据源和数据成员当执行了查询语句后,填充数据集,再执行数据网格绑定,数据就可以展示出来本页面的DateGrid控件主要有以下几个事件DataGrid_ItemComman事件这个事件里面常用的命令有两种selectdelete,DateGrid里面用到的是select命令,也就是我们在查询结果中看到的“购买”事件的代码如下ife.CommandName==Select//判断命令类型{stringflag=this.DataGrid
1.DataKeys[e.Item.ItemIndex].ToString;//取当前行的索引Response.Redirectmaipiao.aspxflag=+flag;//跳转到买票页面,并传递参数flag}DataGrid的数据源是dateset_chaxun,数据成员是tickets,数据键字段是“车次”this.DataGrid
1.DataKeys[e.Item.ItemIndex].ToString;这行代码的意思就是获取数据键字段,在这个数据网格中数据字段是“车次”Response.Redirectmaipiao.aspxflag=+flag;这里面的flag参数传递的就是车次,用户点击“购买”后,系统会跳转到买票页面,那里面的车次字段,起始站和终点站字段系统会自动给它们绑定数据用户只需要选择开车时间和座位类型等即可DataGrid_PageIndexChanged事件是DateGrid控件里面最常用的事件,它的功能是实现分页,用户可以自己定义DateGrid里面每页显示多少行(查询模块里面设置的是每页显示10行),当查询结果超过设定的行数时,DateGrid底线会出现分页符(“下一页”或者“
1.2…”),点击它可以显示其与查询结果,它的代码如下this.sqlDataAdapter_tickets.Fillthis.dschaxun;//重新填充数据集合this.DataGrid
1.CurrentPageIndex=e.NewPageIndex;//获取新的页面索引this.DataGrid
1.DataBind;//绑定数据
2.查询功能代码这里的查询方式有两种按车次查询和按站点查询按站点查询又分为三种方式按起始站,按终点站,按起始站和终点站组合判断起始站,终点站文本框里面是否为空,它们有四种组合方式,除去全空外,其余三种刚好对应三种查询方式,判断查询方式的代码如下ifthis.TextBox_qsz.Text.Trim!=this.TextBox_zdz.Text.Trim!=type=zh;//起始站和终点站都不为空,查询类型为“zh”elseifthis.TextBox_qsz.Text.Trim!=//按起始站查询type=sfz;elseifthis.TextBox_zdz.Text.Trim!=//按终点站查询type=zdz;iftype!=null{this.displayccxxtype;//调用查询车次函数}调用查询函数时要传递查询方式参数type过去如this.displayccxxtype,displayccxx函数的内部执行结构是这样的用case语句进行判断type的值,如果type=”sfz”即按起始站进行查询,如果type=”zdz”即按终点站进行查询,这两种查询方式原理其实是一样,它以出发站(到达站)作为查询条件,去搜索tikcetsinf表,把查询结果填充到dateset(数据集)中去,如果dateset.tables
[0].rows.count1进行循环取每一行的车次字段值,然后以车次为查询条件对tickets表进行查询,把该车次的基本信息展示给用户组合查询(即有起始站又有终点站)方式假如我们要查询从成都到北京西的车次信息,首先把ticketsinf表中的车次,出发站,到达站三个字段全部查询出来放到数据集的一张表里面,假如这张表名为table用count纪录table表的行数执行循环(fori=0;icount;i++)如果table表里面的第一行的出发站等于成都,作标记flag1=1并纪录该行的车次,然后再判断该行的到达站是否等于北京西,如果该行的到达站也等于北京西站,作标记flag2=2如果flag1=1并且flag2=2,以该行的车次为条件对tickets表进行查询,把查询结果展示给用户;如果第一行没有满足条件,继续判断下一行纪录,假如某一行的出发站等于成都,但是它的到达站不等于北京西,而在下面的某行找到一行到达站等于北京西,这时候就要判断车次,因为ticketsinf表中纪录很多车次的信息,如果不判断车次是否相等,会出现查出错如果结果在table都查询完后仍没有满足flag1=1并且flag2=2它们的车次相等,则说明没有用户要的车次信息
5.9站内新闻模块用户打开站内新闻页面时,页面就已经有新闻显示出来,比如今日要闻栏里显示的今天的所有新闻,以往新闻里显示的是所有的新闻纪录新闻栏里显示的是今日新闻的第一条新闻,这些都是不用用户操作直接显示出来的,所以它们的代码都是在Page_load事件里面执行的今日要闻的实现原理是从系统获取今天的日期,以它为条件所有数据库里的xinwen表(新闻表),然后把查询结果的新闻标题绑定到DataGrid_jryw(今日要闻_数据网格),这里要注意的是,从新闻表里面查询出来的新闻标题可能很长,如果直接绑定到DataGrid_jryw中去可能界面比较乱,所以在绑定之前先要对查询结果进行处理,这里是利用循环语句把查询结果所有的行都执行substring010方法,这样标题就只显示前10个字符,substring是string()自带的方法以往新闻的代码原理和上面一样,不同的是它无条件的执行查询语句,即查询所有新闻内容
5.10意见反馈模块该功能在系统的主界面上,它的作用是把用户在使用系统中遇到的问题,或者意见建议及时地反馈给车站工作人员,为工作的改进以及车站服务的改进提供参考的意见和建议意见反馈模块被调用时是以窗口形式出现在主界面上的用户填写好意见标题和内容后,点击“提交”按钮,用户意见将被保存到留言表里面意见反馈界面如图图5-
35.11用户管理模块模块都是面向用户的,该模块只对管理员课件,即当用户名为admin时,用户管理模块可见,它的主要功能是方便管理员管理整个系统,当本系统第一次安装运行后,管理员要进入“更新车次”模块,建立基本车次信息表和车次详细信息表,只有这些数据添加后,本系统才可用用户管理模块包括以下子模块管理用户,查询剩余票,更新车次,新闻管理,信息反馈,销售情况查询
5.12管理用户模块管理用户模块的主要的功能便于系统管理员对系统注册用户进行查询,修改或者增加新的用户查询子功能分为按用户名模糊查询和查询所有用户;这里的修改用户信息功能和系统主页面里的修改用户信息功能不太一样,管理员在这里可以修改用户的所有信息,包括用户类型和编号等用户的查询结果是绑定到数据网格DataGrid(数据网格)上,在DataGrid里的每一行后面增加了一个“详细/编辑”按钮,点击它可以弹出一个新窗口,在新的窗口里面可以看到用户的详细信息,还可以对用户信息进行修改统计在线人数的实现原理如下在Global.aspx里设置一个变量counter用来存储当前在线用户数量,当有用户进入系统后会触发Session_Start事件,counter加一;当有用户离开系统后会触发Session_End事件,counter减一,这样就可以实现统计在线人数的功能具体代码如下protectedvoidSession_StartObjectsenderEventArgse//当有用户进入系统后counter加一{counter++;}protectedvoidSession_EndObjectsenderEventArgse//当用户离开系统后counter加减一{counter--;}
5.13查询剩余票模块如果管理员想知道哪趟车现在的车票剩余情况,可以在这里进行查询这个模块里面的查询方式分为两种按车次查询和查询所有车次按车次查询代码如下sql=select*fromticketswhere车次=+this.TextBox_cxcc.Text.Trim+;//构造查询语句this.sqlDataAdapter_tickets.SelectCommand.CommandText=sql;ifthis.sqlConnection
1.State.ToString==closedthis.sqlConnection
1.Open;//如果数据库连接关闭,打开数据库连接this.sqlDataAdapter_tickets.Fillthis.dataSet_checi;//执行查询语句,把查询结果绑定到数据集上this.DataGrid
1.DataBind;//绑定数据网格this.DataGrid
1.Visible=true;//让数据网格可见
5.14更新车次模块更新车次这个模块式比较重要的模块,系统管理员在列车售票系统安装完成以后,首先要用到的就是这个模块在更新车次里,首先在车次基本信息表里添加车次记录,然后根据车次基本信息表对应的在车次详细信息表里把对应的详细站点,停开时间,路程等都添加进去,这样用户才可以在客户端查询到车次信息车次基本信息的字段比较多大体结构如图图5-4在上图可以看到车次基本信息的字段构成,当用户第一次进入这个页面时,基本信息里面的这些文本框都是不可用的,如果用户想要增加新的车次信息,点击“增加基本信息”按钮,上面的文本框都变成可用状态,基本信息填完后点“增加”按钮,即可完成一次增加车次基本信息操作,如果用户想对已有的车次基本信息进行修改,首先输入车次,点击“确认车次”按钮,系统会把该车次的所有基本信息都显示在对应的文本框里面,用户可以对其进行修改,修改完后点击“更新“按钮,即可完成一次修改操作修改完后点“更新“即可如果你想在以后的详细路段信息里面追加一条路段信息点“增加“,这时编辑路段信息栏全部清空,您输完新的信息后点”确定“就可以增加一条新的路段信息
5.15新闻公告管理模块火车售票系统中一个很重要的功能就是新闻管理,因为整个铁路运营中总会出现一些车次临时增开,停开,车次调换等等不确定因素,这些信息必须要能及时的传达给火车站下属代售点,这样能方便买票的旅客本系统集成了新闻模块,这样便于用户查看新闻通知,新闻管理模块对于整个售票系统来说是相当重要的新闻模块分为两部分新闻管理,和新闻查阅新闻查阅位于系统的主界面上,新闻管理在用户管理里,只有高级管理员才拥有操作权限.新闻管理模块中管理员主要操作分为增加,搜索,查看,删除新闻增加新闻功能中用户只需输入新闻标题和和内容,新闻发布时间有系统自动附加搜索功能主要是按时间段进行搜索也可以对其进行修改为了减轻系统负担,管理员可以定期对过去的新闻进行删除
5.16留言管理模块B/S结构的客票销售系统得另一个优点就是用户和管理员沟通比较方便,如果用户在使用过程中有什么问题或者建议,可以通过留言板反馈给管理员,便于管理员及时解决问题,用户留言位于系统的主界面上,这里主要讲留言的后台管理管理员可以查看(按时间段查询)留言,删除留言(按时间段删除)用户留言包括标题,内容,留言者姓名,留言时间等信息管理员管理留言的基本步骤为按日期查看留言(一般是每天查看一次),在留言列表里面点详细按钮,可以查看具体留言信息包括作者,留言时间,内容等,对于过期的流言管理员可以直接选择日期进行删除
5.17销售统计模块管理员通过对某一段时间段内的客票销售情况统计,可以为火车票售票系统管理者的经营策略提供一定的修改意见及依据销售统计模块的设计结构是以时间范围为基本的统计条件;选定时间段后,用户可以进一步选择查询方式;上面两个条件选定后,用户可以进一步选择查询结果显示方式,“记录”方式的意思就是把每一条购票者订票记录都显示出来,“合计”方式的意思是显示某一时间段所有销售累计,三个统计条件确定后就可以执行统计操作这里可以选择不同的方式分别通过两个窗口分别显示按车次和按代售点的统计结果如果要统计售票情况的合计值,点“查询”后,系统会把查询的起始时间,终止时间,查询方式,如果按车次查询,只传递车次,如果是按代售点查询,则传递代售点的编号,这些参数传递到弹出窗口页面后,新的页面的page_load事件里首先从URL里面获取参数,得到参数后,在对订票记录表进行查询首先要进行查询方式和显示方式的判断,查询方式有按车次,按代售点,查询所有三种方式,显示方式有按记录和按合计两种方式通过URL传递参数的代码stringcanshu=cxfs=+cxfs+qssj=+qssj+zzsj=+zzsj+checi=+checi;//构造参数stringmsg;msg=scriptlanguage=javascript;msg+=window.opentongji.aspx+canshu+售票情况统计height=200width=700top=150left=100toolbar=nomenubar=noscrollbars=noresizable=nolocation=nostatus=no;//填写脚本内容msg+=/script;this.RegisterStartupScript售票情况统计msg;//执行脚本通过URL获取参数代码stringqssj1=Request.QueryString[qssj];//起始时间stringzzsj1=Request.QueryString[zzsj];//终止时间stringcxfs1=Request.QueryString[cxfs];//查询方式stringcheci=Request.QueryString[checi];//车次以上就是本系统所有模块实现的细节,以一些特定源代码来概述系统实现细节结论本文主要介绍了基于B/S结构的客票销售系统的分析设计以及编程实现整个系统的功能结构和现实中的车站售票系统大体一致,通过asp.net2000开发平台和sqlserver2000数据库,完成开始原来设想的大部分功能模块现将作者在本系统的开发过程中取得的成果归结如下◆根据对现实中客票系统的界面分析,作者设计完成数据库中数据表的所有字段,系统通过和数据库交互展示给客户的结果和现有的火车售票系统大体一致,并且能顺利地完成系统对数据库的常规操作◆完成整个系统的界面设计,asp.net开发B/S结构的系统界面设计不是很方便,本系统的界面用HTML表格来限定页面上所有控件的位置,再加上少量的图片来完成的◆独立编程实现了系统原先设计的大部分功能,根据对有些功能实现的理解,完成了对一些特有功能的编码致谢首先感谢导师孙舒杨老师在此次毕业设计之间不断地给予的关注和指导,感谢同学与朋友给予的指点与解答,整个毕业设计期间遇到的困难与不利,感谢家人的支持与鼓励参考文献
[1]严蔚敏.吴伟民.数据结构[M].北京:清华大学出版社,
2003.
[2]齐治昌等.软件工程[M].高等教育出版社,
2002.
1.
[3]余祥宣.崔国华.邹海明.计算机算法基础[M].武汉华中科技大学出版社,2006
[4]AbrahamSilberschatz.HenryF.korth.S.Sudarshan.数据库系统概念[M].北京高等教育出版社,2006
[5]BucelEckel著侯捷译.Java编程思想[M].机械工业出版社.
[6]宋乐永.IT系统成为春运幕后英雄[M],2003
[7]全国铁路交通信息查询系统[Z].http://train.hepost.com/
[8]全国客车运行时刻查询网[Z].http://train.chinamor.cn.net/。