客房管理系统源代码.docx_第1页
客房管理系统源代码.docx_第2页
客房管理系统源代码.docx_第3页
客房管理系统源代码.docx_第4页
客房管理系统源代码.docx_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

#include#include#includeusing namespace std;/*问题描述:该系统能简单实现对客栈的住宿情况进行管理。至少包括以下信息:房号、房型、单价(每床)、已住人数;住客姓名、性别、年龄、身份、身份证号码,房号,床号,入住日期、入住时间、离店日期、离店时间。这些信息应存放在两个文件中,分别是客房信息文件、住客信息文件。房型可取值1-3,分别表示单人间、双人间、通铺(可以住很多人的房间)功能要求:1具有建立数据文件(客房信息文件、住客信息文件)功能;2具有数据输入功能;3具有数据修改功能;4具有数据删除功能;5能查询(查找)一些基本信息(如按房号查询、按姓名查询、空余客房查询等);6具有多种统计功能(要求有一定的实用性)(如某客房当前有那些空床、某住客应付多少费用、某天住店总人数和总收入等)说明:(1)功能各方面越完善越好(2)自定义的数据结构可以使用数组,链表,树等,可以使用多种数据结构来存放数据,然后在其上使用不同的排序算法。(3)若用数组,必须动态分配空间(文本文件中最好有一行来表示数组应该有多大,这样便于动态分配空间)*/*类定义class Customer /住客信息类public:string name; /姓名string id; /身份证号string sex;/性别int age; /年龄int roomnum; /入住房号string ruzhum; /入住日期string ruzhut;/入住时间string lidianm;/离店日期string lidiant;/离店时间int staytime; /入住天数Customer()name=无;id=0;sex=0;age= -1;roomnum=0;ruzhum=0;ruzhut=0;lidianm=0;lidiant=0;staytime=0;Customer();class Room /客房类public:int num;/房号int price; /价格string type; /类型int renshu; /入住人数int yajin; /客房押金Room()num=0;price=0;type=50;renshu=0;yajin=0;Room();/*客房信息录入功能void room_luru(Room *room);void room_luru2(Room *room);void room_luru(Room *room)/无房,添房函数if(room0.num=0)int size;static int Number=300;cout目前暂无房间信息,请添加!endlendl;coutsize;for(int i=0;isize;i+)roomi.num=Number+;cout房间号码:roomi.num;coutendl;coutroomi.type;coutroomi.price;coutendlendl;cout客房信息录入成功!endlendl;else string P;coutP;if(P=Y)room_luru2(room);else if(P=N)cout已取消房间添加.endlendl;else cout此操作非法!endlendl;system(pause);system(cls);/*void room_luru2(Room *room)/有房,添加房间函数static int Number=300;string P;do/ int Number=300;for(int i=0;i30;i+)if(roomi.num=0)roomi.num=Number+;cout房间号码:roomi.num;coutendl;coutroomi.type;coutendl;coutroomi.price;coutendlendl;coutP;break;else Number+;while(P=Y);if(P=N)cout已取消添加。endlendl;else cout此操作非法!endlendl;/*入住登记功能void check_in(Room *room,Customer *customer);void check_in(Room *room,Customer *customer)int p=0;string b;cout今日本酒店剩余空房如下:endl;for(int i=0;i30;i+)if(roomi.renshu=0 & roomi.num!=0)cout房间号码:;coutroomi.numt;cout房间类型:;coutroomi.typet;cout房间价格:;coutroomi.priceendl;p+;if(p=0)cout抱歉,今日暂无空房!endl; else cout请问,需要入住吗?(Y/N)b;if(b=Y) int Num;int t=0;cout请输入入住房间号码:Num; for(int i=0;i30;i+)if(Num=roomi.num &roomi.renshu=0 & roomi.num!=0)roomi.renshu=1;customeri.roomnum=Num;cout请输入客户信息!endlendl;;coutcustomeri.id;coutcustomeri.age;coutcustomeri.sex;coutroomi.yajin;coutcustomeri.ruzhum;coutcustomeri.ruzhut;coutcustomeri.lidianm;coutcustomeri.lidiant;coutcustomeri.staytime;coutendl;cout信息录入成功!endl;t+;else if(Num=roomi.num &roomi.renshu!=0& roomi.num!=0)cout抱歉,此房已住;t+;else if(t=0 & i=29)cout查无此房;else if(b=N) cout订房已取消。;else cout查无此房!;system(pause);system(cls);/*/*修改客房信息功能void printall(Room *room);void printall1(Room *room,Customer *customer);void printall2(Room *room,Customer *customer);void room_xiugai(Room *room)int Num;int _num;int _price;string _type;int _renshu;int _yajin;printall(room);cout请输入要修改的房间号码:Num;int t=0;for(int i=0;i30;i+)if(Num=roomi.num)cout房间号:roomi.numt房间类型:roomi.typet价格:roomi.priceendlendl;cout房间信息已找到!endl;coutp;if(p=Y)cout_type;roomi.type=_type;coutendl;cout_price;roomi.price=_price;coutendl;/ Save_Customer_info(Room);cout修改成功!endlendl;else if(p=N) cout已取消修改。;else cout操作非法!;t+;else if(t=0 & i=29 & roomi.num=0)cout查无此房!endlendl;system(pause);system(cls);/*退房功能/*退房客功能void tuifang(Room *room,Customer *customer)int Num;printall1(room,customer); int t=0;coutNum;for(int i=0;i30;i+) /for循环查找/* for(int j=0;j30;j+) if(roomi.num=Num&roomi.num=customerj.roomnum ) /查找房间号string B,C;int n;n=customerj.staytime * roomi.price - roomi.yajin;cout房间已找到:endl;cout房间类型:;coutroomi.typeendl;cout房间价格:;coutroomi.priceendlendl;t+;cout房客信息如下:endl;cout客户姓名:;endl;cout客户身份证号码:;coutcustomerj.idendlendl;cout客户共入住:customerj.staytime天,共需交费:n元整。endl;coutB;coutendl;if(B=Y)=无;customerj.id=0;customerj.sex=0;customerj.age= -1;customerj.roomnum=0;customerj.ruzhum=0;customerj.ruzhut=0;customerj.lidianm=0;customerj.lidiant=0;customerj.staytime=0;roomi.renshu=0;roomi.yajin=0;cout退房成功!endl;else if(B=N)cout取消退房成功。endl;break;else cout非法的操作!endl;break;else if(t=0&i=29&j=29)cout错误,找不到客房信息!endlendl;system(pause);system(cls);/*void chaxun_num(Room *room,Customer *customer);void chaxun_name(Room *room,Customer *customer);void chaxun_type(Room *room,Customer *customer);void chaxun_menu(Room *room,Customer *customer) /查询菜单bool p=true;while(p) coutn 客房管理系统 n ; coutn - n ;coutn 1.通过房号查询客房 n ;coutn 2.通过姓名查询客房 n ;coutn 3.通过类型查询客房 n ;coutn 4.查询所有客房 n ;coutn 5.查询已住客房 n ; coutn 6.查询所有空房 n ;coutn 7.返回主菜单 n endl;coutchoose;system(cls);switch (choose) case 1:chaxun_num(room,customer); break; /房号查询case 2:chaxun_name(room,customer);break; /姓名查询case 3:chaxun_type(room,customer); break; /类型查询case 4:printall(room);break; /查询所有客房 case 5:printall1(room,customer);break; /查询已住客房case 6:printall2(room,customer);break; /查询所有空房case 7:p=false;break; default :; break;/*打印客房信息void printall(Room *room) /打印全部客房信息int t=0;cout全部客房信息如下:endl;for(int i=0;i30;i+) if(roomi.num!=0)cout房间号:roomi.numt房间类型:roomi.typet价格:roomi.priceendlendl;t+;if(t=0 & i=29) cout暂无任何客房信息!endlendl;system(pause);system(cls);/*void printall1(Room *room,Customer *customer) /打印已住客房信息int t=0;cout已住客房信息如下:endl;for(int i=0;i30;i+) for(int j=0;j30;j+)if(roomi.num!=0&roomi.renshu!=0&customerj.roomnum=roomi.num)cout房间号:roomi.numt房间类型:roomi.typet价格:roomi.priceendl;cout客户姓名:t客户身份证号码:customerj.idt押金:roomi.yajinendl订房日期:customerj.ruzhumt订房时间:customerj.ruzhutendl退房日期:customerj.lidianmt退房时间:customerj.lidiantendl将于customerj.staytime天后退房。endlendlendl;t+;if(t=0 & i=29) cout暂无任何客房信息!endlendl;system(pause);system(cls);/*void printall2(Room *room,Customer *customer) /打印空房信息int t=0;cout全部空房信息如下:endl;for(int i=0;i30;i+) if(roomi.num!=0&roomi.renshu=0)cout房间号:roomi.numt房间类型:roomi.typet价格:roomi.priceendlendl;t+;if(t=0 & i=29) cout暂无任何客房信息!endlendl;system(pause);system(cls);/*查询功能void chaxun_num(Room *room,Customer *customer) /房号查询int Num;int t=0;coutNum;for(int i=0;i30;i+) /for循环查找if(roomi.num=Num ) /查找房间号string B,C;cout房间已找到:endl;cout房间类型:;coutroomi.typeendl;cout房间价格:;coutroomi.priceendl;t+;for(int j=0;j30;j+)if(roomi.num=customerj.roomnum) /情况1,若客房下还有房客cout客户姓名:;endl; cout客户身份证号码:;coutcustomerj.idendl;else if(t=0&i=29)cout错误,找不到客房信息!endlendl;system(pause);system(cls);/*void chaxun_name(Room *room,Customer *customer) /姓名查询string Name;int t=0;coutName;for(int i=0;i30;i+) /for循环查找if(=Name ) /查找姓名string B,C;cout客户已找到:endl;cout客户姓名:;endl; cout客户身份证号码:;coutcustomeri.idendl;t+;for(int j=0;j30;j+)if(roomj.num=customeri.roomnum) /情况1,若客房下还有房客cout入住房间号:;coutroomj.numendl;cout房间类型:;coutroomj.typeendl;cout房间价格:;coutroomj.priceendl;else if(t=0&i=29)cout错误,找不到该名字!endlendl;system(pause);system(cls);/*void chaxun_type(Room *room,Customer *customer) /类型查询string Num;int t=0;coutNum;for(int i=0;i30;i+) /for循环查找if(roomi.type=Num ) /查找房间号string B,C;cout房间已找到:endl;cout房号:;coutroomi.numendl;cout房间价格:;coutroomi.priceendl;t+;for(int j=0;j30;j+)if(roomi.num=customerj.roomnum) /情况1,若客房下还有房客cout入住客户姓名:;endl; cout入住客户身份证号码:;coutcustomerj.idendlendl;else if(t=0&i=29)cout错误,找不到该类型客房!endlendl;system(pause);system(cls);/*删除功能void delete_room(Room *room,Customer *customer);void delete_room(Room *room,Customer *customer)/删除房间函数int Num;printall(room); int t=0;coutNum;for(int i=0;i30;i+) /for循环查找for(int j=0;j30;j+)/*if(roomi.num=Num&Num!=0 ) /查找房间号string B,C;cout房间已找到:endl;cout房间类型:;coutroomi.typeendl;cout房间价格:;coutroomi.priceendl;t+;if(roomi.num=customerj.roomnum) /情况1,若客房下还有房客cout该客房下仍有入住房客,房客信息如下:endl;cout客户姓名:;endl;cout客户身份证号码:;coutcustomerj.idendl;coutB;coutendl;if(B=Y)=无;customerj.id=0;customerj.sex=0;customerj.age= -1;customerj.roomnum=0;customerj.ruzhum=0;customerj.ruzhut=0;customerj.lidianm=0;customerj.lidiant=0;customerj.staytime=0;roomi.num=0;roomi.price=0;roomi.type=50;roomi.renshu=0;roomi.yajin=0;cout删除成功!endl;else if(B=N)cout取消删除。endl;break;else cout非法的操作!endl;break;else if(roomi.num!=customerj.roomnum) /情况2,客房下没有房客 coutC;coutendl;if(C=Y)roomi.num=0;roomi.price=0;roomi.type=50;roomi.renshu=0;roomi.yajin=0;cout删除成功!endl;else if(C=N)cout取消删除。endl;break;else cout非法的操作!endl;break;else if(t=0&i=29&j=29)cout错误,找不到客房信息!endlendl;system(pause);system(cls);/* 保存文件功能void write(Room * room,Customer *customer) /保存房间信息 ofstream Str(客房信息.txt,ios_base:trunc); ofstream C(客户信息.txt,ios_base:trunc);if (!Str|!C)cout文件存入失败!;return;for(int i=0;i30;i+)if(roomi.num!=0) Strroomi.numtroomi.typetroomi.pricetroomi.renshutroomi.yajinendl;for(int j=0;j30;j+) if(customerj.roomnum!=0)Ctcustomerj.idtcustomerj.sextcustomerj.agetcustomerj.ruzhumtcustomerj.ruzhuttcustomerj.lidianmtcustomerj.lidianttcustomerj.staytimeendl;Str.close();C.close();/*读入文件功能void read(Room *room,Customer *customer)int i=0;int j=0;ifstream readroom(客房信息.txt);i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论