![小型酒店客房管理系統(tǒng)畢業(yè)論文_第1頁(yè)](http://file4.renrendoc.com/view/b67497440bae0b07c12a3a9022c4418d/b67497440bae0b07c12a3a9022c4418d1.gif)
![小型酒店客房管理系統(tǒng)畢業(yè)論文_第2頁(yè)](http://file4.renrendoc.com/view/b67497440bae0b07c12a3a9022c4418d/b67497440bae0b07c12a3a9022c4418d2.gif)
![小型酒店客房管理系統(tǒng)畢業(yè)論文_第3頁(yè)](http://file4.renrendoc.com/view/b67497440bae0b07c12a3a9022c4418d/b67497440bae0b07c12a3a9022c4418d3.gif)
![小型酒店客房管理系統(tǒng)畢業(yè)論文_第4頁(yè)](http://file4.renrendoc.com/view/b67497440bae0b07c12a3a9022c4418d/b67497440bae0b07c12a3a9022c4418d4.gif)
![小型酒店客房管理系統(tǒng)畢業(yè)論文_第5頁(yè)](http://file4.renrendoc.com/view/b67497440bae0b07c12a3a9022c4418d/b67497440bae0b07c12a3a9022c4418d5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
另外,在退房結(jié)賬模塊內(nèi),還存在如下費(fèi)用計(jì)算方法:應(yīng)收金額=住宿費(fèi)用+消費(fèi)金額;實(shí)收金額=應(yīng)收金額-預(yù)收押金。4.4.4更換房間規(guī)則由于客人的住宿習(xí)慣不一樣,有些客人會(huì)在住宿過(guò)程中要求更換客房,例如客人要求換一間光線較好的客房或者空調(diào)房等等,這就要求本系統(tǒng)應(yīng)該具備換房功能。換房時(shí)應(yīng)該注意的問(wèn)題是:為減少住宿費(fèi)用計(jì)算的麻煩,顧客只能更換同類房間,且房?jī)r(jià)不變。換房之后,應(yīng)該對(duì)原客房、目標(biāo)客房的狀態(tài)進(jìn)行調(diào)整。4.4.5單據(jù)編號(hào)設(shè)定規(guī)則在本系統(tǒng)中,入住單號(hào)、預(yù)訂單號(hào)及結(jié)賬單號(hào)的生成方法如下:?jiǎn)螕?jù)編號(hào)=“單據(jù)名稱首字母組合”+“當(dāng)天日期”+“當(dāng)天入住顧客人數(shù)+1”例如:在2007第五章系統(tǒng)總體設(shè)計(jì)5.1系統(tǒng)功能結(jié)構(gòu)通過(guò)系統(tǒng)需求分析可知,本系統(tǒng)可以分為以下若干個(gè)功能模塊:登記入住、客房預(yù)訂、更換房間、退房結(jié)賬、信息查詢、消費(fèi)記賬、營(yíng)業(yè)情況統(tǒng)計(jì)、商品信息設(shè)置、客房信息設(shè)置、用戶管理、數(shù)據(jù)庫(kù)維護(hù)和系統(tǒng)日志。如圖5-1所示。小型酒店管理系統(tǒng)圖5-1系統(tǒng)功能模塊結(jié)構(gòu)圖小型酒店管理系統(tǒng)5.1.1客房預(yù)訂模塊客房預(yù)訂模塊可使顧客在抵店之前就登記好房間,待到達(dá)之后即可辦理入住手續(xù)。該模塊需要完成的功能主要有:(1)輸入預(yù)訂信息。主要包括預(yù)訂單號(hào)、顧客姓名、顧客類型、顧客來(lái)源、公司名稱、聯(lián)系電話、預(yù)訂房數(shù)、預(yù)訂日期等;(2)取消預(yù)訂。取消預(yù)訂單,刪除數(shù)據(jù)庫(kù)中相應(yīng)的記錄;(3)預(yù)訂入住。為已預(yù)訂客房的顧客辦理登記入住,同時(shí)刪除相關(guān)的預(yù)訂信息。(4)更新客房狀態(tài)。將顧客所預(yù)訂客房的狀態(tài)由“空閑”改為“預(yù)訂”。5.1.2登記入住模塊登記入住模塊實(shí)現(xiàn)顧客登記入住功能。可快速完成顧客信息輸入、選擇房間(一次可選擇多個(gè)房間)、收取押金等顧客入住手續(xù)。該模塊的功能主要有:(1)登記入住。輸入顧客開單信息,主要包括入住單號(hào)、主客姓名、證件類型、證件號(hào)碼、性別、公司名稱、聯(lián)系電話、預(yù)收押金等;(2)更新客房狀態(tài)。將顧客所入住客房的狀態(tài)由“空閑”改為“入住”。5.1.3更換房間模塊用戶可根據(jù)顧客的要求更換房間,但只能更換同類房間,且房?jī)r(jià)不變。5.1.4信息查詢模塊在該模塊中按設(shè)定條件查詢店內(nèi)相關(guān)信息,包括入住客人信息、歷史客人信息、預(yù)訂單信息以及顧客賬單信息等,主要功能有:(1)查詢客人信息。包括入住客人信息、預(yù)訂單信息和入住歷史信息;(2)查詢結(jié)賬單信息。包括所有已結(jié)賬顧客的賬單信息。5.1.5消費(fèi)記賬模塊該模塊記錄顧客在店內(nèi)的消費(fèi)信息,包括餐飲、娛樂及零售商品的消費(fèi)情況。該模塊需要完成的功能主要有:(1)添加顧客消費(fèi)記錄。主要包括:入住單號(hào)、商品名稱、商品類型、購(gòu)買價(jià)格、數(shù)量和消費(fèi)金額;(2)消費(fèi)轉(zhuǎn)單。將消費(fèi)記錄由一個(gè)賬單轉(zhuǎn)到另一個(gè)賬單上;(3)消費(fèi)退單。即刪除消費(fèi)記錄,取消商品交易。5.1.6退房結(jié)賬模塊該模塊實(shí)現(xiàn)顧客離店時(shí)的費(fèi)用結(jié)算功能??梢詫?duì)顧客在店期間的住宿費(fèi)用及商品消費(fèi)一次性結(jié)賬。主要包含以下功能:(1)收銀結(jié)賬。輸入結(jié)賬單信息,主要包括結(jié)賬單號(hào)、入住單號(hào)、主客房間、顧客姓名、公司名稱、住宿費(fèi)用等。同時(shí)將入住單相關(guān)記錄轉(zhuǎn)入入住歷史中;(2)可對(duì)特殊顧客進(jìn)行免單操作,“免費(fèi)”賬單所有費(fèi)用清零,結(jié)算狀態(tài)標(biāo)記為“免費(fèi)”;(3)更新客房狀態(tài)。將顧客結(jié)賬客房的狀態(tài)由“入住”改為“空閑”。5.1.7營(yíng)業(yè)狀況統(tǒng)計(jì)模塊該模塊可查詢指定時(shí)間段內(nèi)的營(yíng)業(yè)情況,包括客房收入、各種商品銷售數(shù)量、總銷售金額等,可為酒店管理人員的經(jīng)營(yíng)決策提供參考依據(jù)。5.1.8客房信息設(shè)置模塊該模塊實(shí)現(xiàn)對(duì)酒店客房信息進(jìn)行管理,設(shè)置客房名稱、類型、數(shù)量等信息。系統(tǒng)需要完成的功能主要有:(1)客房類型的輸入、更新和刪除,包括類型名稱、客房?jī)r(jià)格和備注;(2)客房信息的輸入、更新和刪除,包括客房編號(hào)、類型名稱、客房位置、室內(nèi)電話、客房狀態(tài)、客房描述、單據(jù)編號(hào)、備注信息。5.1.9商品信息設(shè)置模塊該模塊實(shí)現(xiàn)對(duì)商品信息的管理,設(shè)置商品類別和庫(kù)存信息。該模塊的功能主要有:(1)商品類型的輸入、更新和刪除,包括類型編號(hào)、商品類型和是否需要服務(wù)生服務(wù);(2)商品信息的輸入、更新和刪除,包括商品編號(hào)、商品名稱、商品類別、商品價(jià)格和商品庫(kù)存數(shù)量。5.1.10房態(tài)管理模塊一般系統(tǒng)可自動(dòng)管理客房狀態(tài),而在該模塊中可查詢或手動(dòng)修改客房狀態(tài)。系統(tǒng)需要完成的功能主要有:(1)查看客房狀態(tài)。一般的客房狀態(tài)包括:空閑、預(yù)訂、入住、自用、維修等;(2)客房狀態(tài)修改??墒謩?dòng)將客房狀態(tài)從一個(gè)狀態(tài)轉(zhuǎn)變?yōu)榱硪粋€(gè)狀態(tài)。5.1.11用戶管理模塊該模塊實(shí)現(xiàn)用戶信息管理,系統(tǒng)將用戶分為超級(jí)用戶和普通用戶兩級(jí)權(quán)限。只有超級(jí)用戶才能使用該模塊,普通用戶無(wú)此權(quán)限。該模塊主要完成添加、修改和刪除用戶信息的功能,包括用戶名稱、密碼、用戶權(quán)限和當(dāng)前狀態(tài)。5.1.12數(shù)據(jù)庫(kù)維護(hù)模塊數(shù)據(jù)庫(kù)的維護(hù)對(duì)于本系統(tǒng)至關(guān)重要,通過(guò)對(duì)于數(shù)據(jù)庫(kù)的清理、備份和還原,既可使系統(tǒng)的維護(hù)工作更加簡(jiǎn)單易用,又可使系統(tǒng)能夠更加安全可靠的運(yùn)行。其主要功能如下:(1)清除指定時(shí)間段內(nèi)或所有營(yíng)業(yè)數(shù)據(jù),包括單據(jù)信息、消費(fèi)記錄和入住歷史信息等;(2)清空所有數(shù)據(jù)庫(kù)表,即刪除所有數(shù)據(jù),包括客房信息;(3)備份和還原數(shù)據(jù)庫(kù),將數(shù)據(jù)庫(kù)備份到用戶指定的路徑或從指定的路徑還原數(shù)據(jù)庫(kù)。5.1.13系統(tǒng)日志模塊系統(tǒng)日志記錄用戶對(duì)于系統(tǒng)數(shù)據(jù)的添加、修改和刪除操作,如客房信息設(shè)置、商品信息設(shè)置和房態(tài)設(shè)置等,而不記錄用戶一般性的營(yíng)業(yè)操作,如登記入住、客房預(yù)訂等。5.2系統(tǒng)流程圖通過(guò)對(duì)系統(tǒng)功能的分析,可得到用戶操作的一般流程,如圖5-2所示。用戶登錄系統(tǒng)時(shí),系統(tǒng)將根據(jù)用戶權(quán)限對(duì)其進(jìn)行相應(yīng)的功能限制。一般普通用戶可擁有前臺(tái)登記、收銀結(jié)賬以及對(duì)商品和客房信息進(jìn)行查詢和設(shè)置的權(quán)限;而超級(jí)用戶除擁有普通用戶的所有權(quán)限外,還可進(jìn)行系統(tǒng)用戶設(shè)置、數(shù)據(jù)庫(kù)維護(hù)和查看系統(tǒng)日志。圖5-2系統(tǒng)流程圖第六章數(shù)據(jù)庫(kù)設(shè)計(jì)6.1數(shù)據(jù)庫(kù)需求分析酒店管理系統(tǒng)需要提供信息的查詢、添加、修改以及刪除等功能。這就要求數(shù)據(jù)庫(kù)能充分滿足各種信息的輸出和輸入。通過(guò)對(duì)上述系統(tǒng)功能的分析,根據(jù)酒店管理系統(tǒng)的需求,總結(jié)出如下的需求信息:1.每個(gè)客房都有唯一的客房編號(hào);2.每個(gè)客房只屬于一種已存在的客房類型,否則為空;3.每種客房類型下可有多個(gè)房間;4.如果一個(gè)客房類型下存在客房,則該類型不可刪除;5.每條入住單下可以有多個(gè)客房;6.每條入住單下可以有多條消費(fèi)記錄;7.每條消費(fèi)記錄只屬于一條入住單;8.每條入住單只生成一條結(jié)賬單;9.每條入住單只生成一條入住歷史記錄;10.每個(gè)商品只屬于一種已存在的商品類別,否則為空;11.每種商品類別下可有多個(gè)商品;12.如果一個(gè)商品類別下存在商品,則該類別不可刪除;13.一個(gè)商品可產(chǎn)生多條消費(fèi)記錄;14.一條消費(fèi)記錄只對(duì)應(yīng)一個(gè)商品。經(jīng)過(guò)對(duì)上述系統(tǒng)功能的分析和需求總結(jié),設(shè)計(jì)如下數(shù)據(jù)項(xiàng):1.客房信息:客房編號(hào)、類型名稱、客房位置、室內(nèi)電話、客房狀態(tài)、客房描述、據(jù)編號(hào)、備注信息。2.客房類型:類型名稱、客房?jī)r(jià)格、備注。3.商品信息:商品編號(hào)、商品名稱、商品類別、商品價(jià)格、庫(kù)存數(shù)量、進(jìn)貨標(biāo)記。4.商品類別:類別編號(hào)、商品類別、是否需要服務(wù)生服務(wù)。5.消費(fèi)記錄:記錄編號(hào)、入住單號(hào)、商品名稱、商品類別、購(gòu)買價(jià)格、購(gòu)買數(shù)量、消費(fèi)金額、購(gòu)買日期。6.入住單:入住單號(hào)、顧客姓名、顧客類型、顧客來(lái)源、證件類型、證件號(hào)碼、性別、公司名稱、聯(lián)系電話、顧客人數(shù)、主房編號(hào)、類型名稱、客房?jī)r(jià)格、入住價(jià)格、折扣比例、預(yù)收金額、抵店時(shí)間、預(yù)住天數(shù)、備注。7.預(yù)訂單:預(yù)訂單號(hào)、顧客姓名、顧客類型、顧客來(lái)源、公司名稱、聯(lián)系電話、預(yù)訂房數(shù)、預(yù)訂日期、預(yù)抵時(shí)間、保留時(shí)間、備注。8.結(jié)賬單:結(jié)賬單號(hào)、入住單號(hào)、顧客姓名、公司名稱、客房編號(hào)、抵店時(shí)間、離店時(shí)間、住宿費(fèi)用、消費(fèi)金額、應(yīng)收金額、預(yù)收金額、實(shí)收金額、結(jié)算狀態(tài)、是否開票、備注信息。9.入住歷史:入住單號(hào)、顧客姓名、性別、顧客類型、顧客來(lái)源、顧客人數(shù)、證件類型、證件號(hào)碼、公司名稱、聯(lián)系電話、主房編號(hào)、類型名稱、客房?jī)r(jià)格、入住價(jià)格、折扣比例、預(yù)收金額、抵店時(shí)間、備注信息、離店時(shí)間。6.2概念結(jié)構(gòu)設(shè)計(jì)概念設(shè)計(jì)用于信息世界的建模,是現(xiàn)實(shí)世界到信息世界的第一層抽象。一般采用實(shí)體-聯(lián)系方法,即E-R圖。根據(jù)數(shù)據(jù)庫(kù)需求分析規(guī)劃出的實(shí)體有:客房類型實(shí)體、客房信息實(shí)體、商品信息類別實(shí)體、商品實(shí)體、消費(fèi)記錄實(shí)體、入住單實(shí)體、預(yù)訂單實(shí)體、結(jié)賬單實(shí)體和入住歷史實(shí)體等。各個(gè)實(shí)體具體的實(shí)體屬性圖如下:客房類型客房?jī)r(jià)格客房類型客房?jī)r(jià)格類型名稱備注圖6-1客房類型實(shí)體屬性圖客房信息客房信息類型名稱客房編號(hào)客房位置室內(nèi)電話客房描述單據(jù)編號(hào)備注信息客房狀態(tài)圖6-2客房信息實(shí)體屬性圖商品類別商品類別商品類別商品類別是否需要服務(wù)生服務(wù)類別編號(hào)圖6-3商品類別實(shí)體屬性圖商品信息商品信息進(jìn)貨標(biāo)記商品名稱商品價(jià)格商品類別商品編號(hào)庫(kù)存數(shù)量圖6-4商品信息實(shí)體屬性圖消費(fèi)記錄記錄編號(hào)消費(fèi)記錄記錄編號(hào)顧客姓名商品類別商品名稱入住單號(hào)購(gòu)買價(jià)格購(gòu)買數(shù)量消費(fèi)金額圖6-5消費(fèi)記錄實(shí)體屬性圖入住單入住單證件類型顧客姓名入住價(jià)格抵店時(shí)間預(yù)住天數(shù)入住單號(hào)…………圖6-6入住單實(shí)體屬性圖在入住單實(shí)體中主要包括以下屬性:入住單號(hào)、顧客姓名、顧客類型、顧客來(lái)源、證件類型、證件號(hào)碼、性別、公司名稱、聯(lián)系電話、顧客人數(shù)、主房編號(hào)、類型名稱、客房?jī)r(jià)格、入住價(jià)格、折扣比例、預(yù)收金額、抵店時(shí)間、預(yù)住天數(shù)、備注等。預(yù)訂單顧客類型預(yù)訂單顧客類型顧客姓名預(yù)抵時(shí)間保留時(shí)間預(yù)訂日期預(yù)訂單號(hào)……圖6-7預(yù)訂單實(shí)體屬性圖在預(yù)訂單實(shí)體中主要包括以下屬性:預(yù)訂單號(hào)、顧客姓名、顧客類型、顧客來(lái)源、公司名稱、聯(lián)系電話、預(yù)訂房數(shù)、預(yù)訂日期、預(yù)抵時(shí)間、保留時(shí)間、備注等。結(jié)賬單號(hào)結(jié)賬單號(hào)結(jié)賬單顧客姓名結(jié)賬單顧客姓名入住單號(hào)消費(fèi)金額離店時(shí)間結(jié)算狀態(tài)……圖6-8結(jié)賬單實(shí)體屬性圖在結(jié)賬單實(shí)體中主要包括以下屬性:結(jié)賬單號(hào)、入住單號(hào)、顧客姓名、公司名稱、客房編號(hào)、抵店時(shí)間、離店時(shí)間、住宿費(fèi)用、消費(fèi)金額、應(yīng)收金額、預(yù)收金額、實(shí)收金額、結(jié)算狀態(tài)、是否開票、備注信息等。入住歷史顧客姓名入住單號(hào)號(hào)入住歷史顧客姓名入住單號(hào)號(hào)入住價(jià)格離店時(shí)間折扣比例……記錄編號(hào)圖6-9入住歷史實(shí)體屬性圖在入住歷史實(shí)體中主要包括以下屬性:記錄編號(hào)、入住單號(hào)、顧客姓名、顧客類型、顧客來(lái)源、證件類型、證件號(hào)碼、性別、公司名稱、聯(lián)系電話、顧客人數(shù)、主房編號(hào)、類型名稱、客房?jī)r(jià)格、入住價(jià)格、折扣比例、預(yù)收金額、抵店時(shí)間、離店時(shí)間、備注信息等。通過(guò)對(duì)各個(gè)實(shí)體及其屬性的描述,我們進(jìn)一步得到各實(shí)體之間的E-R圖,如圖6-10所示。NNNM結(jié)賬單入住歷史1客房信息11屬于商品類別1客房類型屬于結(jié)賬1更新P1生成商品信息111離店111M預(yù)訂單入住消費(fèi)記錄記賬入住單NNNM結(jié)賬單入住歷史1客房信息11屬于商品類別1客房類型屬于結(jié)賬1更新P1生成商品信息111離店111M預(yù)訂單入住消費(fèi)記錄記賬入住單圖6-10實(shí)體E-R圖6.3邏輯結(jié)構(gòu)設(shè)計(jì)根據(jù)數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì),將數(shù)據(jù)庫(kù)概念結(jié)構(gòu)轉(zhuǎn)化為SQLServer2000所支持的實(shí)際數(shù)據(jù)模型,即數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)。其各個(gè)數(shù)據(jù)庫(kù)表的設(shè)計(jì)結(jié)果如下:表6-1客房類型表列名數(shù)據(jù)類型可否為空是否主鍵說(shuō)明類型名稱Varchar(20)NOTNULL是客房類型名稱客房?jī)r(jià)格Money(8)NULL不同類型客房單價(jià)備注Varchar(80)NULL不同類型客房單價(jià)表6-2客房信息表列名數(shù)據(jù)類型可否為空是否主鍵說(shuō)明客房編號(hào)Varchar(12)NOTNULL是客房編號(hào)類型名稱Varchar(20)NOTNULL客房類型名稱客房位置Varchar(20)NULL客房所在位置室內(nèi)電話Numeric(9)NULL客房電話客房狀態(tài)Varchar(10)NULL客房狀態(tài)客房描述Varchar(100)NULL客房環(huán)境描述單據(jù)編號(hào)Varchar(20)NULL單據(jù)標(biāo)記備注信息Varchar(120)NULL客房備注信息表6-3入住單表列名數(shù)據(jù)類型可否為空是否主鍵說(shuō)明入住單號(hào)Varchar(20)NOTNULL是入住單編號(hào)主客姓名Varchar(30)NULL顧客姓名顧客類型Varchar(10)NULL顧客類型顧客來(lái)源Varchar(20)NULL區(qū)分顧客性質(zhì)證件類型Varchar(10)NULL證件類型證件號(hào)碼Varchar(30)NULL身份證件編號(hào)性別Varchar(4)NULL顧客性別公司名稱Varchar(50)NULL顧客所在公司名稱聯(lián)系電話Numeric(9)NULL顧客聯(lián)系電話顧客人數(shù)Int(4)NULL顧客入住人數(shù)主房編號(hào)Varchar(12)NULL主客的房間編號(hào)類型名稱Varchar(20)NULL主客房間的類型客房?jī)r(jià)格Money(8)NULL客房預(yù)定價(jià)格入住價(jià)格Money(8)NULL顧客實(shí)際入住價(jià)格折扣比例Decimal(4,2)NULL客房預(yù)定價(jià)格的折扣預(yù)收金額Money(8)NULL押金抵店時(shí)間Datetime(8)NULL顧客到達(dá)時(shí)間預(yù)住天數(shù)Int(4)NULL顧客預(yù)定入住天數(shù)備注Varchar(80)NULL備注信息表6-4預(yù)訂單表列名數(shù)據(jù)類型可否為空是否主鍵說(shuō)明預(yù)訂單號(hào)Varchar(20)NOTNULL是預(yù)訂單編號(hào)顧客姓名Varchar(30)NULL顧客姓名顧客類型Varchar(10)NULL顧客類型顧客來(lái)源Varchar(20)NULL區(qū)分顧客性質(zhì)公司名稱Varchar(50)NULL顧客所在公司名稱聯(lián)系電話Numeric(9)NULL顧客聯(lián)系電話預(yù)訂房數(shù)Int(4)NULL預(yù)訂房間數(shù)量預(yù)訂日期Datetime(8)NULL預(yù)訂客房的日期預(yù)抵時(shí)間Datetime(8)NULL預(yù)定抵達(dá)時(shí)間保留時(shí)間Datetime(8)NULL客房保留的最后時(shí)間備注Varchar(80)NULL備注信息表6-5結(jié)賬單表列名數(shù)據(jù)類型可否為空是否主鍵說(shuō)明結(jié)賬單號(hào)Varchar(20)NOTNULL是結(jié)帳單編號(hào)入住單號(hào)Varchar(20)NOTNULL入住單編號(hào)顧客姓名Varchar(30)NULL顧客姓名公司名稱Varchar(50)NULL顧客所在公司名稱客房編號(hào)Varchar(12)NULL主客的房間編號(hào)抵店時(shí)間Datetime(8)NULL顧客到達(dá)時(shí)間離店時(shí)間Datetime(8)NULL顧客退房離店時(shí)間住宿費(fèi)用Money(8)NULL住宿費(fèi)用消費(fèi)金額Money(8)NULL顧客在店內(nèi)的消費(fèi)金額應(yīng)收金額Money(8)NULL應(yīng)收金額預(yù)收金額Money(8)NULL已收押金實(shí)收金額Money(8)NULL實(shí)收金額結(jié)算狀態(tài)Varchar(10)NULL結(jié)算狀態(tài)是否開票Bit(8)NULL是否打印單據(jù)備注信息Varchar(100)NULL備注信息表6-6商品信息表列名數(shù)據(jù)類型可否為空是否主鍵說(shuō)明商品編號(hào)Varchar(10)NOTNULL是商品編號(hào)商品名稱Varchar(30)NOTNULL商品名稱商品類別Varchar(20)NULL商品類別商品價(jià)格Money(8)NULL商品預(yù)設(shè)價(jià)格庫(kù)存數(shù)量Int(4)NULL商品庫(kù)存數(shù)量表6-7入住歷史列名數(shù)據(jù)類型可否為空是否主鍵說(shuō)明記錄編號(hào)Int(4)NOTNULL是入住歷史記錄編號(hào)入住單號(hào)Varchar(20)NOTNULL入住單編號(hào)顧客姓名Varchar(30)NULL顧客姓名顧客類型Varchar(10)NULL顧客類型顧客來(lái)源Varchar(20)NULL顧客來(lái)源證件類型Varchar(10)NULL證件類型證件號(hào)碼Varchar(30)NULL身份證件編號(hào)性別Varchar(4)NULL顧客性別公司名稱Varchar(50)NULL顧客所在公司名稱聯(lián)系電話Numeric(9)NULL顧客聯(lián)系電話顧客人數(shù)Int(4)NULL顧客入住人數(shù)主房編號(hào)Varchar(12)NULL主客的房間編號(hào)類型名稱Varchar(20)NULL主客房間的類型客房?jī)r(jià)格Money(8)NULL客房預(yù)定價(jià)格入住價(jià)格Money(8)NULL顧客實(shí)際入住價(jià)格折扣比例Decimal(4,2)NULL客房預(yù)定價(jià)格的折扣預(yù)收金額Money(8)NULL押金抵店時(shí)間Datetime(8)NULL顧客到達(dá)時(shí)間離店時(shí)間Datetime(8)NULL顧客退房離店時(shí)間備注Varchar(80)NULL備注信息表6-8商品類別表列名數(shù)據(jù)類型可否為空是否主鍵說(shuō)明類別編號(hào)Varchar(20)NOTNULL商品類別編號(hào)商品類別Varchar(20)NOTNULL是商品類別名稱是否需要服務(wù)生Varchar(10)NULL是否需要服務(wù)生服務(wù)表6-9消費(fèi)記錄表列名數(shù)據(jù)類型可否為空是否主鍵說(shuō)明記錄編號(hào)Int(4)NOTNULL是消費(fèi)記錄編號(hào)入住單號(hào)Varchar(20)NOTNULL入住單編號(hào)商品名稱Varchar(30)NULL商品名稱商品類別Varchar(20)NULL商品類別購(gòu)買價(jià)格Money(8)NULL商品購(gòu)買價(jià)格購(gòu)買數(shù)量Int(4)NULL商品購(gòu)買數(shù)量消費(fèi)金額Money(8)NULL消費(fèi)金額購(gòu)買日期Datetime(8)NULL顧客消費(fèi)時(shí)間表6-10用戶信息表列名數(shù)據(jù)類型可否為空是否主鍵說(shuō)明用戶名稱Varchar(30)NOTNULL是系統(tǒng)用戶名稱用戶密碼Varchar(20)NULL系統(tǒng)用戶密碼用戶權(quán)限Varchar(10)NOTNULL用戶權(quán)限級(jí)別當(dāng)前狀態(tài)Varchar(10)NOTNULL用戶狀態(tài)表6-11系統(tǒng)日志列名數(shù)據(jù)類型可否為空是否主鍵說(shuō)明操作時(shí)間Datetime(8)NOTNULL是系統(tǒng)用戶操作時(shí)間用戶名稱Varchar(30)NULL系統(tǒng)用戶名稱內(nèi)容摘要Varchar(20)NULL操作內(nèi)容摘要操作內(nèi)容Varchar(80)NULL系統(tǒng)用戶操作情況6.4創(chuàng)建觸發(fā)器本系統(tǒng)在入住單表中使用了一個(gè)觸發(fā)器,實(shí)現(xiàn)的功能是進(jìn)行入住單表記錄刪除操作的同時(shí),將要?jiǎng)h除的信息添加到入住歷史中去。創(chuàng)建觸發(fā)器如下:CREATEtriggerRZD_RZLSon入住單表fordeleteasbegininsertinto入住歷史(入住單號(hào),顧客姓名,性別,顧客類型,顧客來(lái)源,顧客人數(shù),證件類型,證件號(hào)碼,公司名稱,聯(lián)系電話,主房編號(hào),類型名稱,客房?jī)r(jià)格,入住價(jià)格,折扣比例,預(yù)收金額,抵店時(shí)間,備注信息,離店時(shí)間)select入住單號(hào),顧客姓名,性別,顧客類型,顧客來(lái)源,顧客人數(shù),證件類型,證件號(hào)碼,公司名稱,聯(lián)系電話,主房編號(hào),類型名稱,客房?jī)r(jià)格,入住價(jià)格,折扣比例,預(yù)收金額,抵店時(shí)間,備注,離店時(shí)間=getdate()fromdeletedend第七章系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)7.1公共數(shù)據(jù)模塊設(shè)計(jì)用公共模塊來(lái)存放整個(gè)系統(tǒng)中公用的函數(shù)、全局變量等,使系統(tǒng)中的任何窗體模塊都可以調(diào)用其中的函數(shù)、變量,可極大地提高系統(tǒng)開發(fā)的效率和代碼重復(fù)利用率。在本系統(tǒng)中就創(chuàng)建了幾個(gè)這樣的模塊。例如模塊DataUpdate.vb,它可實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的連接,并可對(duì)數(shù)據(jù)庫(kù)表中的數(shù)據(jù)進(jìn)行更新操作。其具體代碼如下:ImportsSystem.Data.SqlClient'命名空間,聲明包含對(duì)SqlServer數(shù)據(jù)庫(kù)的連接ModuleDataUpdatePublicUserNameAsString'用戶名DimcomstrAsStringDimsqlconAsSqlConnection=NewSqlConnection("server=localhost;database=HMIS;uid=sa;pwd=;")'建立連接命令PublicFunctionXTRZ(ByValNRZYAsString,ByValCZNRAsString)AsIntegersqlcon.Open()'打開連接comstr="insertinto系統(tǒng)日志(操作時(shí)間,用戶名稱,內(nèi)容摘要,操作內(nèi)容)VALUES('"&Now&"','"&DataUpdate.UserName&"','"&NRZY&"','"&CZNR&"')"DimsqlcomAsNewSqlCommand(comstr,sqlcon)sqlcom.ExecuteNonQuery()'執(zhí)行sql語(yǔ)句sqlcon.Close()'關(guān)閉連接EndFunctionPublicFunctionDelData(ByValstr1AsString,ByValstr2AsString)AsIntegersqlcon.Open()Ifstr2=""Thencomstr="deletefrom"&str1&""Elsecomstr="deletefrom"&str1&"where"&str2&""EndIfDimsqlcomAsNewSqlCommand(comstr,sqlcon)sqlcom.ExecuteNonQuery()sqlcon.Close()EndFunctionPublicFunctionUpdateData(ByValstr1AsString,ByValstr2AsString,ByValstr3AsString)AsIntegersqlcon.Open()Ifstr3=""Thencomstr="update"&str1&"set"&str2&""Elsecomstr="update"&str1&"set"&str2&"where"&str3&""EndIfDimsqlcomAsNewSqlCommand(comstr,sqlcon)sqlcom.ExecuteNonQuery()sqlcon.Close()EndFunctionEndModule7.2系統(tǒng)窗體構(gòu)架圖7-1系統(tǒng)窗體總構(gòu)架圖圖7-2客房信息設(shè)置窗體構(gòu)架圖圖7-3商品信息設(shè)置窗體構(gòu)架圖7.3系統(tǒng)界面設(shè)計(jì)7.3.1登錄窗體設(shè)計(jì)(1)窗體功能描述本窗體是系統(tǒng)的啟動(dòng)窗體,實(shí)現(xiàn)對(duì)于用戶身份的多重驗(yàn)證功能。具體描述如下:=1\*GB3①用戶合法性驗(yàn)證。首先判斷用戶輸入的用戶名和密碼是否正確,若正確,就進(jìn)入用戶狀態(tài)判定,若錯(cuò)誤;系統(tǒng)便發(fā)出警告信息。系統(tǒng)限定用戶只有三次輸入機(jī)會(huì),三次之后本窗體自動(dòng)關(guān)閉。=2\*GB3②用戶當(dāng)前狀態(tài)判定。系統(tǒng)將用戶的狀態(tài)分為“可用”和“停用”。當(dāng)用戶的合法性得到驗(yàn)證時(shí),則對(duì)用戶的當(dāng)前狀態(tài)進(jìn)行判定。若為“可用”,便進(jìn)行用戶權(quán)限判定;若為“停用”,系統(tǒng)發(fā)出警告信息,禁止用戶登錄。=3\*GB3③用戶權(quán)限判定。即對(duì)于擁有登錄權(quán)限的合法用戶進(jìn)行權(quán)限判定。如果是超級(jí)用戶,將擁有系統(tǒng)的全部功能權(quán)限;如果是普通用戶,則“用戶設(shè)置”,“數(shù)據(jù)庫(kù)維護(hù)”和“系統(tǒng)日志”三個(gè)窗體將被禁用,其相應(yīng)的菜單欄標(biāo)題也將變?yōu)榛疑?。?)窗體設(shè)計(jì)創(chuàng)建一個(gè)名為“LoginForm.vb”的窗體,將Text屬性改為“登錄窗體”。并按圖7-4進(jìn)行界面設(shè)計(jì)。圖7-4系統(tǒng)登錄窗體登錄窗體上所用的控件包括:窗體(Form),圖像(PictureBox),組合框(ComboBox),文本框(TextBox),標(biāo)簽(Label)和按鈕(Button)控件。各控件的屬性設(shè)置從圖7-4中即可看出,這里不做陳述。(3)代碼設(shè)計(jì)=1\*GB3①登錄窗體載入時(shí),利用SqlDataAdapter控件連接數(shù)據(jù)庫(kù),取出用戶信息到數(shù)據(jù)集中。并將所有的用戶名稱添加到Comobox控件中。代碼如下:PrivateSubLoginForm_Load(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMe.LoadSqlDataAdapter1.Fill(DataSetUserInf1)DimiAsIntegerFori=0ToDataSetUserInf1.用戶信息表.Rows.Count-1cbxUserName.Items.Add(DataSetUserInf1.用戶信息表.Rows(i).Item("用戶名稱"))NextEndSub=2\*GB3②輸入用戶名和密碼,點(diǎn)擊確定按鈕即可實(shí)現(xiàn)對(duì)用戶身份的多重驗(yàn)證,代碼如下:DimTimesAsInteger=3PrivateSubOK_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesOK.ClickDimiAsIntegerFori=0ToDataSetUserInf1.用戶信息表.Rows.Count-1IfcbxUserName.Text=DataSetUserInf1.用戶信息表.Rows(i).Item("用戶名稱")AndtxtPassword.Text=DataSetUserInf1.用戶信息表.Rows(i).Item("用戶密碼")ThenIfDataSetUserInf1.用戶信息表.Rows(i).Item("當(dāng)前狀態(tài)")="不可用"ThenMsgBox("該用戶已被停用,請(qǐng)與管理員聯(lián)系!",,"系統(tǒng)警告")ExitSubEndIfIfDataSetUserInf1.用戶信息表.Rows(i).Item("用戶權(quán)限")="普通用戶"ThenMainForm.用戶設(shè)置UToolStripMenuItem.Enabled=FalseMainForm.數(shù)據(jù)庫(kù)維護(hù)WToolStripMenuItem.Enabled=FalseMainForm.系統(tǒng)日志ToolStripMenuItem.Enabled=FalseEndIfDataUpdate.UserName=DataSetUserInf1.用戶信息表.Rows(i).Item("用戶名稱")DataUpdate.XTRZ("登錄系統(tǒng)","")MainForm.Show()Me.Close()ExitSubEndIfNextTimes=Times-1IfTimes<1ThenMsgBox("登陸失敗,請(qǐng)重新啟動(dòng)程序!",,"操作失敗")Me.Close()ElseMsgBox("密碼錯(cuò)誤,你還有"&Times.ToString&"次輸入機(jī)會(huì)!",,"操作失敗")EndIfEndSub7.3.2系統(tǒng)主界面設(shè)計(jì)(1)窗體功能描述本系統(tǒng)主界面設(shè)計(jì)美觀實(shí)用,采用圖形化按鈕和特定風(fēng)格的數(shù)據(jù)表格,酒店中客房經(jīng)營(yíng)情況一目了然,使用戶能夠及時(shí)、準(zhǔn)確的掌握客房營(yíng)銷情況,為顧客提供咨詢服務(wù)。(2)窗體設(shè)計(jì)新建一個(gè)窗體并命名為“MainForm.vb”,并把Text屬性改為“小型酒店管理系統(tǒng)”。打開窗體的界面設(shè)計(jì),在工具箱分別選擇相應(yīng)的控件把窗體設(shè)計(jì)成如圖7-5所示。圖7-5系統(tǒng)主界面主界面主要包括以下控件:標(biāo)簽(Label),文本框(TextBox),按鈕(Button),菜單欄(MenuStrip),工具欄(ToolBar),圖象列表(ImageList),SqldataAdapter控件和DataGrid控件組成。其中菜單欄控件設(shè)計(jì)成如圖7-6所示。圖7-6系統(tǒng)菜單欄(3)代碼設(shè)計(jì)=1\*GB3①主界面載入時(shí),將數(shù)據(jù)庫(kù)中的客房信息顯示到DataGrid表格中,并顯示酒店客房營(yíng)業(yè)的總體情況。代碼如下:PrivateSubMainForm_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.LoadSqlDataAdapter1.Fill(DataSetRoom1)'向數(shù)據(jù)集中添加記錄SqlDataAdapter2.Fill(DataSetYDD1)SqlDataAdapter3.Fill(DataSetRZD1)DimDQRZ,DQYD,DQKG,DQZY,JRDD,JRLDAsIntegerDimZRZLAsDoublelblZFJS.Text=DataSetRoom1.客房信息表.Rows.Count.ToString&""&"間"DimiAsIntegerFori=0ToDataSetRoom1.客房信息表.Rows.Count-1SelectCaseDataSetRoom1.客房信息表.Rows(i).Item(4)Case"入住"DQRZ=DQRZ+1Case"預(yù)訂"DQYD=DQYD+1Case"空閑"DQKG+=1Case"維修"DQZY+=1Case"自用"DQZY+=1EndSelectNextlblDQRZ.Text=DQRZ.ToString&""&"間"lblDQYD.Text=DQYD.ToString&""&"間"lblDQKG.Text=DQKG.ToString&""&"間"lblDQZY.Text=DQZY.ToString&""&"間"ZRZL=DQRZ/DataSetRoom1.客房信息表.Rows.CountlblZRZL.Text=(ZRZL*100).ToString(".##")&"%"Fori=0ToDataSetYDD1.預(yù)訂單表.Rows.Count-1IfMicrosoft.VisualBasic.DateDiff(DateInterval.Day,DataSetYDD1.預(yù)訂單表.Rows(i).Item("預(yù)抵時(shí)間"),Now())=0ThenJRDD+=1EndIfNextlblJRDD.Text=JRDD.ToString&""&"位"…………………lblJRLD.Text=JRLD.ToString&""&"位"EndSub=2\*GB3②單擊菜單中某個(gè)選項(xiàng)時(shí),就彈出相應(yīng)的窗體,代碼如下:PrivateSub登記入住IToolStripMenuItem_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)Handles登記入住IToolStripMenuItem.ClickRentRoomForm.Show()EndSubPrivateSub客房預(yù)訂BToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles客房預(yù)訂BToolStripMenuItem.ClickBookRoomForm.Show()EndSub………………PrivateSub用戶設(shè)置UToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles用戶設(shè)置UToolStripMenuItem.ClickUserInfSetForm.Show()EndSub=3\*GB3③當(dāng)點(diǎn)擊ToolBar控件上的圖象按鈕時(shí),將激活相應(yīng)的功能窗體。代碼如下:PrivateSubToolBar1_ButtonClick(ByValsenderAsObject,ByValeAsSystem.Windows.Forms.ToolBarButtonClickEventArgs)HandlesToolBar1.ButtonClickSelectCaseToolBar1.Buttons.IndexOf(e.Button)Case0RentRoomForm.Show()Case1BookRoomForm.Show()………………Case7EndEndSelectEndSub7.3.3登記入住窗體設(shè)計(jì)(1)窗體功能描述顧客進(jìn)入酒店后,需先到前臺(tái)辦理入住手續(xù)。操作員輸入客人的相關(guān)信息,并根據(jù)顧客的要求選擇相應(yīng)的客房,操作員可手動(dòng)設(shè)定折扣比例,系統(tǒng)會(huì)自動(dòng)計(jì)算客房?jī)r(jià)格,收取一定的入住押金,最后點(diǎn)擊確定按鈕即完成入住手續(xù)的辦理。當(dāng)顧客因故中途取消辦理入住時(shí),為方便操作,節(jié)省時(shí)間,可點(diǎn)擊重置按鈕,則所有輸入框中的信息自動(dòng)清空。最后點(diǎn)擊取消按鈕即可退出登記入住窗體。(2)窗體設(shè)計(jì)新建一個(gè)名“RentRoomForm.vb”的窗體。并利用相關(guān)控件設(shè)計(jì)成如圖7-7所示。圖7-7登記入住窗體登記入住窗體包括以下控件:窗體(Form),標(biāo)簽(Label),組合框(Combobox),文本框(TextBox),按鈕(Button),框架(Panel),GroupBox控件,DataGirdview控件和SqlDataAdapter控件等。(3)代碼設(shè)計(jì)=1\*GB3①由于存在費(fèi)用計(jì)算的問(wèn)題,需要設(shè)定幾個(gè)全局變量,在各事件過(guò)程中進(jìn)行相關(guān)的運(yùn)算操作。DimYSJG,SJJGAsDecimal'預(yù)設(shè)價(jià)格和實(shí)際價(jià)格=2\*GB3②窗體載入時(shí),先將客房信息填充入數(shù)據(jù)集DataSetEmptyRoom1,并將全部記錄添加到客房信息表中。PrivateSubRentRoomForm_Load(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMe.LoadSqlDataAdapter1.Fill(DataSetEmptyRoom1)'顯示空凈房信息DimiAsIntegerFori=0ToDataSetEmptyRoom1.客房信息表.Rows.Count-1DataGridView1.Rows.Insert(0,DataSetEmptyRoom1.Tables("客房信息表").Rows(i).Item(0),DataSetEmptyRoom1.Tables("客房信息表").Rows(i).Item(1),DataSetEmptyRoom1.Tables("客房信息表").Rows(i).Item(2))NextMe.BindingContext(DataSetRZD1,"入住單表").AddNew()'為入住單表添加新行l(wèi)blInNum.Text="RZ"&DJBH.RZD()'顯示入住單號(hào)EndSub=3\*GB3③輸入開單信息之后,點(diǎn)擊確定即添加入住單信息。代碼如下:PrivateSubbtnRentRoomConfirm_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesbtnRentRoomConfirm.ClicklblReachDate.Text=Now'抵店時(shí)間Me.BindingContext(DataSetRZD1,"入住單表").EndCurrentEdit()'將數(shù)據(jù)返回?cái)?shù)據(jù)集SqlDataAdapter2.Update(DataSetRZD1,"入住單表")'更新數(shù)據(jù)并返回?cái)?shù)據(jù)源DimiAsIntegerFori=0ToDataGridView2.Rows.Count-1DataUpdate.UpdateData("客房信息表","客房狀態(tài)='入住',單據(jù)編號(hào)='"&lblInNum.Text&"'","客房編號(hào)='"&DataGridView2.Rows(i).Cells(0).Value&"'")NextMe.Close()EndSub=4\*GB3④下面的代碼實(shí)現(xiàn)要選擇的空閑房間添加到DataGridview2中。PrivateSubbtnAddRoom_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesbtnAddRoom.ClickDataGridView2.Rows.Insert(0,DataGridView1.Rows(DataGridView1.CurrentCell.RowIndex).Cells(0).Value,DataGridView1.Rows(DataGridView1.CurrentCell.RowIndex).Cells(1).Value,DataGridView1.Rows(DataGridView1.CurrentCell.RowIndex).Cells(2).Value)DataGridView1.Rows.RemoveAt(DataGridView1.CurrentRow.Index)'刪除選中行的記錄EndSub7.3.4退房結(jié)賬模塊設(shè)計(jì)(1)窗體功能描述當(dāng)顧客要辦理退房結(jié)賬時(shí),操作員進(jìn)入退房結(jié)賬窗體。系統(tǒng)自動(dòng)生成結(jié)賬單號(hào)。在入住賓客信息表選中要離店顧客的入住單記錄,顧客在店內(nèi)的消費(fèi)記錄便出現(xiàn)在消費(fèi)記錄表之中,且系統(tǒng)會(huì)自動(dòng)計(jì)算住宿費(fèi)用和消費(fèi)金額,顯示出應(yīng)收金額和實(shí)收金額。填入顧客支付金額后,系統(tǒng)會(huì)自動(dòng)計(jì)算出需要找還的金額數(shù)。最后點(diǎn)擊結(jié)賬按鈕便完成了退房結(jié)賬手續(xù)。如果要免除某個(gè)顧客的所有費(fèi)用,只要選中“免費(fèi)”選項(xiàng)框,則實(shí)收金額清零,且結(jié)賬單中的“結(jié)算狀態(tài)”標(biāo)記為“免費(fèi)”。(2)界面設(shè)計(jì)新建窗體并命名為QuitRoomForm,將此窗體設(shè)計(jì)成如圖7-8所示。圖7-8退房結(jié)賬窗體退房結(jié)賬窗體包括以下控件:窗體(Form),標(biāo)簽(Label),組合框(ComboBox),文本框(TextBox),按鈕(Button),框架(Panel),選項(xiàng)框(CheckBox),DataGird控件和SqlDataAdapter控件等。(3)代碼設(shè)計(jì)=1\*GB3①添加全局?jǐn)?shù)據(jù)公共模塊和全局變量,方便事件過(guò)程間的費(fèi)用計(jì)算。代碼如下:DimZSFY,XFJE,YSJE,YSYJ,SSJE,GKZF,ZLAsDecimalPrivateFunctionTimeJudge(ByValjAsDecimal)'時(shí)間判斷函數(shù)Ifj<1ThenIfNow.Hour<18Thenj=0.5Elsej=1EndIfElseIfNow.Hour<12Thenj+=0.5Elsej+=1EndIfEndIfReturnjEndFunctionPrivateSubAccount()'計(jì)算住宿費(fèi)用DataSetRoomInf1.客房信息表.Clear()SqlDataAdapter5.SelectCommand.CommandText="SELECT客房信息表.客房編號(hào),客房類型表.類型名稱,客房類型表.客房?jī)r(jià)格,客房信息表.單據(jù)編號(hào)FROM客房信息表INNERJOIN客房類型表ON客房信息表.類型名稱=客房類型表.類型名稱where單據(jù)編號(hào)='"&DataGrid1.Item(DataGrid1.CurrentRowIndex,0)&"'"SqlDataAdapter5.Fill(DataSetRoomInf1)DimiAsIntegerDimfeeAsDecimal=0DimintervalAsDecimal=0Fori=0ToDataSetRoomInf1.客房信息表.Rows.Count-1IfDataSetRoomInf1.客房信息表.Rows(i).Item(1)="鐘點(diǎn)房"Theninterval=Microsoft.VisualBasic.DateDiff(DateInterval.Hour,DataSetRZD11.入住單表.Rows(DataGrid1.CurrentRowIndex).Item("抵店時(shí)間"),Now())interval=TimeJudge(interval)fee+=interval*DataSetRoomInf1.客房信息表.Rows(i).Item("客房?jī)r(jià)格")Elseinterval=Microsoft.VisualBasic.DateDiff(DateInterval.Day,DataSetRZD11.入住單表.Rows(DataGrid1.CurrentRowIndex).Item("抵店時(shí)間"),Now())interval=TimeJudge(interval)fee+=interval*DataSetRoomInf1.客房信息表.Rows(i).Item("客房?jī)r(jià)格")EndIfNextZSFY=DataSetRZD11.Tables("入住單表").Rows(DataGrid1.CurrentRowIndex).Item("折扣比例")*feeEndSub=2\*GB3②根據(jù)選擇的入住單計(jì)算住宿費(fèi)用和消費(fèi)金額。代碼如下:PrivateSubDataGrid1_MouseClick(ByValsenderAsObject,ByValeAsSystem.Windows.Forms.MouseEventArgs)HandlesDataGrid1.MouseClickZSFY=0'住宿費(fèi)用XFJE=0'消費(fèi)金額YSJE=0'應(yīng)收金額YSYJ=0'已收押金SSJE=0'實(shí)收金額ZL=0'找零lblRZDH.Text=DataSetRZD11.入住單表.Rows(DataGrid1.CurrentRowIndex).Item(0)……………………txtRemarkInf.Text=DataSetRZD11.入住單表.Rows(DataGrid1.CurrentRowIndex).Item(9)Account()'調(diào)用計(jì)算金額過(guò)程DataSetXFJL1.消費(fèi)記錄表.Clear()SqlDataAdapter2.SelectCommand.CommandText="select*from消費(fèi)記錄表where入住單號(hào)='"&lblRZDH.Text&"'"SqlDataAdapter2.Fill(DataSetXFJL1)DimiAsIntegerFori=0ToDataGrid2.VisibleRowCount-1'累計(jì)賓客的消費(fèi)總額XFJE+=DataSetXFJL1.Tables("消費(fèi)記錄表").Rows(i).Item(6)NextYSJE=ZSFY+XFJE'應(yīng)收金額=住宿費(fèi)用+消費(fèi)金額SSJE=YSJE-YSYJ'實(shí)收金額=應(yīng)收金額-已收押金ZL=GKZF-SSJE'找零=顧客支付-實(shí)收金額lblZL.Text=ZL.ToString("c")EndSub=3\*GB3③點(diǎn)擊結(jié)帳按鈕,添加結(jié)賬單信息,刪除入住單信息。代碼如下:PrivateSubbtnJZ_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesbtnJZ.ClickMe.BindingContext(DataSetJZD1,"結(jié)帳單表").EndCurrentEdit()SqlDataAdapter3.Update(DataSetJZD1,"結(jié)帳單表")DataUpdate.UpdateData("客房信息表","客房狀態(tài)='空閑',單據(jù)編號(hào)=''","單據(jù)編號(hào)='"&DataSetRZD11.入住單表.Rows(DataGrid1.CurrentRowIndex).Item(0)&"'")DataUpdate.DelData("消費(fèi)記錄表","入住單號(hào)='"&DataSetRZD11.入住單表.Rows(DataGrid1.CurrentRowIndex).Item(0)&"'")DataUpdate.DelData("入住單表","入住單號(hào)='"&DataSetRZD11.入住單表.Rows(DataGrid1.CurrentRowIndex).Item(0)&"'")DataSetRZD11.入住單表.Rows(DataGrid1.CurrentRowIndex).Delete()SqlDataAdapter2.Update(DataSetXFJL1,"消費(fèi)記錄表")MsgBox("結(jié)帳成功",,"操作成功")Me.Close()EndSub7.3.5數(shù)據(jù)庫(kù)維護(hù)窗體設(shè)計(jì)(1)窗體功能描述本窗體的功能是實(shí)現(xiàn)對(duì)于系統(tǒng)數(shù)據(jù)庫(kù)的維護(hù)功能,可以有效的提高系統(tǒng)內(nèi)數(shù)據(jù)的安全性和可靠性,是本系統(tǒng)中最重要的功能模塊之一。用戶(這里指超級(jí)用戶)可以進(jìn)行如下操作:=1\*GB3①刪除營(yíng)業(yè)數(shù)據(jù)。可刪除指定時(shí)間內(nèi)或所有的營(yíng)業(yè)記錄,包括入住單信息、預(yù)訂單信息、入住歷史、結(jié)帳單信息和消費(fèi)記錄等。=2\*GB3②清空商品信息。刪除商品信息表中的所有商品信息。=3\*GB3③清空所有數(shù)據(jù)庫(kù)表。即對(duì)系統(tǒng)數(shù)據(jù)庫(kù)進(jìn)行全面初始化操作,刪除數(shù)據(jù)庫(kù)內(nèi)的所有數(shù)據(jù)。=4\*GB3④手動(dòng)備份和還原數(shù)據(jù)庫(kù)的功能。在進(jìn)行備份操作時(shí),用戶可自由指定數(shù)據(jù)庫(kù)備份文件的路徑和名稱,點(diǎn)擊備份按鈕即可在指定路徑生成一個(gè)數(shù)據(jù)庫(kù)備份文件。而還原操作時(shí),用戶也可根據(jù)需要選擇某個(gè)數(shù)據(jù)庫(kù)備份文件進(jìn)行還原,表現(xiàn)出了較強(qiáng)的靈活性。(2)界面設(shè)計(jì)創(chuàng)建一個(gè)名為DataBaseForm.vb的窗體,并將此窗體設(shè)計(jì)成如圖7-9所示。圖7-9數(shù)據(jù)庫(kù)維護(hù)窗體該窗體所用到的控件主要包括:窗體(Form),標(biāo)簽(Label),文本框(TextBox),按鈕(Button),框架(Panel),選項(xiàng)框(CheckBox)和GroupBox控件等。(3)代碼設(shè)計(jì)=1\*GB3①點(diǎn)擊確定按鈕,按用戶選定的條件對(duì)數(shù)據(jù)庫(kù)進(jìn)行清理,代碼如下:PrivateSubbtnConfirm_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesbtnConfirm.ClickIfchkZDYYSJ.Checked=TrueThenDataUpdate.UpdateData("客房信息表","客房狀態(tài)='空閑',單據(jù)編號(hào)=''","單據(jù)編號(hào)in(select預(yù)訂單號(hào)from預(yù)訂單表where預(yù)訂日期between'"+dtpStartTime.Value+"'and'"+dtpEndTime.Value+"')")DataUpdate.DelData("預(yù)訂單表","預(yù)訂日期between'"+dtpStartTime.Value+"'and'"+dtpEndTime.Value+"'")…………………IfchkAllYYSJ.Checked=TrueThenDataUpdate.UpdateData("客房信息表","客房狀態(tài)='空閑',單據(jù)編號(hào)=''","單據(jù)編號(hào)in(select預(yù)訂單號(hào)from預(yù)訂單表)")DataUpdate.UpdateData("客房信息表","客房狀態(tài)='空閑',單據(jù)編號(hào)=''","單據(jù)編號(hào)in(select入住單號(hào)from入住單表)")DataUpdate.DelData("消費(fèi)記錄表","")DataUpdate.DelData("預(yù)訂單表","")…………………EndIfIfchkAllData.Checked=TrueThenDataUpdate.DelData("客房信息表","")DataUpdate.DelData("客房類型表","")…………………EndIfMsgBox("數(shù)據(jù)清理完畢!",,"操作成功")EndSub=2\*GB3②點(diǎn)擊備份按鈕,對(duì)數(shù)據(jù)庫(kù)進(jìn)行備份,代碼如下:DimstrsqlAsString'聲明公共變量DimconAsSqlConnectionDimcomAsSqlCommandcon=NewSqlConnection("server=localhost;database=HMIS;uid=sa;pwd=;")PrivateSubbtnBackup_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesbtnBackup.Clickstrsql="backupdatabaseHMIStodisk='"&txtBackupPath.Text&"'"com=NewSqlCommand(strsql,con)con.Open()com.ExecuteNonQuery()con.Close()MsgBox("數(shù)據(jù)庫(kù)備份成功!",,"操作成功")EndSub=3\*GB3③點(diǎn)擊還原按鈕,系統(tǒng)進(jìn)行數(shù)據(jù)庫(kù)的還原操作。代碼如下:PrivateSubbtnRestore_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesbtnRestore.Clickstrsql="restoredatabaseHMISfromdisk='"&txtRestorePath.Tex&"'"com=NewSqlCommand(strsql,con)con.Open()SqlConnection.ClearAllPools()'清空連接池com.ExecuteNonQuery()con.Close()MsgBox("數(shù)據(jù)庫(kù)還原成功!",,"操作成功")EndSub第八章系統(tǒng)測(cè)試與使用說(shuō)明8.1系統(tǒng)測(cè)試與運(yùn)行為了能對(duì)系統(tǒng)進(jìn)行全面的測(cè)試和性能分析,應(yīng)按照系統(tǒng)中各個(gè)模塊性能和功能要求的不同,采用不同的測(cè)試用例,從而盡可能多地發(fā)現(xiàn)本軟件中的錯(cuò)誤,提高軟件的可靠性和安全性。下面對(duì)系統(tǒng)中幾個(gè)比較重要的功能模塊進(jìn)行一些針對(duì)性的測(cè)試。8.1.1對(duì)于登記入住模塊的測(cè)試本模塊要輸入的信息有入住單號(hào)、主客姓名、證件類型、證件號(hào)碼、顧客來(lái)源、顧客類型、性別、公司名稱等。要求其中的某些關(guān)鍵信息必須要完整、準(zhǔn)確的輸入,如顧客姓名,聯(lián)系電話等,以防止因數(shù)據(jù)遺漏而給系統(tǒng)的使用造成障礙。為了檢驗(yàn)本模塊是否可達(dá)到這一要求,在本模塊中當(dāng)輸入的信息中,故意漏掉“聯(lián)系電話”這一字段,系統(tǒng)便發(fā)出警告信息,提示“聯(lián)系電話不能為空”,如圖8-1所示。而當(dāng)填入“聯(lián)系電話”后,點(diǎn)擊確定按鈕,系統(tǒng)提示“登記成功”,如圖8-2所示。由此可知,本模塊能夠?qū)崿F(xiàn)信息完整、準(zhǔn)確的輸入。圖8-1登記入住模塊測(cè)試結(jié)果1圖8-2登記入住模塊測(cè)試結(jié)果28.1.2對(duì)于消費(fèi)記賬模塊的測(cè)試該模塊實(shí)現(xiàn)記錄顧客在店期間的消費(fèi)記錄的功能。不僅要求能夠清晰、準(zhǔn)確的記錄和計(jì)算顧客的消費(fèi)金額,而且必須保證商品銷售和庫(kù)存之間保持正確的關(guān)系,不會(huì)出現(xiàn)商品庫(kù)存不足時(shí),卻仍然可以銷售此商品的情況。進(jìn)行如表8-1所示的分組測(cè)試,其測(cè)試結(jié)果分別如圖8-3、圖8-4所示。由此可知,本模塊滿足上述要求,測(cè)試成功。表8-1消費(fèi)記賬模塊測(cè)試分組測(cè)試分組商品編號(hào)消費(fèi)房間消費(fèi)數(shù)量第一組002BD207100第二組003BD20710圖8-3消費(fèi)記賬模塊的測(cè)試結(jié)果1圖8-4消費(fèi)記賬模塊的測(cè)試結(jié)果28.1.3對(duì)于客房信息設(shè)置模塊的測(cè)試在該模塊中,要求客房信息按照編號(hào)和類型嚴(yán)格區(qū)分,嚴(yán)禁系統(tǒng)中出現(xiàn)兩個(gè)編號(hào)相同的房間或兩種類型名稱相同的客房,否則會(huì)導(dǎo)致數(shù)據(jù)二義性,破壞系統(tǒng)的穩(wěn)定性和安全性。進(jìn)行如圖8-5所示的測(cè)試,當(dāng)試圖添加一個(gè)數(shù)據(jù)庫(kù)表中已存在的客房時(shí),系統(tǒng)發(fā)出操作錯(cuò)誤的提示信息。由此可見,本模塊滿足了這一要求。圖8-5客房信息設(shè)置模塊測(cè)試結(jié)果8.2系統(tǒng)運(yùn)行平臺(tái)1.硬件要求
CPU奔騰=4\*ROMANIV1.3GHz以上,內(nèi)存256Mb以上,硬盤10G以上。2.軟件要求
操作系統(tǒng):Windows2000/XP/2003;數(shù)據(jù)庫(kù)管理系統(tǒng):SQLServer2000或后續(xù)版本;環(huán)境配置:Microsoft.NetFramework2.0。8.3系統(tǒng)使用說(shuō)明由于本系統(tǒng)是基于.NET平臺(tái)開發(fā)的,需要安裝Microsoft.NetFramework2.0才能使用。系統(tǒng)默認(rèn)的超級(jí)用戶名為“admin”,默認(rèn)密碼為“321”。另外,系統(tǒng)在運(yùn)行之前必須要先運(yùn)行SQLSever2000。如果是首次運(yùn)行系統(tǒng),還必須向服務(wù)器中附加數(shù)據(jù)庫(kù)文件(HMIS_Data.MDF)和數(shù)據(jù)庫(kù)日志文件(HMIS_Log.LDF),否則系統(tǒng)將無(wú)法啟動(dòng)。執(zhí)行附加數(shù)據(jù)庫(kù)操作的一般步驟是:打開“企業(yè)管理器”,在控制臺(tái)根目錄中選擇本地服務(wù)器下的“數(shù)據(jù)庫(kù)”目錄,點(diǎn)擊鼠標(biāo)右鍵,在彈出的菜單中選擇“所有任務(wù)”,在彈出的二級(jí)菜單中單擊“附加數(shù)據(jù)庫(kù)”命令。最后按系統(tǒng)提示操作即可完成本系統(tǒng)數(shù)據(jù)庫(kù)的附加操作。結(jié)束語(yǔ)通過(guò)設(shè)計(jì)開發(fā)本系統(tǒng),學(xué)習(xí)到了如何運(yùn)用VisualBasic.NET和MicrosoftSQLServer2000開發(fā)出具有實(shí)用價(jià)值的管理信息系統(tǒng)。在開發(fā)的過(guò)程中,通過(guò)參考一些管理信息系統(tǒng)開發(fā)的相關(guān)書籍,并研究了一些開發(fā)實(shí)例,從中借鑒了很多開發(fā)思路和技巧,使自己進(jìn)一步培養(yǎng)了系統(tǒng)開發(fā)的設(shè)計(jì)思維,對(duì)于系統(tǒng)操作流程、數(shù)據(jù)結(jié)構(gòu)的分析和改造有了進(jìn)一步的認(rèn)識(shí)和體會(huì)。雖然系統(tǒng)實(shí)現(xiàn)了設(shè)計(jì)之初的大部分功能,基本實(shí)現(xiàn)了酒店經(jīng)營(yíng)管理所必須的各種功能,在實(shí)際工作中減少了人力、物力的耗費(fèi)。但由于一開始欠缺系統(tǒng)開發(fā)經(jīng)驗(yàn),沒有較好的從總體把握好系統(tǒng)結(jié)構(gòu)的設(shè)計(jì),導(dǎo)致在開發(fā)過(guò)程中走了一些彎路,部分工作需要返工。此外,還有幾個(gè)重要的功能未能實(shí)現(xiàn),如電話計(jì)費(fèi)、員工管理、財(cái)務(wù)管理等。其它一些輔助性、完善性的功能也未能在畢業(yè)設(shè)計(jì)所限定的時(shí)間內(nèi)實(shí)現(xiàn)。因?yàn)橄到y(tǒng)還在不斷地加入新功能以及修改現(xiàn)有問(wèn)題,所以在系統(tǒng)的測(cè)試部分并沒有詳盡的測(cè)試報(bào)告,而本文中的內(nèi)容也并未能完全表達(dá)整個(gè)系統(tǒng)的功能發(fā)展?fàn)顟B(tài)。本次畢業(yè)設(shè)計(jì),從系統(tǒng)的分析、設(shè)計(jì)、編碼、測(cè)試,自己都動(dòng)腦、動(dòng)手去解決。從而對(duì)軟件開發(fā)過(guò)程有一個(gè)更深的認(rèn)識(shí),同時(shí)也熟悉了基礎(chǔ)知識(shí)的運(yùn)用,受益良多。同時(shí)也出現(xiàn)一些問(wèn)題,需要通過(guò)以后的進(jìn)一步實(shí)踐和學(xué)習(xí)去解決。致謝在本次畢業(yè)設(shè)計(jì)中,曾遇到過(guò)不少問(wèn)題,如果單靠我個(gè)人的努力,很難按時(shí)完成畢業(yè)設(shè)計(jì),在此,我感謝老師的指導(dǎo)和幫助。因?yàn)橛辛死蠋焸兗?xì)心的指導(dǎo)和幫助,才使我的論理水平和動(dòng)手能力都得到了很大提高,積累了更多的軟件開發(fā)方面的經(jīng)驗(yàn)。同時(shí),我還要感謝CSDN技術(shù)社區(qū)()的編程高手們?cè)诰幊碳记珊头椒ǚ矫鎸?duì)于我的幫助,在論壇里我的每一個(gè)疑問(wèn)總能得到滿意的答復(fù),為本系統(tǒng)的開發(fā)和完善提供了極大的支持。參考文獻(xiàn)[1]鄧良松,劉海巖等.軟件工程[M].西安:西安電子科技大學(xué)出版社,2006.[2]薩師煊,王珊.數(shù)據(jù)庫(kù)系統(tǒng)概論[M].北京:高等教育出版社,2005.[3]王改梅,閆宏偉等.VB.NET可視化程序設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2006.[4]廖望,鐘永生等.VB.NET程序設(shè)計(jì)案例教程[M].北京:高等教育出版社,2004.[5]李存斌.數(shù)據(jù)庫(kù)應(yīng)用技術(shù)SQLServer2000簡(jiǎn)明教程[M].北京:中國(guó)水利水電出版社,2001.[6]朱如龍,劉焰.SQLServer數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開發(fā)實(shí)驗(yàn)指導(dǎo)[M].北京:機(jī)械工業(yè)出版社,2004.[7](美)威利斯(Willis,T.),閆英等.VB.NET數(shù)據(jù)庫(kù)入門經(jīng)典[M].北京:清華大學(xué)出版社,2006.11.[8](美)F.ScottBarker,邱仲潘等.VB.NET與ADO.NET數(shù)據(jù)庫(kù)編程[M].北京:機(jī)械工業(yè)出版社,2003.4.[9]彭偉民,唐平,易珺.基于需求的酒店管理系統(tǒng)的建模與實(shí)現(xiàn)[J].微機(jī)發(fā)展,2005,15(6):75-77.[10]易珺,路璐等.構(gòu)建基于CRM理念的中小型酒店管理信息系統(tǒng)[J].計(jì)算機(jī)與數(shù)字工程,2005,33(6):19-22.[11]張艷華.中小型酒店管理信息系統(tǒng)設(shè)計(jì)[J].微機(jī)發(fā)展,2005,15(6):152-154.[12]美萍公司.美萍酒店管理系統(tǒng)./download.htm#mphotel,2007.3.SmallHotelManagementInformationSystemAbstract:Thisgraduationdesignisamanagementinformationsystemthatisdevelopedwithaimingatthecharacteristicsofmediumsmallscaledcabaretbusinessmanagement,allcallasmallscaledcabaretamanagementsystem.Thedesigntargetofsystemistocarryoutcabaretmanagementtomanageofinformation-basedwithautomationresolveasmallscaledcabaretguestgointoliveregister,guestroomtoreserve,guestconsume,backnighttoregisteretc.keyproblemwithinthedailybusinessoftheguesthousecabaret.Thistextsynopsisintroduceditembackgroundandmeaningandemphasizedtoelaboratethesystemdevelopmentcarriesoutprocessandallcarriedonadetailedanalysisanddescriptionfromtheneedanalysis,functionstructureanddatabasedesignetc.KeyWords:SmallHotelManagementInformationSystem;VB.NET;SQLServer2000;ADO.NET基于C8051F單片機(jī)直流電動(dòng)機(jī)反饋控制系統(tǒng)的設(shè)計(jì)與研究HYPERLINK"/detail.htm
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高、低能校正磁鐵合作協(xié)議書
- 部編初中數(shù)學(xué)八年級(jí)下學(xué)期開學(xué)考試卷
- 2025年交配電設(shè)備設(shè)施委托管理協(xié)議(2篇)
- 2025年產(chǎn)權(quán)房屋買賣合同經(jīng)典版(三篇)
- 2025年產(chǎn)品商標(biāo)設(shè)計(jì)委托合同模板(三篇)
- 2025年產(chǎn)品采購(gòu)協(xié)作服務(wù)協(xié)議(2篇)
- 2025年亮化工程施工承包合同經(jīng)典版(三篇)
- 2025年中班幼兒園教師個(gè)人工作心得體會(huì)模版(4篇)
- 2025年產(chǎn)品試用協(xié)議范例(2篇)
- 2025年個(gè)人房屋裝修委托書合同(2篇)
- 招聘專員轉(zhuǎn)正述職報(bào)告
- “一帶一路”背景下的西安市文化旅游外宣翻譯研究-基于生態(tài)翻譯學(xué)理論
- 2024年江蘇省昆山市六校中考聯(lián)考(一模)化學(xué)試題
- 大學(xué)生文學(xué)常識(shí)知識(shí)競(jìng)賽考試題庫(kù)500題(含答案)
- 國(guó)家電網(wǎng)智能化規(guī)劃總報(bào)告
- 邢臺(tái)市橋西區(qū)2024年事業(yè)單位考試《公共基礎(chǔ)知識(shí)》全真模擬試題含解析
- 太原頭腦外賣營(yíng)銷方案
- 2023年寧夏中考物理試題(附答案)
- JBT 7041.1-2023 液壓泵 第1部分:葉片泵 (正式版)
- 2024年浙江首考英語(yǔ)聽力原文解惑課件
- 國(guó)家基層糖尿病防治管理指南(2022)更新要點(diǎn)解讀-1074177503
評(píng)論
0/150
提交評(píng)論