JSP 学生火车票订票系统.doc

上传人:文库蛋蛋多 文档编号:2387104 上传时间:2023-02-17 格式:DOC 页数:12 大小:58.50KB
返回 下载 相关 举报
JSP 学生火车票订票系统.doc_第1页
第1页 / 共12页
JSP 学生火车票订票系统.doc_第2页
第2页 / 共12页
JSP 学生火车票订票系统.doc_第3页
第3页 / 共12页
JSP 学生火车票订票系统.doc_第4页
第4页 / 共12页
JSP 学生火车票订票系统.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《JSP 学生火车票订票系统.doc》由会员分享,可在线阅读,更多相关《JSP 学生火车票订票系统.doc(12页珍藏版)》请在三一办公上搜索。

1、JSP学生火车票订票系统-课程设计JSP学生火车票订票系统概述:51. 需求分析51.1用户需求:51.2业务流程分析:61.3信息需求分析61.4功能需求分析:72. (数据库)概念(模型)设计82.1构思ERD的四条原则及根据这些原则相应得出的实体、联系及其属性:92.2、系统具体E-R图:93. (数据库)逻辑(模型)设计103.1 一般逻辑模型设计:103.2具体逻辑模型设计:114. 处理功能设计124.1模块设计:124.2块设计:135 数据库应用系统的实现145.1数据库及其表结构的建立:145.2实现:18报告内容概述:随着国民经济快速发展, 人们出行、交通越来越频繁, 对服

2、务的快捷、便利性要求也越来越高。从而对客运行业的建设与管理提出了更高的要求。为适应和推动客运行业的发展, 各种交通公司和部门开始广泛采用使用日趋成熟的计算机技术和数据库技术来实现票务信息的现代化管理,具有手工管理所无法比拟的优点,如:检索迅速,查找方便,可靠性高,存储量大,保密性好,寿命长,成本底等。这些优点能够极大地提高信息管理和业务管理的效率。本学生火车订票系统正是通过数据库存储信息实现高效率管理。该实验设计首先进行需求分析,然后在需求文档的指导下实现系统的功能,如操作员的信息管理功能及普通学生的火车信息查询、订票、退票等功能,最终实现的是学生购得一张自己满意的票券,同时力求通过数据库系统

3、及计算机在其中的运用达到提高工作效率,节约人力资源的效果。1. 需求分析1.1 用户需求:(一)、问题描述:学生火车票定票系统(1)背景:一年两次的火车票订票管理(2)主要实现以下功能: 1)学生基本信息的管理,尤其是所在地 2)学生购票的基本信息,尤其是价钱和车票目的地 3)购票以后的分发管理 4)退票的管理 5)信息的统计和查询 6)操作员管理(二)、目的及现状:1)、实验目的:数据库设计就是要使学生采用本课程中学习的数据库设计方法,运用其基本思路与主要图表工具完成一个自己所了解的业务的数据库应用系统信息需求分析与数据库的概念设计、逻辑设计、物理设计以及处理功能设计,用自己熟悉的数据库管理

4、系统、程序设计语言及其相关开发工具实现该系统,并运行、评价、改进之;在此基础上严格按本大纲所附报告提纲撰写课程设计报告。通过本设计进一步弄懂数据库系统及其相关的基本概念,理解数据库系统的系统结构、主要特点,掌握数据库设计的原理、方法及其基本过程,初步具备数据库应用设计的能力,初步形成运用数据库应用系统解决管理决策中的实际问题的基本素质。2)、现状和系统要求:在传统模式下利用人工进行火车订票业务,存在着较多的缺点,如:效率底,保密性差,时间一长将产生大量的文件和数据,更不便于查找,更新,维护等。诸如这些情况,给各相关部门工作人员带来了很大困难,严重影响了他们的工作效率。运用计算机技术和数据库技术

5、来实现票务信息的现代化管理,具有手工管理所无法比拟的优点,如:检索迅速,查找方便,可靠性高,存储量大,保密性好,寿命长,成本底等。这些优点能够极大地提高信息管理和业务管理的效率。在本系统中,系统用户共有两种, 并根据用户权限的不同而实现不同的功能,如操作员拥有添加、修改、删除某火车相关信息及修改自己的个人信息的功能。学生有对车票信息、哪一车次哪天还剩余多少张票和自己所订票券的查询功能,订票功能及退票功能。系统利用计算机和数据库的高效率大大减轻了学校票点工作人员的劳动强度, 提高了各部门的工作效率。1.2业务流程分析:(一)、描述系统的业务流程:本系统共有两种用户, 根据用户权限的不同而实现不同

6、的功能。操作员的权限最大,他进入系统必须先登录。操作员可以添加、修改、删除某车票的相关信息,可以修改自己的个人信息;查询、删除学生的订票情况,确认学生是否已付款取票等。学生可以按目的地的车次对车票信息进行查询,可以订票,订票时须录入自己的信息及所选择的车次,系统将检查该车次票数是否已订完或不足,若已订完或不足则提示错误信息并返回到订票界面,订票成功后将生成订票单。学生还可以对自己所订的票券即订票单进行查询,以及查询哪一车次哪天还剩余多少张票。用户付款和取票可在学校票点完成。 (二)、初步业务流程图:1.3信息需求分析在本火车票订票系统中,各资料的基本数据项列举如下:学生资料:学号,姓名,密码,

7、所在学校,电话,目的城市车次基本信息:车次号,出发站,开车时间,到达站,花费时间,到达时间,车票种类,余票数订票具体信息:订单号,车次号,目的城市,订票数,总票价,取票时间,是否付款操作员资料:员工号,票点号,密码,姓名,性别,电话1.4功能需求分析:功能层次图:本系统共有两种用户, 根据用户权限的不同而实现不同的功能,如操作员查询、添加、690JSP学生火车票订票系统修改、删除某火车相关信息及查询、修改自己的个人信息的功能。学生对车票信息、哪一车次哪天还剩余多少张票和订票功能以及对自己所订票券的查询功能、退票功能。2. (数据库)概念(模型)设计2.1构思ERD的四条原则及根据这些原则相应得

8、出的实体、联系及其属性:原则1 (确定实体):能独立存在的事物,例如人、物、事、地、团体、机构、活动、事项等等,在其有多个由基本项描述的特性需要关注时,就应把它作为实体。在本系统中,实体主要有学生、操作员、车票信息、车票详细信息表、订票单,订票详细信息表,订票点。原则2 (确定联系):两个或多个实体间的关联与结合,如主管,从属,组成,占有,作用,配合,协同等等,当需要予以关注时,应作为联系。实体间的联系可分为一对一、一对多、多对多等三类,在确定联系时还要确定其类型。 在本系统中,学生、车票信息、订票单和订票详细信息表之间存在“订购”的联系,一个车票信息可以被多个学生购买,而一个学生只可以购买多

9、个车次所属的一到两张车票,它们之间的联系是一对多的“购买”联系,同时一次登录无论订多少车次只生成一张订票单。订票点和操作员之间存在“隶属”的联系,它们之间的联系是一对多的“隶属”联系;车票信息和车票详细信息表之间存在“包含”与被包含的关系;订票单和订票详细信息表之间也存在“包含”与被包含的关系。原则3 (确定属性):实体的属性是实体的本质特征。实体应有标识属性(能把不同个体区分开来的属性组),并指定其中一个作为主标识。联系的属性是联系的结果或状态。从这条原则可得到实体和联系的属性如下:学生资料:学号,姓名,密码,所在学校,电话,目的城市车次基本信息:车次号,出发站,开车时间,到达站,花费时间,

10、到达时间,车票种类,余票数订票具体信息:订单号,车次号,目的城市,订票数,总票价,取票时间,是否付款操作员资料:员工号,票点号,密码,姓名,性别,电话原则4(一事一地):信息分析中得到的基本项要在且仅在实体联系图中的一个地方作为属性出现。根据以上的分析,可以画出本系统的原始ERD的基本结构。如 2.2、系统具体E-R图:3. (数据库)逻辑(模型)设计3.1 一般逻辑模型设计: (一)、由ERD导出一般关系模型的四条原则:原则1(实体转换为关系模式):ERD中每个独立的实体转换为一个关系模式,实体的属性组成关系的属性,实体的主标识转换成关系的主码。原则2(从实体及其主从联系转换为关系模式):E

11、RD中一个从实体及其主从联系转换为一个关系,从实体的属性及其主实体关系的属性组成的属性,其主实体关系的主码,在主从关系联系为一对多联系时还要加上可把同一主实体个体所对应的从实体个体区分开来的,从实体的一组属性,作为该关系的主码。对子类实体可作类似一对一联系的从实体的转换。原则3(一对多联系在关系模式中的表示):ERD中的一个一对多联系通过在其“多”实体关系上增加“1”实体关系的主码(作为外码)和联系本身的属性来表示。原则4(多对多联系转换为关系):ERD中的一个多对多联系转换为一个关系,其被联系实体关系的主码和该联系本身的属性一起组成的属性,被联系关系的主码组成该关系的复合主码。(二)、数据库

12、初步构思的关系框架:通过ERD转换为一般关系模型四条原则分析,得到须在数据库中进行存储的一般关系模型如下(带下划线的为主码,带#的为外键):学生(学号,姓名,密码,学校,电话,目的城市)车次本信息(车次号,出发站,开车时间,到达站,到达时间,车票种类,余票数)订票具体信息(车次号,订票数,总票价,取票时间,是否付款)操作员(员工号,密码,姓名,性别,电话,票点号)3.2具体逻辑模型设计: (1)、Student表:用来保存学生信息:项名类型长度小数位值域主键外键空键学号字符12是非空姓名字符20非空密码字符12非空学校字符40非空电话字符12非空目的城市字符30非空(2)、Train车次表项名

13、类型长度小数位值域主键外键空键车次号字符20是非空出发站字符30非空开车时间日期8非空到达站字符30非空到达时间日期8非空车票种类字符20非空余票数数据800非空(3)Admin表:用来保存操作员表:项名类型长度小数位值域主键外键空键员工号整数,自动编号80是非空用户名字符20非空密码字符12非空姓名字符20非空性别字符4非空电话字符12非空(4)Ticket表:用来保存取票单表:项名类型长度小数位值域主键外键空键ID号整数,自动编号80是非空取票号字符80是非空车次号字符是非空目的城市字符非空订票数数据800非空总票价Decimal非空取票时间日期8非空 4 处理功能设计4.1模块设计:(1

14、)、登录系统模块:在登录窗体界面中,你可以输入代码和密码,选择你的身份(操作员或系统管理员),确认后就可进入主界面窗体。如果你是学生,且还没注册,可以在此窗体界面上点击“注册”,在注册界面输入所要求的项,确定后重新返回登录界面,用你刚注册的账号登录进入主界面。在主界面中包含上述模块图的几部分,根据身份,即是用户或者管理员,对应权限不同,分为不同的主界面,即用户主界面和管理员主界面。 (2)、系统设置模块图:用户:在此模块用户可以查询、修改自身注册信息以及退出登录,退出系统后将返回登录界面。管理员模块:在此模块管理员除了拥有用户的各项设置外还可以注册新的管理员,但为了安全起见,此功能只有当登录人

15、是票点主任时才可执行。JSP学生火车票订票系统4.2.快设计4.2.1 1、车票信息管理模块:在此模块,管理员可以执行车票信息录入、查询、删除和修改功能,不过删除和修改功能须当该车次没有被预订的情况下才可执行。 2、订票管理模块:在此模块,管理员可以查询所有订单情况、已付款取票和未付款取票的订单情况,还可以按学号查询某学生的订票情况以及各种统计信息,并在学生来付款取票时执行“付款”操作。另外还可以在订单已付款或学生取消订单时删除订单。 4.2.2用户模块: 1、订票管理模块:在此模块,用户可以查询车票信息和自身订票情况。查询车票情况分为按车次、按目的地、按起始站目的站查询,当查询到自身所想要的

16、车票时即可订票,但注意预定票的目的地须与学生家乡所在城市相符,否则系统不允许订票;查询自身订票情况包括订单信息及金额统计,还须注意订票信息上要求的取票期限,订票人须在规定期限内去所在校区的票点付款取票,逾期票点工作人员将不予处理。5 数据库应用系统的实现5.1库及其表结构的建立:利用Oracle10g企业管理器建立数据库orcl,在建立表1、学生表studentcreate table Student(Sno varchar(12) primary key, Sname varchar(20) not null,Ssex varchar(4) not null, Spw varchar(12)

17、 not null, /密码Sadm varchar(40) not null, /学院Sdept varchar(30) not null, Sclass numeric(4) not null,Stel varchar(12) not null, /电话Semail varchar(50) not null, Shcity varchar(30) not null /所在地);2、车票信息表orderdatecreate table Ticket(Tno varchar(20) primary key, /车次号Startcity varchar(30) not null, Startti

18、me varchar(20) not null,Endcity varchar(100) not null, Endtime varchar(20) not null,Ttype varchar(20) CHECK (Ttype IN(硬座,软座,硬卧,软卧),Tickets int not null /票数);3、车次信息表traincreate table Citysite(Cityno numeric(8) identity(1,1), /票点号Tno varchar(20), City varchar(100), Tprice decimal not null, /票价 primary

19、 key (Cityno,Tno),foreign key (Tno) references Ticket(Tno) on delete cascade)Sno),);4.管理员表admincreate table Operater(Adname varchar(20) primary key, /登录用户名Adpw varchar(12) not null, /登录密码Opname varchar(20) not null, /员工真实姓名Opsex varchar(4) not null, Optel varchar(12) not null,Opemail varchar(50) not

20、 null);5.2实现本次系统设计我前台采用JSP技术,后台采用Oracle10g系统采用Windows XP。JSP(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。(1)、JavaBean设计及其代码分析:本系统采用JDBC的驱动程序ojdbc14.clas

21、spackage beans;import java.sql.*;public class OperateDb private Connection conn=null; private void getConnection() try Class.forName(oracle.jdbc.driver.OracleDriver); catch (ClassNotFoundException e) / TODO Auto-generated catch blocke.printStackTrace(); try conn= DriverManager.getConnection(jdbc:ora

22、cle:thin:192.168.1.100:1521:orcl, scott, mapeng); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace(); public OperateDb() getConnection(); public ResultSet query(String sql) ResultSet rs=null; Statement stmt;JSP学生火车票订票系统try stmt = conn.createStatement();rs=stmt.executeQuery(s

23、ql); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace(); return rs; public void newerin(String sql) Statement stmt; try stmt = conn.createStatement();stmt.executeUpdate(sql); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();(2)、登录模块:登录界面对应的是index.j

24、sp页面。在该页面,学生和管理员都可以在此登录,单选框可以起到判断登录人是否是管理员的作用。登录后用户将按其是学生或管理员分别进入各自主界面。登录身份检测主要代码实现如下:package beans;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.RequestDispatcher;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpS

25、ervletRequest;import javax.servlet.http.HttpServletResponse;import java.sql.*;public class Comfirm extends HttpServlet private static final long serialVersionUID = -3983093134005309850L; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException

26、response.setContentType(text/html);response.setCharacterEncoding(GB2312);PrintWriter out = response.getWriter();request.setCharacterEncoding(GB2312);String right,username,password;right=request.getParameter(right);username=request.getParameter(username);password=request.getParameter(password);Operat

27、eDb check=new OperateDb();String sql;sql=select sname,scode from +right;ResultSet rs=check.query(sql);try while(rs.next()String name,pass; name=rs.getString(1); pass=rs.getString(2); if(name.equals(username)&pass.equals(password) String pageName; pageName=/+right+.jsp; gotoPage(pageName,request,resp

28、onse); return; /RequestDispatcher d=getServletContext().getRequestDispatcher(pageName); /d.forward(request, response); gotoPage(/error.jsp,request,response); return; catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace();out.flush();out.close(); public void doPost(HttpServletRe

29、quest request, HttpServletResponse response) throws ServletException, IOException doGet(request,response); public void gotoPage(String pageName,HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException RequestDispatcher d=getServletContext().getRequestDispatcher(

30、pageName);d.forward(request, response); (3)、管理员模块:1、管理员主界面:此页面对应admin.jsp页面。在此页面左下方菜单栏的账号管理对应上面的管理员系统设置模块图;管理操作中包括上面的车票信息管理模块图及订票管理模块图。JSP学生火车票订票系统2车票信息管理界面:此界面对应上面车票信息管理模块图,你可以查看车次详情,可以删除和修改车次信息,还可通过选择你所要查找的车次号查看某一车次的信息。 3订票管理模块:在此页面,用户可以执行查看订单详细信息、删除订单信息的功能以及在学生来付款取票时的“付款”操作。(4)、学生模块:1、学生主界面:在此页面左

31、下方菜单栏的账号管理对应上面的用户系统设置模块图;用户操作中包括订票管理模块图。2、车票查询界面:在此界面系统提供的查询车票情况方法分为按车次、按起始站目的站查询。3.车票查询界面及代码代码如下:package beans;import java.io.IOException;import java.io.PrintWriter;import java.sql.ResultSet;import java.sql.SQLException;import javax.servlet.RequestDispatcher;import javax.servlet.ServletException;im

32、port javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class Ordercheck extends HttpServlet private static final long serialVersionUID = 310954312878527046L; public void doGet(HttpServletRequest request, HttpServletRespon

33、se response) throws ServletException, IOException response.setContentType(text/html);response.setCharacterEncoding(gb2312);PrintWriter out = response.getWriter();request.setCharacterEncoding(gb2312);String school=request.getParameter(school);request.setAttribute(学校, school);String sno=request.getPar

34、ameter(sno);request.setAttribute(学号,sno);String trainno=request.getParameter(tno);request.setAttribute(车次号, trainno);String kind=request.getParameter(kind);request.setAttribute(种类, kind);OperateDb orderjudge=new OperateDb();String sqlprice=null;/查询单价一边插入数据if(kind.equals(硬座) sqlprice=select thseat fr

35、om train where tno=+ +trainno+;else sqlprice=select tsseat from train where tno=+ +trainno+;ResultSet rsprice=orderjudge.query(sqlprice);try rsprice.next(); catch (SQLException e1) / TODO Auto-generated catch block e1.printStackTrace();/String scount=request.getParameter(count);int count=Integer.par

36、seInt(scount);request.setAttribute(票数, scount);/查询余票。String sqlselect=select trest from train where tno=+ +trainno+;ResultSet rs=orderjudge.query(sqlselect);int rest=0 ;try JSP学生火车票订票系统 rs.next(); rest=Integer.parseInt(rs.getString(trest); catch (SQLException e) /TODO Auto-generated catch block e.pr

37、intStackTrace();/if(countrest) gotoPage(/orderError.jsp,request,response);else /插入订票信息。 try String sqlinsert= insert into orderdate values(+school+,+sno+,+trainno+,+kind+,+count+,+count*rsprice.getInt(1)+,nopaid+) ; orderjudge.newerin(sqlinsert); catch (SQLException e1) / TODO Auto-generated catch b

38、lock e1.printStackTrace(); rest-; String sqlupdate=update train set trest=trest-1 where tno =+ +trainno+; orderjudge.newerin(sqlupdate); gotoPage(/tOrder.jsp,request,response);out.flush();out.close(); public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletExceptio

39、n, IOException doGet(request,response); public void gotoPage(String pageName,HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException RequestDispatcher d=getServletContext().getRequestDispatcher(pageName); d.forward(request, response);(5)、实现体会: 这次设计持续了好一段时间,现在终于结束了。说真的,它让我体会了很多。这次数据库系统设计是对我的之前学习的总结,使我的专业知识和实际应用的紧密结合起来。通过这次设计使我对数据库理论有了较深刻的认识,并且对信息系统方面的设计理论和开发过程的也有了深刻的了解,在这一阶段的学习中,我基本上掌握了JSP和Oracle10g操作和编程方法。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号