




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、實訓任務書中北大學面向對象程序設計實訓說明書學 院、系:軟件學院專 業:軟件工程學生班級:13140A01學生姓名: 景貝貝 學號: 1314011438設計題目:電影院網上訂票系統設計起迄日期:2015年6月29日-2015年7月10日指導教師:楊秋翔2015年7月8日1 .設計目的:KBBH _1 KB Bd ! U BiB U = ! £ B2B * KB BJB 1 MtB ! KB ! 進一步掌握面向對象程序設計的思想和方法,遵照軟件工程中軟件系統的開發流程,使用JAVA/JAVA WEB完成一個軟件系統,在實踐中提高分析問題、解 決問題的能力,動手編程的能力和團隊協作的能
2、力。2 .系統設計內容和要求(包括原始數據、技術參數、條件、設計要求等):( L,口 士 0 * »a Th 口- ULr4 k - a * > a M L* N - d ± L 4 N * L- *,E - H ± L M 4 E*&0- * 4 * - a 44 M a , L 口 HB > R> L,上上施M E LM >> 口 a >* *士 *a M K3 4 口 士 0a m 4 i 設計內容:電影院網上訂票系統應該包括以下功能:用戶信息、座位信息、訂購信息、影片安排信息、放映廳信息等管理工作。要求:(1)
3、基于B/S模式,并采用 MVC架構,分層合理,最大限度的減少代碼冗余。(2) 遵照軟件工程規范, 嚴格按照軟件系統的開發流程(需求分析,概要設計,詳細設計,編碼實現,測試)進行。(3)系統中的數據表設計應在數據庫實訓的基礎上進一步規范合理、高效,盡量減少數據冗余。(4)最終完成的軟件系統應操作簡捷,友好,方便,實用。3 .設計工作任務及工作量的要求包括課程設計說明書(論文)、圖紙、 實物樣品等:(1)根據設計內容和要求進行需求分析,分析出系統要解決的問題。(2)根據需求分析的內容進行概要設計和詳細設計,并在小組中合理分工。(3)按格式要求,每人根據自己完成的工作寫出實訓說明書。4 .自己承擔的
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 技術可行性根據電影院提出的系統功能、性能及實現系統的各種約束條件,根據新系統目標來衡量所需的技術是否具備,本系統是
5、一個數據庫管理和查詢的系統,現有的技術已較為成熟,硬件、 軟件的性能要求、環境條件等各項條件良好,估計利用現有技術條件應完全可以達到該系統的功能目標。同時, 考慮給予的開發期限也較為充裕,預計系統是可以在規定期限內完成開發的。由以上分析可知,影院售票系統的開發在技術上是可行的。1.1.2 經濟可行性電影院具有信息化的處理設施,并且擁有支持本系統的應用平臺。因此無需再投入資金購買其他設施。系統的開發基于本人對程序開發的實踐學習而來,電影院無需資金投入,并且軟件開發過程投入的成本不高,因此開發經費完全可以接受。由以上分析可知,影院售票系統在經濟上是可行的。1.1.3 操作可行性根據系統頁面用戶可以
6、自動查詢影片信息。還可瀏覽完影片信息以后操作訂票、退票等功能。 管理員也可以在后臺添加、修改并刪除影片信息,還可以管理注冊用戶信息和用戶訂票信息。由以上分析可知本系統在操作上也是可行的。1.2 系統流程圖首先未注冊的用戶要先注冊,注冊完了以后輸入用戶名和密碼進入頁面。根據網站上的影片信息用戶可以選擇自己喜歡的電影來訂票。然后訂票信息會自動存儲到后臺訂票信息數據當中。本系統的具體流程為如圖所示。1 注陽信系統流程圖1.3 數據流圖本系統的基本模型數據流圖為如圖所示。系統基本模型數據流圖系統功能數據流圖1.4 數據需求(1)影片信息:電影名稱、導演、演員、電影簡介、語言、片場(分鐘)、放映日期、
7、時間、價格、票數、(2)訂票信息:電影名稱、放映時間、放映大廳、座位號、票價(單價)(3)用戶信息:用戶名、用戶密碼、手機號(4)放映廳信息:放映大廳名字、座位數1.5 數據字典Film (電影表)列名含義長度取值范圍filmid影片編號Int40-32767FilmName電影名稱varchar(20 )20Director導演varchar(10)10Language語百varchar(10 )10timeLong片長(分鐘)Int2Date放映日期varchar(50)500-31Money價格Int20-100Number票數Int20-300Time放映時間Int10order (訂
8、票表)列名含義回長度取值范圍orderid主鍵Int2filmname電影名稱varchar(20)20Time放映時間varchar(50)50Hall放映大廳varchar(10)10seatname座位號Int2money票的單價Int2Hall (放映大廳)列名含義長度取值范圍hall放映大廳編 號Intseatname放映大廳varchar10 )10User (用戶信息表)列名含義回長度取值范圍UID用戶序號Int21-10username用戶名varchar(10 )1050password用戶密碼varchar(10 )100-9Admin (管理員信息表)列名含義長度取值范圍
9、Adminname用戶名varchar(10 )1050password用戶密碼varchar(10 )100-9Seat (座位類別)二、概要設計從數據需求分析中得出系統的實體屬性圖,遵循三范式原則,對實體之間的依關系進 行了整合,得出本系統E-R圖,如圖所示。系統E-R圖其中影片信息實體屬性圖又為如下圖所示訂單詳情實體屬性圖為如圖所示。圖影片場次實體屬性圖用戶實體屬性圖為如圖所示。圖用戶信息實體屬性圖全局I念E-R圖三、詳細設計ER圖向關系模型的轉換影片(影片編號,類別,票價,播放日期,名稱,導演,片長)影票(影票編號,票價,播放日期,影片名稱,座位號)注冊用戶(用戶編號,用戶名,密碼)放
10、映大廳(大廳編號,名字)座位(座位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; FTimelD);Ticket (訂票表)列名含義長度其他TId影票號Int主碼TFName電影名稱Nvarchar(20 )20TDate放映日期Nvar
11、char(50 )50TTime放映時間Nvarchar(50 )50HID放映大Nvarchar(1010外部碼廳編號)TNumber座位號Int外部碼TMoney票數總價IntSeat (座位類別)列名含義舊長度其他SEID座位號Int1-10主碼SMoney座位票價Int2SNumber座位編號Nvarchar(1 0)3Film (電影表)列名含義長度其他FID影片編號Int4主碼FFilmName電影名稱Nvarchar(20)20FDirector導演Nvarchar(10)10FLanguage語百Nvarchar(10)10FLong片長(分鐘)IntFDate放映日期Nvar
12、char(50)50FMoney價格IntFNumber票數IntFTimeID放映日期Intuser (用戶表)列名含義回長度其他phonenumber;用戶電話Varchar11Username用戶名Nvarchar(10)10主碼password用戶密碼Nvarchar(10)10Hall (放映大廳)列名含義長度其他HID放映大廳編 號Int主碼HHall放映大廳Nvachar10)四、編碼實現,潛 src儀Jj Adminjava出 cn.rriovi:e.daoj Fl 1 m t nfo r m ati g-n .j ava川 lAdm inDAO java> Jj Ord
13、er.javaJ| IDAO.java> JJ Userjavaffl IFilmlnformationDAOjava1> a JRE System Library Ja/2SE-6J'| lOrderDAOjdval> Eh. JavaEL Sf0 Generic Library7 lUserDAO.java1> ,Web App LibrariestnrriQvi.dbc> d JSTL 12,1 LibraryJ 0 ata b eC on ne rti o ri j a vs. Referenred Librarie-sJ iH cnrnovi&a
14、mp;ifartcryd jj? Web R.oot.1 DAOFaetayjavaB 占 META-1NF i3 mrnovieiinnplP & WEB INF:£| Ad mm DAO ltr p 1 .java丁 dmin口ginj與pl7 FilmDAOTrnplJava.i* emp_show.jsp.J OrderDAOImpl.javaI filmjistjspo 團 UserDAOtmpljava.產 film_operate_dcrjsp 田 xy:產 fi ImadminJ istjspffl lAdminOAOProxy.jav
15、a了 index.html:J | 1 Fil ml nform ati nDAOProxyjava/ login.Rp3 10 rd erD AO P rox)j a vaiff logoutjtpJj 1 Us erDAO Proxy java/ MyJpjspj cn.movie,servlet/ orderjistjsp. i AdminLoginServ etjava產 ordero peratedojsp.Jj FiIm Servlet.java團 orders_opera te_d oj s p Login Servlet javaregi&t_do jsp,JJ Ord
16、srServletjavaX? registjsp由 cn.movieivo/ ieatJisLjspJ| Ad min.javaJf welcomejs.p文件目錄lOrderDAOimpl.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.m
17、ovie.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(Co
18、nnection 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
19、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.ou
20、t.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
21、=?"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
22、null;Overridepublic List<Order> findAll(String keyWord, int currentPage, int lineSize)throws Exception List<Order> all = new ArrayList<Order>();String sql = "select * from orders where username=?"this.pstmt = this.conn.prepareStatement(sql);this.pstmt.setString(1, keyWord
23、);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
24、boolean doCreate(Order order) throws Exception boolean flag = false;Stringsql="INSERTINTOorders(username,seatname,filmname,hall,time,money) VALUES (?,?,?,?,?,?) "this.pstmt = this.conn.prepareStatement(sql);this.pstmt.setString(1,order.getUsername();this.pstmt.setString(2, order.getSeatnam
25、e();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.setStrin
26、g(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)+&quo
27、t; 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(Strin
28、g keyWord) throws Exception return 0;Overridepublic List<Order> findAll() throws Exception List<Order> all = new ArrayList<Order>();String sql = "select * from orders"this.pstmt = this.conn.prepareStatement(sql);ResultSet rs = pstmt.executeQuery();while (rs.next() Order o
29、rder=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
30、-generated method stubreturn false;Overridepublic List<String> 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 = pst
31、mt.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<String> seatname =new ArrayList<String>();int i=0;while (r
32、s1.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.HttpServl
33、etRequest;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
34、(); / 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
35、status = request.getParameter("status"); /if(request.getParameter("film")!=null)Stringfilmname=newString(request.getParameter("film").getBytes("iso8859-1"),"GBK");StringhallnewString(request.getParameter("hall").getBytes("iso8859-1&quo
36、t;),"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);
37、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, r
38、esponse);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);pr
39、ivate void seatlist(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException request.setCharacterEncoding("GBK") ;newStringhall=String(request.getParameter("hall").getBytes("iso8859-1"),"GBK");try /System.out.println("
40、"+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 respons
41、e)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.getAttribut
42、e("film");String hall=(String) session.getAttribute("hall");String time=(String) session.getAttribute("time");/System.out.println("zhixing2");int money=(Integer) session.getAttribute("money");/*Stringfilmname=newString(request.getParameter("film
43、").getBytes("iso8859-1"),"GBK");Stringhall=newString(request.getParameter("hall").getBytes("iso8859-1"),"GBK");String time=request.getParameter("time");int money =Integer.parseInt(request.getParameter("money");*/System.out.pr
44、intln(""+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 (
45、DAOFactory.getIOrderDAOinstance().doCreate(order) request.setAttribute("msgs", " 訂單提交成功!"); else request.setAttribute("msgs"," 訂單提交失敗"); catch (Exception e) e.printStackTrace();request.getRequestDispatcher("order_operate_do.jsp").forward(request, res
46、ponse);public void delete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException String pages = "" / 默認讓其跳轉到錯誤的處理頁 try int orderid = Integer.parseInt(request.getParameter("orderid");Stringfilmname=newString(request.getParameter("filmname").getBytes(&qu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 四川塔吊考試試題及答案
- 妊娠期高血壓疾病護理
- 元寶創意美術課件
- 子癇搶救護理流程
- 神經內科不良事件管理規范
- 航空航天復合材料 課件 第4章 陶瓷基復合材料
- 不可撤銷擔保函在跨境融資租賃中的法律效力合同
- 拆遷公司責任保險合同范本
- 小兒鞘膜積液的護理查房
- 高新技術企業財務代理與研發資金支持協議
- 大豆病蟲害的綜合防治
- 妊娠期用藥安全課件
- 體育場館消防控制室操作規范
- 《中國政法大學》課件
- 國開學習網《大數據技術概論》形考任務1-4答案
- 英語研究報告范文
- 右膝關節置換術護理個案
- 高中數學教師資格考試學科知識與教學能力試題及答案指導(2024年)
- 肺動脈高壓診斷與治療
- 《系統的閉環控制》課件
- 24秋國家開放大學《科學與技術》終結性考核大作業參考答案
評論
0/150
提交評論