完整版第五组酒店客房预订管理系统的设计与实现源代码.docx
- 文档编号:28224899
- 上传时间:2023-07-09
- 格式:DOCX
- 页数:22
- 大小:18.88KB
完整版第五组酒店客房预订管理系统的设计与实现源代码.docx
《完整版第五组酒店客房预订管理系统的设计与实现源代码.docx》由会员分享,可在线阅读,更多相关《完整版第五组酒店客房预订管理系统的设计与实现源代码.docx(22页珍藏版)》请在冰豆网上搜索。
完整版第五组酒店客房预订管理系统的设计与实现源代码
#include
#include
#include
#include
#include"conio.h"//输入/输出文件流类
usingnamespacestd;
constintMaxr=100;//最多的客户
constintMaxb=100;//最多的客房
constintMaxbor=10;//每位客户最多预订十间客房
//person类
classperson
{
public:
charname[20];
charID[18];
char*getname(){returnname;}//获取姓名
char*getID(){returnID;}//获取身份证号
voidsetID(charI[])//设置身份证号
{
strcpy(ID,I);
}
voidsetname(charna[])//设置姓名
{
strcpy(name,na);
}
};
//客户类公有继承了person类,实现对客户的信息的描述
classcustomer:
publicperson
{
private:
intnum;//客户编号
inttag;//删除标记1:
已删0:
未删
intborbook[Maxbor];//所订房间
public:
customer(){}
intgettag(){returntag;}//获取删除标记
voiddelbook(){tag=1;}//设置删除标记1:
已删0:
未删
intgetnum(){returnnum;}//获取客户编号
voidaddcustomer(intn,char*na,char*I)//增加客户
{
tag=0;
num=n;
strcpy(name,na);
strcpy(ID,I);
for(inti=0;i borbook[i]=0; } voidborrowbook(intbookid)//预订操作 { for(inti=0;i { if(borbook[i]==0) { borbook[i]=bookid; return; } } } intretbook(intbookid)//退订操作 { for(inti=0;i { if(borbook[i]==bookid) { borbook[i]=0; return1; } } return0; } voiddisplay()//读出客户信息 { cout<<"客户编号: "< "< "< ["; for(inti=0;i if(borbook[i]! =0) cout<<"#"< cout<<"]"< } }; //客户库类,实现建立客户的个人资料 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,char*I)//添加客户时先查找是否存在 { customer*p=query(n); if(p==NULL) { top++; read[top].addcustomer(n,na,I); return1; } return0; } customer*query(intcustomerid)//按编号查找 { for(inti=0;i<=top;i++) if(read[i].getnum()==customerid&&read[i].gettag()==0) { return&read[i]; } returnNULL; } customer*query(stringname)//按name查找 { for(inti=0;i<=top;i++) if(read[i].getname()==name&&read[i].gettag()==0) { return&read[i]; } returnNULL; } voiddisplay()//输出所有客户信息 { for(inti=0;i<=top;i++) if(read[i].gettag()==0) read[i].display(); } 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; charrsex[10]; charrname[20]; intcustomerid; charrID[18]; customer*r; system("cls"); while(choice! ='0') { cout< cout< cout< cout< cout< cout< cout< cout< cin>>choice; system("cls"); switch(choice) { case'1': cout<<"请输入客户信息: "< cout<<"输入客户编号: "; cin>>customerid; cout<<"输入客户姓名: "; cin>>rname; cout<<"输入客户身份证号: "; cin>>rID; addcustomer(customerid,rname,rID); break; case'2': cout<<"输入客户编号: "; cin>>customerid; r=query(customerid); if(r==NULL) { cout<<"该客户不存在"< break; } cout<<"输入新的客户姓名: "; cin>>rname; r->setname(rname); cout<<"输入新的身份证号码: "; cin>>rID; r->setID(rID); break; case'3': cout<<"输入客户编号: "; cin>>customerid; r=query(customerid); if(r==NULL) { cout<<"该客户不存在"< break; } r->delbook(); cout<<"删除成功! "< break; case'4': charcho; cout<<"请选择查找方式: "< cout<<"1.按客户编号查找,2.按客户姓名查找"; cin>>cho; system("cls"); switch(cho) { case'1': cout<<"输入客户编号: "; cin>>customerid; r=query(customerid); if(r==NULL) { cout<<"该客户不存在"< break; } break; case'2': cout<<"输入客户名字: "; cin>>rname; r=query(rname); if(r==NULL) { cout<<"该客户不存在"< break; } } r->display(); break; case'5': display(); break; case'6': clear(); cout<<"删除成功! "< break; default: cout<<"正在返回主界面...";system("cls");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()//输出客房 { cout<<"客房编号: "< "< "空房": "已预订")< } }; //客房库类,实现对客房的管理,如查找、删除等 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; } Book*query(stringbname) { for(inti=0;i<=top;i++) if(book[i].getname()==bname&&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; system("cls"); while(choice! ='0') { cout< cout< cout< cout< cout< cout< cout< cout< cin>>choice; system("cls"); switch(choice) { case'1': cout<<"请输入客房信息: "< cout<<"输入客房编号: "; cin>>bookid; cout<<"输入客房描述: "; cin>>bname; addbook(bookid,bname); break; case'2': cout<<"输入客房编号: "; cin>>bookid; b=query(bookid); if(b==NULL) { cout<<"该客房不存在"< break; } cout<<"输入新的客房描述: "; cin>>bname; b->setname(bname); break; case'3': cout<<"输入客房编号: "; cin>>bookid; b=query(bookid); if(b==NULL) { cout<<"该客房不存在"< break; } b->delbook(); cout<<"删除成功! "< break; case'4': charbb; cout<<"请选择查找方式: 1.按客房编号查找2.按客房描述查找"; cin>>bb; switch(bb) { case'1': cout<<"请输入客房编号: "; cin>>bookid; b=query(bookid); if(b==NULL) { cout<<"该客房不存在"< break; } break; case'2': cout<<"请输入客房描述: "; cin>>bname; b=query(bname); if(b==NULL) { cout<<"该客房不存在"< break; } } b->disp(); break; case'5': disp(); break; case'6': clear(); cout<<"删除成功! "< break; default: cout<<"正在返回主界面...";system("cls"); } } } intmain() { charchoice; intbookid,customerid; RDatabasecustomerDB; customer*r; BDatabaseBookDB; Book*b; while(choice! ='0') { cout< cout< cout<<"のののののののののののののののののののののののののののののののののののの"< cout<<"I"< cout< cout<<"I"< cout< cout<<"I"< cout< cout<<"I"< cout< cout<<"I"< cout< cout<<"のののののののののののののののののののののののののののののののののののの"< cin>>choice; switch(choice) { case'1': customerDB.customerdata(); break; case'2': BookDB.bookdata(); break; case'3': cout<<"输入客户编号: "; cin>>customerid; cout<<"输入客房编号: "; cin>>bookid; r=customerDB.query(customerid);//按编号查找 if(r=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整版 第五 酒店客房 预订 管理 系统 设计 实现 源代码