| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1560 人关注过本帖
标题:旅馆管理的程序,多多指教!
只看楼主 加入收藏
maoguoqing
Rank: 6Rank: 6
来 自:重庆
等 级:贵宾
威 望:28
帖 子:2980
专家分:19
注 册:2005-12-5
收藏
 问题点数:0 回复次数:3 
旅馆管理的程序,多多指教!

#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;
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<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);
}

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;i<p->roomlevel;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;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("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);
}

搜索更多相关主题的帖子: int 旅馆 Room struct 
2005-12-11 22:34
maoguoqing
Rank: 6Rank: 6
来 自:重庆
等 级:贵宾
威 望:28
帖 子:2980
专家分:19
注 册:2005-12-5
收藏
得分:0 

题目是这样的:

用C 语言 模拟旅馆管理系统的一个功能 ── 床位的分配与回收

1.问题描述

某旅馆有n个等级的房间,第i等级有ai个房间,每个房间有bi个床位(1≤i≤n),试模拟旅馆管理系统中床位分配和回收的功能,设计能为单身旅客分配床位,在其离店时回收床位的算法。

2.设计思想

1) 主菜单的设计
可用switch()语句设计一个简单的功能菜单,包括“0--床位的初始化”、“1--订房”“2--退房”、“3--显示房间分配情况”、“4--退出系统”等菜单项,根据键入的数字,调用不同的模块处理函数。

2) 数据结构的设计 为了表示复杂的数据结构,我们一般采用结构这种数据类型,为了便于进行分配和回收床位,我们采用单向链表来进行操作。所以第一步要考虑链表中的结点应包含哪些数据项,例如:房间等级、房间号、床位号、已住人数,已入住旅客的性别、指向下一个结点的指针等。也可考虑建立床位信息和旅客信息两个单向链表,具体的结点及相应的数据项,请各位同学根据自己的算法进行考虑设计。

3) 床位的初始化
建立一个单向链表,为每个结点赋初值,例如:该床位隶属的等级,房间号、床位号,入住人数清0,因为尚未入住的人,所以为性别赋一特殊值等。

4) 床位的分配
分配床位时,输入床位的条件及旅客的性别,顺序查找链表相关项判断是否有符合条件的空床位,有则分配;无则可以要求旅客更改对床位等级数的要求,再进行查找;最终未找到则提示无法按要求分配床位。

5) 床位的回收
输入需回收的床位的相关信息,找到之后修改相关数据项的值或删除相应的结点,根据各人的具体设计来考虑。

6) 显示房间的分配情况
既可以列出所有等级房间床位的根本情况,也可以根据输入的等级列出相应等级的床位分配情况。

7) 退出系统
结束程序的运行。


天行健,君子以自强不息!!QQ:68660681
2005-12-11 22:34
blueeyes
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-6-26
收藏
得分:0 

2006-06-26 16:54
小草爱上兔
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2012-12-13
收藏
得分:0 
   我在用VC执行的时候出现了
--------------------Configuration: vb - Win32 Debug--------------------
Compiling...
vb.c
F:\vb.c(24) : warning C4013: 'new' undefined; assuming extern returning int
F:\vb.c(24) : error C2143: syntax error : missing ')' before 'type'
F:\vb.c(24) : warning C4047: '=' : 'struct Room *' differs in levels of indirection from 'int '
F:\vb.c(24) : error C2059: syntax error : ')'
执行 cl.exe 时出错.

vb.obj - 1 error(s), 0 warning(s)

有你的冬天不会冷。。。。。。。。
2012-12-13 22:30
快速回复:旅馆管理的程序,多多指教!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.042152 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved