計算機09-2朱海曦_第1頁
計算機09-2朱海曦_第2頁
計算機09-2朱海曦_第3頁
計算機09-2朱海曦_第4頁
計算機09-2朱海曦_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、大 連 科 技 學 院軟件工程課程設計(B)題 目 酒店客房管理系統(tǒng) 學生姓名 朱海曦 專業(yè)班級 計算機09-2 指導教師 王立娟 職 稱講 師 所在單位 信息科學系軟件工程教研室 教學部主任 王立娟 完成日期 2012年9月28日課程設計報告單學號姓名朱海曦專業(yè)班級計算機09-2考 核 項 目評分備注1平時工作態(tài)度及遵守紀律情況(10分)2掌握基本理論、關鍵知識、基本技能的程度和閱讀參考資料的水平(10分)3獨立工作能力、綜合運用所學知識分析和解決問題能力及實際工作能力提高的程度(20分)4完成課程設計說明書及軟件的情況與水平(小組分工情況、規(guī)范性、整潔清楚、敘述完整性、思路清晰程度、工作量

2、及實際運行情況和創(chuàng)新性)(60分)總評成績綜 合 評 定:(優(yōu)、良、中、及格、不及格) 指導教師簽字:2012年9月28日目錄1、需求分析12、概要設計23、詳細設計與實現(xiàn)33.1類的設計33.2界面設計43.3系統(tǒng)的登錄的實現(xiàn)43.4信息的添加的實現(xiàn)63.5信息的刪除的實現(xiàn)73.6信息的修改的實現(xiàn)84、系統(tǒng)測試10參考文獻12附錄 部分代碼131、需求分析近年來,賓館業(yè)迅猛發(fā)展,市場的競爭日趨激烈,全面提高賓館的軟件管理水準,已成為賓館業(yè)發(fā)展的當務之急。尤其是對于星級賓館,既需要完成前臺的一些服務工作,還需要完成后臺的管理工作。然而,傳統(tǒng)的人工管理模式已經遠遠不能滿足有效、快捷地處理經營中產

3、生的大量信息數(shù)據(jù)的需要,從而使得企業(yè)決策層無法及時、準確地掌握一線資料,繼而影響對市場進行正確地分析和預測。像沿海城市三星級以上賓館引進外方管理,使小部分賓館管理水準幾乎接近或達到國際水平。但對占80%以上的廣大中小型賓館來說,是難以做到的。因此,欲在競爭中甩開對手,取得優(yōu)勢,必須在經營、管理、產品、服務等方面具備獨到之處。而對賓館的經營狀況起決定作用的是客房的管理。簡單的服務標準已不是制勝的錦囊,只有管理做到最細微之處,才能讓顧客體會到賓館服務的高標準、高質量,而準確、快速、周全往往就是最基本的成功要素。 傳統(tǒng)的管理方法已經不能適應現(xiàn)代社會的需要,因此采用電腦管理業(yè)務、財務等諸多環(huán)節(jié)已成為推

4、動賓館業(yè)迅速發(fā)展的先決條件,賓館客房管理信息系統(tǒng)是各大中小型賓館所需要使用的一個管理系統(tǒng)酒店客房管理系統(tǒng)是根據(jù)某酒店對客房管理的實際情況進行編寫的,主要目的是為了方便酒店對客房的實際情況進行集中的查詢與管理工作,以提高整個酒店的工作。經過電腦及生活中的調查研究,根據(jù)客人的經濟水平和生活理念,客房的類型已趨向于多樣化,有標準房,單人房,VIP間,甚至總統(tǒng)套房。而初步設定通過客房的編號、類型、價格來定位一個客房的管理系統(tǒng)。客房是一個對外服務的內容,為了客人的住宿要求,所以系統(tǒng)需要實現(xiàn)客房信息的錄入、修改和刪除功能??腿藢κS嗫头啃枰M行選擇,系統(tǒng)必須實現(xiàn)相應的查詢、排序和輸出功能,使客人擇優(yōu)而居。

5、主要實現(xiàn)的功能包括:客房信息的錄入、修改、刪除、剩余客房信息查詢、排序、輸出??头啃畔⒖蓪懭胛募?,也可從文件中讀取。客房信息涉及的數(shù)據(jù)有客房編號、客房類型、定房日期、客房內容(設施)、定房有效期等。2、概要設計按照需求分析所得,客房信息系統(tǒng)有以下幾個功能模塊:(1)添加錄入信息模塊;編寫指針摸板,定義臨時的客房間數(shù),包括其各項類的成員,編號,類型,定房日期,價格,客房內容,入住天數(shù)。(2)修改客房信息模塊;讀取保存的客房信息數(shù)據(jù),根據(jù)客房編號查找所需修改的客房信息,然后根據(jù)具體所需,修改成員參數(shù),并保存。(3)刪除客房信息模塊;從保存中的文件中讀取信息,刪除需要刪除的信息,完善現(xiàn)在的客房運作。

6、(4)查詢剩余客房函數(shù);分按編號、類型、價格查詢,這樣可以更具有人性化來選擇所剩余的客房,從而進行日常安排。(5)排序剩余客房模塊;根據(jù)具體所需排序,可以是編號、價格或者類型,本系統(tǒng)中根據(jù)的是客房入住的天數(shù)來排序。(6)輸出剩余客房函數(shù);輸出根據(jù)系統(tǒng)所需排序后的客房信息,本系統(tǒng)中是根據(jù)了客人入住的有效期即天數(shù)來及時了解空出的房間。由上述需求分析可得,系統(tǒng)的功能模塊圖如圖1所示。 錄入客房信息客房的信息管理系統(tǒng)查詢剩余客房信息排序剩余客房信息輸出剩余客房信息保存客房信息修改客房信息刪除客房信息退出系統(tǒng)圖1系統(tǒng)功能模塊3、詳細設計與實現(xiàn)3.1類的設計根據(jù)上述需求分析,有客房類和鏈表類。(1)客房類

7、系統(tǒng)研究客房cGuestroom類中成員: IDSIZE是客房編號,TypeSIZE是客房類型,BookSIZE是定房日期,PriceSIZE是每間客房的價格,StayTimeSIZE是定房的有效期,F(xiàn)unctionSIZE是客房的主要內容(如浴室、衛(wèi)生間、網線等設施),標志flag和構造函數(shù)cGuestroom()。客房類的UML圖如(圖2)所示:class cGuestroom+ IDBUFSIZE:char/ 客房編號+ TypeBUFSIZE:char/客房類型+ BookBUFSIZE:char/定房日期+ FunctionBUFSIZE:char/客房內容+StayTime :in

8、t/定房有效期+ flay :bool/標志+ cGuestroom()/構造函數(shù)初始化 圖2(2)鏈表類在tList類中,有成員:構造函數(shù)tList(),創(chuàng)建鏈表Create(),判斷鏈表是否為空的函數(shù)Empty() const,從尾部插入一個元素的函數(shù)Insert(const T e),返回第i個節(jié)點的函數(shù)GetcNode(int i),在鏈表中查詢某個值的函數(shù)bool Find(const T e),析構函數(shù)tList(),頭節(jié)點head。鏈表類的UML圖如(圖3)所示:tList+tList();+ Create():void +Empty() const:bool +Insert(c

9、onste:T):void +*GetcNode(i:int):cNode +Find(const e:T):bool +tList(); + *head:cNode圖33.2界面設計(1)主界面的設計主界面中顯示客房管理系統(tǒng)的全部信息,客房信息的錄入,客房信息的保存,客房信息的修改,客房信息的刪除,剩余客房的查詢,剩余客房的排序,剩余客房的輸出(2)分界面:客房信息的錄入的設計提示輸入客房編號,客房類型,客人定房日期,客房價格,客房中的主要內容,客房定房的有效期。(3)分界面:客房信息的保存的設計針對第一步客房信息的輸入及以后信息的修改、刪除做一個文件保存。(4)分界面:客房信息的修改的設計

10、提示根據(jù)編號進行客房信息修改,輸入要修改的內容,如不修改的項目就遠洋輸出。(5)分界面:客房信息的刪除的設計提示進入刪除截面,根據(jù)客房編號查找所需刪除的客房信息。(6)分界面:剩余客房信息的查詢的設計在保存完所修改或刪除的客房信息,查詢剩余的客房信息,按提示進入剩余客房查詢界面,有按編號、類型、價格查詢,根據(jù)擁護自主選擇。(7)剩余客房信息的排序的設計按提示進行剩余客房的排序,本系統(tǒng)中是以客人的入住天數(shù)排序,顯示屏幕如圖10所示。(8)分界面:剩余客房信息的輸出的設計在排序完后的剩余客房中,輸出所有客房的信息,以檢驗客房的經營情況。3.3系統(tǒng)的登錄的實現(xiàn)在主函數(shù)中,輸出客房信息系統(tǒng)的各功能提示

11、。選擇需要執(zhí)行功能的序號,由switch判斷和選擇所需要執(zhí)行的功能。int main() tList tListMedic; tListMedic.Create(); /創(chuàng)建鏈表 ReadData(&tListMedic);while(1) coutnn 歡迎使用客房管理系統(tǒng) nn; cout - nn;cout 1.客房信息的錄入 nn;cout 2:客房信息保存nn;cout 3.客房信息的修改 nn;cout 4.客房信息的刪除 nn;cout 5.剩余客房信息的查詢 nn; cout 6.剩余客房信息的排序 nn;cout 7.剩余客房信息的輸出 nn;cout 8.退 出 系 統(tǒng) n

12、n;coutchoose; switch (choose) /用戶選擇 case 1:AddtheGuestroom(&tListMedic); break; /輸入客房信息case 2:SaveData(&tListMedic);break; /客房信息信息保存 case 3:ModifytheGuestroom(&tListMedic); break; /修改客房信息 case 4:DeletetheGuestroom(&tListMedic); break; /刪除客房信息 case 5:FindtheremainGuestroom(&tListMedic); break; /查詢剩余客

13、房信息 case 6:RanktheremainGuestroom(&tListMedic); break; /排序剩余客房信息 case 7:OutputtheremainGuestroom(&tListMedic); break; /輸出剩余客房信息 case 8:exit(0); /退出 default : break; return 0; 在讀取數(shù)據(jù)庫中,可以從以有的文件中讀取數(shù)據(jù)到程序中,避免了程序的重復輸入數(shù)據(jù),有利于后面的信息修改、刪除等功能。讀取數(shù)據(jù)庫:void ReadData(tList *tListMedic) /讀取數(shù)據(jù)庫char bufBUFSIZE; ifstrea

14、m ifile(Guestroom.txt,ios_base:in);/創(chuàng)建一個輸出文件流對象if (!ifile) cerr 讀取時打開文件出錯! Insert(Guestroom);cout讀取數(shù)據(jù)成功!nn;ifile.close(); /關閉文件return;3.4信息的添加的實現(xiàn)客房信息的錄入,創(chuàng)建cGuestroom類和tempGuestroom對象,調用構造函數(shù),輸入客房的房間編號、房間類型、定房日期、房間價格、房間內容及個人的入住有效期,通過Insert函數(shù)實現(xiàn)。void AddtheGuestroom(tList *tListMedic) / 輸入客房函數(shù) cGuestroo

15、m tempGuestroom; /定義臨時客房cout下面開始添加客房信息n;couttempGuestroom.ID; /讀入客房編號couttempGuestroom.Type; /讀入客房類型couttempGuestroom.Book; /讀入定房日期couttempGuestroom.Price; /讀入價格couttempGuestroom.Function; /讀入主要內容couttempGuestroom.StayTime; /讀入入住有效期tempGuestroom.flag=truetListMedic-Insert(tempGuestroom);cout添加成功!n;s

16、ystem(pause);system(cls);3.5信息的刪除的實現(xiàn)刪除客房信息,按要求提示輸入要刪除客房的房間編號,定義一個指向鏈表第一個節(jié)點的指針p。如果指針創(chuàng)建成功,開始用while和if語句實現(xiàn)p指向的節(jié)點的客房編號與存在的客房編號的比較。如果相同,輸出該客房的信息并刪除;如果沒有相同的,提示沒有所查詢的房間。void DeletetheGuestroom(tList *tListMedic) /刪除客房信息 char idBUFSIZE;coutid; /讀取客房編號bool flag=false;int count=0; cNode *p;p=tListMedic-head-n

17、ext;while(p) if(strcmp(p-data.ID,id)=0 & p-data.flag) count+;flag=true;break; p=p-next;if(flag=false) cout對不起,你所查找的客房延長了住房日期!n;/如果不能刪else /如果能刪 count-;cout找到了,該客房的原始信息是:n;coutnn客房編號:data).IDt客房類型:data).Typentt定房日期:data).Bookntt價格:data).Price;coutntt客房的主要內容:data).Functionntt入住有效期:data).StayTime;coutd

18、ata).flag=false;cout該客房的信息刪除成功!n; coutendl;system(pause);system(cls);return;3.6信息的修改的實現(xiàn)按提示輸入要修改的客房的客房編號,定義一個指向鏈表第一個節(jié)點的指針p。如果指針創(chuàng)建成功,開始用while和if語句實現(xiàn)p指向的節(jié)點的客房編號與存在的客房編號的比較。如果相同,提示輸入房間的各個信息;如果沒有相同,提示沒有所查詢的客房。void ModifytheGuestroom(tList *tListMedic) /修改客房信息 char idBUFSIZE; coutid; /讀取客房編號bool flag=fals

19、e; cNode *p;p=tListMedic-head-next;while(p) if(strcmp(p-data.ID,id)=0 & p-data.flag) flag=true;break;p=p-next;if(flag=true) cout找到了,該客房的原始信息是:n;coutnn客房編號:data).IDt客房類型:data).Typentt定房日期:data).Bookntt價格:data).Price;coutntt客房的主要內容:data).Functionntt入住有效期:data).StayTime;coutn下面開始修改該客房的信息:n;cGuestroom t

20、empGuestroom; /定義臨時客房couttempGuestroom.ID; /讀入客房編號couttempGuestroom.Type; /讀入客房類型couttempGuestroom.Book; /讀入定房日期couttempGuestroom.Price; /讀入價格couttempGuestroom.Function; /讀入客房的主要內容couttempGuestroom.StayTime; /讀入入住有效期tempGuestroom.flag=true;p-data=tempGuestroom;cout修改成功!;coutendl;system(pause);system

21、(cls);return;4、系統(tǒng)測試本系統(tǒng)用戶界面:圖4 登陸系統(tǒng)輸入入住的客房編號:1輸入客房類型:hj輸入客人的訂房信息:3.4輸入客房價格:108輸入客人方的主要內容:yushi輸入客房入住有效日期:3輸入結果如圖5所示:圖5 錄入客房信息提示根據(jù)編號進行客房信息修改,輸入要修改的內容,如不修改的項目就遠洋輸出??头啃畔⑿薷慕缑嫒鐖D6所示。圖6 修改客房信息在保存完所修改或刪除的客房信息,查詢剩余的客房信息,按提示進入剩余客房查詢界面,有按編號、類型、價格查詢,根據(jù)擁護自主選擇。圖7 查詢客房信息在排序完后的剩余客房中,輸出所有客房的信息,以檢驗客房的經營情況。圖10 輸出剩余客房的信

22、息參考文獻1 陳維興,林小茶.C+面向對象程序設計教程.北京.清華大學出版社2010,102 C+程序設計作者:鄭莉,董淵,張瑞豐 出版社:清華大學出版社 時間:2003/12 3 數(shù)據(jù)結構作者:嚴蔚敏,吳偉民 出版社:清華大學出版社 時間:2006/10附錄 部分代碼void AddtheGuestroom(tList *tListGue)/ 輸入客房函數(shù)cGuestroom tempGuestroom; /定義臨時客房cout下面開始添加客房信息n;couttempGuestroom.ID; /讀入客房編號couttempGuestroom.Type; /讀入客房類型couttempGue

23、stroom.Book; /讀入定房日期couttempGuestroom.Price; /讀入價格couttempGuestroom.Function; /讀入主要內容couttempGuestroom.StayTime; /讀入入住有效期tempGuestroom.flag=true;tListGue-Insert(tempGuestroom);cout添加成功!n;system(pause); /pause:停頓,終止system(cls);void SaveData(tList *tListGue) /保存數(shù)據(jù)int i=0;ofstream ofile(Guestroom.txt,i

24、os_base:out);/創(chuàng)建一個輸入文件流對象if (!ofile) cerr 保存時打開文件出錯! endl; cNode *p;p=tListGue-head-next;while(p) /從內存中讀取數(shù)據(jù),存到外盤if(p-data.flag)ofilen;ofiledata).IDn;ofiledata).Typen;ofiledata).Bookn;ofiledata).Pricen;ofiledata).Functionn;ofiledata).StayTimenext;cout保存數(shù)據(jù)成功!n;ofile.close();system(pause);system(cls);r

25、eturn;void ModifytheGuestroom(tList *tListGue) /修改客房信息char idBUFSIZE;coutid; /讀取客房編號bool flag=false; cNode *p;p=tListGue-head-next;while(p)if(strcmp(p-data.ID,id)=0 & p-data.flag)flag=true;break;p=p-next;if(flag=true) /顯示屏幕cout找到了,該客房的原始信息是:n;coutnn客房編號:data).IDt客房類型:data).Typentt定房日期:data).Bookntt價

26、格:data).Price;coutntt客房的主要內容:data).Functionntt入住有效期:data).StayTime;coutn下面開始修改該客房的信息:n;cGuestroom tempGuestroom; /定義臨時客房couttempGuestroom.ID; /讀入客房編號couttempGuestroom.Type; /讀入客房類型couttempGuestroom.Book; /讀入定房日期couttempGuestroom.Price; /讀入價格couttempGuestroom.Function; /讀入客房的主要內容couttempGuestroom.Sta

27、yTime; /讀入入住有效期tempGuestroom.flag=true;p-data=tempGuestroom;cout修改成功!; coutendl;system(pause);system(cls);return;void DeletetheGuestroom(tList *tListGue) /刪除客房信息char idBUFSIZE;coutid; /讀取客房編號bool flag=false;int count=0; cNode *p;p=tListGue-head-next;while(p)if(strcmp(p-data.ID,id)=0 & p-data.flag)co

28、unt+;flag=true;break;p=p-next;if(flag=false) cout對不起,你所查找的客房延長了住房日期!n;/如果不能刪else /如果能刪 count-;cout找到了,該客房的原始信息是:n;coutnn客房編號:data).IDt客房類型:data).Typentt定房日期:data).Bookntt價格:data).Price;coutntt客房的主要內容:data).Functionntt入住有效期:data).StayTime;coutdata).flag=false;cout該客房的信息刪除成功!n; coutendl;system(pause);

29、system(cls);return;void FindtheremainGuestroomById(tList *tListGue)/根據(jù)客房編號查找char idBUFSIZE;coutid; /讀取客房編號bool flag=false; cNode *p;p=tListGue-head-next;while(p)if(strcmp(p-data.ID,id)=0 & p-data.flag)flag=true;break;p=p-next;if(flag=false) cout對不起,沒有該標號的客房!n; /如果找不到else /如果找到了 coutn找到了,該客房的信息是:n;co

30、utnn客房編號:data).IDt客房類型:data).Typentt定房日期:data).Bookntt價格:data).Price;coutntt主要內容:data).Functionntt入住有效期:data).StayTime; coutendl;system(pause);system(cls); /清屏return;void FindtheremainGuestroom(tList *tListGue)/查找客房system(cls);while(1)coutnnnn;cout 1:按客房編號查詢nn;cout 2:按客房類型查詢nn;cout 3:按價格查詢nn;cout 4:

31、退出查詢nn;coutchoose;switch(choose) /根據(jù)用戶選擇case 1:FindtheremainGuestroomById(tListGue); /按客房編號查詢break;case 2:FindtheremainGuestroomByType(tListGue); /按客房類型查詢break;case 3:FindtheremainGuestroomByPrice(tListGue); /按價格查詢break;case 4:system(cls);return; /退出查詢default:break;return;void RanktheremainGuestroom

32、(tList *tListGue) /排序剩余客房cNode *p,*q;cGuestroom remainGuestroom;for (p=tListGue-head-next; p!= NULL; p=p-next)for (q=p; q!= NULL; q=q-next)if (p-data.StayTime q-data.StayTime)remainGuestroom.flag = p-data.flag; strcpy(remainGuestroom.ID, p-data.ID); /復制strcpy(remainGuestroom.Type, p-data.Type);strcp

33、y(remainGuestroom.Book, p-data.Book); strcpy(remainGuestroom.Price, p-data.Price);strcpy(remainGuestroom.Function, p-data.Function);remainGuestroom.StayTime = p-data.StayTime;p-data.flag = q-data.flag; strcpy(p-data.Function, q-data.Function);strcpy(p-data.ID, q-data.ID); strcpy(p-data.Type, q-data.

34、Type);strcpy(p-data.Book, q-data.Book); p-data.StayTime = q-data.StayTime; q-data.flag = remainGuestroom.flag; strcpy(q-data.Function, remainGuestroom.Function);strcpy(q-data.ID, remainGuestroom.ID);strcpy(q-data.Type, remainGuestroom.Type);strcpy(q-data.Book, remainGuestroom.Book); q-data.StayTime

35、= remainGuestroom.StayTime; void OutputtheremainGuestroom(tList *tListGue) /輸出剩余房間函數(shù)cNode *p;p=tListGue-head-next;while(p)if(p-data.flag)coutnn客房編號:data).IDt客房類型:data).Typentt提前定房日期:data).Bookntt價格:data).Price;coutntt主要內容:data).Functionntt入住有效期:data).StayTime;p=p-next;coutendl;system(pause); /停止system(cls); /清屏

溫馨提示

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

最新文檔

評論

0/150

提交評論