• 旅馆管理系统(静态数组的使用)


    本题是静态数组管理系统,用到了静态数组的知识,废话不多说,看程序吧!哈!

    #include<iostream>
    #include<stdio.h>
    #include<string.h>
    #include<math.h>
    #include<algorithm>
    #define N 10
    using namespace std;
    struct Room{                                                              
                 int   roomgrade;//房间等级         
                 int   roomprice;//房间价格
                 int   roomnumber;//房间门号
                 char  name[20];//旅客姓名
        int   sex;//旅客性别 0 代表男  1 代表女
                 int   peoplein;//是否有人入住 0代表无人入住  1代表有客人入住了!!!
               } room[100];


    int main()
    {
       void CreatRoom();//订房信息初始化
       void ReadRoom();//已经被预定房间
       void ReturnRoom();//已经退还的房间
       void LookRoom();//查询房间使用情况
       printf("欢迎使用旅馆管理系统,请输入你要进行的操作\n");
       printf("----------------------------操作菜单----------------------------\n");
       printf("                       预定房间初始化请按“1”                  \n");
       printf("                       预定所需的房间请按“2”                  \n");
       printf("                       退掉使用的房间请按“3”                  \n");
       printf("                       查询房间的使用请按“4”                  \n");
       printf("                       结束进行的操作请按“5”                  \n");
       printf("----------------------------------------------------------------\n");
       int ch;
       cin>>ch;
       while(ch!=5)
       {
       switch(ch)
       {
       case 1:CreatRoom();break;
       case 2:ReadRoom();break;
       case 3:ReturnRoom();break;
       case 4:LookRoom();break;
       case 5:printf("系统已经制动关闭,感谢您的使用\n");return 0;break;
       default: printf("输入错误,请重新输入\n");break;
       }
       printf("欢迎使用旅馆管理系统,请输入你要进行的操作\n");
       printf("----------------------------操作菜单----------------------------\n");
       printf("                       预定房间初始化请按“1”                  \n");
       printf("                       预定所需的房间请按“2”                  \n");
       printf("                       退掉使用的房间请按“3”                  \n");
       printf("                       查询房间的使用请按“4”                  \n");
       printf("                       结束进行的操作请按“4”                  \n");
       printf("----------------------------------------------------------------\n");
       cin>>ch;
       }
       return 0;
    }


    void CreatRoom()//房间信息初始化
    {
     int i,j;
     printf("房建等级初始化中...    请稍后\n\n\n");
     memset(room,0,sizeof(room));
     for(i=0;i<100;i=i+10)
      for(j=i;j<i+10;j++)
      
      {
       room[j].roomgrade=j/10+1;
          room[j].roomprice=j/10*100+100;
       room[j].roomnumber=j;
      printf("房间等级(级)  房间价格(元)  房间号码  旅客姓名  旅客性别  是否使用\n");
      printf("%-15d%-15d%-10d%-10s%-10d%-10d\n",room[j].roomgrade,room[j].roomprice,room[j].roomnumber,room[j].name,room[j].sex,room[j].peoplein);
      
      }
    cout<<endl;
    }

    void ReadRoom()//预定房间
    {

     int n,grade,mark,i,price=0,sum[100],j=0,m;
     printf("请输入您要预定的房间的个数:\n");
     cin>>n;
     m=n;
     while(n--)
     {
      printf("请输入你要预定房间的等级1~10:\n");
      cin>>grade;
            mark=0;
      for(i=(grade-1)*10;i<(grade-1)*10+10;i++)
         if(room[i].peoplein==0)
       {
        room[i].peoplein=1;
                    mark=1;
        printf("请输入旅客的姓名:\n");
                    scanf("%s",room[i].name);
        printf("请输入旅客性别:“0”代表男;“1”代表女\n");
                    cin>>room[i].sex;
        sum[j]=i;
        j++;
           break;
       }
      if(mark==0)
      {
       printf("该等级房间已经满了人,请预定别的等级的房间:\n");
                n++;
      }
      
     }
     printf("你所预定的房间信息如下:\n");
     printf("----------------------------------------------------------------\n");
     for(i=0;i<m;i++)
     {
      printf("房间等级(级)  房间价格(元)  房间号码  旅客姓名  旅客性别  是否使用\n");
      printf("%-15d%-15d%-10d%-10s%-10d%-10d\n",room[sum[i]].roomgrade,room[sum[i]].roomprice,room[sum[i]].roomnumber,room[sum[i]].name,room[sum[i]].sex,room[sum[i]].peoplein);
      price+=room[sum[i]].roomprice; 
      }
         printf("----------------------------------------------------------------\n");
      printf("-------------------------------------应付款总额为:%d(元)\n\n\n",price);
    }


    void ReturnRoom()//退还房间
    {
     int n,number;
     printf("请输入退还房间的个数:\n");
     cin>>n;
     while(n--)
     {
      printf("请输入退还房间的房间号码:\n");
      cin>>number;
      room[number].peoplein=0;
      room[number].sex=0;
         memset(room[number].name,0,sizeof(room[number].name));
     }
     
     printf("房间已经退还完毕,欢迎您下次光临本旅馆\n\n");

    }
       


    void LookRoom()//查询房间使用情况
    {
     int i,remain=100,used=0;
     for(i=0;i<100;i++)
     {
             

         printf("房间等级(级)  房间价格(元)  房间号码  旅客姓名  旅客性别  是否使用\n");
         printf("%-15d%-15d%-10d%-10s%-10d%-10d\n",room[i].roomgrade,room[i].roomprice,room[i].roomnumber,room[i].name,room[i].sex,room[i].peoplein);
      if(room[i].peoplein==1)
      {
       remain--;
       used++;
      }
     }
     printf("房间使用情况如下:\n");
     printf("----------------------------------------------------------------\n");
     printf("                      房间总数:100                             \n");
     printf("                      已用房间:%d\n",used);
     printf("                      剩余房间:%d\n",remain);
     printf("----------------------------------------------------------------\n");
     cout<<endl<<endl;

    }

  • 相关阅读:
    brewhome
    WIN7下安装SQL server 2008 R2“出现性能计数器注册表配置单元一致性”失败的解决办法(新)
    话说ELK使用安装,结合.NET Core、ABP框架Nlog日志
    支付系统架构
    高可用Redis服务架构分析与搭建
    基于STS和JWT的微服务身份认证
    全面解读NoSQL数据库Redis的核心技术与应用实践
    Redis应用及安装
    微服务实践分享与探讨
    Docker的核心概念,镜像操作
  • 原文地址:https://www.cnblogs.com/xiohao/p/2910803.html
Copyright © 2020-2023  润新知