C程序設(shè)計課程設(shè)計--酒店客房預(yù)訂管理——說明書_第1頁
C程序設(shè)計課程設(shè)計--酒店客房預(yù)訂管理——說明書_第2頁
C程序設(shè)計課程設(shè)計--酒店客房預(yù)訂管理——說明書_第3頁
C程序設(shè)計課程設(shè)計--酒店客房預(yù)訂管理——說明書_第4頁
C程序設(shè)計課程設(shè)計--酒店客房預(yù)訂管理——說明書_第5頁
已閱讀5頁,還剩31頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、C+程序設(shè)計課程設(shè)計酒店客房預(yù)訂管理指導(dǎo)教師:*專業(yè)班級:自動化*班設(shè) 計 者:*、*、*、*設(shè)計時間:2011年*月目 錄一 需求分析3二 組員分工4三 系統(tǒng)總框圖4四 系統(tǒng)軟硬件環(huán)境4五 模塊設(shè)計分析5六 函數(shù)定義及說明12七 使用說明18八 程序源代碼21九 結(jié)束語35十 參考文獻35酒店客房預(yù)訂管理一 需求分析綜述隨著人類社會進入信息時代,計算機越來越多地活躍在社會各個領(lǐng)域:管理,網(wǎng)絡(luò),計算,控制,多媒體等。并且在某些方面成為不可缺少的工具,尤其在管理方面,管理軟件的出現(xiàn)使大量繁瑣復(fù)雜的問題變得簡單易行?,F(xiàn)今酒店賓館的規(guī)模不斷擴大,客戶數(shù)量急劇增加,有關(guān)客戶的各種信息也成倍增長,尤其是

2、大量的客房預(yù)訂信息。面對龐大的信息量,需要有客戶信息管理系統(tǒng)來提高客戶管理工作的效率。通過這樣的系統(tǒng),可以做到信息的規(guī)范管理,科學(xué)統(tǒng)計和快速的查詢,從而減少管理方面的工作量。當前許多酒店正在逐步完善客戶信息管理工作,需要一個能滿足內(nèi)部管理需求,提高管理效率的應(yīng)用系統(tǒng)進行內(nèi)部管理。許多賓館經(jīng)過多年的發(fā)展,規(guī)模不斷擴大,客流量成倍增長,積累了大量的客戶信息急需進行統(tǒng)一管理以防信息的流失。因此,許多賓館需要一個功能全面的客戶信息管理系統(tǒng)來進行管理,以使管理客戶信息的工作在該系統(tǒng)的配合下更加高效和便捷。酒店客房預(yù)訂信息管理系統(tǒng)是一個對客戶全方面管理的程序。該客房預(yù)訂信息管理系統(tǒng)是在Visual C+,

3、以TXT文檔為后臺數(shù)據(jù)庫,采用面向?qū)ο蟮恼Z言開發(fā)而成,實現(xiàn)對客戶預(yù)訂信息的基本管理,包括客房信息、客戶信息的添加,修改和查詢。該系統(tǒng)充分考慮用戶的操作簡便性,實現(xiàn)快捷操作。它有以下幾個功能:(1)客房設(shè)置:可以添加新客房,修改客房描述(房間等級,內(nèi)部設(shè)施等),刪除客房。(2)客戶設(shè)置:可以添加新客戶,修改客戶信息,刪除已退訂客戶等??蓽蚀_了解每一客戶的預(yù)訂信息。(3)房間預(yù)訂情況查詢:可按客戶號、房號查詢。方便實用,在眾多房間、客戶中準確查詢到某一個房間或客戶。二 組員分工封面設(shè)計:*程序設(shè)計:*、*、*、*程序勘誤:*、*報告編寫:*、*、*小組組長:*三 系統(tǒng)總框圖設(shè)計一個程序來實現(xiàn)酒店客

4、房預(yù)訂的管理,該程序應(yīng)該包含信息錄入、輸出、修改、刪除和查詢等功能模塊。本程序各功能模塊結(jié)構(gòu)總框圖如下:四 系統(tǒng)軟硬件環(huán)境WindowsXP、Visual C+6.0、CPU(pentium4 2.4Hz)、內(nèi)存(256MB)、硬盤(80G)五 模塊設(shè)計分析本程序共有五大功能模塊:新建模塊、更改模塊、刪除模塊、查詢模塊和顯示模塊。各模塊在功能上互相補充,在程序中互相融合,才能實現(xiàn)一個具有多種功能的管理系統(tǒng)。(1)新建模塊:實現(xiàn)所有客房、訂房客戶的錄入工作。(2)更改模塊:提供數(shù)據(jù)的修改,包括客戶姓名、客房描述等。(3)刪除模塊:將已退訂的客戶從數(shù)據(jù)庫中刪除。(4)查詢模塊:本程序最重要的模塊,

5、也是本系統(tǒng)的精髓所在。通過房間號或客戶號實現(xiàn)客房的預(yù)訂情況以及客戶入住情況的查詢工作。(5)顯示模塊:顯示所有客房、訂房客戶的基本信息。在程序設(shè)計上,我們的目標就是先實現(xiàn)單個模塊,進而實現(xiàn)整個程序。本程序正是本著這種思想,一步一步,有條不紊的進行規(guī)劃與設(shè)計。本程序通過四個類:客戶類、客戶庫類、客房類、客房庫類,并通過主函數(shù)調(diào)用類函數(shù)實現(xiàn)了這五大功能模塊的功能。五大功能模塊的實現(xiàn)客戶類:class customer private:int tag; /刪除標記 1:已刪 0:未刪int no; /客戶編號char name10; /客戶姓名int borbookMaxbor; /所訂房間 pub

6、lic:customer() char *getname() return name;/獲取姓名int gettag() return tag; /獲取刪除標記int getno() return no; /獲取客戶編號 void setname(char na) /設(shè)置姓名 strcpy(name,na);void delbook() tag=1; /設(shè)置刪除標記 1:已刪 0:未刪void addcustomer(int n,char *na) /增加客戶 tag=0;no=n;strcpy(name,na);for(int i=0;iMaxbor;i+)borbooki=0;void b

7、orrowbook(int bookid) /預(yù)訂操作for(int i=0;iMaxbor;i+) if (borbooki=0)borbooki=bookid;return;int retbook(int bookid) /退訂操作 for(int i=0;iMaxbor;i+) if(borbooki=bookid)borbooki=0;return 1;return 0;void disp() /讀出客戶信息 cout setw(5) no setw(10) namet 客房編號:;for(int i=0;iMaxbor;i+)if(borbooki!=0)cout borbooki;

8、cout endl;客戶庫類:class RDatabase private: int top; /客戶記錄指針 customer readMaxr; /客戶記錄public:RDatabase() /構(gòu)造函數(shù),將customer.txt讀到read中customer s;top=-1;fstream file(customer.txt,ios:in); /打開一個輸入文件while (1)file.read(char *)&s,sizeof(s);if (!file)break;top+;readtop=s; void clear() /刪除所有客戶信息top=-1;int addcusto

9、mer(int n,char *na) /添加客戶時先查找是否存在customer *p=query(n);if (p=NULL) top+; readtop.addcustomer(n,na); return 1;return 0;customer *query(int customerid) /按編號查找for (int i=0;i=top;i+)if (readi.getno()=customerid & readi.gettag()=0)return &readi;return NULL;void disp() /輸出所有客戶信息 for (int i=0;i=top;i+) read

10、i.disp();void customerdata(); /客戶庫維護fstream file(customer.txt,ios:out); for (int i=0;i=top;i+)if (readi.gettag()=0)file.write(char *)&readi,sizeof(readi);file.close();客房類:class Bookprivate: int tag; /刪除標記 1:已刪 0:未刪int no; /客房編號char name20; /客房描述int onshelf; /是否預(yù)訂 1:空房 2:已預(yù)訂public:Book()char *getname

11、() return name; /獲取姓名int getno() return no; /獲取客房編號int gettag() return tag; /獲取刪除標記void setname(char na) /設(shè)置客房描述strcpy(name,na);void delbook() tag=1; /刪除客房void addbook(int n,char *na) /增加客房tag=0;no=n;strcpy(name,na);onshelf=1;int borrowbook() /預(yù)訂操作if (onshelf=1)onshelf=0;return 1;return 0;void retbo

12、ok() /退訂操作onshelf=1;void disp() /輸出客房cout setw(6) no setw(18) name setw(10)(onshelf=1? 空房:已預(yù)訂) endl;客房庫類:class BDatabaseprivate: int top; /客房記錄指針Book bookMaxb; /客房記錄public:BDatabase() /構(gòu)造函數(shù),將book.txt讀到book中 Book b;top=-1;fstream file(book.txt,ios:in);while (1)file.read(char *)&b,sizeof(b);if (!file)

13、 break;top+;booktop=b;file.close(); void clear() /全刪top=-1; int addbook(int n,char *na) /增加客房Book *p=query(n);if (NULL=p)top+;booktop.addbook(n,na);return 1;return 0;Book *query(int bookid) /查找客房for (int i=0;i=top;i+)if (booki.getno()=bookid &booki.gettag()=0)return &booki;return NULL;void bookdata(

14、); /客房庫維護void disp() for (int i=0;i=top;i+) if (booki.gettag()=0) booki.disp();fstream file(book.txt,ios:out); for (int i=0;i=top;i+)if (booki.gettag()=0)file.write(char *)&booki,sizeof(booki);file.close();六 函數(shù)定義及說明主函數(shù)void main() char choice;int bookid,customerid;RDatabase customerDB;customer *r;BDa

15、tabase BookDB;Book *b;while(choice!=0) cout endlendltt 酒 店 客 房 預(yù) 訂 管 理nnn;cout ttt1 訂 房nnttt2 退 訂nnttt3 客 房 信 息nnttt4 客 戶 信 息nnttt0 退 出 choice;switch (choice)case 1:cout customerid;cout bookid;r=customerDB.query(customerid);/按編號查找if (NULL=r)cout 不存在的客戶,不能預(yù)訂 endl;break;b=BookDB.query(bookid);if (b=NU

16、LL)cout 不存在的客房,不能預(yù)訂borrowbook()=0)cout 該客房已預(yù)訂,不能預(yù)訂borrowbook(b-getno();break;case 2:coutcustomerid;cout bookid;r=customerDB.query(customerid);if (r=NULL)cout 不存在的客戶,不能退訂 endl;break;b=BookDB.query(bookid);if (b=NULL)cout 不存在的客房,不能退訂 retbook();r-retbook(b-getno();break;case 3:BookDB.bookdata();break;c

17、ase 4: customerDB.customerdata(); break;default:cout正在寫入數(shù)據(jù)庫.謝謝使用!;void RDatabase:customerdata() char choice;char rname20;int customerid;customer *r;while (choice!=0) cout nnttt客 戶 信 息nnnttt1 新 增nnttt2 更 改nnttt3 刪 除nnttt4 查 找nnttt5 顯 示nnttt6 全 刪nnttt0 返 回 choice;switch (choice) case 1:cout customerid

18、;cout rname;addcustomer (customerid,rname);break; case 2:cout customerid;r=query(customerid);if (r=NULL)cout 該客戶不存在 endl; break;cout rname;r-setname(rname); break; case 3: cout customerid;r=query(customerid);if (r=NULL) cout 該客戶不存在 delbook();break;case 4:cout customerid;r=query(customerid);if (r=NUL

19、L)cout 該客戶不存在disp();break;case 5:disp();break;case 6:clear();break;default:cout正在返回主界面.;break;void BDatabase:bookdata() char choice;char bname40;int bookid;Book *b;while (choice!=0)cout nnnttt客 房 信 息 endlendl;coutnttt1 新 增nnttt2 更 改nnttt3 刪 除nnttt4 查 找nnttt5 顯 示nnttt6 全 刪nnttt0 返 回 choice;switch (ch

20、oice) case 1:cout bookid; cout bname;addbook(bookid,bname);break; case 2:cout bookid;b=query(bookid);if (b=NULL)cout 該客房不存在 endl; break;cout bname;b-setname(bname); break; case 3: cout bookid;b=query(bookid);if (b=NULL) cout 該客房不存在 delbook();break;case 4:cout bookid;b=query(bookid);if (b=NULL)cout 該

21、客房不存在disp();break;case 5:disp();break;case 6:clear();break;default:cout正在返回主界面.;七 使用說明(1)程序主界面:界面簡潔明了,一目了然,便于操作。選擇數(shù)字0-4進入相應(yīng)功能。(2)客戶信息:主界面選擇4進入客戶信息管理菜單。 1.新增:系統(tǒng)提示輸入客戶號碼、姓名等信息,按要求錄入即可。 2.更改:系統(tǒng)提示輸入要更改的客戶號,輸入后即可更改該客戶的個人信息。 3.刪除:系統(tǒng)提示輸入要刪除的客戶號,輸入后即可刪除該客戶。4.查詢:系統(tǒng)提示輸入要查詢的客戶號,輸入后即可查看該客戶的訂房信息。5.顯示:顯示所有預(yù)訂客戶的個人

22、信息以及預(yù)訂房號。6.全刪:刪除所有客戶。0.返回:返回主界面。(3)客房信息:主界面選擇3進入客房信息管理菜單。 1.新增:系統(tǒng)提示輸入房間號、房間描述等信息,按要求錄入即可。 2.更改:系統(tǒng)提示輸入要更改的房間號,輸入后即可更改該房間的描述信息。3.刪除:系統(tǒng)提示輸入要刪除的房間號,輸入后即可刪除該房間。4.查詢:系統(tǒng)提示輸入要查詢的房間號,輸入后即可查看該房間的預(yù)訂情況。5.顯示:顯示所有房間的描述信息以及預(yù)訂情況。6.全刪:刪除所有房間。0.返回:返回主界面。(4)訂房:主界面選擇1進入訂房功能。(5)退房:主界面選擇2進入退房功能。(6)退出:主界面選擇0退出程序并保存數(shù)據(jù)庫。 八

23、程序源代碼#include #include #include #include /輸入/輸出文件流類using namespace std;const int Maxr=100; /最多的客戶const int Maxb=100; /最多的客房const int Maxbor=5; /每位客戶最多預(yù)訂五間客房/客戶類,實現(xiàn)對客戶的信息的描述class customer private:int tag; /刪除標記 1:已刪 0:未刪int no; /客戶編號char name10; /客戶姓名int borbookMaxbor; /所訂房間 public:customer() char *g

24、etname() return name;/獲取姓名int gettag() return tag; /獲取刪除標記int getno() return no; /獲取客戶編號 void setname(char na) /設(shè)置姓名 strcpy(name,na);void delbook() tag=1; /設(shè)置刪除標記 1:已刪 0:未刪void addcustomer(int n,char *na) /增加客戶 tag=0;no=n;strcpy(name,na);for(int i=0;iMaxbor;i+)borbooki=0;void borrowbook(int bookid)

25、/預(yù)訂操作for(int i=0;iMaxbor;i+) if (borbooki=0)borbooki=bookid;return;int retbook(int bookid) /退訂操作 for(int i=0;iMaxbor;i+) if(borbooki=bookid)borbooki=0;return 1;return 0;void disp() /讀出客戶信息 cout setw(5) no setw(10) namet 客房編號:;for(int i=0;iMaxbor;i+)if(borbooki!=0)cout borbooki;cout endl;/客戶庫類,實現(xiàn)建立客戶

26、的個人資料 class RDatabase private: int top; /客戶記錄指針 customer readMaxr; /客戶記錄public:RDatabase() /構(gòu)造函數(shù),將customer.txt讀到read中customer s;top=-1;fstream file(customer.txt,ios:in); /打開一個輸入文件while (1)file.read(char *)&s,sizeof(s);if (!file)break;top+;readtop=s; void clear() /刪除所有客戶信息top=-1;int addcustomer(int n

27、,char *na) /添加客戶時先查找是否存在customer *p=query(n);if (p=NULL) top+; readtop.addcustomer(n,na); return 1;return 0;customer *query(int customerid) /按編號查找for (int i=0;i=top;i+)if (readi.getno()=customerid & readi.gettag()=0)return &readi;return NULL;void disp() /輸出所有客戶信息 for (int i=0;i=top;i+) readi.disp();

28、void customerdata(); /客戶庫維護fstream file(customer.txt,ios:out); for (int i=0;i=top;i+)if (readi.gettag()=0)file.write(char *)&readi,sizeof(readi);file.close();void RDatabase:customerdata() char choice;char rname20;int customerid;customer *r;while (choice!=0) cout nnttt客 戶 信 息nnnttt1 新 增nnttt2 更 改nntt

29、t3 刪 除nnttt4 查 找nnttt5 顯 示nnttt6 全 刪nnttt0 返 回 choice;switch (choice) case 1:cout customerid;cout rname;addcustomer (customerid,rname);break; case 2:cout customerid;r=query(customerid);if (r=NULL)cout 該客戶不存在 endl; break;cout rname;r-setname(rname); break; case 3: cout customerid;r=query(customerid);

30、if (r=NULL) cout 該客戶不存在 delbook();break;case 4:cout customerid;r=query(customerid);if (r=NULL)cout 該客戶不存在disp();break;case 5:disp();break;case 6:clear();break;default:cout正在返回主界面.;break;/客房類,實現(xiàn)對客房的描述,如客房等級,有無寬帶等class Bookprivate: int tag; /刪除標記 1:已刪 0:未刪int no; /客房編號char name20; /客房描述int onshelf; /是

31、否預(yù)訂 1:空房 2:已預(yù)訂public:Book()char *getname() return name; /獲取姓名int getno() return no; /獲取客房編號int gettag() return tag; /獲取刪除標記void setname(char na) /設(shè)置客房描述strcpy(name,na);void delbook() tag=1; /刪除客房void addbook(int n,char *na) /增加客房tag=0;no=n;strcpy(name,na);onshelf=1;int borrowbook() /預(yù)訂操作if (onshelf=

32、1)onshelf=0;return 1;return 0;void retbook() /退訂操作onshelf=1;void disp() /輸出客房cout setw(6) no setw(18) name setw(10)(onshelf=1? 空房:已預(yù)訂) endl;/客房庫類,實現(xiàn)對客房的管理,如查找、刪除等class BDatabaseprivate: int top; /客房記錄指針Book bookMaxb; /客房記錄public:BDatabase() /構(gòu)造函數(shù),將book.txt讀到book中 Book b;top=-1;fstream file(book.txt,

33、ios:in);while (1)file.read(char *)&b,sizeof(b);if (!file) break;top+;booktop=b;file.close(); void clear() /全刪top=-1; int addbook(int n,char *na) /增加客房Book *p=query(n);if (NULL=p)top+;booktop.addbook(n,na);return 1;return 0;Book *query(int bookid) /查找客房for (int i=0;i=top;i+)if (booki.getno()=bookid &booki.gettag()=0)return &booki;return NULL;void bookdata(); /客房庫維護void disp() for (int i=0;i=top;i+) if (booki.gettag()=0) booki.disp();fstream file(book.txt,ios:out); for (int i=0;i=top;i+)if (booki.gettag()=0)file.write(char *)&booki,sizeof(booki);fi

溫馨提示

  • 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

提交評論