C语言实现酒店信息管理系统

要求:1.实现一个屏幕菜单界面,让操作员能够方便地选择所需要进行的操作,如不同级别房间价格的查询、修改、删除等。
2.对不同标准的房间实施不同的收费标准,也可以按天收费或按小时收费,可根据顾客需要在登记的入住的时候进行选择,自行拟定收费的标准。
3.月底进行结算,实收多少,应收多少。

(我可以给最大限额的悬赏,现金都可以,但是一定要网上找不到的。辛苦了)。另外我自己已经写了一个系统,只不过存在一些BUG,无法实现,如果要我的代码的可以私聊

不知道你的要求是什么,把我以前的关于酒店管理的代码发给你参考下吧。

#include<string.h>  
#include<stdlib.h>
#include<stdio.h>  
#include<conio.h>  
typedef struct tagCustomer
{
  char m_ID[19];     /*身份证号码*/
  char m_name[10];   /*顾客姓名*/
  int  m_age;        /*顾客年龄*/
  char  m_sex[6];    /*顾客性别*/
  int num;
}Customer;/*顾客结构*/

typedef struct tagRoom
{
  int m_num;         /*房间号*/
  int m_floor;       /*楼层*/
  int m_price;       /*价格*/
  int m_use;         /*是否已入住*/
}Room;/*房间结构*/
int i,j=0,age,num,floor,price,use,n;
int reg =0;
Customer cus[5];
Room    r[5];
int count=5;
char ID[18],name[10],sex[6];
FILE *fproom;
FILE *fpcustomer;

void Customer_Input()
{
  if(count<=5)
  {
    printf("请输入身份证号(18位数字):");
    scanf("%s",&cus[j].m_ID);
    printf("请输入姓名(10位字符)");
    scanf("%s",&cus[j].m_name);
    printf("请输入年龄(数字型)");
    scanf("%d",&cus[j].m_age);
    printf("请输入性别(男或女):");
    scanf("%s",&cus[j].m_sex);
  }
  else
  {
    printf("\n 存储空间已满!");
  }
  printf("\n\r顾客可以住在:");
  printf("\n\r房间号   楼层   价格   是否空闲(1:空闲0:已使用)");
  for(i=0;i<count;i++)
  {
    if(r[i].m_use==1)
    {
      printf("\n\r%d      %d       %d       %d ",r[i].m_num,r[i].m_floor,r[i].m_price,r[i].m_use);
    }
  }
  printf("\n\r请你输入房间号:");
  scanf("%d",&num);
  reg = 0;
  for(i=0;i<count;i++)
  {
    if(r[i].m_use==1&&r[i].m_num==num)
    {
      r[i].m_use = 0;
      printf("\n 登记成功!\n");
      cus[j].num=r[i].m_num ;
      j=j+1;
      reg=1;
    }
  }
  if(reg==0)
  {
    printf("\n 登记失败!\n");
  }
  
}
void Customer_ListOut()
{
  if(count<=5)
  {
    printf("请输入身份证号(18位数字):");
    scanf("%s",&ID);
    for(i=0;i<count;i++)
    {
      if(strcmp(cus[i].m_ID,ID)==0)
      {
        printf("\n\r顾客身份证号:%s   姓名:%s   年龄:%d   性别:%s \n",cus[i].m_ID,cus[i].m_name,cus[i].m_age,cus[i].m_sex);
      }
    }
  }
  else
  {
    printf("\n \n");
  }
}
void Room_ListOut()
{
  printf("\n\r房间号   楼层   价格   是否空闲(1:空闲0:已使用)");
  for(i=0;i<count;i++)
  {
    if(r[i].m_use==1)
    {
      printf("\n\r%d      %d       %d       %d ",r[i].m_num,r[i].m_floor,r[i].m_price,r[i].m_use);
    }
  }
}
void PerCustomer_Search()
{
  if(count<=5)
  {
    printf("请输入身份证号(18位数字):");
    scanf("%s",&cus[j].m_ID);
    printf("请输入姓名(10位字符)");
    scanf("%s",&cus[j].m_name);
    printf("请输入年龄(数字型)");
    scanf("%d",&cus[j].m_age);
    printf("请输入性别(男或女):");
    scanf("%s",&cus[j].m_sex);
  }
  else
  {
    printf("\n 住房已满!");
  }
  printf("\n\r顾客可以预订:");
  printf("\n\r房间号   楼层   价格   是否空闲(1:空闲0:已使用)");
  for(i=0;i<count;i++)
  {
    if(r[i].m_use==1)
    {
      printf("\n\r%d      %d       %d       %d ",r[i].m_num,r[i].m_floor,r[i].m_price,r[i].m_use);
    }
  }
  printf("\n 请你输入要预订的房间号:");
  scanf("%d",&num);
  reg = 0;
  for(i=0;i<count;i++)
  {
    if(r[i].m_use==1&&r[i].m_num==num)
    {
      r[i].m_use = 0;
      printf("\n 预订成功!\n");
      cus[j].num=r[i].m_num ;
      j=j+1;
      reg=1;
    }
  }
  if(reg==0)
  {
    printf("\n 预订失败!\n");
  }
}
void UnCustomer_Out()
{
  int k;
  printf("\n 请输入要退房顾客身份证:");
scanf("%s",&ID);
        for(i=0;i<count;i++)
        {
          if(strcmp(cus[i].m_ID,ID)==0)
          {
            printf("\n\r顾客身份证号:%s   姓名:%s   年龄:%d   性别:%s \n\r已经成功退房!",cus[i].m_ID,cus[i].m_name,cus[i].m_age,cus[i].m_sex);
            for(k=0;k<count;k++)
              if(r[k].m_num==cus[i].num)
                r[k].m_use=1;            
            memset(&cus[i],0,sizeof(Customer));

          }
        }
}
void Customer_Goaway()
{
  fproom=fopen("room","wb+");   
  fwrite((void *)&r,sizeof(Room),count,fproom);
  fclose(fproom);
  
  fpcustomer=fopen("customer","wb+");   
  fwrite((void *)&r,sizeof(Room),count,fpcustomer);
  fclose(fpcustomer);
  exit(0);
  
}
main()
{
  fproom=fopen("room","wb");   
  if(fproom!=NULL)
  {
    for(i=0;i<count;i++)
    {
      int id=100;
      r[i].m_num=i+100;
      r[i].m_floor=1;
      r[i].m_price=100;
      r[i].m_use=1;
    }
    fwrite((void *)&r,sizeof(Room),count,fproom);
    fclose(fproom);
  }
  else
  {
    printf("\n---文件打开失败--");
  }
  for(;;)
  {
    
    printf("\n");
    printf("/******************************************\\\n");
    printf("*                                          *\n");
    printf("*               酒店管理系统               *\n");
    printf("*                  主菜单                  *\n");
    printf("*                                          *\n");
    printf("*                1.顾客登记                *\n");
    printf("*                2.查询顾客信息            *\n");
    printf("*                3.查询空房间              *\n");
    printf("*                4.预订房间                *\n");
    printf("*                5.退订房间                *\n");
    printf("*                6.保存并退出系统          *\n"); 
    printf("*                                          *\n");
    printf("\\******************************************/\n\n");
    printf("请输入选择项(1-6):");
    scanf("%d",&n);
    printf("\n\n\n\n");
    if(n>0&&n<=6)
    {
      switch(n)
      {
      case 1:Customer_Input();break;
      case 2:Customer_ListOut();break;/*查询顾客信息*/
      case 3:Room_ListOut();break;/*查询空房间*/
      case 4:PerCustomer_Search();break;/*预订房间*/
      case 5:UnCustomer_Out();break;/*退订房间*/
      case 6:Customer_Goaway();  /*保存退出*/
      }
    }
    else 
    {
      printf("***********************************************************************\n");
      printf("*                                                                      *\n");
      printf("*                              输入错误!                               *\n");
      printf("*                              请退出!                                 *\n");
      printf("*                                                                      *\n");
      printf("***********************************************************************\n");
      break;
    }
  }
}

追问

能不能加一个功能,月底进行结算,实收多少,应收多少。我的代码其实写的都跟你差不多,就是结算没有

温馨提示:内容为网友见解,仅供参考
第1个回答  2016-12-15
方便把你的界面菜单贴个图上来吗?追问

还有一个月底报表功能没做。月底进行结算,实收多少,应收多少。

请哪位高手帮我用C语言编一个酒店管理系统软件 !急!!!
struct customer *del(struct customer *head,int num) \/*显示退房客户的信息*\/ { struct customer *p1,*p2;if(head==NULL){ printf("没有客户的信息\\n");return(head);} p1=head;while(num!=p1->num&&p1->next!=NULL){ p2=p1;p1=p1->next;} if(num==p1->num){ if(p1==head)...

在大学学C语言能干什么?有什么用?最妤举些易明白的例子
cbClsExtra 为窗口类的额外信息做记录,系统初始化为0。cbWndExtra 记录窗口实例的额外信息,系统初始为0.如果程序使用WNDCLASSEX注册一个从资源文件里创建的对话框,则此参数必须设置为DLGWINDOWEXTRAhIcon 窗口类的图标,为资源句柄,如果设置为NULL,系统将为窗口提供一个默认的图标。hCursor 窗口类的鼠标样式,为鼠标样式资源...

电脑编程要是先学什么好
这会不会还有人说VB吧.还美其名曰加深对编软件的印象.这种说法很幼稚.学了C语言还学什么VB呀.其实VB确实是很强大的,容易入门,想精通了也不容易.著名的DOS系统就是用BASIC语言写出来的.可是,这种这么易用的软件对于专业学编程的人是一种不好的东西,会让人产生依赖,让人产生惰性.VB的那些控件的功...

读信息管理与信息系统专业是一种怎样的体验?
一、我来回顾下学习经历。大一继承了高中的艰苦品质,成绩不错,数学95以上。没什么专业课,唯一管理学讲的很无聊,知识枯燥,考完即忘。初中接触易语言,所以很快自学C语言。大二当学生会部长,谈情说爱,唱歌弹琴排节目,成绩一落千丈,平均分70左右。专业课有数据结构,运筹学,统计学,项目管理,经...

Java怎么自学?
为了检验自己的学习效果,你可以尝试写一个项目如:酒店管理系统。 Java自学能学成吗?如何自学Java?Java自学中会面对哪些问题? 顺利完成这样一个小项目,对自己的学习即是肯定又是鼓励,接下来的学习会有一定难度,有很多自学的朋友,都“死”在类集合线程Java网络编程。在这个学习阶段经常会让自学者感到迷茫,大脑不是空...

我要计算机毕业论文
ASP033房产信息管理系统ASP034教学评估系统ASP035网上评教系统ASP036实验室设备管理系统ACCESSASP037办公自动化系统ASP038酒店预定管理系统ASP039学生成绩查询系统ASP+ACCESSASP040学生排课管理系统ASP+SQLASP041电脑配机ASP042园林设计ASP043网上人才信息管理系统ASP044学生排课管理系统SQLASP045助学贷款管理系统ASP046视频点播...

计算机工程系专业介绍_计算机工程技术专业介绍
主干课程:VC语言程序设计、数据结构、计算机网络技术、网络系统安全基础、Internet(因特网)应用及JAVA、数据库原理及应用(ORACLE)、操作系统、密码学概论等。 服务方向:学生毕业后可从事网站及信息系统的安全性设计、检查、维护和管理工作,也可从事一般企、事业单位计算机应用软件的开发工作。6、计算机程序员(中加联办)...

电子商务专业有什么课程
主课程:计算机原理、计算机应用基础、计算机网络基础、CAD辅助设计、三维动画设计、VBSIC语言及程序设计PHOTOSHOP、Windows2000、网页设计、Office办公自动化、Foxpro、CorelDRAW、多媒体、计算机系统安装及维护管理、计算机病毒原理防范等。计算机应用 培养目标及就业方向:培养初、中级从事计算机专业工作的技术员,毕业后从事客服...

女生学什么专业好就业?
专业一:汽车商务营销 随着汽车行业的高速发展,汽车商务专业也运应而生。该专业涵盖汽车营销、汽车售后、电子商务、汽车维修管理、汽车营销管理、保险理赔、二手车评估、商务礼仪等多个板块。旨在培养掌握现代营销管理与商务等方面的基本理论、知识和技能,能够从事汽车市场营销、商务谈判、汽车营销管理、汽车...

播音与主持专业学什么?
主要课程:商品学、管理学财务管理、物流设施与设备、运输管理、物流信息系统、物流概论、配送与流通加工。4、旅游管理专业 培养掌握现代旅游酒店管理基本理论知识和业务操作技能,适应星级酒店经营管理需求的酒店管理人才。主要课程:酒店管理、前厅管理、客房管理、餐饮管理、酒店市场营销、旅游学概论、酒店人力...

相似回答