您现在的位置是:首页 > 编程 > 

C++期末课程设计——宾馆客房管理系统(详细报告+源代码+详细注释)(另附加“25+”C++&&C语言期末课程设计系统下载地址)

2025-07-18 20:37:04
宾馆客房管理系统报告 目录 宾馆客房管理系统报告 一、描述 二、设计思路及总体设计 三、详细设计 1、主函数功能实现 2、订房功能实现 、 入住登记功能实现 4、 退房结算功能实现 5、信息查询功能实现 四、系统源代码 五、运行结果截图 1、系统登录界面 2、订房功能 、入住功能 4、退房功能 5、查询功能 六、其他C/C期末课程设计系统

宾馆客房管理系统报告

目录

宾馆客房管理系统报告

一、描述

二、设计思路及总体设计

三、详细设计

1、主函数功能实现

2、订房功能实现

、 入住登记功能实现

4、 退房结算功能实现

5、信息查询功能实现

四、系统源代码

五、运行结果截图

1、系统登录界面

2、订房功能

、入住功能

4、退房功能

5、查询功能

六、其他C/C期末课程设计系统(完整项目完全开源)

七、附载/下载地址

注意: 

本系统下载地址

C&C期末课程设计

C语言期末课程设计


一、描述

        大家好!我是小浝仔,今天给大家分享C期末课程设计——宾馆客房管理系统,这个程序是用C程序编写的,实现了宾馆客房的订房管理,入住登记管理,结算登记管理,信息查询管理等等,是学习C程序很好的参考资料,本系统在命令行窗口运行,没有可视化界面,也没有用到MFC类库,如果朋友们用来学习或做C期末课程设计作业一定是可以的,我来共享给大家一些哦,另外在本博客结尾还附载了“25”C&&C语言期末课程设计下载地址(超详细),接下的一段时间,我都会发布出来。如果着急需要朋友们,请在评论区留言,我会参考,第一时间发布需要的文章!!!

特别记住:运行程序后输入的用户名和密码都为:12

有问题或意见,请及时联系我: 

CSD:小浝仔_CSD博客https:///m0_4684484?spm=1000.2115.001.54

版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处! 

二、设计思路及总体设计

        通过对C课程的学习,我了解到了其面向对象的高级特性,我决定使用它实现一个宾馆客房管理系统,模拟一个实际宾馆客房系统的运行,下面我就将这个系统的实现思路说明一下。

        作为一个宾馆客房间管理系统,必然涉及到客房对象,顾客对象等实体。这个系统我设置了80个房间,其中房间分四个等级,每个等级的价格是不一样的,可以通过房间编号得到房间的等级。然后就是房间的分配问题,就是当有顾客要求定房或入住时,我的程序能够根据用户要求入住的等级到相应等级的房间中去查一个还没有预定的房间和一个没有入住的空闲房间。

        当启动程序后,在Windows平台下都是从Main函数开始运行的,程序首先调用initial_room函数初始化80个房间的信息,包括房间编号,房间等级,房间价格,房间状态。其中房间编号和房间等级有直接联系,只要知道了房间编号就可以通过计算得到该房间的等级,房间状态初始化时等于0,表示该房间既没有被预定,也没有被入住。然后调用welcome函数,考虑到作为一个宾馆管理系统的安全性,对操作本系统的人员也要求认证的,其中在本函数中就要求只有通过输入了正确的用户名和密码才能操作系统哦!当通过登陆认证后,就进入宾馆管理系统了,在这里,系统给操作员显示一个操作菜单如:1->定房  2->入住  ->退房  4->查询,当操作员选择不同的数字就实现不同的功能。

三、详细设计

1、主函数功能实现

 主函数代码实现:

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

2、订房功能实现

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

 订房功能代码实现:

void book_room()
{
 customer[i]=new Customer;
 int room_standard,day;
 cout<<请您选择预定房间的标准:\n; 
 cout<<1.单人间/天150元\n2.双人间/天200元\n.标准间/天00元\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 :
  cout<<住房费用总共为: <<day*00<< 元\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
}

、 入住登记功能实现

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

 入住登记代码实现:

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[19num%100].state=2;
     break;
    case 8:
     prepaid=customer[j]->get_day()*00;
     customer[j]->set_prepaid(prepaid);
     cout<<请收房费 <<prepaid<<元整!<<endl;
     room[9num%100].state=2;
     break;
    case 9:
     prepaid=customer[j]->get_day()*600;
     customer[j]->set_prepaid(prepaid);
     cout<<请收房费 <<prepaid<<元整!<<endl;
     room[59num%100].state=2;
     break;
     
    }
    break;
   } 
  }
  
  
 } 
 else
 {
  customer[i]=new Customer;
  int room_standard,day;
  cout<<请您选择预定房间的标准:\n; 
  cout<<1.单人间/天150元\n2.双人间/天200元\n.标准间/天00元\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 :
   prepaid=day*00;
   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;
 }
}

4、 退房结算功能实现

        简明:这个功能是在函数Check_Out中实现的,程序首先根据输入退房顾客的姓名和身份证号码,以及再输入顾客的实住天数,来计算顾客消费的费用。本程序利用Swithch(standard)函数,根据顾客的房间号以及该顾客预付了房费的多少,来判断是否给该顾客退费,还是请补收该顾客住房费用。        

退房结算功能代码实现:

void check_out()
{
 char name2[10],id2[19];
 int standard,j,room_number,day1,day2,day;
 cout<<请输入要退房的顾客姓名和身份证号码:\n;
 cin>>name2>>id2; 
 cout<<请输入该顾客实住天数:\n; 
 cin>>day2; 
 for(j=0;j<i;j)
 {
  if((strcmp(customer[j]->get_name(),name2)==0)&&(strcmp(customer[j]->get_ID(),id2)==0))
  {
   room_number=customer[j]->get_room_number();
   standard=room_number/100; 
   day1=customer[j]->get_day();
   day=day1-day2;
   switch(standard) 
   {
   case 6: 
    cout<<顾客的房间号是<<room_number<< :为单人间,每天150元\n;
    cout<<该顾客预付了房费 <<customer[j]->get_prepaid()<<元, 实际消费 <<day2*150<<元整!\n;
    cout<<endl;
    if(day>0)
     cout<<请退给该顾客 <<day*150<< 元整!\n; 
    if(day<0)
     cout<<请补收该顾客住房费 <<-day*150<< 元整!\n;
    break; 
   case 7:
    cout<<顾客的房间号是<<room_number<< :为单人间,每天200元\n;
    cout<<该顾客预付了房费 <<customer[j]->get_prepaid()<<元, 实际消费 <<day2*200<<元整!\n;
    cout<<endl;
    if(day>0)
     cout<<请退给该顾客 <<day*200<< 元整!\n; 
    if(day<0)
     cout<<请补收该顾客住房费 <<-day*200<< 元整!\n;
    break; 
   case 8:
    cout<<顾客的房间号是<<room_number<< :为单人间,每天00元\n;
    cout<<该顾客预付了房费 <<customer[j]->get_prepaid()<<元, 实际消费 <<day2*00<<元整!\n;
    cout<<endl;
    if(day>0)
     cout<<请退给该顾客 <<day*00<< 元整!\n; 
    if(day<0)
     cout<<请补收该顾客住房费 <<-day*00<< 元整!\n;
    break; 
   case 9:
    cout<<顾客的房间号是<<room_number<< :为单人间,每天600元\n;
    cout<<该顾客预付了房费 <<customer[j]->get_prepaid()<<元, 实际消费 <<day2*600<<元整!\n;
    cout<<endl;
    if(day>0)
     cout<<请退给该顾客 <<day*600<< 元整!\n; 
    if(day<0)
     cout<<请补收该顾客住房费 <<-day*600<< 元整!\n;
    break; 
   }
   cout<<endl;
   cout<<退房核算清楚,请按1: ;
   char account;
   cin>>account;
   if(account==	1	)
   {
    for(int k=0;k<80;k)
    {
     if(room[k].number==customer[j]->get_room_number()) 
      room[k].state=0;
    }
    i--;
    for(;j<i;j)
    {
     customer[j]=customer[j1];
    }
    delete customer[i];
   }
  }
 } 
}

5、信息查询功能实现

        简明:这个功能是在函数Void inquire()函数实现的,信息查询分为房间信息查询1和顾客信息查询2对于房间信息查询会列出:那些房间还没人预定,也没人入住;那些房间已预定,那些房间有人入住;对于顾客信息查询:分为按姓名查询按1和按身份证查询按2,分别输入顾客的姓名和身份证号码,查询顾客住房信息:房间号和预付房费。

信息查询功能代码实现:

void inquire()
{
 char inquire_choice;
 cout<<房间信息查询请按1, 顾客信息查询请按2: <<endl;
 cin>>inquire_choice;
    if(inquire_choice==	1	)
 {
  int j,k=0;
  cout<<endl;
  cout<<下列房间还没人预订,也没人入住:<<endl;
  for(j=0;j<80;j)
  {
   if(room[j].state==0)
   {
    if(k%10==0) cout<<endl;
    cout<<room[j].number<<	\t	;
    k;
   }
  }
  cout<<endl;
  cout<<endl;
  k=0;
  cout<<下列房间已预订:<<endl;
  for(j=0;j<80;j)
  {
   if(room[j].state==1)
   {
    if(k%10==0) cout<<endl;
    cout<<room[j].number<<	\t	;
    k;
   }
  }
  k=0;
  cout<<endl;
  cout<<endl;
  cout<<下列房间有人入住:<<endl;
  for(j=0;j<80;j)
  {
   if(room[j].state==2)
   {
    if(k%10==0) cout<<endl;
    cout<<room[j].number<<	\t	;
    k;
   }
  }
  cout<<endl;
  cout<<endl;
 }
 else if(inquire_choice==	2	)
 {
  cout<<按姓名查询请按1, 按身份证查询请按2: <<endl;
  char inquire_choice;
  cin>>inquire_choice;
  if(inquire_choice==	1	)
  {
   char name[10];
   cout<<请输入顾客的姓名: <<endl;
   cin>>name;
   for(int j=0;j<=i;j)
   {
    if(strcmp(customer[j]->get_name(),name)==0)
    {
     cout<<name<<的住房信息如下:\n;
     cout<<	\t	<<房间号为: <<customer[j]->get_room_number()<<endl;
     cout<<\t<<预付房费为: <<customer[j]->get_prepaid()<<endl;
    }
   }
  }
  if(inquire_choice==	2	)
  {
   char id[10];
   cout<<请输入顾客的身份证号码: <<endl;
   cin>>id;
   for(int j=0;j<=i;j)
   {
    if(strcmp(customer[j]->get_ID(),id)==0)
    {
     cout<<customer[j]->get_name()<<的住房信息如下:\n;
     cout<<	\t	<<房间号为: <<customer[j]->get_room_number()<<endl;
     cout<<\t<<预付房费为: <<customer[j]->get_prepaid()<<endl;
    }
   }
  }
 }
}
四、系统源代码
#include<iostream.h> 
#include<string.h>
//***********************************************************************************
void initial_room();	//初始化80个房间信息
void welcome();			//验证用户登陆,登陆成功显示欢迎信息
void enter();
void book_room();
void check_in();
void check_out();
void inquire();
int i=0;
//***********************************************************************************
struct Room  
{
 int number;
 int dank;
 int price;
 int state; 
};

class Customer  
{
public:
 Customer();
 
 void set_name(char *n){strcpy(name,n);}
 void set_ID(char *p){strcpy(ID,p);}
 void set_room_number(int n){room_number=n;}
 void set_day(int d){day=d;}
 void set_prepaid(int p){prepaid=p;}
 char *get_name(){return name;}
 char *get_ID(){return ID;}
 int  get_room_number(){return room_number;}
 int  get_day(){return day;}
 int  get_prepaid(){return prepaid;} 
 
 virtual ~Customer();
private: 
 char name[10],ID[19]; 
 int  room_number;
 int  prepaid;
 int  change;
 int  day;
};
Customer::Customer()
{
 cout<<请您输入顾客的姓名\n;
 cin>>name;
 cout<<请您输入顾客的身份证号码\n; 
 cin>>ID; 
 prepaid=change=day=0;
}
Customer::~Customer()
{
 cout<<该顾客退房成功!<<endl;
}
//***********************************************************************************
Room room[80];
Customer *customer[80];

void main()			//程序入口从这里开始运行
{
 char choice=	1	;
 initial_room();	//初始化80个房间的信息,分四个等级
 welcome();			//验证用户登陆,登陆成功显示欢迎信息
 
 while(choice==	1	)
 {
  enter();   //根据用户的选择执行不同的功能
  cout<<endl;
  cout<<继续使用本系统请按\1\,退出请按\2\!  ;
  cin>>choice;
  cout<<endl;
 }
}
//系统登陆界面***********************************************************************
void welcome()		//验证用户登陆,登陆成功显示欢迎信息
{
 char name[4],code[7];
 cout<<请输入用户名和密码(以空格隔开):\n; 
 cin>>name>>code;
 while((strcmp(name,12)!=0)||(strcmp(code,12)!=0))
 {
  cout<<用户名或密码输入有误,请重新输入!\n;
  cin>>name>>code;
 }
 cout<<endl;
 cout<<endl;
 cout<<                      ▲***************************▲\n; 
 cout<<                      △ 欢迎使用宾馆客房管理系统!△\n; 
 cout<<                      ▲***************************▲\n; 
 cout<<endl;
}
//系统入口***************************************************************************
void enter()
{
 int kind_of_service;
 cout<<请选择服务类别:订房、入住、退房还是查询? \n; 
 cout<< 1->定房  2->入住  ->退房  4->查询:  ;
 cin>>kind_of_service; 
 if((kind_of_service>4) || (kind_of_service<1)) 
 {
  cout<<您的输入有误,请重试!\n; 
  cin>>kind_of_service;
 } 
 else 
  switch(kind_of_service) 
 {
case 1: book_room();
 break;
case 2: check_in();
 break;
case : check_out();
 break;
case 4: inquire();
 break;
 } 
}


//订房实现***************************************************************************
void book_room()
{
 customer[i]=new Customer;
 int room_standard,day;
 cout<<请您选择预定房间的标准:\n; 
 cout<<1.单人间/天150元\n2.双人间/天200元\n.标准间/天00元\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 :
  cout<<住房费用总共为: <<day*00<< 元\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
}
//入住登记***************************************************************************
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[19num%100].state=2;
     break;
    case 8:
     prepaid=customer[j]->get_day()*00;
     customer[j]->set_prepaid(prepaid);
     cout<<请收房费 <<prepaid<<元整!<<endl;
     room[9num%100].state=2;
     break;
    case 9:
     prepaid=customer[j]->get_day()*600;
     customer[j]->set_prepaid(prepaid);
     cout<<请收房费 <<prepaid<<元整!<<endl;
     room[59num%100].state=2;
     break;
     
    }
    break;
   } 
  }
  
  
 } 
 else
 {
  customer[i]=new Customer;
  int room_standard,day;
  cout<<请您选择预定房间的标准:\n; 
  cout<<1.单人间/天150元\n2.双人间/天200元\n.标准间/天00元\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 :
   prepaid=day*00;
   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;
 }
}
//退房结算***************************************************************************
void check_out()
{
 char name2[10],id2[19];
 int standard,j,room_number,day1,day2,day;
 cout<<请输入要退房的顾客姓名和身份证号码:\n;
 cin>>name2>>id2; 
 cout<<请输入该顾客实住天数:\n; 
 cin>>day2; 
 for(j=0;j<i;j)
 {
  if((strcmp(customer[j]->get_name(),name2)==0)&&(strcmp(customer[j]->get_ID(),id2)==0))
  {
   room_number=customer[j]->get_room_number();
   standard=room_number/100; 
   day1=customer[j]->get_day();
   day=day1-day2;
   switch(standard) 
   {
   case 6: 
    cout<<顾客的房间号是<<room_number<< :为单人间,每天150元\n;
    cout<<该顾客预付了房费 <<customer[j]->get_prepaid()<<元, 实际消费 <<day2*150<<元整!\n;
    cout<<endl;
    if(day>0)
     cout<<请退给该顾客 <<day*150<< 元整!\n; 
    if(day<0)
     cout<<请补收该顾客住房费 <<-day*150<< 元整!\n;
    break; 
   case 7:
    cout<<顾客的房间号是<<room_number<< :为单人间,每天200元\n;
    cout<<该顾客预付了房费 <<customer[j]->get_prepaid()<<元, 实际消费 <<day2*200<<元整!\n;
    cout<<endl;
    if(day>0)
     cout<<请退给该顾客 <<day*200<< 元整!\n; 
    if(day<0)
     cout<<请补收该顾客住房费 <<-day*200<< 元整!\n;
    break; 
   case 8:
    cout<<顾客的房间号是<<room_number<< :为单人间,每天00元\n;
    cout<<该顾客预付了房费 <<customer[j]->get_prepaid()<<元, 实际消费 <<day2*00<<元整!\n;
    cout<<endl;
    if(day>0)
     cout<<请退给该顾客 <<day*00<< 元整!\n; 
    if(day<0)
     cout<<请补收该顾客住房费 <<-day*00<< 元整!\n;
    break; 
   case 9:
    cout<<顾客的房间号是<<room_number<< :为单人间,每天600元\n;
    cout<<该顾客预付了房费 <<customer[j]->get_prepaid()<<元, 实际消费 <<day2*600<<元整!\n;
    cout<<endl;
    if(day>0)
     cout<<请退给该顾客 <<day*600<< 元整!\n; 
    if(day<0)
     cout<<请补收该顾客住房费 <<-day*600<< 元整!\n;
    break; 
   }
   cout<<endl;
   cout<<退房核算清楚,请按1: ;
   char account;
   cin>>account;
   if(account==	1	)
   {
    for(int k=0;k<80;k)
    {
     if(room[k].number==customer[j]->get_room_number()) 
      room[k].state=0;
    }
    i--;
    for(;j<i;j)
    {
     customer[j]=customer[j1];
    }
    delete customer[i];
   }
  }
 } 
}
//信息查询***************************************************************************
void inquire()
{
 char inquire_choice;
 cout<<房间信息查询请按1, 顾客信息查询请按2: <<endl;
 cin>>inquire_choice;
    if(inquire_choice==	1	)
 {
  int j,k=0;
  cout<<endl;
  cout<<下列房间还没人预订,也没人入住:<<endl;
  for(j=0;j<80;j)
  {
   if(room[j].state==0)
   {
    if(k%10==0) cout<<endl;
    cout<<room[j].number<<	\t	;
    k;
   }
  }
  cout<<endl;
  cout<<endl;
  k=0;
  cout<<下列房间已预订:<<endl;
  for(j=0;j<80;j)
  {
   if(room[j].state==1)
   {
    if(k%10==0) cout<<endl;
    cout<<room[j].number<<	\t	;
    k;
   }
  }
  k=0;
  cout<<endl;
  cout<<endl;
  cout<<下列房间有人入住:<<endl;
  for(j=0;j<80;j)
  {
   if(room[j].state==2)
   {
    if(k%10==0) cout<<endl;
    cout<<room[j].number<<	\t	;
    k;
   }
  }
  cout<<endl;
  cout<<endl;
 }
 else if(inquire_choice==	2	)
 {
  cout<<按姓名查询请按1, 按身份证查询请按2: <<endl;
  char inquire_choice;
  cin>>inquire_choice;
  if(inquire_choice==	1	)
  {
   char name[10];
   cout<<请输入顾客的姓名: <<endl;
   cin>>name;
   for(int j=0;j<=i;j)
   {
    if(strcmp(customer[j]->get_name(),name)==0)
    {
     cout<<name<<的住房信息如下:\n;
     cout<<	\t	<<房间号为: <<customer[j]->get_room_number()<<endl;
     cout<<\t<<预付房费为: <<customer[j]->get_prepaid()<<endl;
    }
   }
  }
  if(inquire_choice==	2	)
  {
   char id[10];
   cout<<请输入顾客的身份证号码: <<endl;
   cin>>id;
   for(int j=0;j<=i;j)
   {
    if(strcmp(customer[j]->get_ID(),id)==0)
    {
     cout<<customer[j]->get_name()<<的住房信息如下:\n;
     cout<<	\t	<<房间号为: <<customer[j]->get_room_number()<<endl;
     cout<<\t<<预付房费为: <<customer[j]->get_prepaid()<<endl;
    }
   }
  }
 }
}
//房间信息初始化*********************************************************************
void initial_room()  //对80个房间进行初始化,分4个等级
{
 int j,k=601;
 for(j=0;j<20;j)
 {
  room[j].number=k;
  room[j].dank=1;
  room[j].price=150;
  room[j].state=0;
 }
 k=701;
 for(j=20;j<40;j)
 {
  room[j].number=k;
  room[j].dank=2;
  room[j].price=200;
  room[j].state=0;
 }
 k=801;
 for(j=40;j<60;j)
 {
  room[j].number=k;
  room[j].dank=;
  room[j].price=00;
  room[j].state=0;
 }
 k=901;
 for(j=60;j<80;j)
 {
  room[j].number=k;
  room[j].dank=4;
  room[j].price=600;
  room[j].state=0;
 }
}
五、运行结果截图

1、系统登录界面

2、订房功能

、入住功能

4、退房功能

5、查询功能

六、其他C/C期末课程设计系统(完整项目完全开源)

★C语言期末课程设计★——图书借阅系统(完整项目源代码详细注释)

★C/C语言期末课程设计★——万年历显示系统(详细报告源代码详细注释)

★C语言期末课程设计★——教师工资管理系统(详细报告源代码详细注释)

★C语言期末课程设计★——成绩管理系统(源代码详细注释)

【C语言期末课程设计】——超市管理系统(开源)

★C/C期末课程设计★—☆产品入库管理操作系统☆【开源详细注释】

【C&C期末课程设计】——职工工作量统计系统(源代码详细注释)

​​​​​​【C&C期末课程设计】——职工资源管理系统(源代码详细注释)

C&C期末课程设计——个人收支管理系统(一)【源代码详细注释】

C&C期末课程设计——学生成绩管理源代码

C&C期末课程设计——图书管理系统源代码

C期末课程设计——宾馆客房管理系统(详细报告源代码详细注释)(另附加“25”C&&C语言期末课程设计系统下载地址)

C&C期末课程设计——产品管理系统(源代码详细注释)

七、附载/下载地址

注意: 

下面附载了“25”C&&C语言期末课程设计下载地址(超详细),每个系统的简介都详细介绍了本系统的实现功能,可以根据功能查自己所需要的,接下的一段时间,我将会一一为大家发布。如果着急需要的朋友们,请在评论区留言,我会参考,第一时间发布需要的文章!!!

本系统下载地址

C/C课程设计——课程设计宾馆客房管理系统(源代码课设报告详细注释).zip

C&C期末课程设计

C&C——文件成绩(源代码).zip

C&amp;C课程设计——图书管理系统.zip

C&C课程设计——学生成绩管理系统.zip

C/C课程设计——职工工作量统计系统(源代码、注释).zip

C&C课程设计——班级管理系统源代码(源代码注释).zip

C&C期末课程设计——KTV歌曲管理系统(源代码详细注释).zip

C&amp;C期末课程设计——产品信息管理系统(源代码详细注释).zip

 C&C期末课程设计——个人收支管理系统(源代码详细注释).zip

 C&C期末课程设计——职工资源管理系统(源代码详细注释).zip

C&C期末课程设计——个人收支管理系统(二)(源代码详细注释).zip

C语言期末课程设计

C语言课程设计——教工工资管理系统(源代码课程设计详细注释).zip

C语言课程设计——成绩管理系统源程序.zip

C语言课程设计——超市管理系统(源代码详细注释).zip

C语言课程设计——火车票订票管理系统(源代码详细注释).zip

C语言课程设计——商品销售系统(源代码详细注释).zip

C语言课程设计——通讯录管理系统(源代码详细注释).zip

C语言课程设计——图书管理系统(源代码详细注释).zip

C语言课程设计——图书借阅系统(源代码详细注释).zip

C语言课程设计——万年历系统(源代码详细注释).zip

C语言课程设计——文本编辑器系统(源代码详细注释).zip

C语言课程设计——学生成绩管理系统.zip

 C语言课程设计——学生成绩管理系统(源代码详细注释).zip

C语言课程设计——学生信息系统(源代码详细注释).zip

C语言课程设计——做的绘图板系统(源代码详细注释).zip

 -  版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1123357.html

相关标签:无
上传时间: 2025-07-18 05:47:18
留言与评论(共有 17 条评论)
本站网友 上海静安区
6分钟前 发表
为单人间
本站网友 淋浴房设计
12分钟前 发表
day2
本站网友 白酒招商信息
22分钟前 发表
转载请注明出处!  二
本站网友 鱼油的功效与作用
30分钟前 发表
入住功能 4
本站网友 我看诸葛亮
11分钟前 发表
id1)==0)) //查该顾客的定房信息 { int num=customer[j]->get_room_number(); //取得定房的房间号 cout<<顾客<<name1<<今天入住本宾馆! 房间号码为
本站网友 socks
1分钟前 发表
day; cout<<请输入要退房的顾客姓名和身份证号码
本站网友 华翰物流
3分钟前 发表
cout<<住房费用总共为
本站网友 红霉素眼膏
25分钟前 发表
请按1
本站网友 失眠怎么办
15分钟前 发表
cout<<住房费用总共为
本站网友 六安毛坦厂
30分钟前 发表
<<room[n].number<<endl; room[n].state=2; customer[i]->set_room_number(room[n].number); break; } } break; case 4
本站网友 杭州口碑租房网
15分钟前 发表
如果着急需要的朋友们,请在评论区留言,我会参考,第一时间发布需要的文章!!! 本系统下载地址 C/C课程设计——课程设计宾馆客房管理系统(源代码课设报告详细注释).zip C&C期末课程设计 C&C——文件成绩(源代码).zip C&amp;C课程设计——图书管理系统.zip C&C课程设计——学生成绩管理系统.zip C/C课程设计——职工工作量统计系统(源代码
本站网友 广州精神病医院
24分钟前 发表
顾客信息查询请按2
本站网友 勇敢的号角
4分钟前 发表
cout<<顾客的房间号是<<room_number<<
本站网友 椰林树影
2分钟前 发表
设计思路及总体设计         通过对C课程的学习,我了解到了其面向对象的高级特性
本站网友 安庆物流
25分钟前 发表
cout<<住房费用总共为
本站网友 万厚
19分钟前 发表
<<day*150<<元\n; //计算住房费用 for(n=0;n<20;n) //从第一个级别的房间中查一个空闲的房间 { if(room[n].state==0) //state=0表示该住房没有被预定的 { cout<<预定成功★房间号码为