




已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
酒店客房管理系統(tǒng) 本學期學習了數(shù)據(jù)庫系統(tǒng)概論這門課,初步掌握了數(shù)據(jù)庫的一般性知識,獲得了一些基本的數(shù)據(jù)庫操作技能,能夠對數(shù)據(jù)庫進行一些簡單的操作。結合上星期學習的JAVA基礎這門課,本次課程設計將通過Java利用Mysql, MyEclipse來做一個實例練習掌握的知識。1 系統(tǒng)概述1. 系統(tǒng)目標采用電腦管理業(yè)務、財務等諸多環(huán)節(jié)已成為推動賓館業(yè)迅速發(fā)展的先決條件,賓館客房管理系統(tǒng)是各大中小型賓館所需要使用的一個管理系統(tǒng)。建立起一套功能完善的管理信息系統(tǒng),既能滿足業(yè)務人員日常處理的需要,增強企業(yè)經(jīng)營全過程的數(shù)字化管理水平;又能滿足管理人員決策分析的需要,提高公司管理層對公司經(jīng)營反饋信息的響應速度。本實例將通過使用Mysql, MyEclipse設計軟件,幫助酒店客房相關人員快速方便地對客人信息,員工信息進行管理。將原本散亂的客人信息系統(tǒng)化,圖形化,建立一個運行穩(wěn)定,易于操作的酒店客房管理系統(tǒng),讓工作人員能夠方便快捷地執(zhí)行各項工作。2.具體需求1)功能需求l 系統(tǒng)初始化對系統(tǒng)的基本信息的名稱、編號的初始化,對系統(tǒng)管理員的密碼以及其他系統(tǒng)使用人員的用戶名、權限、密碼等的設定。l 客房信息管理實現(xiàn)房間基本信息的增、刪、改、查等的維護工作。支持根據(jù)房間狀態(tài)是預訂、入住、空閑等類型進行查詢。l 物品信息管理實現(xiàn)客房日常消耗物品信息的增刪改查等維護工作。支持物品存量查詢、入庫登記、出庫登記。l 員工信息管理實現(xiàn)員工基本信息的增刪改查等維護工作。支持員工與入住、結賬、物品出入庫等活動的登記,做到經(jīng)手人負責。l 賓館入住管理實現(xiàn)客房預訂登記,主要是登記客人身份證、手機號碼、預訂房間類型和天數(shù)等基本信息,實現(xiàn)入住登記,即根據(jù)登記的客人身份證信息查詢到預訂的房間,修改房間狀態(tài),收取押金,實現(xiàn)房間調整,退房結賬。l 客人消費管理實現(xiàn)客房收費物品、洗衣費、餐飲等服務項目登記,如果超過押金要及時給出預警。最后退房時結算。l 系統(tǒng)安全管理實現(xiàn)對系統(tǒng)數(shù)據(jù)庫進行備份和恢復的功能,以增強系統(tǒng)可靠性,并對系統(tǒng)用戶進行權限管理,以增加系統(tǒng)的安全性。2) 性能需求l 數(shù)據(jù)精確度:查詢時應保證查全率,所有相應域包含查詢關鍵字的記錄都應能查到;l 時間特性:一般操作的響應時間應在12s內(nèi);l 適應性:Windows2000以上系統(tǒng)均可運行3) 系統(tǒng)安全性一個功能完善的酒店客房管理系統(tǒng),除了應保證能正常執(zhí)行功能以外,還要具備一定的數(shù)據(jù)保護能力,以防止人為破壞或自然破壞。為此,要做到以下內(nèi)容:l 要有嚴格的登錄用戶身份檢查功能,防止非法用戶的登錄l 對各用戶的操作權限要有嚴格分工,不能因為分工不清造成數(shù)據(jù)的不安全或損壞。l 對用戶登錄信息進行保護,防止泄露l 對用戶提交的數(shù)據(jù)進行預先的完整性檢查,防止垃圾數(shù)據(jù)進入數(shù)據(jù)庫。l 保證對數(shù)據(jù)庫增加、刪除、修改等操作的安全執(zhí)行,保持數(shù)據(jù)庫中各基本表之間的數(shù)據(jù)完整性。l 另外還要注意網(wǎng)絡安全和物理安全、數(shù)據(jù)備份等。2 需求分析進行系統(tǒng)功能分析及數(shù)據(jù)流圖分析數(shù)據(jù)流程分析就是吧數(shù)據(jù)在組織內(nèi)部的流動情況抽象出來,舍去了具體組織結構、信息載體、處理工作等,單從數(shù)據(jù)流動過程來考察實際業(yè)務的數(shù)據(jù)處理模式。數(shù)據(jù)流程分析主要包括對信息的流動、傳遞、處理、存儲等的分析。酒店客房管理前廳部預定入住調整退房人力資源部員工登記員工入住員工離職采購部新物品添加刪除員工物品出入庫客房部服務物品項目登記押金預警客人物品出入新服務添加刪除DBA操作者信息備份恢復秘鑰管理以上為數(shù)據(jù)流圖3 數(shù)據(jù)庫設計數(shù)據(jù)庫結構設計的好壞對應用系統(tǒng)的效率以及實現(xiàn)的效果有很大的影響,一個優(yōu)秀的數(shù)據(jù)庫結構設計會減少數(shù)據(jù)庫的存儲量,數(shù)據(jù)的完整性和一致性比較高,系統(tǒng)具有較快的響應速度,簡化基于此數(shù)據(jù)庫的應用程序的實現(xiàn)等。由于數(shù)據(jù)庫設計的重要性,人們提出了許多數(shù)據(jù)庫結構設計的技術。但是這些設計方法和設計者的工作經(jīng)驗有很大的關系。因此要從根本上解決所有數(shù)據(jù)庫結構設計的問題,需要多實踐,在實踐中積累經(jīng)驗和教訓,最終成為數(shù)據(jù)庫結構設計的專家。1. 數(shù)據(jù)庫概念結構設計這一設計階段是在需求分析的基礎上,設計出能夠滿足用戶需求的各種實體,以及它們之間的關系,為后面的邏輯結構設計單下基礎。這個階段不用考慮所采用的數(shù)據(jù)庫管理系統(tǒng)、操作系統(tǒng)類型和機器類型等問題。這階段可用的工具很多,用的最多的是E-R圖,另外還有許多計算機輔助工具,如CASE等可以幫助進行設計。在本次設計中,根據(jù)需求分析的結果,對系統(tǒng)中涉及到的數(shù)據(jù)進行抽象,主要實體有預訂,入住,客房,服務項目,客房,庫房,員工,員工物品,權限等。據(jù)此,畫出酒店客房管理系統(tǒng)的實體-聯(lián)系圖,如圖所示。預訂手機姓名違約金身份證房間類型預訂天數(shù)是服務項目是房間號服務項目項目總金額項目數(shù)量項目單價員工物品是庫房物品數(shù)量員工號員工號員工號員工是姓名員工號員工房間號月工資是入住當前天數(shù)房間號押金應付總金額身份證分房客房房間號備注一天的價格房間狀態(tài)房間類型2. 數(shù)據(jù)庫邏輯結構設計概念結構是獨立于實際設計模型的信息結構,必須將其轉化為邏輯結構后才能進行數(shù)據(jù)庫應用的設計。也就是要將概念上的結構轉化為Mysql數(shù)據(jù)庫系統(tǒng)所支持的實際數(shù)據(jù)模型。轉化原則:l 一個實體型轉化為一個關系模式。l 實體的屬性就是關系的屬性,實體的碼就是關系的碼。l 實體間的聯(lián)系:n 1:1,轉換為一個獨立的關系模式,或與任意一端的關系模式合并。n 1:N,轉換為一個獨立的關系模式,或與N端關系模式合并。n M:N,轉換為一個獨立的關系模式。l 具有相同碼的關系模式可合并?;谝陨显瓌t,轉換之后的關系模式集為:n 秘鑰信息(用戶名,秘鑰)n 注冊信息(用戶名,密碼,用戶類型)n 客人信息:(姓名,身份證,手機)n 客人預訂:(身份證,房間號,房間類型,入住天數(shù),違約金)n 客人入住:(身份證,房間號,押金,應付總金額,目前入住天數(shù))n 客房信息:(房間號,房間類型,房間狀態(tài),房間價格)n 員工信息:(姓名,員工號,員工房間號,月工資)n 庫房存儲:(物品,物品單價,數(shù)量)n 員工物品:(員工號,物品,數(shù)量)n 服務項目:(服務物品,服務單價)n 服務登記:(房間號,服務物品,服務數(shù)量,服務總價)考慮因素:n 每張表設置一到兩個主鍵。n 以客人信息表中的身份證為參照目標,在客人入住表中設置外鍵。n 以員工信息表中的員工號,庫房存儲表中的物品為參照目標,在員工物品表中設置外鍵。n 設置3個觸發(fā)器,實現(xiàn)當向客人預訂表中插入數(shù)據(jù)時,改客房信息中相應客房狀態(tài)為預訂,當向客人入住表插入數(shù)據(jù)時,改客房信息中相應客房狀態(tài)為入住,當向客人入住表刪除數(shù)據(jù)時,改客房信息中相應客房狀態(tài)為空閑。n 設置觸發(fā)器,實現(xiàn)當向庫房存儲表中插入數(shù)據(jù)時,向服務物品表中插入相應數(shù)據(jù)。3. 數(shù)據(jù)庫物理結構設計根據(jù)邏輯模型,為關系模式選擇存取方法,并設計關系,索引等數(shù)據(jù)文件的物理存儲結構,如下:/*秘鑰信息 */create table 秘鑰信息(用戶名 char(10),秘鑰 char(10),primary key(秘鑰);/*登錄信息 */create table 注冊信息(用戶名 char(10), 密碼 char(10), 用戶類型 char(10),primary key(用戶名);/*客人信息 */create table 客人信息(姓名 char(20) not null,身份證 char(20),手機 char(16) not null,primary key(身份證);/*客人預訂 */create table 客人預訂(身份證 char(20),房間號 char(4) not null,房間類型 char(6) not null,入住天數(shù) int not null,違約金 int not null,primary key(身份證);/*客人入住 */create table 客人入住(身份證 char(20),房間號 char(4) not null,押金 int not null,應付總金額 int not null,目前入住天數(shù) int not null,primary key(身份證),foreign key (身份證) references 客人信息(身份證),check(Pledge=100);/*客房信息 */create table 客房信息(房間號 char(4),房間類型 char(6) not null,房間狀態(tài) char(4) not null,房間價格 int not null,primary key(房間號);/*員工信息 */create table 員工信息(姓名 char(20) not null,員工號 char(6),員工房間號 char(4),月工資 int not null,primary key(員工號);/*庫房存儲 */create table 庫房存儲(物品 char(30),物品單價 int not null,數(shù)量int not null,primary key(物品);/*員工物品 */create table 員工物品(員工號 char(6),物品 char(30),數(shù)量 int not null,primary key(員工號,Item),foreign key (員工號) references 員工信息(員工號),foreign key (物品) references 庫房存儲(物品),check(數(shù)量=0);/*服務項目 */create table 服務項目(服務物品 char(30),服務單價 int not null,primary key(服務物品);/*服務登記 */create table 服務登記(房間號 char(4),服務物品 char(30),服務數(shù)量int not null,服務總價 int not null,foreign key (房間號) references 客房信息(房間號),foreign key (服務物品) references 服務項目(服務物品),check(服務數(shù)量=0);/*插入倉庫觸發(fā)器 */create trigger 插入倉庫 after insert on 倉庫信息 for each row insert into 服務項目 values(new.物品,new.單價);/*改變客房狀態(tài)觸發(fā)器1 */create trigger 改變客房狀態(tài)1 after insert on 預訂信息 for each row update 客房信息 set 房間狀態(tài)=預訂 where 客房信息.房間號=new.房間號;/*改變客房狀態(tài)觸發(fā)器2 */create trigger 改變客房狀態(tài)2 after insert on 入住信息 for each row update 客房信息 set 房間狀態(tài)=入住 where 客房信息.房間號=new.房間號;/*改變客房狀態(tài)觸發(fā)器3 */create trigger 改變客房狀態(tài)3 after delete on 入住信息 for each row update 客房信息 set 房間狀態(tài)=空閑 where 客房信息.房間號=old.房間號;4 數(shù)據(jù)庫實施在Mysql命令行中輸入用戶名,密碼進入Mysql,在記事本上寫一句操作,同時在命令行中運行一句,確保成功。這樣也可以利用記事本里的語句段快速重建數(shù)據(jù)庫,以便測試使用。數(shù)據(jù)庫建好,所有表創(chuàng)建完畢后,添加初始化的數(shù)據(jù)。Mysql中的數(shù)據(jù)庫創(chuàng)建語句與初始化語句見編碼部分。5 應用程序設計1. 系統(tǒng)功能模塊設計在系統(tǒng)功能分析的基礎上,設計系統(tǒng)功能模塊劃分如下圖。酒店客房管理系統(tǒng)管理員采購部人力資源部客房部前廳部6 源代碼及實現(xiàn)1)Mysql創(chuàng)建數(shù)據(jù)庫以及初始化代碼set names gbk;create database hotel character set UTF8;use hotel;create table code(Usertype char(10),Code char(10),primary key(Code);create table logininfo(Username char(10), Password char(10), Usertype char(10),primary key(Username);create table guestinfo(Gname char(20) not null,Id char(20),Tel char(16) not null,primary key(Id);create table preorder(Id char(20),Rnum char(4) not null,Rtype char(6) not null,Pdays int not null,Absent int not null,primary key(Id);create table checkin(Id char(20),Rnum char(4) not null,Pledge int not null,Gmoney int not null,Ndays int not null,primary key(Id),foreign key (Id) references guestinfo(Id),check(Pledge=100);create table roominfo(Rnum char(4),Rtype char(6) not null,Rstate char(4) not null,Rmoney int not null,primary key(Rnum);create table staffinfo(Sname char(20) not null,SId char(6),SRnum char(4),Mwage int not null,primary key(SId);create table storage(Item char(30),Uprice int not null,Iamount int not null,primary key(Item);create table staffitem(SId char(6),Item char(30),Iamount int not null,primary key(SId,Item),foreign key (SId) references staffinfo(SId),foreign key (Item) references storage(Item),check(Iamount=0);create table servitem(Servitem char(30),Uprice int not null,primary key(Servitem);create table service(Rnum char(4),Servitem char(30),Samount int not null,Servcost int not null,foreign key (Rnum) references roominfo(Rnum),foreign key (Servitem) references servitem(Servitem),check(Samount=0);create trigger insert_into_storage after insert on storage for each row insert into Servitem values(new.Item,new.Uprice);create trigger room_state_change1 after insert on preorder for each row update roominfo set Rstate=預訂 where roominfo.Rnum=new.Rnum;create trigger room_state_change2 after insert on checkin for each row update roominfo set Rstate=入住 where roominfo.Rnum=new.Rnum;create trigger room_state_change3 after delete on checkin for each row update roominfo set Rstate=空閑 where roominfo.Rnum=old.Rnum;insert into guestinfo values(張三,3,333);insert into guestinfo values(李四,4,444);insert into guestinfo values(王五,5,555);insert into guestinfo values(趙六,6,666);insert into guestinfo values(魏七,7,777);insert into guestinfo values(朱八,8,888);insert into guestinfo values(張三一,31,999);insert into guestinfo values(張三二,32,000);insert into roominfo values(1840,套房,空閑,500);insert into roominfo values(1841,套房,空閑,500);insert into roominfo values(1842,套房,空閑,500);insert into roominfo values(0001,標準間,空閑,200);insert into roominfo values(0002,標準間,空閑,200);insert into roominfo values(0003,標準間,空閑,200);insert into roominfo values(0301,單人間,空閑,100);insert into roominfo values(0302,單人間,空閑,100);insert into roominfo values(0303,單人間,空閑,100);insert into roominfo values(1001,三人間,空閑,300);insert into roominfo values(1002,三人間,空閑,300);insert into roominfo values(1003,三人間,空閑,300);insert into roominfo values(1501,大床間,空閑,250);insert into roominfo values(1502,大床間,空閑,250);insert into roominfo values(1503,大床間,空閑,250);insert into preorder values(3,1840,套房,3,20);insert into preorder values(4,0001,標準間,1,20);insert into preorder values(5,0002,標準間,1,20);insert into preorder values(6,1002,三人間,7,20);insert into checkin values(3,1840,100,1500,0);insert into checkin values(4,0001,100,200,0);insert into checkin values(5,0002,100,200,0);insert into staffinfo values(小明,000001,1908,50000);insert into staffinfo values(小剛,000002,1908,50000);insert into staffinfo values(小紅,000003,1908,50000);insert into staffinfo values(小胖,000004,1908,50000);insert into staffinfo values(小瘦,000005,1908,50000);insert into storage values(自行車,10,10);insert into storage values(梯子,10,15);insert into storage values(五金工具箱,10,23);insert into storage values(打印機,10,15);insert into storage values(訂書機,10,45);insert into staffitem values(000001,自行車,2);insert into staffitem values(000003,梯子,1);insert into staffitem values(000004,訂書機,2);insert into servitem values(足療,80);insert into servitem values(理發(fā),30);insert into servitem values(按摩,233);insert into servitem values(洗衣,80);insert into servitem values(餐飲,30);insert into servitem values(睡衣,100);insert into servitem values(香煙,50);insert into service values(1840,足療,2,160);insert into service values(0001,香煙,1,50);insert into logininfo values(1,1,前廳部);insert into logininfo values(2,2,客房部);insert into logininfo values(3,3,人力資源部);insert into logininfo values(4,4,采購部);insert into logininfo values(5,5,管理員);insert into code values(前廳部,111);insert into code values(客房部,222);insert into code values(人力資源部,333);insert into code values(采購部,444);insert into code values(管理員,555);2) 應用程序部分主要代碼連接數(shù)據(jù)庫LoadDriver.javapackage db;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.PreparedStatement;import java.sql.*;/ Notice, do not import com.mysql.jdbc.*/ or you will have problems!(注意,不要導入com.mysql.jdbc.*,否則/ 將出現(xiàn)問題?。﹑ublic class LoadDriver private Connection conn;private PreparedState
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)業(yè)物聯(lián)網(wǎng)精準種植2025年智能農(nóng)業(yè)技術標準與規(guī)范研究報告
- 心肺復蘇真人培訓
- 年底員工獎勵方案(3篇)
- 婦產(chǎn)科護理測試題及答案
- 網(wǎng)絡與信息安全管理員(信息安全管理員)試題庫(含參考答案)
- 農(nóng)村紅點拆除方案(3篇)
- 2025烏蘇市事業(yè)單位考試歷年真題
- 2025南寧市賓陽縣事業(yè)單位考試歷年真題
- 2025合肥市事業(yè)單位考試歷年真題
- 2025佛山市禪城區(qū)事業(yè)單位考試歷年真題
- 醫(yī)學裝備科管理人員崗位職責工作職責和任務
- 技術規(guī)范書【模板】
- 實驗室改造施工合同
- 四大名著文學常識單選題100道及答案解析
- 物業(yè)管理師三級實操案例題
- 新教科版二年級科學下冊全冊教案
- 血液系統(tǒng)疾病智慧樹知到答案2024年哈爾濱醫(yī)科大學附屬第一醫(yī)院
- 遼寧省沈陽市沈北新區(qū)2024屆小升初考試數(shù)學試卷含解析
- 南京市指導服務企業(yè)安全生產(chǎn)工作指引-加油站現(xiàn)場安全重點檢查指引分冊
- AQ/T 2077-2020 頁巖氣井獨立式帶壓作業(yè)機起下管柱作業(yè)安全技術規(guī)范(正式版)
- 【8物(滬科版)】合肥市第四十五中學2023-2024學年八年級下學期期末物理試題
評論
0/150
提交評論