第五組酒店客房預訂管理系統的設計與實現源代碼_第1頁
第五組酒店客房預訂管理系統的設計與實現源代碼_第2頁
第五組酒店客房預訂管理系統的設計與實現源代碼_第3頁
第五組酒店客房預訂管理系統的設計與實現源代碼_第4頁
第五組酒店客房預訂管理系統的設計與實現源代碼_第5頁
已閱讀5頁,還剩8頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、精選優質文檔-傾情為你奉上#include <iostream>#include <iomanip>#include <string>#include <fstream> #include"conio.h" /輸入/輸出文件流類using namespace std;const int Maxr=100; /最多的客戶const int Maxb=100; /最多的客房const int Maxbor=10; /每位客戶最多預訂十間客房/person類 class person public:char name20; char

2、 ID18; char *getname() return name;/獲取姓名char *getID() return ID; /獲取身份證號 void setID(char I) /設置身份證號 strcpy(ID,I); void setname(char na) /設置姓名 strcpy(name,na);/客戶類公有繼承了person類,實現對客戶的信息的描述class customer:public person private:int num; /客戶編號int tag; /刪除標記 1:已刪 0:未刪int borbookMaxbor; /所訂房間 public:custome

3、r() int gettag() return tag; /獲取刪除標記void delbook() tag=1; /設置刪除標記 1:已刪 0:未刪int getnum() return num; /獲取客戶編號void addcustomer(int n,char *na,char *I) /增加客戶 tag=0;num=n;strcpy(name,na);strcpy(ID,I);for(int i=0;i<Maxbor;i+)borbooki=0;void borrowbook(int bookid) /預訂操作for(int i=0;i<Maxbor;i+) if (bo

4、rbooki=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 display() /讀出客戶信息 cout <<"客戶編號:" << num <<setw(15)<< "姓 名:" << name <<setw(15)<< "身份證號:&qu

5、ot; << ID<<setw(15)<<"客房編號:"for(int i=0;i<Maxbor;i+)if(borbooki!=0)cout <<"#"<< borbooki<<" "cout << ""<<endl;/客戶庫類,實現建立客戶的個人資料 class RDatabase private: int top; /客戶記錄指針 customer readMaxr; /客戶記錄public:RDatabas

6、e() /構造函數,將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;file.close(); /關閉 customer.txt void clear() /刪除所有客戶信息top=-1;int addcustomer(int n,char *na,char *I) /添加客戶時先查找是否存在customer

7、*p=query(n);if (p=NULL) top+; readtop.addcustomer(n,na,I); return 1;return 0;customer *query(int customerid) /按編號查找for (int i=0;i<=top;i+)if (readi.getnum()=customerid&&readi.gettag()=0)return &readi;return NULL;customer *query(string name) /按name查找for (int i=0;i<=top;i+)if (readi.

8、getname()=name&&readi.gettag()=0)return &readi;return NULL;void display() /輸出所有客戶信息 for (int i=0;i<=top;i+) if(readi.gettag()=0) readi.display();void customerdata(); /客戶庫維護RDatabase() /析構函數,將read寫到customer.txt文件中fstream file("customer.txt",ios:out); for (int i=0;i<=top;i+

9、)if (readi.gettag()=0)file.write(char *)&readi,sizeof(readi);file.close();void RDatabase:customerdata() char choice;char rsex10;char rname20;int customerid;char rID18;customer *r;system("cls");while (choice!='0') cout<<endl<<setw(40)<<"客 戶 信 息"<&l

10、t;endl; cout<<endl<<setw(28)<<"1 "<<"新 增"<<endl;cout<<endl<<setw(28)<<"2 "<<"更 改"<<endl;cout<<endl<<setw(28)<<"3 "<<"刪 除"<<endl;cout<<endl<&l

11、t;setw(28)<<"4 "<<"查 找"<<endl;cout<<endl<<setw(28)<<"5 "<<"顯 示"<<endl;cout<<endl<<setw(28)<<"6 "<<"全 刪"<<endl;cout<<endl<<setw(28)<<"0 &quo

12、t;<<"返 回"<<endl;cin>>choice;system("cls");switch (choice) case '1':cout <<"請輸入客戶信息:"<<endl;cout << "輸入客戶編號:"cin >> customerid;cout << "輸入客戶姓名:"cin >> rname; cout << "輸入客戶身份證號:&q

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

14、t<<"輸入新的身份證號碼:"cin>>rID;r->setID (rID); break; case '3': cout << "輸入客戶編號:" cin >> customerid;r=query(customerid);if (r=NULL) cout <<" 該客戶不存在" << endl; break;r->delbook(); cout<<"刪除成功!"<<endl;break;c

15、ase '4':char cho;cout<<"請選擇查找方式:"<<endl;cout<<"1.按客戶編號查找,2.按客戶姓名查找"cin>>cho;system("cls");switch (cho)case '1':cout << "輸入客戶編號:"cin >> customerid;r=query(customerid);if (r=NULL)cout <<" 該客戶不存在"

16、;<< endl;break;break;case'2':cout<<"輸入客戶名字:"cin >> rname;r=query(rname);if (r=NULL)cout<<"該客戶不存在"<<endl;break;r->display();break;case '5':display();break;case '6':clear();cout<<"刪除成功!"<<endl;break;defa

17、ult:cout<<"正在返回主界面."system("cls");break;/客房類,實現對客房的描述class Bookprivate: 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 setna

18、me(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;return 1;return 0;void retbook() /退訂操作onshelf=1;void disp() /輸出客房cout <<"客房編號:"<< no <<setw(1

19、5)<< "客房描述:"<< name <<setw(15)<<(onshelf=1? "空 房":"已預訂") <<endl;/客房庫類,實現對客房的管理,如查找、刪除等class BDatabaseprivate: int top; /客房記錄指針Book bookMaxb; /客房記錄public:BDatabase() /構造函數,將book.txt讀到book中 Book b;top=-1;fstream file("book.txt",ios:

20、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()=book

21、id &&booki.gettag()=0)return &booki;return NULL;Book *query(string bname)for (int i=0;i<=top;i+)if (booki.getname()=bname&&booki.gettag()=0)return &booki;return NULL;void bookdata(); /客房庫維護void disp() for (int i=0;i<=top;i+) if (booki.gettag()=0) booki.disp();BDatabase(

22、) /析構函數,將book寫到book.txt文件中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;system("cls");while (choice!='0')cout&l

23、t;<endl<<setw(40)<<"客 房 信 息"<<endl; cout<<endl<<setw(28)<<"1 "<<"新 增"<<endl;cout<<endl<<setw(28)<<"2 "<<"更 改"<<endl;cout<<endl<<setw(28)<<"3 "

24、;<<"刪 除"<<endl;cout<<endl<<setw(28)<<"4 "<<"查 找"<<endl;cout<<endl<<setw(28)<<"5 "<<"顯 示"<<endl;cout<<endl<<setw(28)<<"6 "<<"全 刪"<&l

25、t;endl;cout<<endl<<setw(28)<<"0 "<<"返 回"<<endl;cin >> choice;system("cls");switch (choice) case '1':cout <<"請輸入客房信息:"<<endl;cout << "輸入客房編號:"cin >> bookid; cout << "輸入客房描述

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

27、#39;: cout <<"輸入客房編號:" cin >> bookid;b=query(bookid);if (b=NULL) cout <<" 該客房不存在" << endl; break;b->delbook();cout<<"刪除成功!"<<endl;break;case '4':char bb;cout << "請選擇查找方式:1.按客房編號查找 2.按客房描述查找"cin >> bb;s

28、witch(bb)case'1':cout<<"請輸入客房編號:"cin>>bookid;b=query(bookid);if (b=NULL)cout <<" 該客房不存在"<< endl;break;break;case'2':cout<<"請輸入客房描述:"cin>>bname;b=query(bname);if (b=NULL)cout <<" 該客房不存在"<< endl;bre

29、ak;b->disp();break;case '5':disp();break;case '6':clear();cout<<"刪除成功!"<<endl;break;default:cout<<"正在返回主界面."system("cls");int main() char choice;int bookid,customerid;RDatabase customerDB;customer *r;BDatabase BookDB;Book *b;while(ch

30、oice!='0') cout <<setw(39)<<"歡 迎 使 用"<<endl;cout <<endl<<setw(55)<<"酒 店 客 房 預 訂 管 理 系 統"<<endl<<endl;cout <<""<<endl;cout <<"I"<<setw(71)<<"I"cout <<endl<&

31、lt;"I"<<setw(25)<<"1"<<setw(15)<<"客 戶 信 息"<<setw(31)<<"I"<<endl;cout <<"I"<<setw(71)<<"I"cout <<endl<<"I"<<setw(25)<<"2"<<setw(15)

32、<<"客 房 信 息"<<setw(31)<<"I"<<endl;cout <<"I"<<setw(71)<<"I"cout <<endl<<"I"<<setw(25)<<"3"<<setw(15)<<"訂 房"<<setw(31)<<"I"<<e

33、ndl;cout <<"I"<<setw(71)<<"I"cout <<endl<<"I"<<setw(25)<<"4"<<setw(15)<<"退 房"<<setw(31)<<"I"<<endl;cout <<"I"<<setw(71)<<"I"cout <<endl<<"I"<<setw(25)<<"0"<<setw(15)<<"退 出"<<setw(31)<<"I"<<e

溫馨提示

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

評論

0/150

提交評論