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

下載本文檔

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

文檔簡介

1、C+程序設計課程設計酒店客房預訂管理指導教師:*專業班級:自動化*班設 計 者:*、*、*、*設計時間:2021年*月目 錄一 需求分析······································

2、3;·3二 組員分工········································4三 系統總框圖······&

3、#183;·······························4四 系統軟硬件環境················

4、83;·················4五 模塊設計分析·······························

5、·····5六 函數定義及說明··································12七 使用說明········

6、································18八 程序源代碼················

7、83;·····················21九 結束語···························&#

8、183;··············35十 參考文獻··································

9、······35酒店客房預訂管理一 需求分析綜述隨著人類社會進入信息時代,計算機越來越多地活潑在社會各個領域:管理,網絡,計算,控制,多媒體等。并且在某些方面成為不可缺少的工具,尤其在管理方面,管理軟件的出現使大量繁瑣復雜的問題變得簡單易行。現今酒店賓館的規模不斷擴大,客戶數量急劇增加,有關客戶的各種信息也成倍增長,尤其是大量的客房預訂信息。面對龐大的信息量,需要有客戶信息管理系統來提高客戶管理工作的效率。通過這樣的系統,可以做到信息的標準管理,科學統計和快速的查詢,從而減少管理方面的工作量。當前許多酒店正在逐步完善客戶信息管理工作,

10、需要一個能滿足內部管理需求,提高管理效率的應用系統進行內部管理。許多賓館經過多年的開展,規模不斷擴大,客流量成倍增長,積累了大量的客戶信息急需進行統一管理以防信息的流失。因此,許多賓館需要一個功能全面的客戶信息管理系統來進行管理,以使管理客戶信息的工作在該系統的配合下更加高效和便捷。酒店客房預訂信息管理系統是一個對客戶全方面管理的程序。該客房預訂信息管理系統是在Visual C+,以TXT文檔為后臺數據庫,采用面向對象的語言開發而成,實現對客戶預訂信息的根本管理,包括客房信息、客戶信息的添加,修改和查詢。該系統充分考慮用戶的操作簡便性,實現快捷操作。它有以下幾個功能:1客房設置:可以添加新客房

11、,修改客房描述房間等級,內部設施等,刪除客房。2客戶設置:可以添加新客戶,修改客戶信息,刪除已退訂客戶等。可準確了解每一客戶的預訂信息。3房間預訂情況查詢:可按客戶號、房號查詢。方便實用,在眾多房間、客戶中準確查詢到某一個房間或客戶。二 組員分工封面設計:*程序設計:*、*、*、*程序勘誤:*、*報告編寫:*、*、*小組組長:*三 系統總框圖設計一個程序來實現酒店客房預訂的管理,該程序應該包含信息錄入、輸出、修改、刪除和查詢等功能模塊。本程序各功能模塊結構總框圖如下:四 系統軟硬件環境WindowsXP、Visual C+6.0、CPUpentium4 2.4Hz、內存256MB、硬盤80G五

12、 模塊設計分析本程序共有五大功能模塊:新建模塊、更改模塊、刪除模塊、查詢模塊和顯示模塊。各模塊在功能上互相補充,在程序中互相融合,才能實現一個具有多種功能的管理系統。1新建模塊:實現所有客房、訂房客戶的錄入工作。2更改模塊:提供數據的修改,包括客戶姓名、客房描述等。3刪除模塊:將已退訂的客戶從數據庫中刪除。4查詢模塊:本程序最重要的模塊,也是本系統的精髓所在。通過房間號或客戶號實現客房的預訂情況以及客戶入住情況的查詢工作。5顯示模塊:顯示所有客房、訂房客戶的根本信息。在程序設計上,我們的目標就是先實現單個模塊,進而實現整個程序。本程序正是本著這種思想,一步一步,有條不紊的進行規劃與設計。本程序

13、通過四個類:客戶類、客戶庫類、客房類、客房庫類,并通過主函數調用類函數實現了這五大功能模塊的功能。五大功能模塊的實現客戶類:class customer private:int tag; /刪除標記 1:已刪 0:未刪int no; /客戶編號char name10; /客戶姓名int borbookMaxbor; /所訂房間 public:customer() char *getname() return name;/獲取姓名int gettag() return tag; /獲取刪除標記int getno() return no; /獲取客戶編號 void setname(char na)

14、 /設置姓名 strcpy(name,na);void delbook() tag=1; /設置刪除標記 1:已刪 0:未刪void addcustomer(int n,char *na) /增加客戶 tag=0;no=n;strcpy(name,na);for(int i=0;i<Maxbor;i+)borbooki=0;void borrowbook(int bookid) /預訂操作for(int i=0;i<Maxbor;i+) if (borbooki=0)borbooki=bookid;return;int retbook(int bookid) /退訂操作 for(i

15、nt i=0;i<Maxbor;i+) if(borbooki=bookid)borbooki=0;return 1;return 0;void disp() /讀出客戶信息 cout << setw(5) << no <<setw(10) << name<<"t 客房編號:"for(int i=0;i<Maxbor;i+)if(borbooki!=0)cout << borbooki;cout << ""<<endl;客戶庫類:class RDa

16、tabase private: int top; /客戶記錄指針 customer readMaxr; /客戶記錄public:RDatabase() /構造函數,將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

17、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<

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

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

20、turn 1;return 0;void retbook() /退訂操作onshelf=1;void disp() /輸出客房cout << setw(6) << no << setw(18) << name << setw(10)<<(onshelf=1? "空房":"已預訂") <<endl;客房庫類:class BDatabaseprivate: int top; /客房記錄指針Book bookMaxb; /客房記錄public:BDatabase() /構造函數

21、,將book.txt讀到book中 Book b;top=-1;fstream file("book.txt",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 *q

22、uery(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

23、(booki.gettag()=0)file.write(char *)&booki,sizeof(booki);file.close();六 函數定義及說明主函數void main() char choice;int bookid,customerid;RDatabase customerDB;customer *r;BDatabase BookDB;Book *b;while(choice!='0') cout <<endl<<endl<<"tt 酒 店 客 房 預 訂 管 理nnn"cout <<

24、"ttt1 訂 房nnttt2 退 訂nnttt3 客 房 信 息nnttt4 客 戶 信 息nnttt0 退 出"<<endl;cin >> choice;switch (choice)case '1':cout <<"=n輸入客戶編號:"cin >>customerid;cout <<"輸入客房編號:"cin >>bookid;r=customerDB.query(customerid);/按編號查找if (NULL=r)cout <&l

25、t;" 不存在的客戶,不能預訂"<< endl;break;b=BookDB.query(bookid);if (b=NULL)cout <<" 不存在的客房,不能預訂"<< endl;break;if (b->borrowbook()=0)cout << " 該客房已預訂,不能預訂"<< endl;break;r->borrowbook(b->getno();break;case '2':cout<<"=n輸入客戶編號

26、:"cin >>customerid;cout << "輸入客房編號:"cin >>bookid;r=customerDB.query(customerid);if (r=NULL)cout <<" 不存在的客戶,不能退訂" << endl;break;b=BookDB.query(bookid);if (b=NULL)cout <<" 不存在的客房,不能退訂" <<endl;break;b->retbook();r->retbo

27、ok(b->getno();break;case '3':BookDB.bookdata();break;case '4': customerDB.customerdata(); break;default:cout<<"正在寫入數據庫.謝謝使用!"void RDatabase:customerdata() char choice;char rname20;int customerid;customer *r;while (choice!='0') cout <<"nnttt客 戶 信

28、息nnnttt1 新 增nnttt2 更 改nnttt3 刪 除nnttt4 查 找nnttt5 顯 示nnttt6 全 刪nnttt0 返 回"<<endl;cin >> choice;switch (choice) case '1':cout << "輸入客戶編號:"cin >> customerid;cout << "輸入客戶姓名:"cin >> rname;addcustomer (customerid,rname);break; case '

29、;2':cout << "輸入客戶編號:"cin >> customerid;r=query(customerid);if (r=NULL)cout << " 該客戶不存在 "<<endl; break;cout << "輸入新的客戶姓名:"cin >> rname;r->setname(rname); break; case '3': cout << "輸入客戶編號:" cin >> cu

30、stomerid;r=query(customerid);if (r=NULL) cout <<" 該客戶不存在" << endl; break;r->delbook();break;case '4':cout << "輸入客戶編號:"cin >> customerid;r=query(customerid);if (r=NULL)cout <<" 該客戶不存在"<< endl;break;r->disp();break;case &#

31、39;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客 房 信 息 "<<endl<<endl;cout<<"nttt1 新 增nnttt2 更 改nn

32、ttt3 刪 除nnttt4 查 找nnttt5 顯 示nnttt6 全 刪nnttt0 返 回"<<endl;cin >> choice;switch (choice) case '1':cout << "輸入客房編號:"cin >> bookid; cout << "輸入客房描述:"cin >> bname;addbook(bookid,bname);break; case '2':cout << "輸入客房編號:&

33、quot;cin >> bookid;b=query(bookid);if (b=NULL)cout <<" 該客房不存在 "<<endl; break;cout << "輸入新的客房描述:"cin >> bname;b->setname(bname); break; case '3': cout <<"輸入客房編號:" cin >> bookid;b=query(bookid);if (b=NULL) cout <<

34、" 該客房不存在" << endl; break;b->delbook();break;case '4':cout << "輸入客房編號:"cin >> bookid;b=query(bookid);if (b=NULL)cout <<" 該客房不存在"<< endl;break;b->disp();break;case '5':disp();break;case '6':clear();break;default:

35、cout<<"正在返回主界面."七 使用說明1程序主界面:界面簡潔明了,一目了然,便于操作。選擇數字0-4進入相應功能。2客戶信息:主界面選擇4進入客戶信息管理菜單。 1.新增:系統提示輸入客戶號碼、姓名等信息,按要求錄入即可。 2.更改:系統提示輸入要更改的客戶號,輸入后即可更改該客戶的個人信息。 3.刪除:系統提示輸入要刪除的客戶號,輸入后即可刪除該客戶。4.查詢:系統提示輸入要查詢的客戶號,輸入后即可查看該客戶的訂房信息。5.顯示:顯示所有預訂客戶的個人信息以及預訂房號。6.全刪:刪除所有客戶。0.返回:返回主界面。3客房信息:主界面選擇3進入客房信息管理

36、菜單。 1.新增:系統提示輸入房間號、房間描述等信息,按要求錄入即可。 2.更改:系統提示輸入要更改的房間號,輸入后即可更改該房間的描述信息。3.刪除:系統提示輸入要刪除的房間號,輸入后即可刪除該房間。4.查詢:系統提示輸入要查詢的房間號,輸入后即可查看該房間的預訂情況。5.顯示:顯示所有房間的描述信息以及預訂情況。6.全刪:刪除所有房間。0.返回:返回主界面。4訂房:主界面選擇1進入訂房功能。5退房:主界面選擇2進入退房功能。6退出:主界面選擇0退出程序并保存數據庫。 八 程序源代碼#include <iostream>#include <iomanip>#inclu

37、de <string>#include <fstream> /輸入/輸出文件流類using namespace std;const int Maxr=100; /最多的客戶const int Maxb=100; /最多的客房const int Maxbor=5; /每位客戶最多預訂五間客房/客戶類,實現對客戶的信息的描述class customer private:int tag; /刪除標記 1:已刪 0:未刪int no; /客戶編號char name10; /客戶姓名int borbookMaxbor; /所訂房間 public:customer() char *

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

39、kid) /預訂操作for(int i=0;i<Maxbor;i+) if (borbooki=0)borbooki=bookid;return;int retbook(int bookid) /退訂操作 for(int i=0;i<Maxbor;i+) if(borbooki=bookid)borbooki=0;return 1;return 0;void disp() /讀出客戶信息 cout << setw(5) << no <<setw(10) << name<<"t 客房編號:"for(int

40、 i=0;i<Maxbor;i+)if(borbooki!=0)cout << borbooki;cout << ""<<endl;/客戶庫類,實現建立客戶的個人資料 class RDatabase private: int top; /客戶記錄指針 customer readMaxr; /客戶記錄public:RDatabase() /構造函數,將customer.txt讀到read中customer s;top=-1;fstream file("customer.txt",ios:in); /翻開一個輸入文件

41、while (1)file.read(char *)&s,sizeof(s);if (!file)break;top+;readtop=s; void clear() /刪除所有客戶信息top=-1;int addcustomer(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

42、(readi.getno()=customerid && readi.gettag()=0)return &readi;return NULL;void disp() /輸出所有客戶信息 for (int i=0;i<=top;i+) readi.disp();void customerdata(); /客戶庫維護fstream file("customer.txt",ios:out); for (int i=0;i<=top;i+)if (readi.gettag()=0)file.write(char *)&readi,siz

43、eof(readi);file.close();void RDatabase:customerdata() char choice;char rname20;int customerid;customer *r;while (choice!='0') cout <<"nnttt客 戶 信 息nnnttt1 新 增nnttt2 更 改nnttt3 刪 除nnttt4 查 找nnttt5 顯 示nnttt6 全 刪nnttt0 返 回"<<endl;cin >> choice;switch (choice) case '

44、;1':cout << "輸入客戶編號:"cin >> customerid;cout << "輸入客戶姓名:"cin >> rname;addcustomer (customerid,rname);break; case '2':cout << "輸入客戶編號:"cin >> customerid;r=query(customerid);if (r=NULL)cout << " 該客戶不存在 "<&l

45、t;endl; break;cout << "輸入新的客戶姓名:"cin >> rname;r->setname(rname); break; case '3': cout << "輸入客戶編號:" cin >> customerid;r=query(customerid);if (r=NULL) cout <<" 該客戶不存在" << endl; break;r->delbook();break;case '4':co

46、ut << "輸入客戶編號:"cin >> customerid;r=query(customerid);if (r=NULL)cout <<" 該客戶不存在"<< endl;break;r->disp();break;case '5':disp();break;case '6':clear();break;default:cout<<"正在返回主界面."break;/客房類,實現對客房的描述,如客房等級,有無寬帶等class Bookp

47、rivate: int tag; /刪除標記 1:已刪 0:未刪int no; /客房編號char name20; /客房描述int onshelf; /是否預訂 1:空房 2:已預訂public:Book()char *getname() return name; /獲取姓名int getno() return no; /獲取客房編號int gettag() return tag; /獲取刪除標記void setname(char na) /設置客房描述strcpy(name,na);void delbook() tag=1; /刪除客房void addbook(int n,char *na

48、) /增加客房tag=0;no=n;strcpy(name,na);onshelf=1;int borrowbook() /預訂操作if (onshelf=1)onshelf=0;return 1;return 0;void retbook() /退訂操作onshelf=1;void disp() /輸出客房cout << setw(6) << no << setw(18) << name << setw(10)<<(onshelf=1? "空房":"已預訂") <<en

49、dl;/客房庫類,實現對客房的管理,如查找、刪除等class BDatabaseprivate: int top; /客房記錄指針Book bookMaxb; /客房記錄public:BDatabase() /構造函數,將book.txt讀到book中 Book b;top=-1;fstream file("book.txt",ios:in);while (1)file.read(char *)&b,sizeof(b);if (!file) break;top+;booktop=b;file.close(); void clear() /全刪top=-1; int

50、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+)

51、 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();void BDatabase:bookdata() char choice;char bname40;int bookid;Book *b;while (choice!='0')cout <<"nnnttt客 房 信 息 "<<endl<<endl;cout<<"nttt1 新 增nnttt2 更 改nnttt3 刪 除nnttt4 查 找nnttt5 顯 示nnttt6 全 刪nnttt0 返 回"<<endl;cin >> choice;switch (choice) case '1':cout << "輸入客房編

溫馨提示

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

評論

0/150

提交評論