C++酒店管理程序代码.docx
《C++酒店管理程序代码.docx》由会员分享,可在线阅读,更多相关《C++酒店管理程序代码.docx(15页珍藏版)》请在冰豆网上搜索。
![C++酒店管理程序代码.docx](https://file1.bdocx.com/fileroot1/2023-2/24/8dca4328-cca6-4cbf-89aa-4e95f7838ed9/8dca4328-cca6-4cbf-89aa-4e95f7838ed91.gif)
C++酒店管理程序代码
程序代码
N:
最终改进版代码(利用结构体储存多种类型的数据)
好处:
比数组能储存更多类型的数据!
#include
#include
#include准单人间2.大床房3.标准双人间4.套房)
stringphoneNum;准单人间100/天2.大床房200/天3.标准双人间300/天4.套房400/天"<>type;roomType=type;
cout<<"预留手机号:
"<>num;phoneNum=num;
};
voidBook()
{
cout<<"正在预定..."<switch(this->roomType)
{
case1:
for(inti=0;i<20;i++)
{
if(room[i].State==0)ays=this->stayTime;
room[i].Name=this->cName;
room[i].Phone=this->phoneNum;
room[i].Price*=this->stayTime;
cout<<"预定成功!
房间号:
"<room[i].State=1;break;umber<<"号房间已有人"<}break;
case2:
for(inti=20;i<40;i++)
{
if(room[i].State==0)
{
room[i].days=this->stayTime;
room[i].Name=this->cName;
room[i].Phone=this->phoneNum;
room[i].Price*=this->stayTime;
cout<<"预定成功!
房间号:
"<room[i].State=1;break;
}
elsecout<}break;
case3:
for(inti=40;i<60;i++)
{
if(room[i].State==0)
{
room[i].days=this->stayTime;
room[i].Name=this->cName;
room[i].Phone=this->phoneNum;
room[i].Price*=this->stayTime;
cout<<"预定成功!
房间号:
"<room[i].State=1;break;
}
elsecout<}break;
case4:
for(inti=60;i<80;i++)
{
if(room[i].State==0)
{
room[i].days=this->stayTime;
room[i].Name=this->cName;
room[i].Phone=this->phoneNum;
room[i].Price*=this->stayTime;
cout<<"预定成功!
房间号:
"<room[i].State=1;break;
}
elsecout<}break;
default:
cout<<"您输入的房间类型有误!
"<}
};
};
classCheckIn准单人间100/天2.大床房200/天3.标准双人间300/天4.套房400/天"<>type;roomType=type;
cout<<"客户手机号:
"<>num;phoneNum=num;
switch(this->roomType)
{
case1:
for(inti=0;i<20;i++)
{
if(room[i].State==0){
room[i].days=this->stayTime;
room[i].Name=this->cName;
room[i].Phone=this->phoneNum;
room[i].Price*=this->stayTime;
room[i].ID=this->idNum;
cout<<"入住成功!
房间号:
"<cout<<"请支付200元押金"<room[i].State=1;
break;
}
elsecout<<"抱歉,该房间类型没有了"<}break;
case2:
for(inti=20;i<40;i++)
{
if(room[i].State==0){
room[i].days=this->stayTime;
room[i].Name=this->cName;
room[i].Phone=this->phoneNum;
room[i].Price*=this->stayTime;
room[i].ID=this->idNum;
cout<<"入住成功!
房间号:
"<cout<<"请支付400元押金"<room[i].State=1;
break;
}
elsecout<<"抱歉,该房间类型没有了"<}break;
case3:
for(inti=40;i<60;i++)
{
if(room[i].State==0){
room[i].days=this->stayTime;
room[i].Name=this->cName;
room[i].Phone=this->phoneNum;
room[i].Price*=this->stayTime;
room[i].ID=this->idNum;
cout<<"入住成功!
房间号:
"<cout<<"请支付600元押金"<room[i].State=1;
break;
}
elsecout<<"抱歉,该房间类型没有了"<}break;
case4:
for(inti=60;i<80;i++)
{
if(room[i].State==0){
room[i].days=this->stayTime;
room[i].Name=this->cName;
room[i].Phone=this->phoneNum;
room[i].Price*=this->stayTime;
room[i].ID=this->idNum;
cout<<"入住成功!
房间号:
"<cout<<"请支付800元押金"<room[i].State=1;
break;
}
elsecout<<"抱歉,该房间类型没有了"<}break;
default:
cout<<"您输入的房间类型有误!
"<}
}
voidbooked()
{
stringcompareItem;
stringid_num;
cout<<"请输入您的姓名或者手机号:
"<>compareItem;
for(inti=0;i<80;i++)
{
if(room[i].Name==compareItem||room[i].Phone==compareItem)
{
cout<<"验证成功!
请支付:
"<<(room[i].Price*2)<<"元押金"<cout<<"请登记客户的身份证号:
"<>id_num;idNum=id_num;room[i].ID=idNum;
cout<<"房间号为:
"<"<break;
}
}
}
};
classcheckOut{
private:
stringname;
intnumber;
intdays;
intprice;
public:
voidcheckout(){
intexpense;
cout<<"请输入房间号:
"<>number;
cout<<"请输入姓名:
"<>name;
cout<<"请输入实际住宿天数:
"<>days;
for(inti=0;i<80;i++){
if((room[i].Name==name)&&(room[i].Number==number)){
expense=days*(room[i].Number/100*100);
cout<<"房间号为"<cout<<"押金为:
"<if(expense>room[i].Price)cout<<"请补交"<<(expense-room[i].Price)<<"元"<elsecout<<"退回:
"<<(room[i].Price-expense)<<"元"<}
elsecout<}
cout<<"房费核算清后请安任意键继续"<system("pause");
cout<<"感谢入住本酒店,欢迎下次光临!
"<}
};
voidmenu()
{
cout<<"欢迎使用酒店管理系统!
"<cout<<"请选择:
"<cout<<"1.预定房间"<cout<<"2.办理入住"<cout<<"3.退房结账"<cout<<"4.退出系统"<}
voidinit()
{
intn=101;
for(inti=0;i<20;i++)
{
room[i].Number=n++;
room[i].Price=100;
room[i].State=0;
}
n=201;
for(inti=20;i<40;i++)
{
room[i].Number=n++;
room[i].Price=200;
room[i].State=0;
}
n=301;
for(inti=40;i<60;i++)
{
room[i].Number=n++;
room[i].Price=300;
room[i].State=0;
}
n=401;
for(inti=60;i<80;i++)
{
room[i].Number=n++;
room[i].Price=400;
room[i].State=0;
}
}
intmain(void)
{
init();
intflag=1;
while(flag)
{
menu();
intc;
cin>>c;
switch(c)
{
case1:
{
BookRoom*a=newBookRoom;
a->setData();
a->Book();
break;
}
case2:
{
CheckIn*b=newCheckIn;
cout<<"您有预定吗?
1.已预定2.未预定"<intc;
cin>>c;
switch(c)
{
case1:
{
b->booked();
break;
}
case2:
{
b->unbooked();
break;
}
default:
cout<<"输入有误!
"<}
break;
}
case3:
{
checkOut*c=newcheckOut;
c->checkout();
break;
}
case4:
{
cout<<"谢谢使用,再见!
"<flag=0;
break;
}
default:
cout<<"输入有误!
"<}
}
return0;
}
O:
最初废除版(利用数组)
因为数组只能简单的储存一种类型的数据,例如字符和数字。
而酒店管理系统这种情境,一个房间要储存多种数据,例如客户姓名、客户性别、预订房间号、客户预留手机号、客户占用天数、客户身份证号以及押金和实际花销等。
因此我选用了结构体来储存。
以下是Oldversion:
#include
#include
usingnamespacestd;
introom_num[4][20];准单人间2.大床房3.标准双人间4.套房)
stringphoneNum;准单人间2.大床房3.标准双人间4.套房"<>type;roomType=type;
cout<<"预留手机号:
"<>num;phoneNum=num;
};
voidBook()
{
cout<<"正在预定..."<switch(this->roomType){
case1:
for(inti=0;i<20;i++)
{
if(room_num[1][i]==0)."<switch(Room_num/100)
{
case1:
cout<<"办理成功!
共计消费:
"<<100*stayTime<break;
case2:
cout<<"办理成功!
共计消费:
"<<200*stayTime<break;
case3:
cout<<"办理成功!
共计消费:
"<<300*stayTime<break;
case4:
cout<<"办理成功!
共计消费:
"<<400*stayTime<break;
default:
cout<<"输入错误!
"<}
};
};
voidmenu()
{
cout<<"欢迎使用酒店管理系统!
"<cout<<"请选择:
"<cout<<"1.预定房间"<cout<<"2.办理入住"<cout<<"3.退房结账"<cout<<"4.退出系统"<}
intmain(void)
{
for(inti=0;i<4;i++)
{
for(intj=0;j<20;j++)
{
room_num[i][j]=0;
}
}
intflag=1;
while(flag)
{
menu();
intc;
cin>>c;
switch(c)
{
case1:
{
BookRoom*a=newBookRoom;
a->setData();
a->Book();
break;
}
case2:
{
Checkin*b=newCheckin;
b->setData();
b->Check();
break;
}
//case3todo
case4:
{
cout<<"谢谢使用,再见!
"<flag=0;
break;
}
default:
cout<<"输入有误!
"<}
}
return0;
}