基于eclipse、tomcat的酒店管理系統(tǒng)――房間預(yù)訂模塊(含源文件)_第1頁
基于eclipse、tomcat的酒店管理系統(tǒng)――房間預(yù)訂模塊(含源文件)_第2頁
基于eclipse、tomcat的酒店管理系統(tǒng)――房間預(yù)訂模塊(含源文件)_第3頁
基于eclipse、tomcat的酒店管理系統(tǒng)――房間預(yù)訂模塊(含源文件)_第4頁
基于eclipse、tomcat的酒店管理系統(tǒng)――房間預(yù)訂模塊(含源文件)_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、大理學院數(shù)學與計算機學院綜合性實驗報告學年學期: 課程名稱: J2EE 專 業(yè): 班 級: 學 號: 姓 名: 成績評定: 一、項目名稱:酒店管理系統(tǒng)房間預(yù)訂模塊二、功能性需求1、 系統(tǒng)描述隨著信息的迅速發(fā)展,信息化管理已經(jīng)引入并且應(yīng)用到各行各業(yè)的管理領(lǐng)域中去,而一個大型的機電將管理信息化也是勢在必行的,大量的客流量,同時還要存儲各項業(yè)務(wù)的信息不斷更換的客流信息,員工個人信息和工資發(fā)配等任務(wù),若要時還是用人力管理不僅將會影響到盈利的同時無異于又給每一位員工帶來了很大的工作量!從系統(tǒng)安全可靠性,系統(tǒng)功能,軟件運行環(huán)境等方面對酒店管理系統(tǒng)進行需求分析,說明系統(tǒng)的合理性與可行性,闡述了系統(tǒng)的運行情況

2、。本文采用MVC模式設(shè)計并實現(xiàn)了一個酒店管理系統(tǒng),該系統(tǒng)包括系統(tǒng)設(shè)置、日常管理、庫存管理、客戶房間預(yù)定管理、訂餐管理等。這里主要描述客戶房間預(yù)訂管理。2、 軟件功能詳細描述本系統(tǒng)主要是開發(fā)一個酒店管理系統(tǒng),該系統(tǒng)包括系統(tǒng)設(shè)置、日常管理、庫存管理、客戶房間預(yù)定管理、訂餐管理等功能。本系統(tǒng)可應(yīng)用于小型的酒店管理,本次綜合性作業(yè)完成的是酒店管理系統(tǒng)中的一個小功能模塊房間預(yù)訂模塊。用戶可以在網(wǎng)上申請注冊個人或企業(yè)用戶,進行網(wǎng)上客房預(yù)訂和查詢辦理等。系統(tǒng)功能架構(gòu)的用戶房間預(yù)訂模塊功能結(jié)構(gòu)圖,如圖所示。用戶房間預(yù)訂模塊客房預(yù)訂情況查詢客房預(yù)訂3、業(yè)務(wù)流程(業(yè)務(wù)邏輯)分析(1)注冊:用戶進入酒店網(wǎng)頁首頁,如

3、果是老顧客,直接輸入用戶名密碼進行登錄,如果是新顧客,進行注冊過再進行登錄。(2)瀏覽酒店客房狀態(tài)信息:顧客通過查尋可以看到空閑房間剩余列表。(3)預(yù)訂:選擇房間點擊預(yù)訂,填寫相關(guān)信息,如選擇到店日期、離店日期、聯(lián)系方式等進行預(yù)訂。(4)查看預(yù)訂信息:從預(yù)訂房間查看,可以看到客戶自己當前訂單,已入住用戶可以查看到自己的入住單。開 始進入酒店管理系統(tǒng)進入房間預(yù)訂模塊房間列表頁面登陸成功用戶登錄房間預(yù)訂判斷用戶是否存在點擊鏈接是用戶名是否存在填寫相關(guān)預(yù)訂信息判斷預(yù)訂是否成功否,點擊鏈接新用戶注冊顯示預(yù)訂失敗信息否返回預(yù)訂是否成功是顯示用戶注冊信息顯示預(yù)訂成功信息結(jié)束本次預(yù)訂4、數(shù)據(jù)流分析該系統(tǒng)數(shù)據(jù)

4、流程比較簡單,管理員可以添加酒店客房信息,然而這些信息用戶是可以瀏覽的,但是用戶沒有權(quán)限對這些信息進行修改,這些信息對于用戶而言是單向的。對于預(yù)定信息,管理員可以增刪改查預(yù)定信息。3、 系統(tǒng)總體設(shè)計1.MVC設(shè)計思想MVC模式全名是Model View Controller,是模型(model)視圖(view)控制器(controller)的縮寫,是一種軟件設(shè)計典范,把Web應(yīng)用的輸入、輸出和處理流程按照Model 、View和 Controller分成三層,最典型的MVC就是JSp +servlet  +javabean的模式。Event(事件)導致Contro

5、ller改變Model或View,或者同時改變兩者。只要Controller改變了Models的數(shù)據(jù)或者屬性,所有依賴的View都會自動更新。類似的,只要Controller改變了View,View會從潛在的Model中獲取數(shù)據(jù)來刷新自己。Model(模型)是應(yīng)用程序中用于處理應(yīng)用程序數(shù)據(jù)邏輯的部分。用于與用戶交互,可以用HTML、JSP、FreeMarker等實現(xiàn)。View(視圖)是應(yīng)用程序中處理數(shù)據(jù)顯示的部分。通常視圖是依據(jù)模型數(shù)據(jù)創(chuàng)建的。用于表示業(yè)務(wù)數(shù)據(jù)和實現(xiàn)業(yè)務(wù)邏輯,通??梢杂肑avaBean或EJB來實現(xiàn)Controller(控制器)是應(yīng)用程序中處理用戶交互的部分。通??刂破髫撠煆囊?/p>

6、圖讀取數(shù)據(jù),控制用戶輸入,并向模型發(fā)送數(shù)據(jù)??刂茖涌梢杂肧ervlet實現(xiàn)。Web開發(fā)中的MVC請求響應(yīng)模型:本功能模塊采用Model2實現(xiàn)房間的預(yù)訂,按照MVC分層設(shè)計的思想,共需要編寫14個文件,對應(yīng)的文件名及功能描述如下表所示:層文件名描述視圖層Login.html登錄頁面,注冊過的用戶直接登錄,進入系統(tǒng)Register.html用戶信息注冊頁面,包括姓名、性別、年齡、用戶類型等信息RoomList.jsp房間列表信息,用戶可選擇(多選)房間Order.jsp訂單填寫頁面,顯示預(yù)訂房間信息OrderResult.jsp訂單預(yù)訂成功頁面,顯示預(yù)訂信息Failure.jsp訂單預(yù)訂失敗頁面,

7、可返回房間列表頁面重新預(yù)訂控制器層UserServlet.java用戶信息控制器,處理用戶登錄RoomServlet.java房間信息控制器,處理預(yù)訂信息OrderServlet.java訂單信息控制器模型層User.java模型部分JavaBean,包括姓名、性別、密碼等屬性Room.java房間實體類,包括編號、名稱、床型、價格等屬性O(shè)rder.java訂單實體類,包括聯(lián)系人姓名、聯(lián)系方式、到店時間等信息OrderDetail.java訂單明細實體類,包括房間編號、數(shù)量等信息JdbcDao.java數(shù)據(jù)庫操縱通用類,處理與數(shù)據(jù)庫連接的相關(guān)操作2. MVC各組成部份及調(diào)用關(guān)系4、 系統(tǒng)實現(xiàn)(

8、1) 關(guān)鍵代碼1. 登陸界面Login.html<html> <head> 登陸頁面 </head> <body> <form method="post" action="/04/servlets/indexServlet" > <center> <table border="0" width="300" hegitt="400"> <tr><th>用戶名</th><th

9、><input type="text" name="username" ></th></tr> <tr><th>密碼</th><th><input type="password" name="userpass" ></th></tr> <tr><th colspan=2><p><center><input type="submi

10、t" value="登陸"></form></center></p></th></tr>" </table> </center> <center> 如果你沒有賬號 可以點擊<a href="register.html">注冊</a> </center> </body></html>2. 注冊頁面Register.html<html> <head> &l

11、t;title>注冊頁面</title> </head> <body><h1 align="center">信息注冊</h1><form action="Login.html" method="post"><center>姓名:<input type="text" name="name" size="50"><br>年齡:<input type="

12、text" name="age" size="50"><br>性別:<input type="radio" name="sex" value="男">男<input type="radio" name="sex" value="女">女<br>地址:<input type="text" name="addr" size=&quo

13、t;50"><br>電話:<input type="text" name="tell" size="50"><br>用戶類型:<select size"1" name="lx"><option>個人</option><option>企業(yè)</option></select><p><input type="submit" value=&qu

14、ot;注冊"></p></center></form> </body></html>3. 房間列表頁面RoomList.jsp<%List<Map> roomList=new ArrayList(); Map room0=new HashMap();room0.put("roomName","精致山景房");room0.put("roomNo","0");room0.put("zc","雙早&

15、quot;);room0.put("cx","大/雙");room0.put("wlan","免費");room0.put("msj","¥1788");room0.put("price","¥558");roomList.add(room0);Map room1=new HashMap();room1.put("roomName","商務(wù)山景房");room1.put(&qu

16、ot;roomNo","1");room1.put("zc","雙早");room1.put("cx","大/雙");room1.put("wlan","免費");room1.put("msj","¥1988");room1.put("price","¥608");roomList.add(room1);Map room2=new HashMap(

17、);room2.put("roomName","商務(wù)山景房");room2.put("roomNo","2");room2.put("zc","雙早");room2.put("cx","大/雙");room2.put("wlan","免費");room2.put("msj","¥1788");room2.put("price",

18、"¥658");roomList.add(room2);Map room3=new HashMap();room3.put("roomName","商務(wù)海景房");room3.put("roomNo","3");room3.put("zc","雙早");room3.put("cx","大/雙");room3.put("wlan","免費");room3.put(&qu

19、ot;msj","¥1788");room3.put("price","¥608");roomList.add(room3);Map room4=new HashMap();room4.put("roomName","精致海景房");room4.put("roomNo","4");room4.put("zc","雙早");room4.put("cx","大/

20、雙");room4.put("wlan","免費");room4.put("msj","¥1788");room4.put("price","¥608");roomList.add(room4);Map room5=new HashMap();room5.put("roomName","精致海景房");room5.put("roomNo","5");room5.put

21、("zc","雙早");room5.put("cx","大/雙");room5.put("wlan","免費");room5.put("msj","¥1788");room5.put("price","¥608");roomList.add(room5);Map room6=new HashMap();room6.put("roomName","精

22、致海景房");room6.put("roomNo","6");room6.put("zc","雙早");room6.put("cx","大/雙");room6.put("wlan","免費");room6.put("msj","¥1788");room6.put("price","¥608");roomList.add(room

23、6);Map room7=new HashMap();room7.put("roomName","行政山景房");room7.put("roomNo","7");room7.put("zc","雙早");room7.put("cx","大/雙");room7.put("wlan","免費");room7.put("msj","¥2688");roo

24、m7.put("price","¥888");roomList.add(room7);%><form action="orderresult.jsp" method="post"> <form action="OrderResult.jsp" method="post"> request.setCharacterEncoding("utf-8"); String selectedRooms=request.getPa

25、rameterValues("selectedrooms"); for(int i=0;i<selectedRooms.length;i+) Map room=roomList.get(i); /int roomid=Integer.valueOf(room.get("roomName").toString(); out.println("<tr>"+ "<td>"+room.get("roomName").toString()+"</td>&

26、quot;+"<td>"+room.get("zc").toString()+"</td>"+"<td>"+room.get("cx").toString()+"</td>"+"<td>"+room.get("wlan").toString() +"</td>"+"<td>"+room.get("msj&

27、quot;).toString()+"</td>"+"<td>"+room.get("price").toString()+"</td>" +"<td>"+"<input type='text' name='num' value='1' size='3' >"+"</td>"); <%session.setAttri

28、bute("selectedRooms",selectedRooms); %>4. 訂單預(yù)定頁面Order.jsp <center><h2>下面是預(yù)訂房間信息</h2> <form action="OrderResult.jsp" method="post"> <table border="1" bordercolor="#12ccffff"> <tr><td width="100">房

29、型</td><td>早餐</td><td>床型</td><td>寬帶</td><td>預(yù)訂價</td><td>房價</td></tr> <% request.setCharacterEncoding("utf-8"); StringselectedRooms=request.getParameterValues("selectedrooms"); for(int i=0;i<selectedRooms

30、.length;i+) Map room=roomList.get(Integer.valueOf(selectedRoomsi);%> <tr><td width="150"><% out.println(room.get("roomName");%></td><td><% out.println(room.get("food");%></td><td><% out.println(room.get("bed&quo

31、t;);%></td><td><% out.println(room.get("web");%></td><td><% out.println(room.get("money1");%>元</td><td><% out.println(room.get("money2");%>元</td></tr><%session.setAttribute("selectedRooms"

32、,selectedRooms); %><table><tr rowspan=4><h2>聯(lián)系方式(請認真填寫)</h2></tr> <tr><td>預(yù)計到店日期:</td><td><input type="text" name="time1" size="15"></td><td>預(yù)計離店日期:</td><td><input type="text&

33、quot; name="time2" size="15"></td></tr> <tr><td>姓名:</td><td><input type="text" name="xingming" size="15"></td><td rowspan=2>*必須填,真實姓名,以便聯(lián)系</td></tr> <tr><td>手機號碼:</td

34、><td><input type="text" name="shouji" size="11"></td><td rowspan=2>*手機號碼和固定電話必須填一個</td></tr> <tr><td>固定號碼:</td><td><input type="text" name="dianhua" size="11"></td>&

35、lt;td rowspan=2></td></tr> <tr><td>電子郵箱:</td><td><input type="text" name="e-mail" size="18"></td><td rowspan=2>建議填寫</td></tr> </table> <input type="submit" name="submit" va

36、lue="提交并預(yù)覽訂單"><br> </form></center>5. 預(yù)定結(jié)果頁面OrderResult.jsp<html> <head> <title>訂單顯示頁面</title> </head> <body><h1 align="center">訂單預(yù)訂成功頁面</h1> <%request.setCharacterEncoding("utf-8"); String time1=re

37、quest.getParameter("arrive");String time2=request.getParameter("leave"); String name=request.getParameter("name");String shouji=request.getParameter("shouji");String dizhe=request.getParameter("dizhe"); %> 尊敬的用戶 您已經(jīng)成功預(yù)訂!您的信息如下!<br> 預(yù)計到店日期:&l

38、t;%out.println(time1); %><br> 預(yù)計離店日期: <%out.println(time2); %><br> 姓名:<%out.println(name); %><br> 手機號碼:<%out.println(shouji); %><br> 地址:<%out.println(dizhe); %><br>6.Failure.jsp訂單預(yù)訂失敗頁面,可返回房間列表頁面重新預(yù)訂<html> <head> <title>訂單顯示頁

39、面</title> </head><h1 align="center">訂單預(yù)訂顯示頁面</h1> <body>尊敬的用戶 您的預(yù)訂失敗!請重新預(yù)訂!<br> <center> 如果你沒有預(yù)訂 可以點擊<a href="register.html">預(yù)訂</a> </center> </body></html>7.User.java用戶實體類,包括姓名、年齡、性別、地址、電話等屬性package edu.dali

40、;public class User private String name;private String age;private String sex;private String adress;private String phone;private String usertype;public String getName() return name;public void setName(String name) = name;public String getAge() return age;public void setAge(String age) this.

41、age = age;public String getSex() return sex;public void setSex(String sex) this.sex = sex;注:8、9、10這幾個實體類屬性定義與6相類似,不再一一列舉。8.Room.java房間實體類,包括編號、名稱、床型、價格等屬性。9.Order.java訂單實體類,包括聯(lián)系人姓名、聯(lián)系方式、到店時間等信息。10.OrderDetail.java訂單明細實體類,包括房間編號、數(shù)量等信息。11.JdbcDao.java數(shù)據(jù)庫操縱通用類,處理與數(shù)據(jù)庫連接的相關(guān)操作。package Dao;import java.sql.

42、Connection;import java.sql.ResultSet;public class JdbcDao static public Connection getConnection(String url,String root,String pwd)return con;static public int insert(String sql) return 1;static public ResultSet select(String sql)12.UserServlet.java用戶信息控制器,處理用戶登錄13.RoomServlet.java房間信息控制器,處理預(yù)訂信息pack

43、age edu.dali.hotel.servlet;import java.io.IOException;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.*;import javax.servlet.*; import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;impor

44、t javax.servlet.http.HttpSession;import edu.dali.hotel.model.Room;import edu.dali.hotel.service.RoomService;protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException / TODO Auto-generated method stubList<Room> roomList=RoomService.getR

45、oomList();HttpSession session=request.getSession();session.setAttribute("roomList", roomList);response.sendRedirect("./room-list.jsp");14.OrderServlet.java訂單信息控制器package edu.dali.hotel.servlet;import java.io.IOException;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 edu.dali.hotel.service.*;import edu.dali.hotel.model.*;protected void doPos

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論