如何使用C++实现酒店管理系统

如何使用C++实现酒店管理系统

这篇文章主要介绍了如何使用C++实现酒店管理系统,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

现今大多数宾馆所提供的服务样式都各式各样,规模大小也是各有不同,但是归总下来,不可或缺的两类模块还是顾客和工作人员。由于对宾馆行业内部没有很深刻的理解,此次系统设计包括数据库和功能模块都是根据网上收集到的材料和个人认知上,简单模仿和具体实现的。

为满宾馆管理的实际需求,本系统主要实现以下功能:

1、入住登记:登记所入住房间号码,登记顾客入住时间,退房时间,个人信息(身份证号,手机号,姓名)
2、退房办理:输入已经入住的房间号,确认完毕即可退房。
3、房间查询:管理员输入正确的密码后即可对房间状态查询,和具体入住信息查询。
4、密码修改:管理员对自身密码进行修改,前提是先输入正确密码后才能实现。
5、以txt文档的形式存储信息数据。
6、使用类封装。

注:代码使用前需要先向代码中自定义路径下的Input.txt文档中预存信息

功能截图

代码:

#include#include#include#include#include#include#include#includeusingnamespacestd;classroom{private:introomnumber=0;//房间号intprice=0;//价格intstart_date=0;//开始结束日期intend_date=0;boolorder=0;//房间状态0/1stringname;//个人信息stringID;stringphone;public:voidgetnumber(int_number){roomnumber=_number;}intreturnnumber()const{returnroomnumber;}voidgetprice(int_price){price=_price;}intreturnprice()const{returnprice;}voidgetdate(ints,inte){if(s<1||s>31||e<1||e>31||s>=e)throwruntime_error("错误的日期!");start_date=s;end_date=e;}intreturnstartdate()const{returnstart_date;}intreturnenddate()const{returnend_date;}voidgetorder(bool_order){if(!(_order==0||_order==1))throwout_of_range("房间状态错误!");order=_order;}boolreturnorder()const{returnorder;}voidgetname(string_name){name=_name;}stringreturnname()const{returnname;}voidgetID(stringid){if(id.size()<18||id.size()>19)throwruntime_error("您的身份证号输入有误,请重新输入!(18位)");ID=id;}stringreturnID()const{returnID;}voidgetphone(stringph){if(ph.size()!=11)throwruntime_error("您的手机号输入有误,请重新输入(11位)!");phone=ph;}stringreturnphone()const{returnphone;}intsumprice(){returnprice*(end_date-start_date);}friendostream&operator<<(ostream&os,constroom*u)//输出流重载{os<returnnumber()<<'\n';os<returnprice()<<'\n';os<returnstartdate()<<'\n';os<returnenddate()<<'\n';os<returnorder()<<'\n';os<returnname()<<'\n';os<returnID()<<'\n';os<returnphone()<<'\n';returnos;}};classstandard:publicroom{};classsuite:publicroom{};classkingsize:publicroom{};voidnomorememory(){cerr<<"unabletosatisfyrequestformemory\n";abort();}//new分配异常intcheck(inta[],intsize,intsuspicion){intjudge=0;for(inti=0;ireturnorder()==0){temp1=p[i]->returnnumber();cout<>temp;check(vacant_room,j,temp);}catch(inte){cout<<"房间"<returnnumber()==temp){current=p[i];break;}}part2:try{cout<<"请输入入住日期"<>temp;cout<<"请输入离店日期"<>temp1;current->getdate(temp,temp1);cout<<"请输入您的姓名"<>str;current->getname(str);cout<<"请输入您的身份证号"<>str;current->getID(str);cout<<"请输入您的手机号"<>str;current->getphone(str);current->getorder(static_cast(1));cout<<"您的消费金额";temp=current->sumprice();cout<>temp;room*current=NULL;cout<returnnumber()==temp){current=p[i];}if(p[i]->returnorder()==1){orderroom[j]=p[i]->returnnumber();j++;}}check(orderroom,j,temp);}catch(inte){cout<<"房间"<getorder(static_cast(0));try{update(p,filename);}catch(file_exception&e){cout<<"Failtoopen"<>temp1;fflush(stdin);if(temp1==1){password(rightpassword);cout<<"请输入新的密码"<>rightpassword;}HANDLEhout=GetStdHandle(STD_OUTPUT_HANDLE);//句柄SetConsoleTextAttribute(hout,FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE);cout<<"请输入想要查询的房间号."<>temp1;for(inti=0;i<6;i++){if(p[i]->returnnumber()==temp1){cout<>roomnumber>>price>>start_date>>end_date>>order>>name>>ID>>phone;p[i]->getnumber(roomnumber);p[i]->getprice(price);p[i]->getdate(start_date,end_date);p[i]->getorder(order);p[i]->getname(name);p[i]->getID(ID);p[i]->getphone(phone);}}elsethrowfile_exception(filename1);ifs.close();}catch(file_exception&e){cout<<"Failtoopen"<>temp;system("cls");if(temp==1){while(1){SetConsoleTextAttribute(hout,FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE);//设置背景和字体颜色cout<<"欢迎来到小刘酒店!(游客)\n";SetConsoleTextAttribute(hout,FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);cout<<"若你想要安全退出,pleaseinput0.\n";SetConsoleTextAttribute(hout,FOREGROUND_INTENSITY|FOREGROUND_BLUE);cout<<"若你想要入住酒店,pleaseinput1.\n";SetConsoleTextAttribute(hout,FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);cout<<"若你想要办理退房,pleaseinput2.\n";inttemp2;stringstr;cin>>temp2;system("cls");if(temp2==0)break;if(temp2==1){checkin(p,6,filename1,filename2);}if(temp2==2){checkout(p,6,filename1);}cout<<"succeed!"<>temp2;system("cls");if(temp2==0)break;if(temp2==1){checkin(p,static_cast(6),filename1,filename2);}if(temp2==2){checkout(p,static_cast(6),filename1);}if(temp2==3){stringrightpassword="123456";//默认初始密码searchfor(p,6,rightpassword);}system("pause");system("cls");}}return0;}

注:代码使用前需要先向代码中自定义路径下的Input.txt文档中预存信息

感谢你能够认真阅读完这篇文章,希望小编分享的“如何使用C++实现酒店管理系统”这篇文章对大家有帮助,同时也希望大家多多支持恰卡编程网,关注恰卡编程网行业资讯频道,更多相关知识等着你来学习!

发布于 2022-03-18 22:50:08
分享
海报
27
上一篇:Nginx怎样实现负载均衡 下一篇:Spring BeanUtils如何忽略空值拷贝
目录

    忘记密码?

    图形验证码