數(shù)據(jù)庫課程設(shè)計報告酒店客房管理.doc_第1頁
數(shù)據(jù)庫課程設(shè)計報告酒店客房管理.doc_第2頁
數(shù)據(jù)庫課程設(shè)計報告酒店客房管理.doc_第3頁
數(shù)據(jù)庫課程設(shè)計報告酒店客房管理.doc_第4頁
數(shù)據(jù)庫課程設(shè)計報告酒店客房管理.doc_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

酒店客房管理系統(tǒng) 本學(xué)期學(xué)習(xí)了數(shù)據(jù)庫系統(tǒng)概論這門課,初步掌握了數(shù)據(jù)庫的一般性知識,獲得了一些基本的數(shù)據(jù)庫操作技能,能夠?qū)?shù)據(jù)庫進(jìn)行一些簡單的操作。結(jié)合上星期學(xué)習(xí)的JAVA基礎(chǔ)這門課,本次課程設(shè)計將通過Java利用Mysql, MyEclipse來做一個實例練習(xí)掌握的知識。1 系統(tǒng)概述1. 系統(tǒng)目標(biāo)采用電腦管理業(yè)務(wù)、財務(wù)等諸多環(huán)節(jié)已成為推動賓館業(yè)迅速發(fā)展的先決條件,賓館客房管理系統(tǒng)是各大中小型賓館所需要使用的一個管理系統(tǒng)。建立起一套功能完善的管理信息系統(tǒng),既能滿足業(yè)務(wù)人員日常處理的需要,增強(qiáng)企業(yè)經(jīng)營全過程的數(shù)字化管理水平;又能滿足管理人員決策分析的需要,提高公司管理層對公司經(jīng)營反饋信息的響應(yīng)速度。本實例將通過使用Mysql, MyEclipse設(shè)計軟件,幫助酒店客房相關(guān)人員快速方便地對客人信息,員工信息進(jìn)行管理。將原本散亂的客人信息系統(tǒng)化,圖形化,建立一個運(yùn)行穩(wěn)定,易于操作的酒店客房管理系統(tǒng),讓工作人員能夠方便快捷地執(zhí)行各項工作。2.具體需求1)功能需求l 系統(tǒng)初始化對系統(tǒng)的基本信息的名稱、編號的初始化,對系統(tǒng)管理員的密碼以及其他系統(tǒng)使用人員的用戶名、權(quán)限、密碼等的設(shè)定。l 客房信息管理實現(xiàn)房間基本信息的增、刪、改、查等的維護(hù)工作。支持根據(jù)房間狀態(tài)是預(yù)訂、入住、空閑等類型進(jìn)行查詢。l 物品信息管理實現(xiàn)客房日常消耗物品信息的增刪改查等維護(hù)工作。支持物品存量查詢、入庫登記、出庫登記。l 員工信息管理實現(xiàn)員工基本信息的增刪改查等維護(hù)工作。支持員工與入住、結(jié)賬、物品出入庫等活動的登記,做到經(jīng)手人負(fù)責(zé)。l 賓館入住管理實現(xiàn)客房預(yù)訂登記,主要是登記客人身份證、手機(jī)號碼、預(yù)訂房間類型和天數(shù)等基本信息,實現(xiàn)入住登記,即根據(jù)登記的客人身份證信息查詢到預(yù)訂的房間,修改房間狀態(tài),收取押金,實現(xiàn)房間調(diào)整,退房結(jié)賬。l 客人消費(fèi)管理實現(xiàn)客房收費(fèi)物品、洗衣費(fèi)、餐飲等服務(wù)項目登記,如果超過押金要及時給出預(yù)警。最后退房時結(jié)算。l 系統(tǒng)安全管理實現(xiàn)對系統(tǒng)數(shù)據(jù)庫進(jìn)行備份和恢復(fù)的功能,以增強(qiáng)系統(tǒng)可靠性,并對系統(tǒng)用戶進(jìn)行權(quán)限管理,以增加系統(tǒng)的安全性。2) 性能需求l 數(shù)據(jù)精確度:查詢時應(yīng)保證查全率,所有相應(yīng)域包含查詢關(guān)鍵字的記錄都應(yīng)能查到;l 時間特性:一般操作的響應(yīng)時間應(yīng)在12s內(nèi);l 適應(yīng)性:Windows2000以上系統(tǒng)均可運(yùn)行3) 系統(tǒng)安全性一個功能完善的酒店客房管理系統(tǒng),除了應(yīng)保證能正常執(zhí)行功能以外,還要具備一定的數(shù)據(jù)保護(hù)能力,以防止人為破壞或自然破壞。為此,要做到以下內(nèi)容:l 要有嚴(yán)格的登錄用戶身份檢查功能,防止非法用戶的登錄l 對各用戶的操作權(quán)限要有嚴(yán)格分工,不能因為分工不清造成數(shù)據(jù)的不安全或損壞。l 對用戶登錄信息進(jìn)行保護(hù),防止泄露l 對用戶提交的數(shù)據(jù)進(jìn)行預(yù)先的完整性檢查,防止垃圾數(shù)據(jù)進(jìn)入數(shù)據(jù)庫。l 保證對數(shù)據(jù)庫增加、刪除、修改等操作的安全執(zhí)行,保持?jǐn)?shù)據(jù)庫中各基本表之間的數(shù)據(jù)完整性。l 另外還要注意網(wǎng)絡(luò)安全和物理安全、數(shù)據(jù)備份等。2 需求分析進(jìn)行系統(tǒng)功能分析及數(shù)據(jù)流圖分析數(shù)據(jù)流程分析就是吧數(shù)據(jù)在組織內(nèi)部的流動情況抽象出來,舍去了具體組織結(jié)構(gòu)、信息載體、處理工作等,單從數(shù)據(jù)流動過程來考察實際業(yè)務(wù)的數(shù)據(jù)處理模式。數(shù)據(jù)流程分析主要包括對信息的流動、傳遞、處理、存儲等的分析。酒店客房管理前廳部預(yù)定入住調(diào)整退房人力資源部員工登記員工入住員工離職采購部新物品添加刪除員工物品出入庫客房部服務(wù)物品項目登記押金預(yù)警客人物品出入新服務(wù)添加刪除DBA操作者信息備份恢復(fù)秘鑰管理以上為數(shù)據(jù)流圖3 數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫結(jié)構(gòu)設(shè)計的好壞對應(yīng)用系統(tǒng)的效率以及實現(xiàn)的效果有很大的影響,一個優(yōu)秀的數(shù)據(jù)庫結(jié)構(gòu)設(shè)計會減少數(shù)據(jù)庫的存儲量,數(shù)據(jù)的完整性和一致性比較高,系統(tǒng)具有較快的響應(yīng)速度,簡化基于此數(shù)據(jù)庫的應(yīng)用程序的實現(xiàn)等。由于數(shù)據(jù)庫設(shè)計的重要性,人們提出了許多數(shù)據(jù)庫結(jié)構(gòu)設(shè)計的技術(shù)。但是這些設(shè)計方法和設(shè)計者的工作經(jīng)驗有很大的關(guān)系。因此要從根本上解決所有數(shù)據(jù)庫結(jié)構(gòu)設(shè)計的問題,需要多實踐,在實踐中積累經(jīng)驗和教訓(xùn),最終成為數(shù)據(jù)庫結(jié)構(gòu)設(shè)計的專家。1. 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計這一設(shè)計階段是在需求分析的基礎(chǔ)上,設(shè)計出能夠滿足用戶需求的各種實體,以及它們之間的關(guān)系,為后面的邏輯結(jié)構(gòu)設(shè)計單下基礎(chǔ)。這個階段不用考慮所采用的數(shù)據(jù)庫管理系統(tǒng)、操作系統(tǒng)類型和機(jī)器類型等問題。這階段可用的工具很多,用的最多的是E-R圖,另外還有許多計算機(jī)輔助工具,如CASE等可以幫助進(jìn)行設(shè)計。在本次設(shè)計中,根據(jù)需求分析的結(jié)果,對系統(tǒng)中涉及到的數(shù)據(jù)進(jìn)行抽象,主要實體有預(yù)訂,入住,客房,服務(wù)項目,客房,庫房,員工,員工物品,權(quán)限等。據(jù)此,畫出酒店客房管理系統(tǒng)的實體-聯(lián)系圖,如圖所示。預(yù)訂手機(jī)姓名違約金身份證房間類型預(yù)訂天數(shù)是服務(wù)項目是房間號服務(wù)項目項目總金額項目數(shù)量項目單價員工物品是庫房物品數(shù)量員工號員工號員工號員工是姓名員工號員工房間號月工資是入住當(dāng)前天數(shù)房間號押金應(yīng)付總金額身份證分房客房房間號備注一天的價格房間狀態(tài)房間類型2. 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計概念結(jié)構(gòu)是獨(dú)立于實際設(shè)計模型的信息結(jié)構(gòu),必須將其轉(zhuǎn)化為邏輯結(jié)構(gòu)后才能進(jìn)行數(shù)據(jù)庫應(yīng)用的設(shè)計。也就是要將概念上的結(jié)構(gòu)轉(zhuǎn)化為Mysql數(shù)據(jù)庫系統(tǒng)所支持的實際數(shù)據(jù)模型。轉(zhuǎn)化原則:l 一個實體型轉(zhuǎn)化為一個關(guān)系模式。l 實體的屬性就是關(guān)系的屬性,實體的碼就是關(guān)系的碼。l 實體間的聯(lián)系:n 1:1,轉(zhuǎn)換為一個獨(dú)立的關(guān)系模式,或與任意一端的關(guān)系模式合并。n 1:N,轉(zhuǎn)換為一個獨(dú)立的關(guān)系模式,或與N端關(guān)系模式合并。n M:N,轉(zhuǎn)換為一個獨(dú)立的關(guān)系模式。l 具有相同碼的關(guān)系模式可合并?;谝陨显瓌t,轉(zhuǎn)換之后的關(guān)系模式集為:n 秘鑰信息(用戶名,秘鑰)n 注冊信息(用戶名,密碼,用戶類型)n 客人信息:(姓名,身份證,手機(jī))n 客人預(yù)訂:(身份證,房間號,房間類型,入住天數(shù),違約金)n 客人入?。海ㄉ矸葑C,房間號,押金,應(yīng)付總金額,目前入住天數(shù))n 客房信息:(房間號,房間類型,房間狀態(tài),房間價格)n 員工信息:(姓名,員工號,員工房間號,月工資)n 庫房存儲:(物品,物品單價,數(shù)量)n 員工物品:(員工號,物品,數(shù)量)n 服務(wù)項目:(服務(wù)物品,服務(wù)單價)n 服務(wù)登記:(房間號,服務(wù)物品,服務(wù)數(shù)量,服務(wù)總價)考慮因素:n 每張表設(shè)置一到兩個主鍵。n 以客人信息表中的身份證為參照目標(biāo),在客人入住表中設(shè)置外鍵。n 以員工信息表中的員工號,庫房存儲表中的物品為參照目標(biāo),在員工物品表中設(shè)置外鍵。n 設(shè)置3個觸發(fā)器,實現(xiàn)當(dāng)向客人預(yù)訂表中插入數(shù)據(jù)時,改客房信息中相應(yīng)客房狀態(tài)為預(yù)訂,當(dāng)向客人入住表插入數(shù)據(jù)時,改客房信息中相應(yīng)客房狀態(tài)為入住,當(dāng)向客人入住表刪除數(shù)據(jù)時,改客房信息中相應(yīng)客房狀態(tài)為空閑。n 設(shè)置觸發(fā)器,實現(xiàn)當(dāng)向庫房存儲表中插入數(shù)據(jù)時,向服務(wù)物品表中插入相應(yīng)數(shù)據(jù)。3. 數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計根據(jù)邏輯模型,為關(guān)系模式選擇存取方法,并設(shè)計關(guān)系,索引等數(shù)據(jù)文件的物理存儲結(jié)構(gòu),如下:/*秘鑰信息 */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),手機(jī) char(16) not null,primary key(身份證);/*客人預(yù)訂 */create table 客人預(yù)訂(身份證 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,應(yīng)付總金額 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);/*服務(wù)項目 */create table 服務(wù)項目(服務(wù)物品 char(30),服務(wù)單價 int not null,primary key(服務(wù)物品);/*服務(wù)登記 */create table 服務(wù)登記(房間號 char(4),服務(wù)物品 char(30),服務(wù)數(shù)量int not null,服務(wù)總價 int not null,foreign key (房間號) references 客房信息(房間號),foreign key (服務(wù)物品) references 服務(wù)項目(服務(wù)物品),check(服務(wù)數(shù)量=0);/*插入倉庫觸發(fā)器 */create trigger 插入倉庫 after insert on 倉庫信息 for each row insert into 服務(wù)項目 values(new.物品,new.單價);/*改變客房狀態(tài)觸發(fā)器1 */create trigger 改變客房狀態(tài)1 after insert on 預(yù)訂信息 for each row update 客房信息 set 房間狀態(tài)=預(yù)訂 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命令行中輸入用戶名,密碼進(jìn)入Mysql,在記事本上寫一句操作,同時在命令行中運(yùn)行一句,確保成功。這樣也可以利用記事本里的語句段快速重建數(shù)據(jù)庫,以便測試使用。數(shù)據(jù)庫建好,所有表創(chuàng)建完畢后,添加初始化的數(shù)據(jù)。Mysql中的數(shù)據(jù)庫創(chuàng)建語句與初始化語句見編碼部分。5 應(yīng)用程序設(shè)計1. 系統(tǒng)功能模塊設(shè)計在系統(tǒng)功能分析的基礎(chǔ)上,設(shè)計系統(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=預(yù)訂 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,標(biāo)準(zhǔn)間,空閑,200);insert into roominfo values(0002,標(biāo)準(zhǔn)間,空閑,200);insert into roominfo values(0003,標(biāo)準(zhǔn)間,空閑,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,標(biāo)準(zhǔn)間,1,20);insert into preorder values(5,0002,標(biāo)準(zhǔn)間,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(打印機(jī),10,15);insert into storage values(訂書機(jī),10,45);insert into staffitem values(000001,自行車,2);insert into staffitem values(000003,梯子,1);insert into staffitem values(000004,訂書機(jī),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) 應(yīng)用程序部分主要代碼連接數(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!(注意,不要導(dǎo)入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)系上傳者。文件的所有權(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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論