第五组酒店客房预订管理系统的设计与实现源代码_第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

提交评论