用c写的酒店客房登记管理系统

废话不过说,直接看代码

	#include<string.h>     
    #include<stdlib.h>   
    #include<stdio.h>     
    #include<conio.h>

#include<Windows.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 color(short x) {
	if (x >= 0 && x <= 15)
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), x);
	else
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
}

void PROGRESS() {
	system("cls");
	printf("\n\n\n");
	color(15);
	printf("\t\t\t\t*************加载中*************\n");
	color(16);
	printf("\n\n");
	color(2);
	printf("-----------------------------------------------------------------------------------------------------\n");
	char buf[103];
	memset(buf, ' ', sizeof(buf));
	buf[0] = '[';
	buf[101] = ']';
	buf[102] = '\0';
	int i = 1;
	char index[6] = "-\\|/\0";
	while (i <= 100) {
		buf[i] = '>';
		printf("%s[%d%%][%c]\r", buf, i, index[i % 4]);
		fflush(stdout);
		Sleep(100);
		i++;
	}
	color(4);
	printf("\t\t\t\t            加载完成             \n");
	printf("-----------------------------------------------------------------------------------------------------\n");
	color(16);
	system("pause");
	return;
}
   
void dengji()                       /*顾客登记部分*/
{   
  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 chaxunxinxi()                   /*顾客信息部分*/
{   
int t;
  if(count<=5)   
  {   
  printf("按身份证查找请按1,按姓名查找请按2\n");
  scanf ("%d",&t);
if(t==1)
   {
    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);   
      }   
    } 
  }
if(t==2)
	 {
	printf("请输入姓名:");   
    scanf("%s",&name);   
    for(i=0;i<count;i++)   
    {   
      if(strcmp(cus[i].m_name,name)==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 chaxunkongfangjian()                      /*查询空房间函数部分*/
{   
  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 tuidingfangjian()                     /*顾客退订函数部分*/
{   
  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 baocuntuichu()                   /*保存退出函数部分*/
{   
  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);   
     
}   
void feiyong()                           /*费用查询部分*/
{
	printf("一楼价格100元每晚    \n");
	printf("二楼价格200元每晚    \n");
	printf("三楼价格300元每晚    \n");
	printf("四楼价格400元每晚    \n");
	printf("很遗憾,我们目前只开放一楼房间\n\n\n");
} 
main()                                   /*主函数*/
{  
 PROGRESS();
system("color f4");
  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("║                1.顾客登记                ║\n");   
    printf("║                2.查询顾客信息            ║\n");   
    printf("║                3.查询空房间              ║\n");      
    printf("║                4.退订房间                ║\n");   
    printf("║                5.保存并退出系统          ║\n"); 
	printf("║                6.费用查询                ║\n");   
    printf("║                                          ║\n");     
    printf("请输入选择项(1-6):");   
    scanf("%d",&n);   
    printf("\n\n\n\n");   
    if(n>0&&n<=6)   
    {   
      switch(n)   
      {   
      case 1:dengji();break;                 /*顾客信息登记*/
      case 2:chaxunxinxi();break;               /*查询顾客信息*/   
      case 3:chaxunkongfangjian();break;                   /*查询空房间*/     
      case 4:tuidingfangjian();break;                 /*退订房间*/   
      case 5:baocuntuichu();                      /*保存退出*/   
      case 6:feiyong();break;                 /*费用查询*/
      }   
    }   
    else    
    {   
      printf("╔═════════════════════╗\n");   
      printf("║                                          ║\n");   
      printf("║                输入错误!                 ║\n");   
      printf("║                 请退出!                  ║\n");   
      printf("║                                          ║\n");   
      printf("╚═════════════════════╝\n");   
      break;   
    }   
    }
    }

PS:用编辑器用的少,现在才发现发代码可以使用代码块,规范多了

  • 3
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莫邪博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值