版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEPAGE33 摘要 本文针对用户没有时间买票、买票难以及目前旅游公司靠人工的记录客户的火车票需求信息的情况而开发了这款火车票网上在线预订管理系统。本系统的研究可以解决这一问题,系统的实现不仅让旅客能更加方便更加快捷地预订火车票这一产品,也极大地减轻旅游公司在火车票预订这块的人力物力财力,提高公司的盈利。此次系统的开发按照软件工程的结构化设计思想,经过项目的可行性研究和需求分析、总体设计、详细设计,以及编码实现和调试等步骤进行设计开发。并运用数据流图和数据字典、E-R图和数据库逻辑结构、层次图、系统流程图、以及程序流程图,对该系统的数据需求、数据库、系统软件结构、系统流程、以及处理过程等进行了分析和设计。 本次设计采用java语言、jsp、struts和spring框架、MySQL数据库管理系统以及MyEclipse开发工具来开发一个基于网站的火车票预订管理系统,使得公司管理员能够有效地管理车次、旅客信息、退票信息。同时旅客可以通过查询到相关的火车票信息,选择适合自己的车票,也可以直接在网上订票、退票,省时省力。 火车票网上在线预订管理系统在功能上已基本实现管理员在后台进行车次信息、订单信息、注册会员信息等模块的相关操作以及管理员身份验证和用户在前台注册、身份验证,以及查询余票、订票、退票的相关操作。此系统操作简单、界面简洁,使用人员稍加培训就可以完全掌握和使用该系统。此系统的缺陷就是界面不够绚丽,比较单一,同时有些模块功能的设计考虑得不是很周全。关键词:信息管理;火车售票;数据库管理系统 Abstract Thetrainticketsonlinebookingmanagementsystem,whichispresentedinthispaper,isdevelopedtosolvethreefollowingproblems.Thefirstproblemistheuserdoesnothavetimetobuytickets.Thesecondproblemisthatitisdifficultfortheuserstobuytickets.Thethirdproblemisthattravelcompaniesrelyonthemanualrecordofcustomerdemandinformation.Thissystemcansolvethisproblem,theimplementationofthesystemnotonlywillenabletravelersbookingtrainticketsmoreconvenientandfaster,butalsogreatlyreducethecostoftravelcompanyonhuman,materialandfinancialresourcesforbookingtraintickets,soastoimprovetheprofitabilityofthecompany.Thedevelopmentofthissystem,whichisbasedonstructureddesignmethodofsoftwareengineering,canbedividedintofeasibilitystudy,requirementsanalysis,systemdesign,detaildesign.Inthedesignphase,datafollowchart,datadictionary,E-Rgraphic,databaselogicalstructure,andtypicalUMLmodelingfacilitysuchasclassdiagram,activitydiagram,usecasediagramandsequencediagramareuesdtoanalysisanddesignthedatademandofthesystem,thedatabase,thesoftwarestructure,systemprocessandtreatmentprocess. Thedesignusesthejavalanguage,jsp,strutsandthespringframework,MySQLdatabasemanagementsystem,aswellastheMyEclipsedevelopmenttoolstodevelopaweb-basedtrainticketbookingsystem,makingthecompanyadministratormanagethetrips,passengerinformation,refundinformationeffectively.Atthesametimevisitorscanquerytherelevantticketinformation,chooseticket,butalsodirectlybookonline,andrefund,soastosavetimeandeffort. Trainticketsonlinebookingmanagementsystemhasthebasicfunctions.Firstlyadministratorscanmanagetripsinformation,orderinformation,memberinformation.Secondlyadministratorshavetoauthenticatebythesystem.Thirdlyuserscanregisterintheforeground,authenticate,performquery,booking,andrefund-relatedoperations.Thissystemisuser-friendly.Afterminimaltraining,theuserscanfullygraspandusethesystem.Thedefectsofthissystemisthattheinterfaceisnotbrilliant,relativelysimple,thedesignconsiderationsofsomemodulefunctionalityisnotverycomprehensive.Keywords:Informationmanagement;Ticketselling;Databasemanagement目录TOC\o"1-4"\h\z\u1绪论 11.1引言 11.2问题描述 11.3任务 11.4本论文的主要结构 22系统的可行性研究与需求分析 32.1可行性研究 32.1.1经济可行性 32.1.2技术可行性 32.1.3操作可行性 32.2需求分析 32.2.1功能需求 42.2.2数据需求 52.2.3性能需求 62.2.4数据流图 62.2.5数据字典 72.2.6实体-联系图 92.2.7数据库逻辑结构 103系统的总体设计 123.1系统软件结构设计 123.1.1软件结构 123.2系统流程图 134系统的详细设计 174.1接口设计 174.1.1用户接口 174.1.2外部接口 174.1.3内部接口 174.1.4软件接口 174.1.5模块内部 184.2过程设计 184.2.1程序流程图 185系统的实现与调试 205.1应用系统的开发及测试 205.1.1后台管理系统运行结果截图: 215.1.2前台订票网站运行截图 316结论 396.1系统评价 396.2安全性 39参考文献 40致谢 411绪论1.1引言 随着互联网的飞速发展,网络在人们的生活中扮演着越来越重要的角色。传统的纸质火车票、飞机票也慢慢被电子票所取代,而人工记录火车票的预订销售也逐渐以网上预订系统来代替。在线火车票预订管理系统有着查找迅速、方便、可靠性强、存储量大等传统人工记录无法比拟的优势。 传统的人工去记录用户的火车票预订信息,不仅效率低下,也很不方便,更容易造成数据上的混乱,另外很难应付车票订购高峰时刻的大量数据处理问题,还会出现由此带来的大量记录存放和管理所带来的问题。客户预订火车票也很不方便。本系统的研究可以解决这一问题。系统的实现不仅让旅客能更加方便更加快捷地预订火车票这一产品,也极大地减轻公司在火车票预订这块的人力物力财力,提高公司的盈利。1.2问题描述 许多的旅行网站中提供标准化的旅游产品,方便了人们的出行,带来生活上的便利。但是在旅游公司中像火车票这类随意性很强的非标准化产品却一直由员工手工进行记录,不仅效率低下,也很不方便,更容易造成数据上的混乱。另外很难应付车票订购高峰时刻的大量数据处理问题,还会出现由此带来的大量记录存放和管理所带来的问题。同时手工记录会经常记录错误的需求信息,不仅客户带来极大的不便,而且还会给客户留下不好的印象。因此建立火车票预订管理系统是一个很好的解决办法。 作为计算机应用的一部分,使用计算机对火车票信息进行管理,具有手工管理所无法比拟的优点:查找迅速、方便、可靠性强、存储量大等。这些优点能够极大地提高公司在火车票预订信息管理方面的效率,同时节约了成本提高了收入。因此本文所研究的火车票预订管理系统分为后台管理系统和前台预订系统。后台管理系统主要是生成车次信息供旅客去订票参考,以及后台供管理员对车次信息、订单信息、管理员信息以及会员信息的管理操作,而前台主要供用户去注册、查询火车票、预订火车票、查询订单、退票的相关操作。同时前后台分开给管理员和普通的用户使用,不同的用户分配有不同的权限,不仅明确了使用人群,而且也较大的提高了火车票预订管理系统的安全性。操作简单、安全可靠、界面美观的火车票在线预订管理系统优势显而易见。1.3任务 本次设计采用java语言[1][2]、jsp、struts和spring框架、MySQL数据库管理系统以及MyEclipse开发工具[3]来开发一个基于网站的火车票预订管理系统,使得公司管理员能够有效地管理车次、旅客信息、退票信息。同时旅客可以通过查询到相关的火车票信息,选择适合自己的车票,也可以直接在网上订票、退票,省时省力。1.4本论文的主要结构 本学位论文主要由五个部分组成,其内容具体安排如: 第一部分是绪论。主要介绍了本课题的来源、选题背景、问题描述和论文的主要结构。 第二部分介绍系统的可行性研究与需求分析。 第三部分介绍系统的总体设计。 第四部分介绍系统的详细设计。 第五部分是介绍系统的实现与调试。 第六部分是本课题研究的结论。2系统的可行性研究与需求分析2.1可行性研究 该阶段通过对系统目标的初步调研和分析,提出可行性方案并进行论证。我们在这里主要从技术可行性、经济可行性和操作可行性三方面进行分析。2.1.1经济可行性 开发该系统所需的相关资料可以通过已存在的网上订票系统进行调查采集,所需的其他应用软件、硬件系统也易于获得.因此,开发成本较低。而引进使用本系统后,与传统方式相比,具有高效率、低成本、高质量的特点,可以节省不少人力、物力及财力。所以,从经济的角度来看,该系统可行。2.1.2技术可行性 开发工具:Myeclipse 数据库环境:Mysql 系统环境:MicrosoftWindows2000或以上版本。 系统实现依靠相对熟悉的Java语言[4]、jsp技术[5]、struts2和spring框架、Mysql数据库系统[6],其基本操作实质还是对数据库进行添加、删除、查找等操作,暂不存在技术问题。2.1.3操作可行性 系统采用菜单式,实现用户与数据库的交互、界面简洁友好、操作方便。用户只需对订票流程和业务调查了解即可,不需掌握数据库等相关知识。2.2需求分析 需求分析是软件设计的一个重要的环节。本阶段对订票系统的应用情况作全面调查,以确定系统目标,并对系统所需要的基础数据以及数据处理要求进行分析,从而确定用户的需求。用户对系统的需求我们从以下几方面进行分析。2.2.1功能需求 系统的输入显示信息都在jsp页面中[7][8][9][10],网上订票系统中应该具备如下功能: 后台模块: 登录:管理员通过输入自己正确的用户名、密码以及验证码登入到后台管理系统,若登录失败,将会给出错误提示并在3秒钟内跳转到登陆界面。 2.管理员信息管理 管理员成功登录到后台管理页面之后可以通关管理员信息管理模块修改自己的用户名和密码信息,并将修改后的信息保存到数据库中。 3.车次信息管理 ①添加车次信息:管理员成功登录到后台管理页面之后可以批量的添加车次信息车次信息包括:车次编号、始发站、终点站、出发时间、到达时间、到达时间、硬座剩余票、硬座价格、卧铺剩余票、卧铺价格。这些信息是必须填写的。 ②车次信息查询:管理员可以通过动态条件查询相应的车次信息,查询结果以分页形式展现给用户。 ③车次信息修改:管理员可以通过动态条件查询相应的车次信息,在查询结果中选中要进行修改的车次信息进行修改。 ④车次信息删除:管理员可以通过动态条件查询相应的车次信息,在查询结果中选中要进行修改的车次信息进行删除。 4.订单管理 ①订单信息查询:管理员可以通过动态条件查询相应的车次信息,查询结果以分页形式展现给用户。 ②订单信息修改:管理员可以通过动态条件查询相应的订单信息,在查询结果中选中要进行修改的订单信息进行修改。 5.会员管理 ①会员信息查询:管理员可以通过动态条件查询相应的会员信息,查询结果以分页形式展现给用户。 ②会员信息修改:管理员可以通过动态条件查询相应的会员信息,在查询结果中选中要进行修改的会员信息进行修改。 前台模块: 1.会员注册 会员在进入火车票预订网站之后可通过会员注册模块进行注册。 2.会员登录 会员通过自己注册的用户名和密码进行登录火车票预订网站,若会员没有注册或者登录失败将只能查询火车票的相关信息,但是不能进行预订的活动。 3.车票信息查询分为对车次信息的查询和客户对已订车票信息的查询,要求: ①对车次的查询,可以按照车次编号、始发站、终点站、出发时间进行查询,结果以分页形式展现给用户。 ②车次信息包括:车次编号、始发站、终点站、发车时间、到达时间、剩余票数,票价。 ③车次信息只允许用户查询,不能修改。 ④订单信息查询:可以按照字的身份证号、订票的起始时间等动态条件进行查询结果以分页形式展现给用户。 4.订票 通过查询系统,客户根据自己的需求找到满意的车次,再输入个人信息后直接通过网上订票确定已预订选中的车票,要求:订票记录应包括:姓名、手机号、身份证号、车次编号、出发时间、票类型、总价、座位类型、订购日期。 5.退票 可退票,通过查询系统,客户可以根据自己的身份证,或者订票起始时间找到自己的订单信息,通过点击退票退去已购车票。2.2.2数据需求 信息需求,即在系统中需要处理哪些数据。本系统的信息需求如表2.1所示。 表2.1信息输入输出信息输入信息处理信息输出用户输入车次编号,或者始发站、终点站、出发时间检索系统数据库符合用户需求的车次及相关信息用户输入个人信息及所需订购的车票信息更新系统中的订票信息,将新信息存入系统数据库操作反馈(如订票成功)2.2.3性能需求 为了保证系统能够长期、安全、稳定、可靠、高效的运行,本系统应该满足以下的性能需求。 1.准确性和及时性 系统处理的准确性和及时性是系统的必要性能。系统应能及时而且准确的根据用户权限及所输入的信息做出响应。由于本系统的查询功能对于整个系统的功能和性能完成举足轻重。作为系统的很多数据来源,而车票的数量和时间又影响用户的决策活动,其准确性和及时性很大程度上决定了系统的成败。在系统开发过程中,必须采用一定的方法保证系统的准确性和及时性。 2.易用性 本系统是直接面对用户的,而用户往往对计算机并不是非常熟悉。这就要求系统能够提供良好的用户接口,易用的人机交互界面。要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面,从而保证系统的易用性。 3.安全性 网上订票系统中涉及到的数据是客运公司相当重要的信息,系统要保证用户的权限,对于车次等信息用户只享有查询服务,不得更改。系统还要提供方便的手段供系统维护人员进行数据备份、日常安全管理、以及系统意外崩溃时数据的恢复等工作。同时系统还要保证对数据库进行及时更新,保证数据一致性。2.2.4数据流图 1)火车票咋先预订管理系统后台数据流图: 图2.1后台数据流图 2)火车票在线预订管理系统前台数据流图: 图2.2前台数据流图2.2.5数据字典 表2.2管理员信息数据字典名字:管理员信息名字:管理员信息别名:描述:存放管理员信息的文件,以供管理员登陆定义:管理员信息=姓名+性别+电话+密码位置:输出到CRT终端或类似的显示部件 表2.3会员信息数据字典名字:会员信息名字:会员信息别名:描述:存放会员信息的文件,供会员注册和登陆定义:会员信息=姓名+性别+电话+密码+身份证号+注册时间位置:输出到CRT终端或类似的显示部件 表2.4车次信息数据字典名字:车次信息名字:车次信息\描述:存放车次信息的文件,以供用户查询定义:车次信息=车号+出发地+目的地+发车时间+到达时间+坐位类型+余票数目+票价位置:输出到CRT终端或类似的显示部件 表2.5订票信息数据字典名字:订票信息名字:订票信息别名:订单信息描述:存放订单信息的文件,以供用户查询,并作相应操作定义:订票记录=用户名+身份证号+用户电话+车号+发车日期+订购日期+车票类型+座位类型+总价位置:输出到CRT终端或类似的显示部件 表2.6车票信息数据字典名字:车票信息名字:车票信息别名:描述:存放车票信息的文件,以供用户查询,并作相应操作定义:车票信息=车号+座位号+用户名+身份证号+座位类型+车票类型+价格+订票日期位置:输出到CRT终端或类似的显示部件2.2.6实体-联系图 用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入。针对火车站网上订票系统,通过对网上订票工作的过程、内容以及数据流程分析,设计如下所示的数据项和数据结构: 1.车次信息:车号、出发地、目的地、发车时间、到达时间、座位类型剩余票、票价。 2.订票记录:订单号、用户名、身份证号、电话、车号、出发时间、车票类型、订购日期、座位类型、总价。 3.车票信息:座位号、车号、用户名、身份证号、座位类型、车票类型、价格、出发时间。 4.管理员信息:编号、姓名、性别、电话、密码。 5.会员信息:身份证号、姓名、性别、电话、密码、注册时间。 E-R图如图2.2所示: 图2.3实体-联系图(ER图)2.2.7数据库逻辑结构 火车站网上订票系统数据库中各个表格的设计结果如表2.7至表2.11所示。每个表格表示在数据库中的一个表[11],其中在会员信息表以及管理员信息表中为了信息不被泄露分别对密码字段进行了加密处理。在处理过程中为了处理用户订票的并发问题是用了行级锁来解决这一问题。 表2.7车次信息表tb_train字段名数据类型是否可空说明trainIdvarcharNOTNULL车号(主键)trainStartPlacevarcharNOTNULL出发地trainEndPlacevarcharNOTNULL目的地trainStartTimedatetimeNOTNULL发车时间(主键)trainEndTimedatetimeNOTNULL到达时间hartSeatLeftintNOTNULL硬座余票hardSeatPriceintNOTNULL硬座价格softSeatLeftintNOTNULL卧铺余票softSeatPriceintNOTNULL卧铺价格表2.8订单表tb_order字段名数据类型是否可空说明orderIdintNOTNULL订单号(主键)userNamevarcharNOTNULL会员名userPhonevarcharNOTNULL会员电话)userIdvarcharNOTNULL身份证号trainIdvarcharNOTNULL车号trainStartTimedatetimeNOTNULL出发时间ticketTypevarcharNOTNULL票类型bookTimedatetimeNOTNULL订购日期totalPriceIntNOTNULL订购票数seatTypevarcharNOTNULL座位类型 表2.9火车票信息表tb_ticket字段名数据类型是否可空说明seatIdintNOTNULL订单号(主键)trainIdvarcharNOTNULL车号(主键)userNamevarcharNOTNULL会员姓名userIdvarcharNOTNULL身份证号seatTypevarcharNOTNULL座位类型ticketTypevarcharNOTNULL车票类型ticketPriceintNOTNULL票价 表2.10管理员表tb_admin字段名数据类型是否可空说明adminIdIntNOTNULL管理员编号(主键)adminNamevarcharNOTNULL姓名adminSexvarchar性别adminPhonevarchar电话adminPassWordvarcharNOTNULL密码 表2.11会员表tb_user字段名数据类型是否可空说明userIdvarcharNOTNULL身份证号(主键)userNamevarcharNOTNULL姓名userSexvarcharNOTNULL性别userPhonevarcharNOTNULL电话userPassWordvarcharNOTNULL密码registerTimetimestampNOTNULL注册时间3系统的总体设计3.1系统软件结构设计3.1.1软件结构 1)后台分为管理员信息管理、车次信息管理、订单信息管理、会员信息管理四个模块。其层次图[13]如图3.1所示: 图3.1火车票预订后台管理系统的层次图 2)前台可划分为查询、订票、退票三个部分。其中信息查询又可分为车次查询和订单查询两个部分。其层次图如图3.2所示: 图3.2火车站预订前台系统的层次图3.2系统流程图 1)后台顶层数据流程图[14]如下图3.3所示: 图3.3后台顶层数据流程图 车次,订单,会员的查询系统流程图大致一致,所以归纳如下: 图3.4后台数据查询流程图 车次,订单,会员的更新系统流程图大致一致,所以归纳如下: 图3.4后台数据更新流程图 2)前台顶层流程图如下图3.5所示。图3.5至图3.9为各模块详细系统流程图。 图3.5顶层系统流程 图3.6查询车次信息流程图 图3.6车次,订单信息查询系统流程图大致一致,用户通过输入查询条件进行查询车次信息和自己的订单信息所以归纳如下: 图3.7车次,订单信息查询系统流程图 用户成功登陆之后根据动态查询条件查找到自己需求的车票后通过输入正确的信息进行订票,系统会将订票成功与否的信息反馈给用户。 图3.8用户订票流程图 用户成功登陆之后根据动态查询条件查询条件查询到自己的订单之后可以进行退票操作,系统会将用户退票成功或失败的信息反馈给用户。 图3.9退票系统流程图4系统的详细设计4.1接口设计4.1.1用户接口 用户通过界面接口实现参数的输入,进入相应的界面后输入提示的信息即可产生相应的任务。4.1.2外部接口 接口通过一个数据转换器,将网络二进制数据流转换为一个合适的数据结构单位并添加到缓冲区中。4.1.3内部接口 表4.1内部接口说明表顶层模块二级模块接口数据模块底层数据操作模块取出记录集,执行SQL语句用户操作模块对应数据库相关表操作界面模块界面模块生成任务缓冲区模块生成批处理4.1.4软件接口 本系统程序所使用的数据库来源于主机数据库,所以系统数据与主机数据库数据向一致。4.1.5模块内部 模块以接受参数方式独立登陆主机数据库并且独立运行,返回数据显示在界面上。4.2过程设计4.2.1程序流程图 1)管理员只有成功通过身份验证才能进入后台管理系统来管理各项信息,系统会将操作的结果返回给管理员,图4.1为火车票预订后台管理系统程序流程图: 图4.1火车票预订后台管理系统程序流程图 2) 没有注册的用户只能查询火车余票,注册后的会员登陆之后可以预定满足自己要求的火车票,同时还能根据条件查询自己的订单和退票操作。图4.1为火车票预订前台网站程序流程图: 图4.2火车票预订前台网站程序流程图5系统的实现与调试5.1应用系统的开发及测试 为了保证测试的质量,将测试过程分成几个阶段,即代码审查、单元测试、集成测试、确认测试和系统测试。 (1)单元测试 单元测试[15]集中在检查软件设计的最小单位—模块上,通过测试发现实现该模块的实际功能与定义该模块的功能说明不符合的情况,以及编码的错误。 (2)集成测试 集成测试是将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的问题。例如一个模块对另一个模块可能由于疏忽的问题而造成有害影响;把子功能组合起来可能不产生预期的主功能;个别看起来是可以接受的误差可能积累到不能接受的程度;全程数据结构可能有错误等。 (3)确认测试 确认测试的目的是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是确认测试的任务,即软件的功能和性能是否如同用户所合理期待的那样。 (4)系统测试 软件开发完成以后,最终还要与系统中其他部分配套运行,进行系统测试。包括恢复测试[16]、安全测试、强度测试和性能测试等。单独对系统的测试主要从以下几方面入手: ①功能测试:测试是否满足开发要求,是否提供设计所描述的功能,是否用户的需求都得到满足。功能测试是系统测试最常用和必须的测试,通常还会以正式的软件说明书为测试标准。 ②强度测试及性能测试[3]:测试系统能力最高实际限度,即软件在一些超负荷情况下功能实现的情况。 ③安全测试:验证安装在系统内的保护机构确实能够对系统进行保护,使之不受各种非常的干扰。针对本系统主要是对权限系统的测试和对无效数据、错数据、和非法数据干扰的能力的测试。经过上述的测试过程对软件进行测试后,软件基本满足开发的要求,测试宣告结束。5.1.1后台管理系统运行结果截图 1)后台管理系统登陆界面,管理员必须输入一次输入正确的用户名,密码和验证码,验证通过之后才能进入后台管理系统,否则给出出错提示跳转到登陆界面由前台的jsp页面信息传递到struts[17]中的Action中进行判断处理,登录页面如图5.1所示 图5.1后台登陆页面 管理员登录的主要代码如下: /** *管理员登陆 * *@returnsuccess,error */ publicStringadminLogin(){ if(adminInfoDao.adminLogin(userName,passWord)){ HttpServletRequestrequest=ServletActionContext.getRequest(); request.getSession().setAttribute("userName",userName); request.getSession().setAttribute("passWord",passWord); if(request.getSession().getAttribute("rand").equals(verifycode))//验证验证码正确与否 returnSUCCESS; else{ message="登录失败,请检查验证码!"; returnERROR; } }else{ message="登录失败,请检查用户名和密码!"; returnERROR; } }publicbooleanadminLogin(StringadminName,StringadminPassWord){ jdbcTemplate=newJdbcTemplate(dataSource); Stringsql="selectadminPassWordfromtb_adminwhereadminName='" +adminName+"'"; List<AdminInfo>list=jdbcTemplate.query(sql,newAdminMapper()); if(list!=null){ for(AdminInfoadminInfo:list){ if(adminInfo.getAdminPassWord().equals(adminPassWord)) returntrue; } } returnfalse; } 2)后台管理系统登录失败界面,如图5.2所示: 图5.2后台登陆失败页面 3)系统后台主要有管理车次信息、订单信息、注册会员信息,以及管理员修改自己的个人信息等功能。管理员只有经过身份验证成功之后才能进入后台管理页面,否则系统会提示你重新登录。图5.3为后台管理系统的主界面。 图5.3系统主界面 4)点击增加车次信息按钮进行添加车次信息,可以批量添加车次信息,在页面中对输入的信息进行了验证[1],不能提交为空的数据,可以添加多个车次信息,同时也可以减少车次信息提交的数量如图5.4所示: 图5.4添加车次信息页面 添加车次信息的主要代码如下: /** *添加车次信息 */ publicbooleanAddTrain(List<TrainInfo>trainInfo){ jdbcTemplate=newJdbcTemplate(dataSource); for(TrainInfotrainInfo2:trainInfo){ Stringsql="insertintotb_train(trainId,trainStartPlace,trainEndPlace,trainStartTime," +"trainEndTime,hardSeatLeft,hardSeatPrice,softSeatLeft,softSeatPrice)values(?,?,?,?,?,?,?,?,?)"; Objectargs[]={trainInfo2.getTrainId(), trainInfo2.getTrainStartPlace(), trainInfo2.getTrainEndPlace(), trainInfo2.getTrainStartTime(), trainInfo2.getTrainEndTime(),trainInfo2.getHardSeatLeft(), trainInfo2.getHardSeatPrice(), trainInfo2.getSoftSeatLeft(),trainInfo2.getSoftSeatPrice()}; try{ jdbcTemplate.update(sql,args); }catch(DataAccessExceptione){ e.printStackTrace(); returnfalse; } } returntrue; } 5)查询车次信息,可以进行多条件进行动态条件查询,以分页形式展示给用户,结果如图5.5所示: 图5.5查询车次信息页面 图5.5查询车次信息页面 查询车次信息的主要代码如下: /** *动态查找车次信息 */ @SuppressWarnings("unchecked") publicList<TrainInfo>findTrain(StringtrainId,DatetrainStartTime, StringtrainStartPlace,intbeginIndex,intpageSize){ SimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-dd"); Stringdate; if(trainStartTime!=null){ date=format.format(trainStartTime); }else date=""; System.out.println(date); booleanflags1=false,flags2=false; jdbcTemplate=newJdbcTemplate(dataSource); Stringsql="select*fromtb_train"; if(trainId!=null&&!"".equals(trainId.trim())){ flags1=true; sql=sql+"wheretrainId='"+trainId+"'"; } if(date!=null&&!"".equals(date.trim())){ flags2=true; if(flags1) sql=sql+"and'"+date +"'=DATE_FORMAT(trainStartTime,'%Y-%m-%d')"; else sql=sql+"where'"+date +"'=DATE_FORMAT(trainStartTime,'%Y-%m-%d')"; } if(trainStartPlace!=null&&!"".equals(trainStartPlace.trim())){ if(flags1||flags2){ sql=sql+"andtrainStartPlacelike'%"+trainStartPlace+"%'"; }else{ sql=sql+"wheretrainStartPlacelike'%"+trainStartPlace+"%'"; } } sql+="limit"+beginIndex+","+pageSize; List<TrainInfo>list=jdbcTemplate.query(sql,newTrainMapper()); returnlist; } 查询结果如图5.6所示: 图5.6查询车次信息结果 点击修改按钮进行修改车次信息,界面如图5.7所示: 图5.7修改车次信息页面 7)点击订单管理按钮进行查询会员已经预定的车票信息,界面如图5.8所示: 图5.8查询订单信息页面 查询订单的主要代码如下: /** *动态查找订单信息 */ @SuppressWarnings("unchecked") publicList<OrderInfo>findOrder(StringtrainId,StringticketType, DatebookTime,StringseatType,StringuserId,intbeginIndex, intpageSize){ SimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-dd"); StringbookDate; Stringsql="select*fromtb_orderwhere1=1"; jdbcTemplate=newJdbcTemplate(dataSource); if(bookTime!=null){ bookDate=format.format(bookTime); }else{ bookDate=""; } if(trainId!=null&&!"".equals(trainId.trim())){ sql=sql+"andtrainIdlike'%"+trainId+"%'"; } if(seatType!=null&&!"".equals(seatType.trim())){ sql=sql+"andseatType='"+seatType+"'"; } if(bookDate!=null&&!"".equals(bookDate)){ sql=sql+"and'"+bookDate +"'=DATE_FORMAT(bookTime,'%Y-%m-%d')"; } if(ticketType!=null&&!"".equals(ticketType)){ sql=sql+"andticketType='"+ticketType+"'"; } if(userId!=null&&!"".equals(userId)){ sql=sql+"anduserId='"+userId+"'"; } sql+="limit"+beginIndex+","+pageSize; System.out.println(sql); List<OrderInfo>list=jdbcTemplate.query(sql,newOrderMapper()); System.out.println(list); returnlist; } 查询结果界面如图5.9所示: 图5.9订单查询结果 点击修改按钮来修改订单信息,界面如图5.10所示: 图5.10修改订单信息页面 8)点击会员管理按钮进行会员信息的查询,界面如图5.11所示: 图5.11查询会员信息页面 查询注册会员信息主要代码如下: /** *根据动态条件查询会员信息 * *@paramvipInfo *@returnList<VipInfo>findVip */ @SuppressWarnings("unchecked") publicList<VipInfo>findVip(VipInfovipInfo){ jdbcTemplate=newJdbcTemplate(dataSource); SimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-dd"); StringregisterDate; if(vipInfo.getRegisterTime()!=null){ registerDate=format.format(vipInfo.getRegisterTime()); }else{ registerDate=""; } Stringsql="select*fromtb_vipwhere1=1"; if(vipInfo.getUserName()!=null &&!"".equals(vipInfo.getUserName().trim())) sql=sql+"anduserNamelike'%"+vipInfo.getUserName()+"%'"; if(vipInfo.getUserSex()!=null &&!"".equals(vipInfo.getUserSex().trim())) sql=sql+"anduserSex='"+vipInfo.getUserSex()+"'"; if(vipInfo.getRegisterTime()!=null &&!"".equals(vipInfo.getRegisterTime().toString().trim())) sql=sql+"and'"+registerDate +"'=DATE_FORMAT(registerTime,'%Y-%m-%d')"; if(vipInfo.getUserId()!=null &&!"".equals(vipInfo.getUserId().trim())) sql=sql+"anduserId='"+vipInfo.getUserId()+"'"; System.out.println(sql); list=jdbcTemplate.queryForList(sql); returnlist; } 点击查询查看结果,界面如图5.12所示: 图5.12会员信息显示页面 点击修改按钮来修改会员的信息,界面如图5.13所示: 图5.13修改会员信息页面5.1.2前台订票网站运行截图 1)本系统设计要求用户通过登录框选择访问权限,登录系统。其中,用户须输入用户名和密码,以进入系统。未使用过本系统的用户选择注册会员,系统自动跳转至主界面。系统用户权限登录访问时,车次信息查询、订票信息查询、订票、退票等功能均可用。系统用户输入正确的用户名和密码,访问系统,得到其相应的权限。没有注册的用户可以查询但不可以预订和查询订单操作,订票如图5.14。 图5.14登陆界面 2)当用户的用户名或者密码错误时将跳转到错误提示页面,并且三秒钟之后会跳转到主页面中,登录失败界面如图5.15所示: 图5.15登录失败界面 3)会员必须填写姓名,身份证号,性别,密码以及手机号码进行注册,如果不填写相关内容或者填写的格式不正确提交的话将会有提示框来提示用户重新注册。注册页面如图5.16所示: 图5.16注册页面 会员注册主要代码如下: 4)前台预订网站主界面,用户可以进行查询火车余票信息,可以登录之后进行订票,查询订单,退票等操作,也可以注册会员。用户如果没有注册会员,那么该用户就只能进行查询相应的火车票余票信息而不能进行预订车票、查询订单、退票操作。注册成功后的会员不仅可以查询火车余票,而且可以预订满足自己要求的火车票,还能查询自己的订单以及选择退票操作。在用户注册的过程中都进行了前后台验证处理。如果用户输入的个人信息有误,则系统会提示用户的输入信息有误,然后跳转到首页中。用户注册成功之后会跳转到首页中,其用户名会显示在页面中,图5.17为前台用户注册、登录、查询余票、预订车票,以及退票操作的主界面。 图5.17预订网站主界面 5)对车次信息的查询,系统提供了车次信息,进行精确的查询,系统经过检索,返回符合用户要求的车次,再由用户自行选择满意的车次。 图5.18预订网站查询车次页面 会员查询车票的主要代码如下:/ ** *根据动态条件查询车次里的车票信息 * *@paramfindTicketDate *,findTicketStart,findTicketEnd,findTicketId *@returnlist */ @SuppressWarnings("unchecked") publicList<TrainInfo>findTicket(DatefindTicketDate, StringfindTicketStart,StringfindTicketEnd,StringfindTicketId, intbeginIndex,intpageSize){ jdbcTemplate=newJdbcTemplate(dataSource); SimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-dd"); Stringdate; if(findTicketDate!=null){ date=format.format(findTicketDate); }else date=""; Stringsql="select*fromtb_trainwhere1=1"; if(findTicketStart!=null&&!"".equals(findTicketStart.trim())){ sql=sql+"andtrainStartPlacelike'%"+findTicketStart+"%'"; } if(findTicketDate!=null&&!"".equals(findTicketDate)){ sql=sql+"and'"+date +"'=DATE_FORMAT(trainStartTime,'%Y-%m-%d')"; } if(findTicketEnd!=null&&!"".equals(findTicketEnd)) sql=sql+"andtrainEndPlacelike'%"+findTicketEnd+"%'"; if(findTicketId!=null&&!"".equals(findTicketId)) sql=sql+"andtrainIdlike'%"+findTicketId+"%'"; sql+="limit"+beginIndex+","+pageSize; System.out.println(sql); List<TrainIn
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 肠道病毒所致各系统感染病因介绍
- 功能介绍的课件
- 《NFC概述及认证》课件
- 耻骨炎病因介绍
- 智能制造生产线技术及应用 教案 5-2 AGV小车搬运系统
- 特发性骨质疏松病因介绍
- 《专利概述》课件
- 《债的发生原因》课件
- 二零二四年度汽车销售公司承包合同3篇
- 商业楼外墙施工方案(挤苯板、真石漆)
- 【企业盈利能力探析的国内外文献综述2400字】
- 危急值的考试题及答案
- 轻医美技术合作项目协议书范本
- 课件:《中华民族共同体概论》第十五讲:新时代与中华民族共同体建设
- 走进鱼类世界智慧树知到期末考试答案章节答案2024年中国海洋大学
- (正式版)SHT 3227-2024 石油化工装置固定水喷雾和水(泡沫)喷淋灭火系统技术标准
- 大学生国家安全教育智慧树知到期末考试答案2024年
- 2024年中煤鄂尔多斯能源化工有限公司招聘笔试参考题库含答案解析
- 给药错误护理安全警示教育
- 陕09J01 建筑用料及做法图集
- 2024继续教育《医学科研诚信与医学了研究伦理》答案
评论
0/150
提交评论