C++例程:宾馆客房管理系统

Posted 文斗士

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++例程:宾馆客房管理系统相关的知识,希望对你有一定的参考价值。

目录


宾馆客房管理系统

1 设计思路及总体设计

通过对c++课程的学习,我了解到了其面向对象的高级特性,我决定使用它实现一个宾馆客房管理系统,模拟一个实际宾馆客房系统的运行,下面我就将这个系统的实现思路说明一下。
作为一个宾馆客房间管理系统,必然涉及到客房对象,顾客对象等实体。这个系统我设置了80个房间,其中房间分四个等级,每个等级的价格是不一样的,可以通过房间编号得到房间的等级。然后就是房间的分配问题,就是当有顾客要求定房或入住时,我的程序能够根据用户要求入住的等级到相应等级的房间中去查找一个还没有预定的房间和一个没有入住的空闲房间。
当启动程序后,在windows平台下都是从main函数开始运行的,程序首先调用initial_room函数初始化80个房间的信息,包括房间编号,房间等级,房间价格,房间状态。其中房间编号和房间等级有直接联系,只要知道了房间编号就可以通过计算得到该房间的等级,房间状态初始化时等于0,表示该房间既没有被预定,也没有被入住。然后调用welcome函数,考虑到作为一个宾馆管理系统的安全性,对操作本系统的人员也要求认证的,其中在本函数中就要求只有通过输入了正确的用户名和密码才能操作系统哦!当通过登陆认证后,就进入宾馆管理系统了,在这里,系统给操作员显示一个操作菜单如:1->定房 2->入住 3->退房 4->查询,当操作员选择不同的数字就实现不同的功能。而这些功能的具体实现我就在详细设计中一一介绍了。

主函数流程图

主函数实现代码:

void main()			//程序入口从这里开始运行

 char choice='1';
 initial_room();	//初始化80个房间的信息,分四个等级
 welcome();			//验证用户登陆,登陆成功显示欢迎信息
 
 while(choice=='1')
 
  enter();   //根据用户的选择执行不同的功能
  cout<<endl;
  cout<<"继续使用本系统请按\\"1\\",退出请按\\"2\\"!  ";
  cin>>choice;
  cout<<endl;
 

2 订房功能的c++实现:

作为一个宾馆管理系统,顾客可以提前到宾馆进行房间的预定,操作员能根据用户的需求查询到适合顾客的房间。在这个系统中,这个功能是在book_room函数中实现的,其流程图如下所示。首先,构造一个顾客对象,然后设置该顾客预定客房的天数,设置顾客预定客房标准,根据用户需要的客放标准到相应的标准客房去查找一个一个既没有被预定也没有入住的房间,然后把该住房对象结构体的状态修改为已预定状态,同时将顾客对象的预定房间号属性,也将住房费用计算出来并显示到界面上,最后将住房顾客数家1。

订房功能流程图

订房功能c++代码实现:

void book_room()

 customer[i]=new Customer;
 int room_standard,day;
 cout<<"请您选择预定房间的标准:\\n"; 
 cout<<"1.单人间/天150元\\n2.双人间/天200元\\n3.标准间/天300元\\n4.总统套房/天600元\\n"; 
 cin>>room_standard; 
 cout<<"请输入预定天数\\n"; 
 cin>>day; 
 customer[i]->set_day(day);
 switch(room_standard) 
  
  int n;
 case 1:
  cout<<"住房费用总共为: "<<day*150<<"元\\n";		//计算住房费用
  for(n=0;n<20;n++)			//从第一个级别的房间中查找一个空闲的房间
  
   if(room[n].state==0)		//state=0表示该住房没有被预定的
   
    cout<<"预定成功★房间号码为: "<<room[n].number<<endl;
                room[n].state=1;
    customer[i]->set_room_number(room[n].number);
    break;
   
  
  break; 
 case 2:
  cout<<"住房费用总共为: "<<day*200<<" 元\\n"; 
  for(n=20;n<40;n++)
  
   if(room[n].state==0)
   
    cout<<"预定成功★房间号码为: "<<room[n].number<<endl;
                room[n].state=1;
    customer[i]->set_room_number(room[n].number);
    break;
   
  
  break; 
 case 3:
  cout<<"住房费用总共为: "<<day*300<<" 元\\n"; 
  for(n=40;n<60;n++)
  
   if(room[n].state==0)
   
    cout<<"预定成功★房间号码为: "<<room[n].number<<endl;
                room[n].state=1;
    customer[i]->set_room_number(room[n].number);
    break;
   
  
  break; 
 case 4:
  cout<<"住房费用总共为: "<<day*600<<"元\\n"; 
  for(n=60;n<80;n++)
  
   if(room[n].state==0)
   
    cout<<"预定成功★房间号码为: "<<room[n].number<<endl;
                room[n].state=1;
    customer[i]->set_room_number(room[n].number);
    break;
   
  
  break;   
   
 i++;  //住房的顾客数加1

3 入住登记功能的c++实现:

这个功能是在函数check_in中实现的,程序首先判断顾客是否订房了,如果预定了房间,则要求输入顾客姓名和身份证号码,然后在所有的顾客中去查找此姓名和身份证号码的顾客,如果匹配了就取得其住房编号,然后根据住房编号计算出该住房的标准,再根据该顾客要求预定住房的天数和该住房标准的价格计算出该顾客要缴纳的房费,同时显示到界面上,这时操作员对顾客进行收费,同时设置顾客的住房费用属性,将该住房的状态修改为以入住状态(state=2);如果顾客没有来得及先预定房间,在这里可以实现先查找空房再入住的功能,同预定房间功能一样,先建立一个顾客对象代表即将入住的顾客,然后设置入住天数,选择住房标准,根据住房标准查询到一个空房,然后设置顾客的住房房间属性,同时直接修改该房间的状态为已入住状态,计算好要收的房费直接执行收费了,将顾客数加1。

入住登记功能流程图

入住登记c++代码实现:

void check_in()

    char name1[10],id1[19];
 int ding_or_no,prepaid;
 cout<<"该顾客订房了吗? (1->订了  2->没订) ";
 cin>>ding_or_no;
 if(ding_or_no==1)
 
  cout<<"请输入顾客的姓名:"<<endl;
  cin>>name1;
  cout<<"请输入顾客的身份证号码:"<<endl;
  cin>>id1;
  for(int j=0;j<=i;j++)
  
   if((strcmp(customer[j]->get_name(),name1)==0)&&(strcmp(customer[j]->get_ID(),id1)==0))  //查找该顾客的定房信息
   
    int num=customer[j]->get_room_number();  //取得定房的房间号
    cout<<"顾客"<<name1<<"今天入住本宾馆! 房间号码为: "<<num<<endl;
    switch(num/100)
    
    case 6:
     prepaid=customer[j]->get_day()*150;
     customer[j]->set_prepaid(prepaid);
     cout<<"请收房费 "<<prepaid<<"元整!"<<endl; //开始收费
     room[num%100-1].state=2;                  //修改房间状态为入住状态
     break;
    case 7:
     prepaid=customer[j]->get_day()*200;
     customer[j]->set_prepaid(prepaid);
     cout<<"请收房费 "<<prepaid<<"元整!"<<endl;
     room[19+num%100].state=2;
     break;
    case 8:
     prepaid=customer[j]->get_day()*300;
     customer[j]->set_prepaid(prepaid);
     cout<<"请收房费 "<<prepaid<<"元整!"<<endl;
     room[39+num%100].state=2;
     break;
    case 9:
     prepaid=customer[j]->get_day()*600;
     customer[j]->set_prepaid(prepaid);
     cout<<"请收房费 "<<prepaid<<"元整!"<<endl;
     room[59+num%100].state=2;
     break;
     
    
    break;
    
  
  
  
  
 else
 
  customer[i]=new Customer;
  int room_standard,day;
  cout<<"请您选择预定房间的标准:\\n"; 
  cout<<"1.单人间/天150元\\n2.双人间/天200元\\n3.标准间/天300元\\n4.总统套房/天600元\\n"; 
  cin>>room_standard; 
  cout<<"请输入住宿天数\\n"; 
  cin>>day; 
  customer[i]->set_day(day);
  switch(room_standard) 
   
   int n;
  case 1:
   prepaid=day*150;
   customer[i]->set_prepaid(prepaid);
   cout<<"请收房费 "<<prepaid<<"元整!\\n"; 
   for(n=0;n<20;n++)
   
    if(room[n].state==0)
    
     cout<<"入住房间号码为: "<<room[n].number<<endl;
     room[n].state=2;
     customer[i]->set_room_number(room[n].number);
     break;
    
   
   break; 
  case 2:
   prepaid=day*200;
   customer[i]->set_prepaid(prepaid);
   cout<<"请收房费 "<<prepaid<<"元整!\\n"; 
   for(n=20;n<40;n++)
   
    if(room[n].state==0)
    
     cout<<"入住房间号码为: "<<room[n].number<<endl;
     room[n].state=2;
     customer[i]->set_room_number(room[n].number);
     break;
    
   
   break; 
  case 3:
   prepaid=day*300;
   customer[i]->set_prepaid(prepaid);
   cout<<"请收房费 "<<prepaid<<"元整!\\n"; 
   for(n=40;n<60;n++)
   
    if(room[n].state==0)
    
     cout<<"入住房间号码为: "<<room[n].number<<endl;
     room[n].state=2;
     customer[i]->set_room_number(room[n].number);
     break;
    
   
   break; 
  case 4:
   prepaid=day*600;
   customer[i]->set_prepaid(prepaid);
   cout<<"请收房费 "<<prepaid<<"元整!\\n"; 
   for(n=60;n<80;n++)
   
    if(room[n].state==0)
    
     cout<<"入住房间号码为: "<<room[n].number<<endl;
     room[n].state=2;
     customer[i]->set_room_number(room[n].number);
     break;
    
   
   break;   
    
  i++;
 

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

技术分享图片技术分享图片宾馆/酒店智能客房管理系统为你节省成本
18127306305

智慧酒店客房控制系统
产品优势
通过对灯光、窗帘、用电器智能控制节能 感应式智能取电开关进行身份识别(读取卡内芯片数据,上传至系统,不同于普通的取电开关),可以对持卡人身份作出判断,对不同身份人员的控制权限分别进行设置,杜绝盗电。当客人拔卡离开房间时,将延时15秒关闭,将灯光、受控电源,空调等有效节能。 在卫生间吊顶安装红外探测器,可在客人进入卫生间时,自动点亮指定灯具及排气扇;而客人离开后,如果忘记关灯,系统可延时自动关闭卫生间灯具及排气扇,达到精细节能的目的。 在客房内加装电动窗帘,并受RCU智能控制,除可方便客人使用、降低服务人员工作量达到智能控制目的。

核心模块
奥嘉视智慧酒店客房智能控制系统是针对高星级酒店的客房控制与管理需求设计、开发和制造的新一代酒店客房智能管理系统,系统利用计算机控制、通讯、网络等技术,基于客房内的智能控制器构成专用的网络,对酒店客房的安防系统、门禁系统、中央空调系统、智能灯光系统、智能窗帘控制,服务系统等进行智能化管理与控制,实时监测客房状态、宾客需求、服务状况以及设备情况等,协助酒店对客房设备及内部资源进行实时控制分析。 系统包括通信管理软件、客房网络控制组件/设备、网络通信设备三个部分,采用成熟的以太网TCP/IP通信协议或CAN总线协议,所有客房控制信息以A/B(客户/服务器)模式运行,保证了整个系统运行的稳定性和可靠性。在奥嘉视智慧酒店客房智能控制系统中,所有通过该系统控制的客房内受控设备既可由宾客在客房内进行本地控制,也可由经过授权的酒店工作人员在酒店局域网相应的计算机终端上进行远程设置和控制。   奥嘉视提供了多种解决方案,包括一体化主机、模块化主机、总线主机,平板电脑终端无缝对接解决方案,全面覆盖星级酒店的不同需求。奥嘉视智慧客房网络智能控制系统集客房信息响应、灯光、空调、窗帘、服务功能于一体,实现了电能节约、安全防范、网络化监控、服务人性化等功能;客房人员身份、检测门状态、保险箱开关状态、客房温度状态等一切实时信息尽在掌握之中。系统按照中国酒店客房管理的目标模式,结合国际先进管理方式,总结用户需求,应用全新信息技术,面向星级酒店而设计。 奥嘉视智慧酒店客房智能控制系统的节能功效对酒店经济效益所带来的贡献可以立刻体现在酒店财务报表中。

以上是关于C++例程:宾馆客房管理系统的主要内容,如果未能解决你的问题,请参考以下文章

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

宾馆客房管理系统Mysql数据库课程设计

如何制作一个完整的数据库管理系统(最好是宾馆客房管理系统)

基于JSP开发java旅游(景点宾馆)系统 源码

Java实现酒店客房管理系统

java客房管理小项目,适合小白练手