宾馆客房管理系统

#include<iostream>
#include<iomanip>
#include<string>
#include <fstream>
using namespace std;
const int m=100;
struct Room{
int id;            //房间号
int degree;        //客房等级
int type;          //客房类型
int floor;         //客房楼层
int number;        //客房数目
};
class Menu{
public:
int MainMenu();
private:
};
int Menu::MainMenu(){
system("cls");
cout<<"                  ┌◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆┐"<<endl;
cout<<"                  |      欢迎使用简明客户管理系统      |"<<endl;
cout<<"                   ------------------------------------"<<endl;
cout<<"                  |                                    |"<<endl;
cout<<"                  |          1.客人入住信息录入        |"<<endl;
cout<<"                  |                                    |"<<endl;
cout<<"                  |          2.显示楼层客房信息        |"<<endl;
cout<<"                  |                                    |"<<endl;
cout<<"                  |          3.查询客人入住情况        |"<<endl;
cout<<"                  |                                    |"<<endl;
cout<<"                  |          4.修改房间押金            |"<<endl;
cout<<"                  |                                    |"<<endl;
cout<<"                  |          5.修改客人信息            |"<<endl;
cout<<"                  |                                    |"<<endl;
cout<<"                  |          6.统计并显示收入          |"<<endl;
cout<<"                  |                                    |"<<endl;
cout<<"                  |          7.客房入住量排序          |"<<endl;
cout<<"                  |                                    |"<<endl;
cout<<"                  |          8.退出程序                |"<<endl;
cout<<"                  |                                    |"<<endl;
cout<<"                  └◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆┘"<<endl;
cout<<"                                                        "<<endl;
cout<<"                             请选择(1-8):              "<<endl;
int select;
cin>>select;
while(select<1 || select>8){
cout<<"选择错误!请重新选择(1-8):";
cin.clear();  //当输入字符,清空流错误状态
cin.sync();  //清空数据流
cin>>select;
}
return select;
}
class Customer{
friend ostream &operator<<(ostream &os,Customer &cu);
private:
Menu myMenu;
    string name;       //客人姓名
int date;          //入住时间
int day;           //入住期限
int money;         //入住押金
int everydaymoney; //每日租金
Room room;   //客房信息
public:
Customer();
Customer(string na, int dat, int da, int mo, int emon, int idn, int deg, int ty, int fl, int nu);
string getname(){
return name;
}
void setname(string na){
name=na;
}
int getdate(){
return date;
}
void setdate(int dat){
date=dat;
}
int getday(){
return day;
}
void setday(int da){
day=da;
}
int getmoney(){
return money;
}
void setmoney(int mon){
money=mon;
}
int geteverydaymoney(){
return everydaymoney;
}
void seteverdaymoney(int emon){
everydaymoney=emon;
}
Room setroom(){
return room;
}
void getroom(Room ro){
room=ro;
}
void run();
void input();       //创建表单
int readIn();       //文件读入
void alter();       //修改信息
void findByfloor(); //按楼层查找
void changemoney(); //修改押金
void show();        //显示客户入住情况
void print();       //统计并显示收入
void rank();        //客房类型入住量排序
}
customer[m];
Customer::Customer(){
name="#";
date=0;
day=0;
money=0;
everydaymoney=0;
room.id=0;
room.floor=0;
room.degree=0;
room.number=0;
room.type=0;
}
Customer::Customer(string na, int dat, int da, int mo, int emon, int idn, int deg, int ty, int fl, int nu){
name=na;
date=dat;
day=da;
money=mo;
everydaymoney=emon;
room.id=idn;
room.degree=deg;
room.type=ty;
room.floor=fl;
room.number=nu;
}
void Customer::input(){                  //客户信息录入
int n;
cout<<"请输入入住人数"<<endl;
cin>>room.number;
cout<<endl;
for(int i=0;i<room.number;i++){
cout<<"这是第"<<i+1<<"个客户的信息"<<endl;
cout<<"输入客人姓名:";
cin>>customer[i].name;
cout<<"入住时间(年/月/日):";
cin>>customer[i].date;
cout<<"入住期限:";
cin>>customer[i].day;
cout<<"入住押金:";
cin>>customer[i].money;
cout<<"每日租金:";
cin>>customer[i].everydaymoney;
cout<<"房间号:";
cin>>customer[i].room.id;
cout<<"房间等级(1-经济 2-标准 3-豪华):";
cin>>customer[i].room.degree;
cout<<"房间类型(1-单人 2-双人 3-三人):";
cin>>customer[i].room.type;
cout<<"楼层:";
cin>>customer[i].room.floor;
cout<<endl;
}
cout<<"输入的信息为:"<<endl;
for(int i=0;i<room.number;i++){
cout<<"客人姓名"<<customer[i].name;
cout<<"\t入住时间:"<<customer[i].date;
cout<<"\t入住期限:"<<customer[i].day;
cout<<"\t入住押金:"<<customer[i].money;
cout<<"\t每日租金:"<<customer[i].everydaymoney;
cout<<"\t房间号:"<<customer[i].room.id;
cout<<"\t房间等级:";
if(customer[i].room.degree==1)
cout<<"经济间";
else{
if(customer[i].room.degree==2)
cout<<"标准间";
else{
if(customer[i].room.degree==3)
cout<<"豪华间";
}
}
cout<<"\t房间类型:";
if(customer[i].room.type==1)
cout<<"单人间";
else{
if(customer[i].room.type==2)
cout<<"双人间";
else{
if(customer[i].room.type==3)
cout<<"三人间";
}
}
cout<<"\t楼层:"<<customer[i].room.floor;
cout<<endl;
}
ofstream os("customer.txt",ios_base::out|ios_base::binary);  //创建、打开文件
for(n=0;n<room.number;n++){
os.write( reinterpret_cast<char*>(&(customer[n])),sizeof(Customer) );  //导出文件
}
os.close();  //关闭文件
}
int Customer::readIn(){                 //文件读入
int i,n;
ifstream is("customer.txt",ios_base::in|ios_base::binary);
if(!is){
cout<<"打开失败"<<endl;
return 0;
}
for(i=0;is.read( reinterpret_cast<char *>(customer+i) , sizeof(Customer) );i++)
room.number=i;
cout<<"导入的表单:"<<endl;
for(n=0;n<room.number;n++){
cout<<"客人姓名"<<customer[i].name;
cout<<"入住时间:"<<customer[i].date;
cout<<"入住期限:"<<customer[i].day;
cout<<"入住押金:"<<customer[i].money;
cout<<"每日租金:"<<customer[i].everydaymoney;
cout<<"房间号:"<<customer[i].room.id;
cout<<"房间等级:"<<customer[i].room.degree;
cout<<"房间类型:"<<customer[i].room.type;
cout<<"楼层:"<<customer[i].room.floor;
}
return 1;
}
void Customer::alter(){               //修改客户信息
int mark = 0;      //设置标记
int i,m;
string x;
cout<<"请输入客户名:";
do{
cin>>x;
cout<<endl;
for(i=0;i<room.number;i++){
if(customer[i].name==x){
mark = 1;
cout<<"客人姓名"<<customer[i].name;
cout<<"\t入住时间:"<<customer[i].date;
cout<<"\t入住期限:"<<customer[i].day;
cout<<"\t入住押金:"<<customer[i].money;
cout<<"\t每日租金:"<<customer[i].everydaymoney;
cout<<"\t房间号:"<<customer[i].room.id;
cout<<"\t房间等级:";
if(customer[i].room.degree==1)
cout<<"经济间";
else{
if(customer[i].room.degree==2)
cout<<"标准间";
else{
if(customer[i].room.degree==3)
cout<<"豪华间";
}
}
cout<<"\t房间类型:";
if(customer[i].room.type==1)
cout<<"单人间";
else{
if(customer[i].room.type==2)
cout<<"双人间";
else{
if(customer[i].room.type==3)
cout<<"三人间";
}
}
cout<<"\t楼层:"<<customer[i].room.floor;
cout<<endl;
cout<<"修改信息,请输入:"<<endl;
cout<<"输入客人姓名:";
cin>>customer[i].name;
cout<<"入住时间:";
cin>>customer[i].date;
cout<<"入住期限:";
cin>>customer[i].day;
cout<<"每日租金:";
cin>>customer[i].everydaymoney;
cout<<"房间号:";
cin>>customer[i].room.id;
cout<<"房间等级(1-经济2-标准3-豪华):";
cin>>customer[i].room.degree;
cout<<"房间类型(1-单人2-双人3-三人):";
cin>>customer[i].room.type;
cout<<"楼层:";
cin>>customer[i].room.floor;
cout<<endl;
}
else;
}
if (mark== 0)
cout<<"输入错误,请重新输入:"<<endl;
}
while(mark == 0);
ofstream os("customer.txt",ios_base::out|ios_base::binary);  //创建、打开文件
for(m=0;m<room.number;m++){
os.write( reinterpret_cast<char*>(&(customer[m])),sizeof(Customer));  //导出文件
}
os.close();  //关闭文件
}
void Customer::show(){                //客人入住情况查询
int i;
for(i=0;i<room.number;i++){
cout<<"客人姓名"<<customer[i].name;
cout<<"\t入住时间:"<<customer[i].date;
cout<<"\t入住期限:"<<customer[i].day;
cout<<"\t入住押金:"<<customer[i].money;
cout<<"\t每日租金:"<<customer[i].everydaymoney;
cout<<"\t房间号:"<<customer[i].room.id;
cout<<"\t房间等级:";
if(customer[i].room.degree==1)
cout<<"经济间";
else{
if(customer[i].room.degree==2)
cout<<"标准间";
else{
if(customer[i].room.degree==3)
cout<<"豪华间";
}
}
cout<<"\t房间类型:";
if(customer[i].room.type==1)
cout<<"单人间";
else{
if(customer[i].room.type==2)
cout<<"双人间";
else{
if(customer[i].room.type==3)
cout<<"三人间";
}
}
cout<<"\t楼层:"<<customer[i].room.floor;
cout<<endl;
}
}
void Customer::findByfloor(){            //显示楼层信息
int n;
int mark = 0; //设置标记
int i;
cout<<"请输入楼层:";
do{
cin>>n;
cout<<endl;
for(i=0;i<room.number;i++){
if(customer[i].room.floor==n){
mark = 1;
cout<<"信息如下:"<<endl;
cout<<"客人姓名:"<<customer[i].name;
cout<<"\t入住时间:"<<customer[i].date;
cout<<"\t入住期限:"<<customer[i].day;
cout<<"\t入住押金:"<<customer[i].money;
cout<<"\t每日租金:"<<customer[i].everydaymoney;
cout<<"\t房间号:"<<customer[i].room.id;
cout<<"\t房间等级:";
if(customer[i].room.degree==1)cout<<"经济间";
else{
if(customer[i].room.degree==2)
cout<<"标准间";
else{
if(customer[i].room.degree==3)
cout<<"豪华间";
}
}
cout<<"\t房间类型:";
if(customer[i].room.type==1)
cout<<"单人间";
else{
if(customer[i].room.type==2)
cout<<"双人间";
else{
if(customer[i].room.type==3)
cout<<"三人间";
}
}
cout<<"\t楼层:"<<customer[i].room.floor;
}
else;
}
if (mark== 0)
cout<<"输入错误,请重新输入:"<<endl;
}
while(mark == 0);
}
void Customer::changemoney(){          //押金修改
int mark = 0;   //设置标记
int i,m;
string x;
cout<<"请输入客户名:";
do{
cin>>x;
cout<<endl;
for(i=0;i<room.number;i++){
if(customer[i].name==x){
mark = 1;
cout<<"客人姓名"<<customer[i].name;
cout<<"\t入住时间:"<<customer[i].date;
cout<<"\t入住期限:"<<customer[i].day;
cout<<"\t入住押金:"<<customer[i].money;
cout<<"\t每日租金:"<<customer[i].everydaymoney;
cout<<"\t房间号:"<<customer[i].room.id;
cout<<"\t房间等级:";
if(customer[i].room.degree==1)
cout<<"经济间";
else{
if(customer[i].room.degree==2)
cout<<"标准间";
else{
if(customer[i].room.degree==3)
cout<<"豪华间";
}
}
cout<<"\t房间类型:";
if(customer[i].room.type==1)
cout<<"单人间";
else{
if(customer[i].room.type==2)
cout<<"双人间";
else{
if(customer[i].room.type==3)
cout<<"三人间";
}
}
cout<<"\t楼层:"<<customer[i].room.floor;
cout<<"修改押金,请输入:"<<endl;
cin>>customer[i].money;
cout<<endl;
}
else;
}
if (mark== 0)
cout<<"输入错误,请重新输入:"<<endl;
}
while(mark == 0);
ofstream os("customer.txt",ios_base::out|ios_base::binary);  //创建、打开文件
for(m=0;m<room.number;m++){
os.write( reinterpret_cast<char*>(&(customer[m])),sizeof(Customer) );  //导出文件
}
os.close();  //关闭文件
}
void Customer::print(){              //统计收入
int n=0;
for(int i=0;i<room.number;i++){
n+=customer[i].everydaymoney*customer[i].day;     //每日租金*入住天数
}
cout<<"目前为止的收入为:"<<n<<"元"<<endl;
}
void Customer::rank(){         //客房类型入住量排序
int choose;
int m1=0,m2=0,m3=0;
int n1=0,n2=0,n3=0;
cout<<"1.按房间等级排序;"<<endl;
cout<<"2.按房间人数排序;"<<endl;
cout<<"输入你的选择:"<<endl;
cin>>choose;
switch(choose){
case 1:
for(int i=0;i<room.number;i++){
if(customer[i].room.degree==1){
n1+=customer[i].room.degree;
}
if(customer[i].room.degree==2){
n2+=customer[i].room.degree;
}
if(customer[i].room.degree==3){
n3+=customer[i].room.degree;
}
}
if((n1>n2 && n1>n3) && (n2>n3))
cout<<"1.经济间"<<endl;
cout<<"2.标准间"<<endl;
cout<<"3.豪华间"<<endl;
if((n1>n2 && n1>n3) && (n3>n2))
cout<<"1.经济间"<<endl;
cout<<"2.豪华间"<<endl;
cout<<"3.标准间"<<endl;
if((n3>n1 && n3>n2) && (n1>n2))
cout<<"1.豪华间"<<endl;
cout<<"2.经济间"<<endl;
cout<<"3.标准间"<<endl;
        if((n3>n1 && n3>n2) && (n2>n1))
cout<<"1.豪华间"<<endl;
cout<<"2.标准间"<<endl;
cout<<"3.经济间"<<endl;
if((n2>n1 && n2>n3) && (n1>n3))
cout<<"1.标准间"<<endl;
cout<<"2.经济间"<<endl;
cout<<"3.豪华间"<<endl;
if((n2>n1 && n2>n3) && (n3>n1))
cout<<"1.标准间"<<endl;
cout<<"2.豪华间"<<endl;
cout<<"3.经济间"<<endl;
break;
case 2:
for(int i=0;i<room.number;i++){
if(customer[i].room.type==1){
m1+=customer[i].room.degree;
}
if(customer[i].room.type==2){
m2+=customer[i].room.degree;
}
if(customer[i].room.type==3){
m3+=customer[i].room.degree;
}
}
if((m1>m2 && m1>m3) && (m2>m3))
cout<<"1.单人间"<<endl;
cout<<"2.双人间"<<endl;
cout<<"3.三人间"<<endl;
if((m1>m2 && m1>m3) && (m3>m2))
cout<<"1.单人间"<<endl;
cout<<"2.三人间"<<endl;
cout<<"3.双人间"<<endl;
if((m3>m1 && m3>m2) && (m1>m2))
cout<<"1.三人间"<<endl;
cout<<"2.单人间"<<endl;
cout<<"3.双人间"<<endl;
        if((m3>m1 && m3>m2) && (m2>m1))
cout<<"1.三人间"<<endl;
cout<<"2.双人间"<<endl;
cout<<"3.单人间"<<endl;
if((m2>m1 && m2>m3) && (m1>m3))
cout<<"1.双人间"<<endl;
cout<<"2.单人间"<<endl;
cout<<"3.三人间"<<endl;
if((m2>m1 && m2>m3) && (m3>m1))
cout<<"1.双人间"<<endl;
cout<<"2.三人间"<<endl;
cout<<"3.单人间"<<endl;
break;
default:
cout<<"输入错误,请重新输入!"<<endl;
}
}
void Customer::run(){
bool userExited=false;
while(!userExited){
int userSelection=myMenu.MainMenu();
switch(userSelection){
case 1:             //客人信息录入
input();
break;
case 2: //显示楼层信息
findByfloor();
break;
case 3:             //客人入住情况查询
show();
break;
case 4:             //押金修改
changemoney();
break;
case 5:             //修改客人信息
alter();
break;
case 6:             //统计收入
print();
   break;
case 7:             //客房类型入住量排序
rank();
break;
case 8:             //退出系统
userExited=true;
}
if(userSelection!=8){
cout<<"流程将返回主界面,";
system("pause");
}
else
cout<<"你选择了退出功能,程序将结束运行!";
}
}
int main(){
Customer myApp;
myApp.run();
return 0;
}

原文地址:https://www.cnblogs.com/xisheng/p/10279591.html

时间: 2024-10-04 02:10:09

宾馆客房管理系统的相关文章

宾馆/酒店智能客房管理系统为你节省成本

宾馆/酒店智能客房管理系统为你节省成本18127306305 智慧酒店客房控制系统产品优势通过对灯光.窗帘.用电器智能控制节能 感应式智能取电开关进行身份识别(读取卡内芯片数据,上传至系统,不同于普通的取电开关),可以对持卡人身份作出判断,对不同身份人员的控制权限分别进行设置,杜绝盗电.当客人拔卡离开房间时,将延时15秒关闭,将灯光.受控电源,空调等有效节能. 在卫生间吊顶安装红外探测器,可在客人进入卫生间时,自动点亮指定灯具及排气扇:而客人离开后,如果忘记关灯,系统可延时自动关闭卫生间灯具及排

《客房管理系统相关文档》

一.功能概述 客房管理系统员工通过账号登陆该系统,该系统中包含客房的各种信息,包括客房的类别.当前的使用状态.负责人等:客房信息的查询和修改,包括按房间号查询住宿情况.按客户的信息查询房间状态等.以及退房.订房.换房等信息的修改. 1.登录 登录这一模块,主要功能有:用户输入账号与密码,并对账号与密码的输入情况进行处理,新员工注册以及对注册内容的审核,提交.其中除了重置的其余各个部分都与数据库进行了连接与相应的增.查.匹配工作. 2.员工注册 这一模块,主要是采集新员工的信息,包括账号,密码,姓

酒店客房管理系统总结

虽然说这次项目开发的时间比较短,但是小组成员都努力去完成酒店客房管理系统的开发,我们费了很多的时间来完成一些前端工作,如需求分析和可行性分析,从一开始的调查项目背景,确认需求,到后来一步步的完善系统,小组成员们都在不断努力,从项目估算到绘制用例图,用例规约,以及顺序图,状态图,部署图等一系列UML的视图,有不懂的地方通过查阅资料,或者请教同学来一步步的攻克难点和疑点,最终才有了我们最终的酒店管理系统. 吾生也有涯,而知也无涯,学习永无止境.起初,对软件工程处于一知半解的状态,分工比较混乱.在划分

50个最受网友欢迎的HTML5资源下载列表

完整附件下载地址:http://down.51cto.com/data/413867 附件预览: HTML 5游戏源码精选(共含9个游戏源码) http://down.51cto.com/zt/227 15个HTML5入门经典资料合集 http://down.51cto.com/zt/553 HTML 5基础入门学习教程 http://down.51cto.com/zt/234 初学者必知的HTML5入门级技巧[技术文档]下载 http://down.51cto.com/data/297883

加密狗复制备份 订制写狗程序 算法注册机 OEM信息 二次封装

加密狗复制备份.模拟  行业软件批发零售 定制写狗程序.注册机 软件破解 逆向工程   酒店客房管理.餐饮娱乐管理.美容美发管理.汽车行业.会员管理.医疗软件.客户管理.财务进销存系统 .OA办公 .服装设计 等大量行业软件批发零售 合作联系QQ: 844256300 =========================================================================================== 企发会员积分系统3.5 冠唐仓库管理网络版 凤

毕业设计课题大全

标题: 交换机端口数据流量信息采集方法评述(1人) 目的: 本题目意在通过检索"截获交换机封包"的相关资料,研究对交换机端口流量进行实时监测的手段和方法及实现的原理. 内容:论文要求分析交换机内部封包的交换和计数原理,进而探查如何通过局域网络监测交换机端口的实时流量信息. 参考资料:思科CCNA和CCNP认证教材,及相关参考资料 计算机专业毕业设计题目大全 http://blog.renren.com/share/250527820/12343150865 重点考虑: 5.电子邮件服务

asp.net,java,jsp,安卓Android,苹果ios,php,vb.net,c#免费毕业课程设计源码共享网盘下载

百度网盘下载地址1:  http://pan.baidu.com/s/1o67fybC 百度网盘下载地址2: http://pan.baidu.com/s/1kTxckmF163网盘下载地址:http://home.163disk.com/shuangyulin file://E:\计算机设计参考!!!!!!!!!!!\资料 (4 folders, 0 files, 0 bytes, 641.25 MB in total.) ├─QQ254540457 (0 folders, 49 files,

多版本通讯录

开始写通讯录已经好久了,才把通讯录的多个版本整理完,下边我来谈谈实现通讯录过程中的一些问题,以及自己的心 得,另外附加代码. 通讯录要求: 1.增加信息   2.删除信息    3.查找信息  4.修改信息 5.显示信息   6.清除信息  7.按姓名排序  0.退出 我觉得,写代码之前一定要想清楚自己要实现的功能,应该怎么实现,大致应该清楚这些. 首先,静态通讯录,给出通讯录存储元素的总大小,通讯录里最多只能存储这么多信息.而通讯录的增删改查,通常 需要找到通讯录的最后一个元素的位置,或者是元

计算机毕业课程设计源码打包下载

下载地址1: http://dl.vmall.com/c06pluqz6r 10个数据结构课程设计实例二...冒泡排序快速排序等.rar  下载  9.99K asp+sqlserver2000网络书店系统.rar  下载  1.4M asp+sqlserver2000在线考试系统.rar  下载  1.21M ASP+sql精品在线试题库设计+论文.rar  下载  2.7M asp.net+sql2008在线论坛系统.rar  下载  3.09M asp.net_sql2008公司人事管理系