还剩12页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
#include iostream#include iomanip#include string#include fstream#includenconio.hn〃输入/输出文件流类using namespacestd;const intMaxr=100;〃最多的客户const intMaxb=100;〃最多的客房const intMaxbor=10;〃每位客户最多预订十间客房类//person classpersonpublic:char name[20|;char ID
[18];〃获取姓名char*getname{return name;}char*getID{return ID;}〃获取身份证号void setIDcharI[]〃设置身份证号strcpyIDJ;〃设置姓名void setnamecharna[]strcpyname,na;);//客户类公有继承了类,实现对客户的信息的描述person{return tag;}class customer:public personvoid delbook{tag=1;〃客户编号private:〃删除标记已册未删1:U0:int num;〃所订房间int tag;int borbook[Maxbor];public:〃获取删除标记customer{}int gettagO〃设置删除标记1已删0未删〃获取客户编号〃增加客户int getnum{return num;}voidnum=n;addcustomerint n,char*na,char*1strcpyname,na;tag=0;strcpyIDJ;addbookbookid,bname;break;case2:«”输入客房编号:“;coutcin»bookid;b=querybookid;ifb=NULL cout«n该客房不存在n«endl;break;«”输入新的客房描述:”;coutcin»bname;b-setnamebname;break;case3:输入客房编号:“;coutcin»bookid;b=querybookid;ifb=NULL cout«n该客房不存在endl;break;b-delbook;删除成功!”《cout endl;break;case4:char bb;V〈”请选择查找方式.按客房编号查找.按客房描述查找”;cout12cin»bb;switchbb caseT:〈”请输入客房编号”;coutv cin»bookid;b=query bookid;ifb==NULL该客房不存在cout«endl;break;break;case2:请输入客房描述”;cout«”cin»bname;b=querybname;ifb==NULL该客房不存在coutendl;break;b-disp;break;case5:disp;break;case6:clear;cout删除成功!n«endl;break;正在返回主界面…”;default:coutv”systemcls;}int mainchar choice;int bookid,customerid;RDatabase customerDB;customer*r;BDatabase BookDB;Book*b;whilechoice!=0欢迎使用cout setw39vv”endl;cout endl«setw55v酒店客房预订管理系统n«endl«endl;cout«H000000000000000000000000000000000CD0CD n«endl;cout vT«setw71«T;cout«endl«nr,«setw25«,,r,«setw15«n客户信息,,«setw31«nr,«endl;cout Tsetw71T;cout«endl«nr,«setw25«H2,,«setw15«n客房信息,,«setw31«HF«endl;cout Tsetw71T;cout«endl«,r,«setw25«,,3n«setw15«,,订房n«setw31«nr,«endl;cout vvTsetw71vT;cout«endl«,r,«setw25«4,,«setw15«,,退房n«setw31«nr,«endl;cout nr,«setw71«,r;cout«endl«,,r,«setw25«,,0,,«setw15«n退出n«setw31«nr«endl;cout«nOOOOO0OO0OO0OO0OOOO0OO0OOOOOO0OO OO®On«endI;cin»choice;switch choicecaseT:customerDB.customerdata;break;case2:BookDB.bookdata;break;case3:输入客户编号:;coutcin»customerid;输入客房编号:“;cout V”cin»bookid;〃按编号查找r=customerDB.querycustomerid;if r==NULL cout«n不存在的客户,不能预订vvendl;break;b=BookDB.query bookid;if b==NULL cout«n不存在的客房,不能预订vv endl;break;if b-borrowbook==0{该客房已预订,不能预订cout«”vvendl;break;r-borrowbookb-getno;coutvv”预订成功!,«endl;break;case4:输入客户编号:”;coutvv”cin»customerid;«”输入客房编号:“;coutcin»bookid;r=customerDB.querycustomerid;if==NULL rcout«n不存在的客户,不能退订endl;break;b=BookDB.query bookid;ifb=NULL不存在的客房,不能退订cout”«endl;break;b-retbook;r-retbookb-getno;退订成功!coutv”endl;break;正在写入数据库……谢谢使用!”;default:coutreturn0;forint i=0;iMaxbor;i++borbook[i]=0;//预订操作void borrowbookint bookidforint i=0;iMaxbor;i++if borbook[i]=0borbook[i]=bookid;return;〃退订操作int retbookintbookid{forint i=0;iMaxbor;i++ifborbook[i]==bookidborbook[i]=0;return1;return0;〃读出客户信息void displayvv”客户编号:“vv姓名:“身份证号:cout numsetw15v«name«setw15«客房编号:ID«setw15vv”forint i=0;iMaxbor;i++ifborbook[i]!=0cout«n#n«borbook[i]«n n;cout«n]«endl;;〃客户库类,实现建立客户的个人资料class RDatabaseprivate:〃客户记录指针int top;//客户记录customer read[Maxr];public://构造函数,将读到口中RDatabase customer.txt readcustomers;top=-1;〃打开一个输入文件fstream filecustomer.txt,ios::in;while1file.readchar*s,sizeofs;if!filebreak;top++;read[top]=s;〃关闭file.close;customer.txt〃删除所有客户信息void clear{top-1;〃添加客户时先查找是否存在int addcustomerintn,char*na,char*1「customer*p=que yn;二二if pNULLtop++;read[top].addcustomern,na J;return1;return0;〃按编号查找customer*queryint customeridfor int i=0;i=top;i++if read[i].getnum=customeridread[i].gettag==0return read[i];return NULL;〃按查找customer querystringname namefor int i=0;i=top;i++if read[i].getname=nameread[i].gettag=Oreturn read[i];return NULL;void display〃输出所有客户信息〃客户库维护void customerdata;//析构函数,将口写到文件中read customer.txt〜RDatabasefstream fileHcustomer.txtn,ios::out;for int i=0;i=top;i++if read[i].gettag==Ofile.writechar*read[i],sizeofread[i];file.close;;二void RDatabasecustomerdatachar choice;char rsex
[10];char rname
[20];intcustomerid;charrID
[18];customer*r;systemnclsn;while choice!=0cout«endl«setw40«n§户信息J vVendl;cout«endl«setw28«H1”《新增vendl;coutendl«setw28«H2“更改vendl;coutendl«setw28«n3“删除vendl;coutendl«setw28«n4“查找endl;coutendl«setw28«n5显示endl;cout«endl«setw28«H6“全llJH«endl;coutendl«setw28«H0返回endl;cin»choice;systemnclsn;switch choicecaseT:请输入客户信息:《cout endl;forint i=0;i=top;i++ifread[i].gettag==O read[i].display;«”输入客户编号:“;coutcin»customerid;«”输入客户姓名:“;coutcin»mame;«”输入客户身份证号coutcin»rID;addcustomer customerid,rname,rID;break;case2:«”输入客户编号:;coutcin»customerid;r=querycustomerid;if r==NULLcout«”该客户不存在n«endl;break;«”输入新的客户姓名:“;coutcin»mame;r-setnamername;输入新的身份证号码”;cout”cin»rID;r-setlD rID;break;case3:«”输入客户编号:“;coutcin»customerid;r=querycustomerid;if==NULLr{cout«n该客户不存在V endl;break;r-delbook;coutvv”删除成功!H«endl;break;case4:charcho;请选择查找方式:coutvv”vendl;.按客户编号查找按客户姓名查找”;cout«”l2cin»cho;systemcls;switch chocaseT:«”输入客户编号:“;coutcin»customerid;r=querycustomerid;ifgNULL{cout«n该客户不存在endl;break;break;case2:输入客户名字:;cout”cin»mame;r=queryrname;if—NULL该客户不存在”《coutvv”endl;break;r-display;break;case5:displayO;break;case6:clear;coutvv”删除成功!H«endl;break;正在返回主界面default:cout...”;system“cls;break;〃客房类,实现对客房的描述class Bookprivate:int tag;〃删除标记1:已删0:未删int no;〃客房编号char name
[20];〃客房描述int onshelf;〃是否预订1空房2:已预订public:Book{}〃获取姓名char*getname{return name;}int getno{return no;}//获取客房编号int gettag{return tag;}〃获取删除标记void setnamecharna|]〃设置客房描述strcpyname,na;〃删除客房voiddelbook{tag=l;}void addbookintn,char*na〃增加客房tag=O;no=n;strcpyname,na;onshelf=l;〃预订操作int borrowbookifonshelf=lonshelf=0;return1;return0;〃退订操作void retbookonshelf=l;〃输出客房void disp客房编号:n«”客房描述:n«”cout vno«setw15«name«setw15«onshelf==1空房:“已预订«endl;;〃客房库类,实现对客房的管理,如查找、删除等class BDatabaseprivate://客房记录指针int top;〃客房记录Book book[Maxb];public:BDatabase〃构造函数,将book.txt读到book口中Book b;top=-1;fstream file,book.txt,,,ios::in;while1file.readchar*b,sizeofb;if!file break;top++;book[top]=b;file.close;〃全册void clearUtop=-1;〃增加客房int addbookintn,char*naBook*p=queryn;if NULL==p top++;book[top].addbookn,na;return1;}return0;〃查找客房Book*queryint bookidforint i=0;i=top;i++if book[i].getno==bookid book[i].gettag==0return book[i];return NULL;}Book*querystring bnameforinti=0;i=top;i++if book[i|.getname==bnamebook[i].gettag==O returnbook[i];return NULL;//客房库维护void bookdata;void dispforinti=0;iv=top;i++if book[i].gettag==0book[i].disp;〃析构函数,将口写到文件中〜BDatabase bookbook.txt{fstream filenbook.txtn,ios::out;forinti=0;i=top;i++if book[i].gettag==0file.writechar*book[i],sizeofbook[i];file.close;;void BDatabase::bookdatachar choice;char bname
[40];intbookid;Book*b;systemnclsn;while choice!=0客房信息”coutendl«setw40vcoutendl«setw28«H1“新vvend±l;fn«endl;coutendl«setw28«n2更改”endl;coutendl«setw28«n3y删除endl;coutendl«setw28«n4查找endl;cout«endl«setw28«H5显示vendl;cout«endl«setw28«H6“<〈”全册vendl;返回”coutendl«setw28«n0vendl;cin»choice;systemnclsn;switch choicecaseT:请输入客房信息:《cout endl;«”输入客房编号:;coutcin»bookid;«”输入客房描述:”;coutcin»bname;。
个人认证
优秀文档
获得点赞 0