⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wa.cpp

📁 旅馆管理系统
💻 CPP
字号:
#include<stdio.h>
#define N 10//房间等级


struct Room
{
int roomlevel;
int roomnumber;
int peoplein;
int bed[N];
int sex;
struct Room *next;
};



struct Room *creat()//建立房间的链表
{
  struct Room *head,*p,*q;
  int i=1,j,m=0,h;

  while (i<=N)
  {
   for(j=1;j<=i;j++)
   {
           if((i!=1)||(j!=1)) q=p;
           p=new(struct Room); 
     if((i==1)&&(j==1)) head=p;
     p->roomlevel=i;
     p->roomnumber=m+1;
     p->peoplein=0;
     p->sex=-1;//表示一个人也没有
     for(h=0;h<i;h++) p->bed[h]=0;//0表示该床未住人,1表示住人
    
     if((i!=1)||(j!=1)) q->next=p;
   }
   i++;m++;
  }
  p->next=NULL;
  return(head);
}



void chushihua(struct Room *head)
{
  struct Room *p;
  int i;
  p=head;
  while (p!=NULL)
  {
   p->peoplein=0;
   p->sex=-1;
   for(i=0;i<N;i++) p->bed[i]=0;
   p=p->next;
  }
  printf("操作成功!");
}



void dingfang(struct Room *head)
{
  struct Room *p;
  int i,number=0,bednumber=0,s,level,year,month,day;
  printf("性别(1为男,2为女):");
  scanf("%d",&s);
  while(s!=1&&s!=2)
  {
   printf("输入信息错误,请重新输入:");
   printf("性别(1为男,2为女):");
   scanf("%d",&s);
  }
  printf("房间等级:");
  scanf("%d",&level);
  printf("输入订房时间(例如:**年**月**日):");
  scanf("%d%d%d",&year,&month,&day);
  p=head;
  while (p!=NULL)
  {
    if ((p->roomlevel==level)&&((p->sex==s)||(p->sex==-1)))
{
      for(i=0;i<level;i++)
    if (p->bed[i]==0) 
    {
     number=p->roomnumber;
     bednumber=i+1;
     p->bed[i]=1;
     break;
    }
    if (number!=0) break;
    }
p=p->next;
  }
  printf("房间号:%d   床号:%d\n",number,bednumber);
  printf("订房时间为:%d年%d月%d日\n",year,month,day);
}



void tuifang(struct Room *head)
{
struct Room *p;
int number,bednumber,i,year1,month1,day1,year,month,day,time,money;
printf("请输入房间号:");scanf("%d",&number);
printf("请输入床号:");scanf("%d",&bednumber);
printf("输入退房时间(例如:**年**月**日):");
scanf("%d%d%d",&year1,&month1,&day1);
p=head;
while (p!=NULL)
{
  if (p->roomnumber==number) 
   for (i=0;i<p->roomlevel;i++) if (i+1==bednumber) {p->bed[i]=0;break;}
        p=p->next;
}
    printf("输入订房时间(例如:**年**月**日):");
    scanf("%d%d%d",&year,&month,&day);
    printf("操作成功!\n");
	year=year1-year;month=month1-month;day=day1-day;
    printf("住房时间为:%d年%d月%d日\n",year,month,day);
	time=365*year+30*month+day;
	money=time
    printf("结算费用为:%d",&money)
}



void print(struct Room *head)
{
struct Room *p;
int i;
p=head;
while (p!=NULL)
{
  printf("房间号:%4d,房间等级:%3d,已住人数:%3d,住人性别:%d",p->roomnumber,
   p->roomlevel,p->peoplein,p->sex);
  for(i=0;i<p->roomlevel;i++) if (p->bed[i]==1) 
   printf("已住人的床号:%3d",i+1);
  printf("\n");
  p=p->next;
}
}

void main()
{ int funcflag;
  struct Room *head;
  head=creat(); 
do{
  printf("0:对房间初始化\n");
  printf("1:订房\n");
  printf("2:退房\n");
  printf("3:显示房间分配情况\n");
  printf("4:退出系统\n");
  printf("请选择:");
  
  scanf("%d",&funcflag);
lp:if (funcflag!=4) switch(funcflag)
  {
  case 0:printf("初始化将注销所有的信息,确定初始化请再次输入0:");
      scanf("%d",&funcflag);
   if (funcflag!=0) goto lp;
   chushihua(head);break;
  case 1:dingfang(head);break;
  case 2:tuifang(head);break;
  case 3:print(head);break;
  default :printf("输入错误!从重新输入\n");break;
  }
   else break;
  }while(1);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -