旅馆信息管理程序 c语言,旅馆管理的程序,多多指教!

旅馆管理的程序,多多指教!

#include

#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;hbed[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;ibed[i]=0;

p=p->next;

}

printf("操作成功!");

}

void dingfang(struct Room *head)

{

struct Room *p;

int i,number=0,bednumber=0,s,level;

printf("性别(1为男,0为女):");

scanf("%d",&s);

printf("房间等级:");

scanf("%d",&level);

p=head;

while (p!=NULL)

{

if ((p->roomlevel==level)&&((p->sex==s)||(p->sex==-1)))

{

for(i=0;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);

}

void tuifang(struct Room *head)

{

struct Room *p;

int number,bednumber,i;

printf("请输入房间号:");scanf("%d",&number);

printf("请输入床号:");scanf("%d",&bednumber);

p=head;

while (p!=NULL)

{

if (p->roomnumber==number)

for (i=0;iroomlevel;i++) if (i+1==bednumber) {p->bed[i]=0;break;}

p=p->next;

}

printf("操作成功!\n");

}

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;iroomlevel;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("funcflag 0:对房间初始化\n");

printf("funcflag 1:订房\n");

printf("funcflag 2:退房\n");

printf("funcflag 3:显示房间分配情况\n");

printf("funcflag 4:退出系统\n");

printf("Please input the funcflag:");

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("输入错误!从新输入:");break;

}

else break;

}while(1);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值