火车票预订软件工程课程设计报告书_第1页
火车票预订软件工程课程设计报告书_第2页
火车票预订软件工程课程设计报告书_第3页
免费预览已结束,剩余18页可下载查看

下载本文档

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

文档简介

1、茨藏班工犬爭软件工程实验说明书院 系:计算机科学与工程学院 专业班级:计算机科学与技术学 号:学生:指导教师:年 月曰摘要出行一直是人们日常生活中不可或缺的一部分。在科技发达的今天,人们希望足不出户就可 以方便、快捷地查询到出行所需的信息,预订出行所需的车票,为自己的行程进行合理的安排。 开发一套火车车次查询系统既能方便广大乘客出行,节省时间,提供便利,省去不必要的麻烦, 也能为车站工作人员带来工作便利,提高工作效率,节省人力资源。本软件工程系统利用 JSP 实现了“火车票查询订购系统”功能:火车车次的查询功能和火车 车票的预订功能等。本文对系统的需求分析、总体设计及详细设计进行了详细地阐述,

2、主要实现 了以下功能:用户注册、用户登录、车次查询、车票预订、车票退订、车次信息管理、修改密码、 订票管理等功能。最终实现完成了该系统。关键词 :火车票预订;查询车次;预订车票;软件工程目录1 需求分析 . 12 课题总体设计 . 22.1 模块描述 . 22.2 结构设计 . 43 课题详细设计 . 73.1 程序代码 . 73.2 程序调试 . 144 总 结. 16参考文献 . 171需求分析需求分析是软件开发和设计过程中的一个重要环节。本阶段,主要是相关技术人员对火车票订 购系统的应用情况作全面调查,以确定系统目标,并对系统所需要的基础数据以及数据处理要求进 行分析,从而确定管理人员的

3、操作模式和用户的需求。线上预订火车票系统是一款功能强大、操作 简便、易维护的、具有良好人机交互界面的线上订票系统,它包括用户管理模块、系统参数设置模 块、票务信息模块(提供票价、列车的实时信息)、订票管理模块(提供订票和退订功能)、实时 信息提示模块(提供车况、路况、列车晚点等实时信息)、数据管理模块(提供数据备份、数据操 作功能)。实现火车票线上预定的自动化的计算机系统,为旅客提供准确、精细、迅速的火车票销 售信息和方便、简单的订票功能。线上预订火车票系统主要是对于订票信息的统一管理,满足了中小型线上订票对于用户的管 理,订票信息的收集和处理方面的要求。用现代化的方式取代以前的传统模式,更有

4、利于信息的流 通,资源的宏观管理。具有体积小,代码简洁,易维护、易修改的优点。1.功能需求网上火车订购系统是一个融合火车票的订购、列车路线的添加、管理员管理、列车信息及售票 信息查询为一身的综合系统。功能需求从用户与管理员两个方面的进行分析。从用户的角度看,用户需要订购自己所需要的火车票,所以本系统的使用者应该有注册账户 功能、登陆功能、站点、车次查询功能、订票、退票功能、查看自己的订票信息功能同时还有修改 自己的注册信息功能。从管理员的角度看,管理员可以通过登录权限进入管理员模式。管理员可以进行路线、车次 的添加、删除以及修改并且可以通过系统查看用户的订购票务信息。2性能需求为了保证系统能够

5、长期、安全、稳定、可靠、高效的运行,本系统应该满足以下的性能需求。准确性和及时性系统处理的准确性和及时性是系统的必要性能。系统应能及时而且准确的根据用户权限及所输 入的信息做出响应。由于本系统的查询功能对于整个系统的功能和性能完成举足轻重。作为系统的 很多数据来源,车票的数量和时间又影响用户的决策活动,其准确性和及时性很大程度上决定了系 统的成败。在系统开发过程中,必须采用一定的方法保证系统的准确性和及时性。易用性本系统是直接面对用户的,而用户往往对计算机并不是很熟悉。这就是要求系统能够提供良好 的用户接口,易用的人机交互界面。要实现这一点,就是要求系统应该尽量使用用户熟悉的术语和 中文信息的

6、界面,从而保证系统的易用性。安全性网上订票系统中涉及到相当重要的信息数据,系统要保证用户的权限,对于车次等信息用户只有享有查询服务,不得更改;系统还要提供方便的手段供系统维护人员进行数据备份、日常安全管 理、以及系统意外崩溃时数据的恢复等工作。同时系统还要保证对数据库进行及时更新,保证数据的一致性。3.可行性研究可行性分析的主要任务是了解用户的要求及现实环境,从技术、经济和管理等三方面研究。(1)技术可行性技术可行性是根据现有的技术条件,能否达到所提出的要求当前的软硬件技术能否满足对系统 提出的要求。现在地铁已经实行了自动验票,火车票也已经有人工售票机了,而且现在动画应用也多不胜数,所以将他们

7、三者合在一起,是可行的。(2)经济可行性经济可行性主要是对项目预估费用支出和取得的收益进行评价。火车票相对于其他运输工具是比较便宜的,所以现在采用火车为交通工具的人群越来越多。对于此产生的经济效益是不可估量的,还为社会做出了巨大贡献。所以系统的更新是势在必得的。(3)管理可行性管理可行性是指管理方面的条件和管理人员对开发应用项目的态度。2课题总体设计2.1模块描述本系统是面向铁道部门的管理人员和用户,主要方便管理人员对火车票管理操作以及用户对火 车票的订购等操作。系统主要分为管理员端和用户端两个模块,管理人员和用户可以在自己的权限 围进行不同的功能操作。其主要功能有:管理人员对火车和车票信息的

8、添加、查询、修改、删除及 修改密码等;用户对车票的查询、订购,查看个人信息、修改密码及退票等。系统总体功能结构图 如图2.1所示。图2.1系统总功能结构图1管理员模块功能本模块功能包括:添加、修改、删除和查询火车、线路和火车票信息以及修改个人密码等。(1) 添加火车、线路和火车票信息: 主要是管理人员对火车自身信息、线路上存在的火车信息 以及相应的火车票信息的添加。(2) 修改火车、线路和火车票信息: 主要是管理人员对由于某些原因导致出现不合法火车信息 和车票信息的更改、修订。(3) 删除火车、线路和火车票信息:主要是管理人员对一些不存在现实价值意义的火车和车票 信息的删除。(4) 查询火车、

9、线路和火车票信息:主要是管理人员对火车、线路和车票信息的查询。(5) 修改密码:管理人员修改自己的登录密码。2用户模块功能本模块功能包括:用户注册信息,修改个人密码,查询个人信息,查询火车和线路信息,订购 车票和退换车票以及查看通知等。(1) 注册信息:主要是用户在使用此系统之前向系统数据库中注册个人信息,便于系统以后的管理和保障系统的安全。(2) 修改个人密码:主要是为了保障用户信息安全,用户可以对自己密码进行替换和重新设置。(3) 查询个人信息:主要是用户对自己的信息查询。(4) 查询火车和线路信息:主要是用户根据自己所想要订购的车票,查询其相应的火车及其线路的相关信息。(5) 订购车票:

10、用户订购自己所需要的车票。(6) 退换撤销:主要是用户在特定的时间和权限围对自己购买的车票给予退还和更换,从而买到自己真正寻求的车票。(7) 查询通知:主要是用户查询铁道部门的最新通知,以便为购买车票作相应的准备。3数据需求输入信息信息处理信息输出输入车次搜索系统数据库符合用户需求的车次以及相关信息用户输入个人信息以及需订购的车票信息更新系统中的订票信息。 将新的信息存入系统数据库订票用户输入身份证号或交易的订单号检索系统数据库符合用户需求的订票信息用户输入自己的身份证检索系统数据库以得到订票记 录,删除用户请求的订票记录, 已更新系统数据库退票2.2结构设计概念结构设计针对火车站网上订票系统

11、,通过对网上订票工作的过程、容以及数据流程分析,设计如下所示的 数据项和数据结构:车次信息:车号、出发地、目的地、发车日期、开出时刻、剩余座位数票价、座位类型。订票记录:订单号、身份证号、车号、订购日期、订购票数、总价。用户信息:用户名、身份证号、性别、图2.4订单信息(E-R图)图2.6总体联系图(E-R图)3课题详细设计3.1程序代码package servlet;import bea n. user;public class usersvlt exte nds HttpServlet public usersvlt() super();public void destroy。super.

12、destroy(); / Just puts "destroy" string in log/ Put your code hereboolea n flag;public void doGet(HttpServletRequest req, HttpServletResp onse res) throws ServletExcepti on, I OExcepti on req.setCharacterE ncodi ng("UTF-8");String userid =req.getParameter("userid");int

13、success = 0;String action = req.getParameter("act ion ”);user u = nu II;String message=""/* if ("update".equalsIg no reCase(act ion) flag=true;u = doUpdate(req,res, userid); if(flag)se ndBea n( req,res,u,"/useri nfo.jsp");*/if ("delete".equalsIg no reCase

14、(act ion) trysuccess = doDelete(userid);catch(SQLException e)affected:" +if (success != 1) doError(req, res, "usersvlt:Delete un successful. Rowssuccess); else res.se ndRedirect("useri nfo.jsp");/* public user doNew(HttpServletRequest req,HttpServletResp onse res )throws ServletE

15、xcepti on ,IOExcepti onuser stu= new u();String userid=req.getParameter("useid");String n ame=req.getParameter(" name");String password= req.getParameter("password");String dep=req.getParameter("dep");String sex = req.getParameter("sex");String jigua

16、 n = req.getParameter("jigua n");if(isTrue(req,res,stu_id1, name,password )&& hasLogi n( req,res,stu_id1)stu.setId(stu_i d1);stu.setName (n ame);stu.setPassword(password);stu.setDep(dep);stu.setSex(sex);stu.setJigua n(jigua n);stu.addStude nt(); return stu;userid)public user doUpda

17、te(HttpServletRequestreq,HttpServletResponseres ,StringthrowsServletExcepti on ,IOExcepti onuser u = new user();String user name=new Strin g(req.getParameter("user name").getBytes("gbk");Stri ng email = req.getParameter("email");Stri ng id=req.getParameter("id"

18、;);Stri ng sex = req.getParameter("sex");String phon e=req.getParameter("pho ne");String address=req.getParameter("address");if(isTrue(req,res,user name,email,id,pho ne,address)u.setuserId(userid);u.setuserName(user name);u.setEmail(email);u.setAddress(address);u.setPh

19、on e(ph on e);u.setld(id);u.setSex(sex);u.updateUser(); return u;*/public int doDelete(Stri ng userid) throws SQLExcepti on int num=0;user u=new user();num=u.deleteUser(userid);return num;public void sen dBea n( HttpServletRequest req, HttpServletResp onse res,user uu, String target)throws ServletEx

20、cepti on, I OExcepti on req.setAttribute("user", uu);RequestDispatcher rd = getServletC on text().getRequestDispatcher(target); rd.forward(req, res);public void doError(HttpServletRequest req,HttpServletResp onse res,Stri ng str)throws ServletExcepti on, I OExceptio n flag=false;req.setAtt

21、ribute("problem", str);RequestDispatcherrdgetServletC on text().getRequestDispatcher("/errorpage.jsp");rd.forward(req, res);res,Stri ngpublicboolea n hasLogi n( HttpServletRequestreq, HttpServletResp onseuserid)throws ServletExcepti on, I OExcepti onboolea n f=true;String message

22、="对不起,该用户已经被注册过了!";user u= new user();f= u.hasLogi n( userid);if(f=false)doError(req,res,message);return f;public boolea n isTrue(HttpServletRequest req, HttpServletResp onse res.pho ne,Stri ngStringn ame,Stri ngemail,Stri ngid,Stri ngaddress)throws ServletExcepti on, I OExcepti on boolea

23、n f=true;String message =""if(n ame=nu II | n ame.equals("") f=false;message=" 不能为空,请重新填写!if(flag)doError(req,res,message);if(email=nu II | email.equals("") f=false;message="电子不能为空,请重新填写!if(flag) doError(req,res,message);if(id=null | id.equals("") f=

24、false;message="身份证号不能为空,请重新填写!if(flag) doError(req,res,message);if(phone=n ull | phon e.equals("") f=false;message="不能为空,请重新填写!"if(flag) doError(req,res,message);if(address=nu II | address.equals("") f=false;message="联系地址不能为空,请重新填写! if(flag) doError(req,res,me

25、ssage);return f;public void doPost(HttpServletRequest req, HttpServletResp onse res) throws ServletExcepti on, I OExcepti on doGet(req, res);package bea n;public class sqlBea n public Connection conn=n ull;public ResultSet rs=nu II;Stri ng/DataSource 数据源名称DSNprivateDatabaseC onn Str="jdbc:mysql

26、:/localhost:3306/orderi ng?use Uni code=true&characterE ncodi n g=utf-8"+",root,sa"/定义方法/*setXxx 用于设置属?;getXxx用于得到属??*/public void setDatabaseDriver(Stri ng Driver)this.DatabaseDriver=Driver;public String getDatabaseDriver()retur n (this.DatabaseDriver);public void setDatabaseC on

27、n Str(Stri ng Conn Str)this.DatabaseCo nn Str=Co nn Str;public String getDatabaseC onn Str()retur n (this.DatabaseC onn Str);public sqlBea n()/构?函?tryClass.forName(DatabaseDriver);catch(java .Ian g.ClassNotF oun dExcepti on e)(”加载驱动器有错误:"+e.getMessage();执行插入有错?:"+e.getMessage();输出到客户端publi

28、c int execute In sert(Stri ng sql)int num=O;tryconnDriverMa nager.getC onn ecti on ("jdbc:mysql:/localhost:3306/orderi ng?use Uni code=true&char acterE ncodi ng=utf-8","root","sa");Stateme nt stmt=c onn. createStateme nt();num=stmt.executeUpdate(sql);catch(SQLExcept

29、io n ex)(”执行插入有错?:"+ex.getMessage();执行插入有错?:"+ex.getMessage();输出到客户端CloseDataBase();return num;/ display datapublic ResultSet executeQuery(Stri ng sql)rs=n ull;tryconnDriverMa nager.getC onn ecti on ("jdbc:mysql:/localhost:3306/orderi ng?use Uni code=true&char acterE ncodi ng=utf-

30、8","root","sa");Stateme nt stmt=c onn. createStateme nt();rs=stmt.executeQuery(sql);catch(SQLExceptio n ex)(”执行查询有错?:"+ex.getMessage();执行查询有错?:"+ex.getMessage(); /输出到客户端return rs;/ delete datapublic int executeDelete(Stri ng sql)int num=0;tryconnDriverMa nager.getC onn ecti on ("jdbc:mysql:/localhos

温馨提示

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

评论

0/150

提交评论