C++程序设计课程设计--酒店客房预订管理源程序

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

#includeiostream#includeiomanip#includestring#includefstream//输入/输出文件流类usingnamespacestd;constintMaxr=100;//最多的客户constintMaxb=100;//最多的客房constintMaxbor=5;//每位客户最多预订五间客房//客户类,实现对客户的信息的描述classcustomer{private:inttag;//删除标记1:已删0:未删intno;//客户编号charname[10];//客户姓名intborbook[Maxbor];//所订房间public:customer(){}char*getname(){returnname;}//获取姓名intgettag(){returntag;}//获取删除标记intgetno(){returnno;}//获取客户编号voidsetname(charna[])//设置姓名{strcpy(name,na);}voiddelbook(){tag=1;}//设置删除标记1:已删0:未删voidaddcustomer(intn,char*na)//增加客户{tag=0;no=n;strcpy(name,na);for(inti=0;iMaxbor;i++)borbook[i]=0;}voidborrowbook(intbookid)//预订操作{for(inti=0;iMaxbor;i++){if(borbook[i]==0){borbook[i]=bookid;return;}}}intretbook(intbookid)//退订操作{for(inti=0;iMaxbor;i++){if(borbook[i]==bookid){borbook[i]=0;return1;}}return0;}voiddisp()//读出客户信息{coutsetw(5)nosetw(10)name\t客房编号:[;for(inti=0;iMaxbor;i++)if(borbook[i]!=0)coutborbook[i];cout]endl;}};//客户库类,实现建立客户的个人资料classRDatabase{private:inttop;//客户记录指针customerread[Maxr];//客户记录public:RDatabase()//构造函数,将customer.txt读到read[]中{customers;top=-1;fstreamfile(customer.txt,ios::in);//打开一个输入文件while(1){file.read((char*)&s,sizeof(s));if(!file)break;top++;read[top]=s;}file.close();//关闭customer.txt}voidclear()//删除所有客户信息{top=-1;}intaddcustomer(intn,char*na)//添加客户时先查找是否存在{customer*p=query(n);if(p==NULL){top++;read[top].addcustomer(n,na);return1;}return0;}customer*query(intcustomerid)//按编号查找{for(inti=0;i=top;i++)if(read[i].getno()==customerid&&read[i].gettag()==0){return&read[i];}returnNULL;}voiddisp()//输出所有客户信息{for(inti=0;i=top;i++)read[i].disp();}voidcustomerdata();//客户库维护~RDatabase()//析构函数,将read[]写到customer.txt文件中{fstreamfile(customer.txt,ios::out);for(inti=0;i=top;i++)if(read[i].gettag()==0)file.write((char*)&read[i],sizeof(read[i]));file.close();}};voidRDatabase::customerdata(){charchoice;charrname[20];intcustomerid;customer*r;while(choice!='0'){cout\n\n\t\t\t客户信息\n\n\n\t\t\t1新增\n\n\t\t\t2更改\n\n\t\t\t3删除\n\n\t\t\t4查找\n\n\t\t\t5显示\n\n\t\t\t6全删\n\n\t\t\t0返回endl;cinchoice;switch(choice){case'1':cout输入客户编号:;cincustomerid;cout输入客户姓名:;cinrname;addcustomer(customerid,rname);break;case'2':cout输入客户编号:;cincustomerid;r=query(customerid);if(r==NULL){cout该客户不存在endl;break;}cout输入新的客户姓名:;cinrname;r-setname(rname);break;case'3':cout输入客户编号:;cincustomerid;r=query(customerid);if(r==NULL){cout该客户不存在endl;break;}r-delbook();break;case'4':cout输入客户编号:;cincustomerid;r=query(customerid);if(r==NULL){cout该客户不存在endl;break;}r-disp();break;case'5':disp();break;case'6':clear();break;default:cout正在返回主界面...;break;}}}//客房类,实现对客房的描述,如客房等级,有无宽带等classBook{private:inttag;//删除标记1:已删0:未删intno;//客房编号charname[20];//客房描述intonshelf;//是否预订1:空房2:已预订public:Book(){}char*getname(){returnname;}//获取姓名intgetno(){returnno;}//获取客房编号intgettag(){returntag;}//获取删除标记voidsetname(charna[])//设置客房描述{strcpy(name,na);}voiddelbook(){tag=1;}//删除客房voidaddbook(intn,char*na)//增加客房{tag=0;no=n;strcpy(name,na);onshelf=1;}intborrowbook()//预订操作{if(onshelf==1){onshelf=0;return1;}return0;}voidretbook()//退订操作{onshelf=1;}voiddisp()//输出客房{coutsetw(6)nosetw(18)namesetw(10)(onshelf==1?空房:已预订)endl;}};//客房库类,实现对客房的管理,如查找、删除等classBDatabase{private:inttop;//客房记录指针Bookbook[Maxb];//客房记录public:BDatabase()//构造函数,将book.txt读到book[]中{Bookb;top=-1;fstreamfile(book.txt,ios::in);while(1){file.read((char*)&b,sizeof(b));if(!file)break;top++;book[top]=b;}file.close();}voidclear()//全删{top=-1;}intaddbook(intn,char*na)//增加客房{Book*p=query(n);if(NULL==p){top++;book[top].addbook(n,na);return1;}return0;}Book*query(intbookid)//查找客房{for(inti=0;i=top;i++)if(book[i].getno()==bookid&&book[i].gettag()==0){return&book[i];}returnNULL;}voidbookdata();//客房库维护voiddisp(){for(inti=0;i=top;i++)if(book[i].gettag()==0)book[i].disp();}~BDatabase()//析构函数,将book[]写到book.txt文件中{fstreamfile(book.txt,ios::out);for(inti=0;i=top;i++)if(book[i].gettag()==0)file.write((char*)&book[i],sizeof(book[i]));file.close();}};voidBDatabase::bookdata(){charchoice;charbname[40];intbookid;Book*b;while(choice!='0'){cout\n\n\n\t\t\t客房信息endlendl;cout\n\t\t\t1新增\n\n\t\t\t2更改\n\n\t\t\t3删除\n\n\t\t\t4查找\n\n\t\t\t5显示\n\n\t\t\t6全删\n\n\t\t\t0返回endl;cinchoice;switch(choice){case'1':cout输入客房编号:;cinbookid;cout输入客房描述:;cinbname;addbook(bookid,bname);break;case'2':cout输入客房编号:;cinbookid;b=query(bookid);if(b==NULL){cout该客房不存在endl;break;}cout输入新的客房描述:;cinbname;b-setname(bname);break;case'3':cout输入客房编号:;cinbookid;b=query(bookid);if(b==NULL){cout该客房不存在endl;break;}b-delbook();break;case'4':cout输入客房编号:;cinbookid;b=query(bookid);if(b==NULL){cout该客房不存在endl;break;}b-disp();break;case'5':disp();break;case'6':clear();break;default:cout正在返回主界面...;}}}//main()函数的实现,程序的主界面的引导voidmain(){charchoice;intbookid,customerid;RDatabasecustomerDB;customer*r;BDatabaseBookDB;Book*b;while(choice!='0'){coutendlendl\t\t酒店客房预订管理\n\n\n;cout\t\t\t1订房\n\n\t\t\t2退订\n\n\t\t\t3客房信息\n\n\t\t\t4客户信息\n\n\t\t\t0退出endl;cinchoice;switch(choice){case'1':cout========

1 / 11
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功