面向对象程序设计实训说明书--电影院网上订票系统设计.doc_第1页
面向对象程序设计实训说明书--电影院网上订票系统设计.doc_第2页
面向对象程序设计实训说明书--电影院网上订票系统设计.doc_第3页
面向对象程序设计实训说明书--电影院网上订票系统设计.doc_第4页
面向对象程序设计实训说明书--电影院网上订票系统设计.doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

中北大学面向对象程序设计实训说 明 书学 院、系:软件学院专 业:软件工程学 生 班 级:13140A01学 生 姓 名:景贝贝学 号:1314011438设 计 题 目:电影院网上订票系统设计 起 迄 日 期:2015年6月29日- 2015年7月10日指 导 教 师:杨秋翔2015 年 7月 8 日实 训 任 务 书1设计目的: 进一步掌握面向对象程序设计的思想和方法,遵照软件工程中软件系统的开发流程,使用JAVA/JAVA WEB完成一个软件系统,在实践中提高分析问题、解决问题的能力,动手编程的能力和团队协作的能力。2系统设计内容和要求(包括原始数据、技术参数、条件、设计要求等):设计内容:电影院网上订票系统应该包括以下功能: 用户信息、座位信息、订购信息、影片安排信息、放映厅信息等管理工作。要求:(1) 基于B/S模式,并采用MVC架构,分层合理,最大限度的减少代码冗余。(2) 遵照软件工程规范,严格按照软件系统的开发流程(需求分析,概要设计,详细设计,编码实现,测试)进行。(3) 系统中的数据表设计应在数据库实训的基础上进一步规范合理、高效,尽量减少数据冗余。(4) 最终完成的软件系统应操作简捷,友好,方便,实用。 3设计工作任务及工作量的要求包括课程设计说明书(论文)、图纸、实物样品等:(1) 根据设计内容和要求进行需求分析,分析出系统要解决的问题。(2) 根据需求分析的内容进行概要设计和详细设计,并在小组中合理分工。(3) 按格式要求,每人根据自己完成的工作写出实训说明书。实 训 任 务 书4自己承担的任务 (1)普通用户的登陆验证(2)查看电影信息(3)用户选择电影和座位(4)用户提交订单,删除订单5设计成果形式及要求:实训说明书软件系统6工作计划及进度:2015年6.29-7.30需求分析7.1-7.2概要设计和详细设计7.3-7.7系统实现与测试7.8 撰写实训说明书7.9 验收答辩、成绩考核7.10 上交实训报告一、需求分析需求分析包括可行性分析、系统流程图和数据流图,数据字典。可行性分析包括技术可行性、经济可行性和操作可行性。1.1 可行性分析1.1.1 技术可行性根据电影院提出的系统功能、性能及实现系统的各种约束条件,根据新系统目标来衡量所需的技术是否具备,本系统是一个数据库管理和查询的系统,现有的技术已较为成熟,硬件、软件的性能要求、环境条件等各项条件良好,估计利用现有技术条件应完全可以达到该系统的功能目标。同时,考虑给予的开发期限也较为充裕,预计系统是可以在规定期限内完成开发的。由以上分析可知,影院售票系统的开发在技术上是可行的。1.1.2 经济可行性电影院具有信息化的处理设施,并且拥有支持本系统的应用平台。因此无需再投入资金购买其他设施。系统的开发基于本人对程序开发的实践学习而来,电影院无需资金投入,并且软件开发过程投入的成本不高,因此开发经费完全可以接受。由以上分析可知,影院售票系统在经济上是可行的。1.1.3 操作可行性根据系统页面用户可以自动查询影片信息。还可浏览完影片信息以后操作订票、退票等功能。管理员也可以在后台添加、修改并删除影片信息,还可以管理注册用户信息和用户订票信息。由以上分析可知本系统在操作上也是可行的。1.2 系统流程图首先未注册的用户要先注册,注册完了以后输入用户名和密码进入页面。根据网站上的影片信息用户可以选择自己喜欢的电影来订票。然后订票信息会自动存储到后台订票信息数据当中。本系统的具体流程为如图所示。系统流程图1.3 数据流图本系统的基本模型数据流图为如图所示。系统基本模型数据流图系统功能数据流图1.4数据需求(1)影片信息:电影名称、导演、演员、电影简介、语言、片场(分钟)、放映日期、时间、价格、票数、(2)订票信息:电影名称、放映时间、放映大厅、座位号、票价(单价)(3)用户信息:用户名、用户密码、手机号(4)放映厅信息:放映大厅名字、座位数1.5数据字典Film(电影表)列名含义类型长度取值范围filmid影片编号Int 40-32767FilmName电影名称varchar(20)20Director导演varchar(10)10 Language语言varchar(10)10timeLong片长(分钟)Int2Date放映日期varchar(50)500-31Money价格Int20-100Number票数Int20-300Time放映时间Int10order(订票表)列名含义类型长度取值范围orderid主键Int2filmname电影名称varchar(20)20Time放映时间varchar(50)50Hall放映大厅varchar(10)10seatname座位号Int 2money票的单价Int2Hall(放映大厅)列名含义类型长度取值范围hall放映大厅编号Intseatname放映大厅varchar10)10User(用户信息表)列名含义类型长度取值范围UID用户序号Int21-10username用户名varchar(10)1050password用户密码varchar(10)100-9Admin(管理员信息表)列名含义类型长度取值范围Adminname用户名varchar(10)1050password用户密码varchar(10)100-9Seat(座位类别)列名含义类型长度取值范围Seatid主键Int1-10seatname座位编号Nvarchar(10)31-100二、概要设计从数据需求分析中得出系统的实体属性图,遵循三范式原则,对实体之间的依关系进行了整合,得出本系统E-R图,如图所示。系统E-R图其中影片信息实体属性图又为如下图所示。影片信息实体属性图订单详情实体属性图为如图所示。图影片场次实体属性图用户实体属性图为如图所示。图用户信息实体属性图全局概念E-R图三、详细设计 ER图向关系模型的转换影片(影片编号,类别,票价,播放日期,名称,导演,片长)影票(影票编号,票价,播放日期,影片名称,座位号)注册用户(用户编号,用户名,密码)放映大厅(大厅编号,名字)座位(座位id,座位号)Orders(orderId,FName,Time,Hall,Number,Money);Seat(SEID,seatname);Hall(HID,HHall);User(username,password,phonenumber);Film(FID,FilmName,FDirector,FLanguage,FLong,FDate,FMoney,FNumber,FTimeID);Ticket(订票表)列名含义类型长度其他TId影票号Int主码TFName电影名称Nvarchar(20)20TDate放映日期Nvarchar(50)50TTime放映时间Nvarchar(50)50HID放映大厅编号Nvarchar(10)10外部码TNumber座位号Int 外部码TMoney票数总价IntSeat(座位类别)列名含义类型长度其他SEID座位号Int1-10主码SMoney座位票价Int2SNumber座位编号Nvarchar(10)3Film(电影表)列名含义类型长度其他FID影片编号Int 4主码FFilmName电影名称Nvarchar(20)20FDirector导演Nvarchar(10)10 FLanguage语言Nvarchar(10)10FLong片长(分钟)IntFDate放映日期Nvarchar(50)50FMoney价格IntFNumber票数IntFTimeID放映日期Intuser(用户表)列名含义类型长度其他phonenumber用户电话Varchar11Username用户名Nvarchar(10)10主码password用户密码Nvarchar(10)10Hall(放映大厅)列名含义类型长度其他HID放映大厅编号Int主码HHall放映大厅Nvachar10)4、 编码实现文件目录IOrderDAOimpl.javapackage cn.movie.impl;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.ArrayList;import java.util.List;import cn.movie.dao.IOrderDAO;import cn.movie.vo.FilmInformation;import cn.movie.vo.Order;public class OrderDAOImpl implements IOrderDAOprivate Connection conn;private PreparedStatement pstmt = null;private PreparedStatement pstmt1 = null;private PreparedStatement pstmt2 = null;private PreparedStatement pstmt3 = null;public OrderDAOImpl(Connection conn) this.conn=conn;Overridepublic boolean doUpdate(Order vo) throws Exception boolean flag = false;return false;Overridepublic boolean doRemove(int id,String hall,String filmname,String seatname) throws Exception boolean flag = false;/System.out.println(id);String sql = DELETE FROM orders WHERE orderId=?;this.pstmt = this.conn.prepareStatement(sql);this.pstmt.setInt(1,id );String sql1 = select seatnamea from hall where hall=+hall+ ;this.pstmt1 = this.conn.prepareStatement(sql1);ResultSet rs = this.pstmt1.executeQuery();rs.next();/System.out.println(+rs.getString(1);String sql2=insert into +rs.getString(1)+(seatname) values(?) ;this.pstmt2 = this.conn.prepareStatement(sql2);this.pstmt2.setString(1,seatname);this.pstmt2.executeUpdate();String sql3=update film set number=number+1 where filmName=?;this.pstmt3=this.conn.prepareStatement(sql3);this.pstmt3.setString(1,filmname);this.pstmt3.executeUpdate();/System.out.println(id);if (this.pstmt.executeUpdate() 0) flag = true;return flag;Overridepublic Order findById(String id) throws Exception / TODO Auto-generated method stubreturn null;Overridepublic List findAll(String keyWord, int currentPage, int lineSize)throws Exception List all = new ArrayList();String sql = select * from orders where username=?;this.pstmt = this.conn.prepareStatement(sql);this.pstmt.setString(1, keyWord);ResultSet rs = pstmt.executeQuery();while (rs.next() Order order = new Order();order.setOrderId(rs.getInt(1);order.setSeatname(rs.getString(3);order.setFilmname(rs.getString(4);order.setTime(rs.getString(6);order.setHall(rs.getString(5);order.setMoney(rs.getInt(7);all.add(order);return all;public boolean doCreate(Order order) throws Exception boolean flag = false;String sql = INSERT INTO orders(username,seatname,filmname,hall,time,money) VALUES (?,?,?,?,?,?) ;this.pstmt = this.conn.prepareStatement(sql);this.pstmt.setString(1,order.getUsername();this.pstmt.setString(2, order.getSeatname();this.pstmt.setString(3,order.getFilmname();this.pstmt.setString(4,order.getHall();this.pstmt.setString(5,order.getTime();this.pstmt.setInt(6, order.getMoney();String sql1=update film set number=number-1 where filmName=?;this.pstmt1=this.conn.prepareStatement(sql1);this.pstmt1.setString(1,order.getFilmname();this.pstmt1.executeUpdate();String sql2 = select seatnamea from hall where hall=+order.getHall()+ ;this.pstmt2 = this.conn.prepareStatement(sql2);ResultSet rs = pstmt2.executeQuery();rs.next();String sql3=delete from +rs.getString(1)+ where seatname=?;this.pstmt3 = this.conn.prepareStatement(sql3);this.pstmt3.setString(1,order.getSeatname();this.pstmt3.executeUpdate();if (this.pstmt.executeUpdate() 0) flag = true;/System.out.println(判断);/System.out.println(flag);return flag;public long getAllCount(String keyWord) throws Exception return 0;Overridepublic List findAll() throws Exception List all = new ArrayList();String sql = select * from orders;this.pstmt = this.conn.prepareStatement(sql);ResultSet rs = pstmt.executeQuery();while (rs.next() Order order=new Order();order.setOrderId(rs.getInt(1);order.setUsername(rs.getString(2);order.setSeatname(rs.getString(3);order.setHall(rs.getString(4);order.setTime(rs.getString(5);order.setMoney(rs.getInt(6);all.add(order);return all;Overridepublic boolean doRemove(String id) throws Exception / TODO Auto-generated method stubreturn false;Overridepublic List getAllseat(String keyWord) throws Exception /System.out.println(keyWord);String sql = select seatnamea from hall where hall=+keyWord+ ;this.pstmt = this.conn.prepareStatement(sql);ResultSet rs = pstmt.executeQuery();rs.next();/System.out.println(+rs.getString(1);String sql1=select seatname from +rs.getString(1);this.pstmt1 = this.conn.prepareStatement(sql1);ResultSet rs1 = pstmt1.executeQuery();List seatname =new ArrayList();int i=0;while (rs1.next() /System.out.println(rs.getString(1);seatname.add(rs1.getString(1);return seatname;OrderServlet.javapackage cn.movie.servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import cn.movie.factory.DAOFactory;import cn.movie.vo.FilmInformation;import cn.movie.vo.Order;public class OrderServlet extends HttpServlet public OrderServlet() super();public void destroy() super.destroy(); / Just puts destroy string in log/ Put your code herepublic void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException response.setContentType(text/html;charset=GBK); request.setCharacterEncoding(GBK);String status = request.getParameter(status); / 接收操作的状态if(request.getParameter(film)!=null)String filmname= new String(request.getParameter(film).getBytes(iso8859-1),GBK);String hall = new String(request.getParameter(hall).getBytes(iso8859-1),GBK);String time=request.getParameter(time);int money =Integer.parseInt(request.getParameter(money);HttpSession se=request.getSession();se.setAttribute(film, filmname);se.setAttribute(hall, hall);se.setAttribute(time, time);se.setAttribute(money,money);if (!(status = null | .equals(status) if (list.equals(status) this.seatlist(request, response);if (listdetails.equals(status) /this.listdetails(request, response);if (insert.equals(status) this.insert(request, response);if (update.equals(status) /this.update(request, response);if (delete.equals(status) this.delete(request, response);if (show.equals(status) /this.show(request, response); else / 如果没有的话才执行此跳转/request.getRequestDispatcher(pages).forward(request, response);private void seatlist(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException request.setCharacterEncoding(GBK) ;String hall = new String(request.getParameter(hall).getBytes(iso8859-1),GBK);try /System.out.println(-+hall);request.setAttribute(seat, DAOFactory.getIOrderDAOinstance().getAllseat(hall); catch (Exception e) e.printStackTrace();request.getRequestDispatcher(seat_list.jsp).forward(request, response);public void insert(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException String seatname = request.getParameter(seatname);/System.out.println(zhixing1);try HttpSession session=request.getSession();String username =(String) session.getAttribute(username);String filmname=(String) session.getAttribute(film);String hall=(String) session.getAttribute(hall);String time=(String) session.getAttribute(time);/System.out.println(zhixing2);int money=(Integer) session.getAttribute(money);/*String filmname= new String(request.getParameter(film).getBytes(iso8859-1),GBK);String hall = new String(request.getParameter(hall).getBytes(iso8859-1),GBK);String time=request.getParameter(time);int money =Integer.parseInt(request.getParameter(money);*/System.out.println(-+filmname+username+hall+time+seatname);/System.out.println(money);/System.out.println(zhixing2);Order order=new Order();order.setFilmname(filmname);order.setHall(hall);order.setMoney(money);order.setSeatname(seatname);order.setTime(time);order.setUsername(username);if (DAOFactory.getIOrderDAOinstance().doCreate(order) request.setAttribute(msgs, 订单提交成功!); else request.setAttribute(msgs,订单提交失败); catch (Exception e) e.printStackTrace();request.getRequestDispatc

温馨提示

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

评论

0/150

提交评论