




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
。程序代码N:最终改进版代码(利用结构体储存多种类型的数据)好处:比数组能储存更多类型的数据!#include#include#include /常用函数库 using namespace std;/*在c+中struct和类的区别在于struct不能有方法,所有成员是public的*/struct Roomint Number;int Price;int State;int days;string Name;string Phone;string ID;/room; 可以在声明struct的时候声明一个struct实例Room room80;class BookRoom /定义预定房间类 private:string cName; /顾客姓名int stayTime; /预定天数int roomType; /房间类型(1.标准单人间 2.大床房 3.标准双人间 4. 套房)string phoneNum; / 预留手机号public: void setData() string name; int time; int type; string num; cout您好,请输入您的姓名:name; cName=name;cout预定天数为:time; stayTime=time;cout想要预定的房间类型:1.标准单人间 100/天 2.大床房 200/天 3.标准双人间 300/天 4.套房400/天type; roomType=type;cout预留手机号:num; phoneNum=num;void Book()cout正在预定.roomType)case 1:for(int i=0;istayTime;roomi.Name=this-cName;roomi.Phone=this-phoneNum;roomi.Price*=this-stayTime;cout预定成功!房间号:roomi.Numberendlendl;roomi.State=1;break; /已被预订 else coutroomi.Number号房间已有人endl;break;case 2:for(int i=20;istayTime; roomi.Name=this-cName;roomi.Phone=this-phoneNum;roomi.Price*=this-stayTime; cout预定成功!房间号:roomi.Numberendlendl;roomi.State=1; break; else coutroomi.Number号房间已有人endl;break;case 3:for(int i=40;istayTime; roomi.Name=this-cName;roomi.Phone=this-phoneNum;roomi.Price*=this-stayTime; cout预定成功!房间号:roomi.Numberendlendl;roomi.State=1; break; else coutroomi.Number号房间已有人endl;break;case 4:for(int i=60;istayTime; roomi.Name=this-cName;roomi.Phone=this-phoneNum;roomi.Price*=this-stayTime; cout预定成功!房间号:roomi.Numberendlendl;roomi.State=1; break;else coutroomi.Number号房间已有人endl;break;default:cout您输入的房间类型有误!endl; ;class CheckIn /定义办理入住类private:string cName;string cSex;string idNum; /身份证号 int check_inDate; /入住日期 int stayTime; int roomType; string phoneNum;public:void unbooked()string name;string sex;string idnum;int date;int time;int type;string num;cout客户姓名:name; cName=name;cout客户性别:sex; cSex=sex; cout客户身份证号:idnum; idNum=idnum;cout入住日期:date; check_inDate=date;cout占用天数:time;stayTime=time;cout房间类型:1.标准单人间 100/天 2.大床房 200/天 3.标准双人间 300/天 4.套房 400/天type;roomType=type;cout客户手机号:num; phoneNum=num;switch(this-roomType)case 1:for(int i=0;istayTime;roomi.Name=this-cName;roomi.Phone=this-phoneNum;roomi.Price*=this-stayTime;roomi.ID=this-idNum;cout入住成功!房间号:roomi.Numberendlendl;cout请支付200元押金endlendl;roomi.State=1;break; else cout抱歉,该房间类型没有了endl;break;case 2:for(int i=20;istayTime;roomi.Name=this-cName;roomi.Phone=this-phoneNum;roomi.Price*=this-stayTime;roomi.ID=this-idNum;cout入住成功!房间号:roomi.Numberendlendl;cout请支付400元押金endlendl;roomi.State=1;break; else cout抱歉,该房间类型没有了endl;break;case 3:for(int i=40;istayTime;roomi.Name=this-cName;roomi.Phone=this-phoneNum;roomi.Price*=this-stayTime;roomi.ID=this-idNum;cout入住成功!房间号:roomi.Numberendlendl;cout请支付600元押金endlendl;roomi.State=1;break; else cout抱歉,该房间类型没有了endl;break;case 4:for(int i=60;istayTime;roomi.Name=this-cName;roomi.Phone=this-phoneNum;roomi.Price*=this-stayTime;roomi.ID=this-idNum;cout入住成功!房间号:roomi.Numberendlendl;cout请支付800元押金endlendl;roomi.State=1;break; else cout抱歉,该房间类型没有了endl;break;default:cout您输入的房间类型有误!endl; void booked()string compareItem;string id_num;cout请输入您的姓名或者手机号:compareItem;for(int i=0;i80;i+)if(roomi.Name=compareItem|roomi.Phone=compareItem)cout验证成功!请支付:(roomi.Price*2)元押金endl;cout请登记客户的身份证号:id_num;idNum=id_num;roomi.ID=idNum;cout房间号为: roomi.Numberendl欢迎入住!endlendl;break; ;class checkOutprivate:string name;int number;int days;int price;public:void checkout()int expense;cout请输入房间号:number;cout请输入姓名:name;cout请输入实际住宿天数:days; for(int i=0;i80;i+)if(roomi.Name=name) & (roomi.Number=number)expense=days*(roomi.Number/100*100);cout房间号为roomi.Number的房间实际消费为expense元endl;cout押金为:roomi.Priceroomi.Price) cout请补交(expense-roomi.Price)元endl;else cout退回:(roomi.Price-expense)元endl; break;else coutroomi.Number号房不符合endl;cout房费核算清后请安任意键继续endlendl; system(pause);cout感谢入住本酒店,欢迎下次光临!endlendl;void menu()cout欢迎使用酒店管理系统!endl;cout请选择:endl;cout1.预定房间endl;cout2.办理入住endl;cout3.退房结账endl;cout4.退出系统endl; void init()int n=101;for(int i=0;i20;i+)roomi.Number=n+;roomi.Price=100;roomi.State=0;n=201; for(int i=20;i40;i+)roomi.Number=n+;roomi.Price=200;roomi.State=0;n=301;for(int i=40;i60;i+)roomi.Number=n+;roomi.Price=300;roomi.State=0;n=401;for(int i=60;ic; switch(c) case 1: BookRoom*a=new BookRoom; a-setData(); a-Book(); break; case 2: CheckIn*b=new CheckIn; cout您有预定吗? 1.已预定 2.未预定c; switch(c) case 1: b-booked(); break;case 2:b-unbooked();break;default:cout输入有误!checkout(); break;case 4: cout谢谢使用,再见!endl; flag=0; break; default:cout输入有误!endl; return 0; O:最初废除版(利用数组)因为数组只能简单的储存一种类型的数据,例如字符和数字。而酒店管理系统这种情境,一个房间要储存多种数据,例如客户姓名、客户性别、预订房间号、客户预留手机号、客户占用天数、客户身份证号以及押金和实际花销等。因此我选用了结构体来储存。以下是Old version:#include#includeusing namespace std;int room_num420; /定义数组,共4个楼层,每个楼层20个房间,一层一类型class BookRoom /定义预定房间类 private:string cName; /顾客姓名int stayTime; /预定天数int roomType; /房间类型(1.标准单人间 2.大床房 3.标准双人间 4. 套房)string phoneNum; / 预留手机号(也可使用longint) public: void setData() string name; int time; int type; string num; cout您好,请输入您的姓名:name; cName=name;cout预定天数为:time; stayTime=time;cout想要预定的房间类型:1.标准单人间 2.大床房 3.标准双人间 4. 套房type; roomType=type;cout预留手机号:num; phoneNum=num;void Book()cout正在预定.roomType)case 1:for(int i=0;i20;i+)if (room_num1i=0) /房间无人占用且无人预定 cout预定成功!房间号:10i+1endl;room_num1i=1;break; /已被预订 else cout该类型房间没有了endl; break;case 2:for(int i=0;i20;i+) if(room_num2i=0) cout预定成功!房间号:20i+1endl;room_num2i=1; break;else cout该类型房间没有了endl; break;case 3:for(int i=0;i20;i+)if(room_num3i=0) cout预定成功!房间号:30i+1endl;room_num3i=1; break;else cout该类型房间没有了endl; break;case 4:for(int i=0;i20;i+)if(room_num4i=0) cout预定成功!房间号:40i+1endl;room_num4i=1; break;else cout该类型房间没有了endl; break;default:cout您输入的房间类型有误!endl; ;class Checkin /定义办理入住类private:string cName;string cSex;string cId; /身份证号 string phoneNum;int check_inDate; /入住时间 int stayTime;int Room_num;public:void setData()string name;string sex;string id;string num;int date;int time;int room_num;cout客户姓名:name;cName=name;cout性别:sex;cSex=sex;cout身份证号:id;cId=id;cout手机号:num;phoneNum=num;cout登记入住时间:date;check_inDate=date;cout入住天数:time;stayTime=time;cout房间号:room_num;Room_num=room_num; ;void Check
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025长治市妇幼保健院招聘26人笔试参考题库附答案解析
- 2025广东广州市花都区花东镇迳口初级中学招聘临聘教师6人考试备考试题及答案解析
- 2025广东汕头市潮南区银龄教师招募8人考试备考题库及答案解析
- 2025年安徽国控集团所属企业招聘23人笔试参考题库附答案解析
- 2025天津市公用事业设计研究所事业单位招聘4人考试备考题库及答案解析
- (2025年标准)委托验货协议书
- (2025年标准)珠宝租赁合同协议书
- (2025年标准)培训学员转手协议书
- (2025年标准)专线安装委托协议书
- (2025年标准)委托电费代办协议书
- 地铁安检培训课件
- 2025年豪华别墅室内外装饰设计及施工一体化服务合同
- 废铅酸蓄电池回收处置项目可行性研究报告
- 2025年重庆对外建设有限公司招聘考试笔试试题
- 2025年阿克苏社区专职工作人员招聘真题
- 药学教学课件下载
- 急性下壁心肌梗死患者PCI术后护理个案
- 出生缺陷防治知识课件
- 口腔门诊护理人员管理
- 通山城区污水处理厂运营维护方案
- 市政管网工程施工过程质量保证措施
评论
0/150
提交评论