C++版酒店管理程序代码.docx
- 文档编号:30155156
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:21
- 大小:18.68KB
C++版酒店管理程序代码.docx
《C++版酒店管理程序代码.docx》由会员分享,可在线阅读,更多相关《C++版酒店管理程序代码.docx(21页珍藏版)》请在冰豆网上搜索。
C++版酒店管理程序代码
程序代码
N:
最终改进版代码(利用结构体储存多种类型的数据)
好处:
比数组能储存更多类型的数据!
#include
#include
#include
usingnamespacestd;
/*在c++中struct和类的区别在于struct不能有方法,所有成员是public的*/
structRoom
{
intNumber;
intPrice;
intState;
intdays;
stringName;
stringPhone;
stringID;
};//room;可以在声明struct的时候声明一个struct实例
Roomroom[80];
classBookRoom//定义预定房间类
{
private:
stringcName;//顾客姓名
intstayTime;//预定天数
introomType;//房间类型(1.标准单人间2.大床房3.标准双人间4.套房)
stringphoneNum;//预留手机号
public:
voidsetData()
{
stringname;
inttime;
inttype;
stringnum;
cout<<"您好,请输入您的姓名:
"<
cout<<"预定天数为:
"<
cout<<"想要预定的房间类型:
1.标准单人间100/天2.大床房200/天3.标准双人间300/天4.套房400/天"<
cout<<"预留手机号:
"<
};
voidBook()
{
cout<<"正在预定..."< 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; cout<<"预定成功! 房间号: "< 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; 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//定义办理入住类 { private: stringcName; stringcSex; stringidNum;//身份证号 intcheck_inDate;//入住日期 intstayTime; introomType; stringphoneNum; public: voidunbooked() { stringname; stringsex; stringidnum; intdate; inttime; inttype; stringnum; cout<<"客户姓名: "< cout<<"客户性别: "< cout<<"客户身份证号: "< cout<<"入住日期: "< cout<<"占用天数: "< cout<<"房间类型: 1.标准单人间100/天2.大床房200/天3.标准双人间300/天4.套房400/天"< cout<<"客户手机号: "< 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<<"请输入您的姓名或者手机号: "< for(inti=0;i<80;i++) { if(room[i].Name==compareItem||room[i].Phone==compareItem) { cout<<"验证成功! 请支付: "<<(room[i].Price*2)<<"元押金"< cout<<"请登记客户的身份证号: "< cout<<"房间号为: "< "< break; } } } }; classcheckOut{ private: stringname; intnumber; intdays; intprice; public: voidcheckout(){ intexpense; cout<<"请输入房间号: "< cout<<"请输入姓名: "< cout<<"请输入实际住宿天数: "< 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];//定义数组,共4个楼层,每个楼层20个房间,一层一类型 classBookRoom//定义预定房间类 { private: stringcName;//顾客姓名 intstayTime;//预定天数 introomType;//房间类型(1.标准单人间2.大床房3.标准双人间4.套房) stringphoneNum;//预留手机号(也可使用longint) public: voidsetData() { stringname; inttime; inttype; stringnum; cout<<"您好,请输入您的姓名: "< cout<<"预定天数为: "< cout<<"想要预定的房间类型: 1.标准单人间2.大床房3.标准双人间4.套房"< cout<<"预留手机号: "< }; voidBook() { cout<<"正在预定..."< switch(this->roomType){ case1: for(inti=0;i<20;i++) { if(room_num[1][i]==0)//房间无人占用且无人预定 { cout<<"预定成功! 房间号: 10"< room_num[1][i]=1;break;//已被预订 } elsecout<<"该类型房间没有了"< }break; case2: for(inti=0;i<20;i++) { if(room_num[2][i]==0) { cout<<"预定成功! 房间号: 20"< room_num[2][i]=1;break; } elsecout<<"该类型房间没有了"< }break; case3: for(inti=0;i<20;i++) { if(room_num[3][i]==0) { cout<<"预定成功! 房间号: 30"< room_num[3][i]=1;break; } elsecout<<"该类型房间没有了"< }break; case4: for(inti=0;i<20;i++) { if(room_num[4][i]==0) { cout<<"预定成功! 房间号: 40"< room_num[4][i]=1;break; } elsecout<<"该类型房间没有了"< }break; default: cout<<"您输入的房间类型有误! "< } }; }; classCheckin//定义办理入住类 { private: stringcName; stringcSex; stringcId;//身份证号 stringphoneNum; intcheck_inDate;//入住时间 intstayTime; intRoom_num; public: voidsetData() { stringname; stringsex; stringid; stringnum; intdate; inttime; introom_num; cout<<"客户姓名: "< cout<<"性别: "< cout<<"身份证号: "< cout<<"手机号: "< cout<<"登记入住时间: "< cout<<"入住天数: "< cout<<"房间号: "<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 酒店 管理 程序代码