




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEPAGE42 摘要 本文针对用户没有时间买票、买票难以及目前旅游公司靠人工的记录客户的火车票需求信息的情况而开发了这款火车票网上在线预订管理系统。本系统的研究可以解决这一问题,系统的实现不仅让旅客能更加方便更加快捷地预订火车票这一产品,也极大地减轻旅游公司在火车票预订这块的人力物力财力,提高公司的盈利。此次系统的开发按照软件工程的结构化设计思想,经过项目的可行性研究和需求分析、总体设计、详细设计,以及编码实现和调试等步骤进行设计开发。并运用数据流图和数据字典、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\u +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<TrainInfo>list=jdbcTemplate.query(sql,newTrainMapper()); returnlist; } 查询结果如图5.19所示: 图5.19车次信息查询结果 点击预订按钮可预订客户满意的车票,预订界面如图5.20所示,同时可以预订多张车票: 图5.20预订车票页面 会员预订车票主要代码如下: /** *进行车票预订 * *@paramlist *,trainId,trainStartTime *@returnboolean */ publicbooleanbookTicket(List<TicketInfo>list,StringtrainId, DatetrainStartTime){ SimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-ddHH:mm"); Stringdate=format.format(trainStartTime); jdbcTemplate=newJdbcTemplate(dataSource); StringcountSelledTicket="selectcount(*)fromtb_ticketwheretrainId='"//查询该次列车已经售出多少张票 +trainId +"'and'" +date +"'=DATE_FORMAT(trainStartTime,'%Y-%m-%d%H:%i')"; for(TicketInfoticketInfo:list){ countSelledTicket=countSelledTicket+"andseatType='" +ticketInfo.getSeatType()+"'"; intcountSeatId=jdbcTemplate.queryForInt(countSelledTicket); StringcountTicketLeft="select" +ticketInfo.getSeatType()//查询车次信息里面还有多少剩余车票 +"Leftfromtb_trainwheretrainId='"+trainId +"'and'"+date +"'=DATE_FORMAT(trainStartTime,'%Y-%m-%d%H:%i')"; intcountTicket=jdbcTemplate.queryForInt(countTicketLeft); inttotalPrice; if(ticketInfo.getSeatType().equals("hardSeat")){//查询相应座位类型的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 粉店出租转让合同范本
- 农场养殖转租合同范本
- 招收蛋糕学徒合同范本
- 2025前期物业管理服务合同附加协议范本
- 衡阳幼儿师范高等专科学校《奇异的病原生物》2023-2024学年第二学期期末试卷
- 北京劳动保障职业学院《肌肉骨骼康复》2023-2024学年第一学期期末试卷
- 2025届江苏省南通市如皋区初三下学期学习能力诊断物理试题含解析
- 2024-2025学年湖北省大冶市东片八校中考化学试题模拟题及解析(全国Ⅰ卷)含解析
- 廊坊卫生职业学院《化工原理课程设计》2023-2024学年第二学期期末试卷
- 2025年天津市红桥区名校初三第一次考试英语试题试卷含答案
- 数字孪生机场数据融合-全面剖析
- (二模)咸阳市2025年高考模拟检测(二)语文试卷(含答案)
- 第四单元 第2课时 三位数加三位数2(连续进位加法)(教学设计)-2024-2025学年三年级上册数学人教版
- 《中央八项规定精神学习教育》专项讲座
- 2025年交管12123学法减分考试题库及答案
- 定额〔2025〕1号文-关于发布2018版电力建设工程概预算定额2024年度价格水平调整的通知
- 斜屋面专项施工方案-挂瓦坡屋面(附图)
- 自保温砌块施工方案
- 合成气生产甲醇工艺流程图
- T分布临界值表
- φ178旋转导向钻井工具设计说明书
评论
0/150
提交评论