客房管理系统源代码.docx
- 文档编号:14610906
- 上传时间:2023-06-25
- 格式:DOCX
- 页数:36
- 大小:20.91KB
客房管理系统源代码.docx
《客房管理系统源代码.docx》由会员分享,可在线阅读,更多相关《客房管理系统源代码.docx(36页珍藏版)》请在冰点文库上搜索。
客房管理系统源代码
#include
#include
#include
usingnamespacestd;
/*问题描述:
该系统能简单实现对客栈的住宿情况进行管理。
至少包括以下信息:
房号、房型、单价(每床)、已住人数;
住客姓名、性别、年龄、身份、身份证号码,房号,床号,入住日期、入住时间、离店日期、离店时间。
这些信息应存放在两个文件中,分别是客房信息文件、住客信息文件。
"房型"可取值1-3,分别表示单人间、双人间、通铺(可以住很多人的房间)
功能要求:
1.具有建立数据文件(客房信息文件、住客信息文件)功能;
2.具有数据输入功能;
3.具有数据修改功能;
4.具有数据删除功能;
5.能查询(查找)一些基本信息(如按房号查询、按姓名查询、空余客房查询等);
6.具有多种统计功能(要求有一定的实用性)
(如某客房当前有那些空床、某住客应付多少费用、某天住店总人数和总收入等)
说明:
(1)功能各方面越完善越好
(2)自定义的数据结构可以使用数组,链表,树等,可以使用多种数据结构来存放数据,然后在其上使用不同的排序算法。
(3)若用数组,必须动态分配空间(文本文件中最好有一行来表示数组应该有多大,这样便于动态分配空间)
*/
//*************************************************类定义
classCustomer//住客信息类
{
public:
stringname;//姓名
stringid;//身份证号
stringsex;//性别
intage;//年龄
introomnum;//入住房号
stringruzhum;//入住日期
stringruzhut;//入住时间
stringlidianm;//离店日期
stringlidiant;//离店时间
intstaytime;//入住天数
Customer()
{
name="无";
id="0";
sex="0";
age=-1;
roomnum=0;
ruzhum="0";
ruzhut="0";
lidianm="0";
lidiant="0";
staytime=0;
};
~Customer(){};
};
classRoom//客房类
{
public:
intnum;//房号
intprice;//价格
stringtype;//类型
intrenshu;//入住人数
intyajin;//客房押金
Room()
{
num=0;
price=0;
type=50;
renshu=0;
yajin=0;
};
~Room(){};
};
//**************************************************************************************客房信息录入功能
voidroom_luru(Room*room);
voidroom_luru2(Room*room);
voidroom_luru(Room*room)//无房,添房函数
{
if(room[0].num==0)
{
intsize;
staticintNumber=300;
cout<<"目前暂无房间信息,请添加!
"< cout<<"请输入要添加的房间数: "; cin>>size; for(inti=0;i { room[i].num=Number++; cout<<"房间号码: "< cout<<"房间类型: "; cin>>room[i].type; cout<<"房间价格: "; cin>>room[i].price; cout< }; cout<<"客房信息录入成功! "< } else { stringP; cout<<"客房信息已有,是否还要添加房间? (Y/N)"; cin>>P; if(P=="Y") room_luru2(room); elseif(P=="N") cout<<"已取消房间添加."< elsecout<<"此操作非法! "< }; system("pause"); system("cls"); }; //**************************************************************************** voidroom_luru2(Room*room)//有房,添加房间函数 { staticintNumber=300; stringP; do{ //intNumber=300; for(inti=0;i<30;i++) { if(room[i].num==0) { room[i].num=Number++; cout<<"房间号码: "< cout<<"房间类型: "; cin>>room[i].type;cout< cout<<"房间价格: "; cin>>room[i].price; cout< cout<<"房间添加成功,是否继续添加? (Y/N): "; cin>>P;break; } elseNumber++; }; }while(P=="Y"); if(P=="N") cout<<"已取消添加。 "< elsecout<<"此操作非法! "< }; //*************************************************************************************入住登记功能 voidcheck_in(Room*room,Customer*customer); voidcheck_in(Room*room,Customer*customer) { intp=0; stringb; cout<<"今日本酒店剩余空房如下: "< for(inti=0;i<30;i++) { if(room[i].renshu==0&&room[i].num! =0) { cout<<"房间号码: "; cout< cout<<"房间类型: "; cout< cout<<"房间价格: "; cout< p++; } }; if(p==0)cout<<"抱歉,今日暂无空房! "< else { cout<<"请问,需要入住吗? (Y/N)"< cin>>b; if(b=="Y") {intNum; intt=0; cout<<"请输入入住房间号码: "< cin>>Num; for(inti=0;i<30;i++) { if(Num==room[i].num&&room[i].renshu==0&&room[i].num! =0) { room[i].renshu=1; customer[i].roomnum=Num; cout<<"请输入客户信息! "< cout<<"客户姓名: "; cin>>customer[i].name; cout<<"客户身份证号码: "; cin>>customer[i].id; cout<<"年龄: "; cin>>customer[i].age; cout<<"性别: "; cin>>customer[i].sex; cout<<"客房押金: "; cin>>room[i].yajin; cout<<"入住日期: "; cin>>customer[i].ruzhum; cout<<"入住时间: "; cin>>customer[i].ruzhut; cout<<"离店日期: "; cin>>customer[i].lidianm; cout<<"离店时间: "; cin>>customer[i].lidiant; cout<<"入住天数: "; cin>>customer[i].staytime; cout< cout<<"信息录入成功! "< t++; } elseif(Num==room[i].num&&room[i].renshu! =0&&room[i].num! =0) { cout<<"抱歉,此房已住"; t++; } elseif(t==0&&i==29) cout<<"查无此房"; }; } elseif(b=="N")cout<<"订房已取消。 "; elsecout<<"查无此房! "; } system("pause"); system("cls"); }; //************************************************************************** //********************************************************************修改客房信息功能 voidprintall(Room*room); voidprintall1(Room*room,Customer*customer); voidprintall2(Room*room,Customer*customer); voidroom_xiugai(Room*room) { intNum; int_num; int_price; string_type; int_renshu; int_yajin; printall(room); cout<<"请输入要修改的房间号码: "< cin>>Num; intt=0; for(inti=0;i<30;i++) { if(Num==room[i].num) { cout<<"房间号: "< "< "< cout<<"房间信息已找到! "< cout<<"是否确定要修改房间信息? (Y/N)"; stringp; cin>>p; if(p=="Y") { cout<<"房间类型改为: "; cin>>_type; room[i].type=_type; cout< cout<<"房间价格改为: "; cin>>_price; room[i].price=_price; cout< //Save_Customer_info(Room); cout<<"修改成功! "< } elseif(p=="N")cout<<"已取消修改。 "; elsecout<<"操作非法! "; t++; } elseif(t==0&&i==29&&room[i].num==0) cout<<"查无此房! "< }; system("pause"); system("cls"); }; //********************************************************************退房功能 //********************************************************************退房客功能 voidtuifang(Room*room,Customer*customer) { intNum; printall1(room,customer); intt=0; cout<<"请输入要退掉的房间号: "; cin>>Num; for(inti=0;i<30;i++)//for循环查找 { //***************************************** for(intj=0;j<30;j++) { if(room[i].num==Num&&room[i].num==customer[j].roomnum)//查找房间号 { stringB,C; intn; n=customer[j].staytime*room[i].price-room[i].yajin; cout<<"房间已找到: "< cout<<"房间类型: "; cout< cout<<"房间价格: "; cout< t++; cout<<"房客信息如下: "< cout<<"客户姓名: "; cout< cout<<"客户身份证号码: "; cout< cout<<"客户共入住: "< "< "< cout<<"确定要退掉客房? (Y/N)"; cin>>B;cout< if(B=="Y") { customer[j].name="无"; customer[j].id="0"; customer[j].sex="0"; customer[j].age=-1; customer[j].roomnum=0; customer[j].ruzhum="0"; customer[j].ruzhut="0"; customer[j].lidianm="0"; customer[j].lidiant="0"; customer[j].staytime=0; room[i].renshu=0; room[i].yajin=0; cout<<"退房成功! "< } elseif(B=="N") {cout<<"取消退房成功。 "< else{cout<<"非法的操作! "< } elseif(t==0&&i==29&&j==29){cout<<"错误,找不到客房信息! "< } }; system("pause"); system("cls"); }; //********************************************************************* voidchaxun_num(Room*room,Customer*customer); voidchaxun_name(Room*room,Customer*customer); voidchaxun_type(Room*room,Customer*customer); voidchaxun_menu(Room*room,Customer*customer)//查询菜单 { boolp=true; while(p) { cout<<"\n客房管理系统\n"; cout<<"\n----------------------------------\n"; cout<<"\n1.通过房号查询客房\n"; cout<<"\n2.通过姓名查询客房\n"; cout<<"\n3.通过类型查询客房\n"; cout<<"\n4.查询所有客房\n"; cout<<"\n5.查询已住客房\n"; cout<<"\n6.查询所有空房\n"; cout<<"\n7.返回主菜单\n"< cout<<"请选择: "; intchoose=0; cin>>choose; system("cls"); switch(choose) { case1: chaxun_num(room,customer);break;//房号查询 case2: chaxun_name(room,customer);break;//姓名查询 case3: chaxun_type(room,customer);break;//类型查询 case4: printall(room);break;//查询所有客房 case5: printall1(room,customer);break;//查询已住客房 case6: printall2(room,customer);break;//查询所有空房 case7: p=false;break; default: ;break; } }; }; //*************************************************************************************打印客房信息 voidprintall(Room*room)//打印全部客房信息 { intt=0; cout<<"全部客房信息如下: "< for(inti=0;i<30;i++) { if(room[i].num! =0) { cout<<"房间号: "< "< "< t++; } if(t==0&&i==29)cout<<"暂无任何客房信息! "< }; system("pause"); system("cls"); }; //***************************************************************************** voidprintall1(Room*room,Customer*customer)//打印已住客房信息 { intt=0; cout<<"已住客房信息如下: "< for(inti=0;i<30;i++) {for(intj=0;j<30;j++) { if(room[i].num! =0&&room[i].renshu! =0&&customer[j].roomnum==room[i].num) { cout<<"房间号: "< "< "< cout<<"客户姓名: "< <<"客户身份证号码: "< <<"押金: "< <<"订房日期: "< "< <<"退房日期: "< "< <<"将于"< "< t++; } } if(t==0&&i==29)cout<<"暂无任何客房信息! "< }; system("pause"); system("cls"); }; /
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 客房 管理 系统 源代码