下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、程序代码N:最终改进版代码(利用结构体储存多种类型的数据)好处:比数组能储存更多类型的数据!#include<iostream>#include<string>#include<cstdlib>/ 常用函数库using namespace std;public 的 */*在C+中struct和类的区别在于struct不能有方法,所有成员是struct Roomint Number;int Price;int State;int days;string Name;string Phone;string ID;/room; 可以在声明 struct 的时候声明一
2、个 struct 实例Room room80;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<<" 您好,请输入您的姓名: "<<endl;cin>>name; cName=name;cout<<" 预定
3、天数为: "<<endl; cin>>time; stayTime=time;cout<<" 想要预定的房间类型: 1.标准单人间 100/天 2.大床房 200/天 3.标 准双人间 300/天 4.套房 400/天"<<endl;cin»type; roomType=type;cout<<" 预留手机号: "<<endl;cin>>num; phoneNum=num;void Book()cout<<" 正在预定 ."
4、;<<endl;switch(this->roomType)case 1:for(int i=0;i<20;i+)if (roomi.State=0)/房间无人占用且无人预定roomi.days=this->stayTime;roomi.Name=this->cName;roomi.Phone=this->phoneNum;roomi.Price*=this->stayTime;cout<<" 预定成功! 房间号: "<<roomi.Number<<endl<<endl;room
5、i.State=1;break;/已被预订else cout<<roomi.Number<<" 号房间已有人 "<<endl;break;case 2:for(int i=20;i<40;i+)if(roomi.State=0)roomi.days=this->stayTime;roomi.Name=this->cName;roomi.Phone=this->phoneNum; roomi.Price*=this->stayTime;cout<<" 预定成功! 房间号: "&l
6、t;<roomi.Number<<endl<<endl; roomi.State=1; break;else cout<<roomi.Number<<" 号房间已有人 "<<endl;break;case 3:for(int i=40;i<60;i+)if(roomi.State=0)roomi.days=this->stayTime;roomi.Name=this->cName;roomi.Phone=this->phoneNum; roomi.Price*=this->sta
7、yTime;cout<<" 预定成功! 房间号: "<<roomi.Number<<endl<<endl; roomi.State=1; break;else cout<<roomi.Number<<" 号房间已有人 "<<endl;break;case 4:for(int i=60;i<80;i+)if(roomi.State=0)roomi.days=this->stayTime;roomi.Name=this->cName;roomi.Phone=
8、this->phoneNum; roomi.Price*=this->stayTime;cout<<" 预定成功! 房间号: "<<roomi.Number<<endl<<endl;roomi.State=1; break;else cout<<roomi.Number<<" 号房间已有人 "<<endl;break;default:cout<<" 您输入的房间类型有误! "<<endl; ;class CheckI
9、n/ 定义办理入住类private:string cName;/入住日期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<<" 客户姓名: "<<endl; cin>>name; cName=name;cout<<" 客户性别: "<
10、;<endl; cin>>sex; cSex=sex;cout<<" 客户身份证号: "<<endl; cin>>idnum; idNum=idnum;cout<<" 入住日期:"<<endl; cin>>date; check_inDate=date;cout<<" 占用天数:"<<endl; cin>>time;stayTime=time;cout<<" 房间类型:1.标准单人间 10
11、0/天 2.大床房 200/天 3.标准双人间300/天 4.套房 400/天"<<endl; cin>>type;roomType=type;cout<<" 客户手机号: "<<endl; cin>>num; phoneNum=num;switch(this->roomType)case 1:for(int i=0;i<20;i+)if(roomi.State=0)roomi.days=this->stayTime;roomi.Name=this->cName;roomi.Pho
12、ne=this->phoneNum;roomi.Price*=this->stayTime;roomi.ID=this->idNum;cout<<" 入住成功! 房间号: "<<roomi.Number<<endl<<endl;cout<<" 请支付 200 元押金 "<<endl<<endl;roomi.State=1;break;else cout<<" 抱歉,该房间类型没有了 "<<endl;break;
13、case 2:for(int i=20;i<40;i+)if(roomi.State=0)roomi.days=this->stayTime;roomi.Name=this->cName;roomi.Phone=this->phoneNum;roomi.Price*=this->stayTime;roomi.ID=this->idNum;cout<<" 入住成功! 房间号: "<<roomi.Number<<endl<<endl; cout<<" 请支付 400 元押金
14、 "<<endl<<endl;roomi.State=1;break;else cout<<" 抱歉,该房间类型没有了 "<<endl;break;case 3:for(int i=40;i<60;i+)if(roomi.State=0) roomi.days=this->stayTime; roomi.Name=this->cName; roomi.Phone=this->phoneNum; roomi.Price*=this->stayTime; roomi.ID=this->
15、idNum; cout<<" 入住成功! 房间号: "<<roomi.Number<<endl<<endl; cout<<" 请支付 600 元押金 "<<endl<<endl;roomi.State=1;break;else cout<<" 抱歉,该房间类型没有了 "<<endl;break;case 4:for(int i=60;i<80;i+)if(roomi.State=0)roomi.days=this->
16、stayTime;roomi.Name=this->cName;roomi.Phone=this->phoneNum;roomi.Price*=this->stayTime;roomi.ID=this->idNum;cout<<" 入住成功! 房间号: "<<roomi.Number<<endl<<endl;cout<<" 请支付 800 元押金 "<<endl<<endl;roomi.State=1;break;else cout<<
17、" 抱歉,该房间类型没有了 "<<endl;break;default:cout<<" 您输入的房间类型有误! "<<endl;void booked()string compareItem;string id_num;cout<<" 请输入您的姓名或者手机号: "<<endl;cin>>compareItem;for(int i=0;i<80;i+)if(roomi.Name=compareItem|roomi.Phone=compareItem)cout
18、<<" 验 证 成 功 ! 请 支 付 : "<<(roomi.Price*2)<<" 元 押 金 "<<endl;cout<<" 请 登 记 客 户 的 身 份 证 号 : "<<endl;cin>>id_num;idNum=id_num;roomi.ID=idNum;cout<<" 房 间号 为: " <<roomi.Number<<endl<<" 欢迎入 住! &quo
19、t;<<endl<<endl;break;class checkOutprivate:string name;int days;int price;public:void checkout()int expense;cout<<" 请输入房间号: "<<endl; cin>>number;cout<<" 请输入姓名: "<<endl; cin>>name;cout<<" 请输入实际住宿天数: "<<endl; cin
20、>>days;for(int i=0;i<80;i+)if(roomi.Name=name) && (roomi.Number=number) expense=days*(roomi.Number/100*100);cout<<" 房 间 号 为 "<<roomi.Number<<" 的 房 间 实 际 消 费 为"vvexpense<<"元"<<endl;cout<<" 押金为: "<<roomi
21、.Price<<endl;if(expense>roomi.Price)cout<<" 请 补 交"<<(expense-roomi.Price)<<"元"<<endl;else cout<<" 退 回 : "<<(roomi.Price-expense)<<" 元 "<<endl;break;else cout<<roomi.Number<<" 号房不符合 "
22、;<<endl;cout<<" 房费核算清后请安任意键继续 "<<endl<<endl;system("pause");cout<<" 感谢入住本酒店,欢迎下次光临! "<<endl<<endl;void menu()"<<endl;cout<<" 欢迎使用酒店管理系统!cout<<" 请选择: "<<endl; cout<<"1. 预定房间
23、"<<endl; cout<<"2. 办理入住 "<<endl; cout<<"3. 退房结账 "<<endl; cout<<"4. 退出系统 "<<endl;void init()int n=101;for(int i=0;i<20;i+)roomi.Number=n+; roomi.Price=100; roomi.State=0;n=201;roomi.Number=n+;roomi.Price=200;roomi.State=0
24、;n=301;for(int i=40;i<60;i+)roomi.Number=n+;roomi.Price=300;roomi.State=0;n=401;for(int i=60;i<80;i+)roomi.Number=n+;roomi.Price=400;roomi.State=0;init();int flag=1;while(flag)menu();int c;cin>>c;switch(c)case 1:BookRoom*a=new BookRoom;a->setData();a->Book();break;case 2:CheckIn*b=
25、new CheckIn;cout<<" 您有预定吗? 1.已预定 2.未预定 "<<endl;cin>>c;switch(c)case 1:b->booked();break;case 2:b->unbooked();break;"<<endl;default:cout<<" 输入有误!break;case 3:checkOut *c=new checkOut;c->checkout();break;case 4:cout<<" 谢谢使用,再见! &quo
26、t;<<endl;flag=0;break;"<<endl;default:cout<<" 输入有误!return 0;O :最初废除版(利用数组)因为数组只能简单的储存一种类型的数据, 例如字符和数字。 而酒店管理系统这种情境, 一个房间要储存多种数据,例如客户姓名、客户性别、预订房间号、客户预留手机号、 客户占用天数、客户身份证号以及押金和实际花销等。因此我选用了结构体来储存。以下是 Old version:#include<iostream>#include<string>using namespace st
27、d;int room_num420;/定义数组,共 4 个楼层,每个楼层 20个房间,一层一类string cName;/顾客姓名int stayTime;/预定天数int roomType;/房间类型( 1.标准单人间 2.大床房 3.标准双人间 4. 套房)string phoneNum;/ 预留手机号 (也可使用 longint)class BookRoomprivate:/定义预定房间类public:void setData()string name;int time;int type;string num;cout<<" 您好,请输入您的姓名: "&l
28、t;<endl; cin>>name; cName=name;cout<<" 预定天数为: "<<endl; cin>>time; stayTime=time;cout<<" 想要预定的房间类型: 1.标准单人间 2.大床房 3.标准双人间 4. 套 房 "<<endl; cin>>type; roomType=type;cout<<" 预留手机号: "<<endl; cin>>num; phoneNum=nu
29、m;void Book()cout<<" 正在预定 ."<<endl;switch(this->roomType)case 1:for(int i=0;i<20;i+)if (room_num1i=0)/房间无人占用且无人预定cout<<" 预定成功!房间号: 10"<<i+1<<endl; room_num1i=1;break; / 已被预订else cout<<" 该类型房间没有了 "<<endl;break;case 2:for(in
30、t i=0;i<20;i+)if(room_num2i=0)cout<<" 预定成功!房间号: 20"<<i+1<<endl; room_num2i=1; break;else cout<<" 该类型房间没有了 "<<endl;break;case 3:for(int i=0;i<20;i+)if(room_num3i=0)cout<<" 预定成功!房间号: room_num3i=1; break;else cout<<" 该类型房间没有了
31、break;case 4:for(int i=0;i<20;i+)if(room_num4i=0)cout<<" 预定成功!房间号: room_num4i=1; break;else cout<<" 该类型房间没有了break;30"<<i+1<<endl;"<<endl;40"<<i+1<<endl;"<<endl;default:cout<<" 您输入的房间类型有误! "<<endl;c
32、lass 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<<" 客户姓名: "<<endl;cin>>name;cName=n
33、ame;cout<<" 性别: "<<endl;cin>>sex;cSex=sex;cout<<" 身份证号: "<<endl;cin>>id;cId=id;cout<<" 手机号: "<<endl;cin>>num;phoneNum=num;cout<<" 登记入住时间: "<<endl;cin>>date;check_inDate=date;cout<<" 入住天数: "<<endl;cin>>time;stayTime=time;cout<<" 房间号: "<<endl;cin>>room_num;Room_num=room_num; ;void Check()cout<
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中医药学基础知识学习题库含答案
- 2026年社区传染病多点监测预警知识测试题库
- 2026年计算机编程基础知识与技能题库
- 2026年音乐基础知识与欣赏能力题
- 2026年公立医院绩效考核指标解析题库
- 2026年城市版家庭安全知识测试题
- 2026年处方管理办法麻精药品知识问答
- 2026年传统产业智改数转诊断服务及智能工厂灯塔工厂培育实务试题
- 2026年数据中心IDC网络架构师笔试题
- 二级减速器设计
- 《居家安宁疗护服务规范(征求意见稿)》编制说明
- 高中化学与生物跨学科融合:化学键视角下的营养素相互作用教学设计
- 浙江省省杭州市上城区建兰中学2026届中考数学四模试卷含解析
- 乌鲁木齐地区房屋建筑与市政工程施工图文件审查常见问题汇编2025版(勘察专业)
- 青海青江实业集团有限公司招聘笔试题库2026
- 2026贵州黔晟投资有限公司第一批社会招聘8人备考题库附答案详解(完整版)
- 感染质控中心工作制度
- (完整版)2026年党建基础知识应知应会试题及答案
- 雨课堂学堂在线学堂云人工智能技术与应用(江南大学)单元测试考核答案
- 基于1+X证书制度构建“岗课赛证”融通模式的典型案例
- 2023年年度全国注册土木工程师水利水电工程执业资格考试水工结构专业案例试卷上午
评论
0/150
提交评论