实习报告酒店管理.docx

上传人:b****4 文档编号:3143016 上传时间:2022-11-18 格式:DOCX 页数:14 大小:120.35KB
下载 相关 举报
实习报告酒店管理.docx_第1页
第1页 / 共14页
实习报告酒店管理.docx_第2页
第2页 / 共14页
实习报告酒店管理.docx_第3页
第3页 / 共14页
实习报告酒店管理.docx_第4页
第4页 / 共14页
实习报告酒店管理.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

实习报告酒店管理.docx

《实习报告酒店管理.docx》由会员分享,可在线阅读,更多相关《实习报告酒店管理.docx(14页珍藏版)》请在冰豆网上搜索。

实习报告酒店管理.docx

实习报告酒店管理

《程序设计》实习报告

一、[实习题目]

设某旅馆有N间房,每间客房的房间号码、房间等级、床位数、以及占用状态分别存放在一维数组ROOM、RANK、NBNK、NBED、STATUS中。

房间的等级值为1、2或3,房间的状态值为0(空闲)或1(占有),客房是以房间(不是以床位)为单位出租的。

编写一个程序,它可能根据几个散客的要求预定一间空房。

设程序的输入为:

人数M、房间的等级要求R(当R为0时表示任何等级都可以),程序的输出为所有可供选择的房间号。

程序的基本处理过程如流程图所示。

可根据几个不同方案来编写出程序。

方案1:

设当前该旅馆各个房间的情况如图6-1所示:

序号

ROOM

RANK

NBED

STATDS

1

101

3

4

0

2

102

3

4

1

3

201

2

3

0

4

202

2

4

1

5

301

1

6

0

6

302

1

2

0

图6-1方案一中各客房状态

程序在输入人数M和房间要求R后,输入可供选择的房间号码。

方案2:

已知有方案1那样的条件,并且已知等级为r的房间每人每天的住宿费为RATE(r);RATE是一个一维数组。

程序在输出每个候选的房间号码RM(j)之后,还要要求输出这批散客每人所付的住宿费DAYRENT(j)。

考虑到旅馆的房间数N可能较大,为此,不必每次预定时都把满足的房间号RM(j)都输出。

设程序要求输入人数M、房间等级要求R、以及希望输出可供选择的房间号码数K(1<=K<=N),程序执行后能输出所要求的结果。

方案3:

程序的已知条件与要求基本同方案1和方案2。

为了是程序能具有较大的适应性,设旅馆的房间数N是一个可供修改的符号常量,而旅馆订房系统的房间初始信息可以由程序员根据旅馆现状初始化(即ROOM、RANK、NBED、STATDS、RATE数组状态可由程序员进行初始化),然后在初始化的基础进行订房工作。

初始化后的工作要求同方案2.

方案4:

在方案3的基础上,增加客户订房的功能(键入可供选择的房号)。

方案5:

在方案3和方案4的基础上,加上退房功能;

方案6:

鼓励同学加入更符合实际应用所需要的功能。

*备注:

该实习报告采用方案5。

二、[解题的基本算法]

(1)该程序必须具有三个功能;查房,订房与退房。

为了方便我们可以把订房功能与退房功能划分开来。

并把查房功能嵌入订房功能与退房功能里面。

首先,在程序开头设置判断,如果输入‘1’就进入订房功能;如果输入‘0’就进入退房功能。

订房功能会根据客人提供的人数M与等级R筛选出适合的房间信息,并以带序号形式罗列出来供客人选择。

客人订房时只需输入相应的序号即可,而不必输入繁杂的房间号码,如果客人只是想查房,而不需要订房时可输入‘0’结束,那样将可以达到查房功能。

而退房功能则会把所有属于“占有状态”的房间信息,并以序号形式罗列出来。

同样客人要退房时输入序号,不需要退房时输入可‘0’结束。

(2)首先设置初始化语句,对一维数组ROOM、RANK、NBNK、NBED、STATUS、RATE、DAYRENT进行初始化。

(3)根据客人提供的人数M与等级R进行筛选的功能,第一;当等级为0时,只需把满足床位NBED(j)>=M的房间信息筛选出来即可。

第二;当等级不为0时,必须要同时满足等级RANK(j)=R与床位NBED(j)>=M的房间才被筛选出来。

如果没有找到匹配的房间,则输出“没有找到符合条件的房间”。

客人订了房的话,就把房信息中的状态值STATUS(j)改为‘1’。

(4)在筛选房间的同时,我们可以插入计算住宿费的程序,并把它储存在DAYRENT的一位数组中。

住宿费的计算:

第一;查询该房间信息中的等级RANK(j)。

第二;根据等级查询出相应等级的费用RATE(j)。

第三;由于住宿费为每床位每天的费用,所以查询该房间的床位数NBED(j),第四;一间房间总的费用即为RATE(j)×NBED(j)。

第五,要求是每人所需付的费用,所以DAYRENT(j)=RATE(j)×NBED(j)÷M。

(5)退房功能;首先把状态值STATUS(j)为‘1’的房间序号形式罗列出来,然后把客人需要退房的相应房间的状态值STATUS(j)改为‘0’。

(6)输出格式;为了更客观的显示数据,我们有必要把房间信息以表格的形式输出来,可以利用制表的转义字符”\t”与限定输出数据字段宽度的输出操纵符setw(intwidth)。

三、[程序流程图]

四、[源程序代码]

#include

#include

#include

voidmain()

{

charch;

constintN=6;

intROOM[N],RANK[N],NBED[N],STATDS[N];

intRATE[3];

for(i=0;i

{

Cout<<”initalizetheROOM[N]”;

Cin>>ROOM[i];

}

for(i=0;i

{

Cout<<”initalizetheRANK[N]”;

Cin>>RANK[i];

}

for(i=0;i

{

Cout<<”initalizetheNBED[N]”;

Cin>>NBED[i];

}

for(i=0;i

{

Cout<<”initalizetheSTATDS[N]”;

Cin>>STATDS[i];

}

for(i=0;i

{

Cout<<”initalizetheRATE[3]”;

Cin>>RATE[i];

}

do

{

intRM[N]={0};

intI,J,M,R,S,T,K,A;

floatDAYRENT[N]={0.0};

clrscr();

do

{

cout<<"\n\t\t---welcometohotel---\n";

cout<<"\n\t\t(cheakout--'0'/book--'1')";

cin>>A;

}while(A<0||A>1);

if(A==1)

{

do//要求客人提供人数M并排错。

{

cout<<"\n\t\tinputthenumberofthepeople:

";

cin>>M;

}while(M<=0||M>6);

do//要求客人提供等级R并排错。

{

cout<<"\n\t\tinputtherank:

";

cin>>R;

}while(R<0||R>3);

for(I=0,J=0;I

{

if(R==0&&STATDS[I]==0&&NBED[I]>=M)

{

RM[J]=ROOM[I];

S=RANK[I];DAYRENT[J]=(RATE[S-1]*NBED[I]/(M*1.0));

//计算住宿费。

J++;

}

if(R!

=0&&STATDS[I]==0&&NBED[I]>=M&&RANK[I]==R)

{

RM[J]=ROOM[I];

S=RANK[I];DAYRENT[J]=(RATE[S-1]*NBED[I]/(M*1.0));

//计算住宿费。

J++;

}

if(STATDS[I]!

=0||NBED[I]

=R){continue;}//不符合的房间信息跳过。

}

cout<<"\n\t\tthereare"<

\n\n\t\t";

cout<<"\n\t\t"<<"number"<<"ROOM"<<"DAYRNT";

for(I=0;I

{

cout<<"\n\n\t\t"<

cout<

cout<

}

do

{

cout<<"\n\n\t\tplaesechoosenumberoftheroom(K):

";

cin>>K;//输入所需订房的房间序号K。

}while(K<0||K>J);

for(I=0;I

{

if(RM[K-1]==ROOM[I])

{

STATDS[I]=1;//把已订的房间状态改为“占有”。

cout<<"\n\n\t\tyouhadsuccesstobooktheROOM:

"<

cout<<"\n\n\t\tthedayrentofeachpeople:

”<

}

if(RM[K-1]!

=ROOM[I])

{continue;}

}

}

else

{

cout<<"\n\t\ttheROOMwhichcanyoucheakout:

";

cout<<"\n\t\tnumber"<<"ROOM";

for(J=0,I=0;I

{

if(STATDS[I]==1)

{

RM[J]=ROOM[I];

cout<<"\n\n\t\t"<

cout<

J++;

}

if(STATDS[I]!

=1)

{continue;}

}

do

{

cout<<"\n\n\t\tplaeseinputnumberoftheroom(K):

";

cin>>K;//输入输入所需退房的房间序号K。

}while(K<0||K>J);

for(I=0;I

{

if(RM[K-1]==ROOM[I])

{

STATDS[I]=0;

cout<<"\n\n\t\tyouhadsuccesstocheakouttheROOM:

"<

}

if(RM[K-1]!

=ROOM[I])

{continue;}

}

}

cout<<"\n\n\t\tcontinue(yes--anykey/no--N)?

";

ch=getche();

if(ch=='N')ch='n';

}while(ch!

='n');

}

五、[调试方案]

订房需要成功地把房间状态更改,当再次查房时,不会再显示该房间信息,同样地,退房业务也如此。

订房时,根据客人提供的信息(即人数M与等级R)正确筛选出房间信息。

退房时,又正确地筛选出“占有状态”的房间。

根据以上条件,我们设计出方案:

初始化数据为:

Number

ROOM

RANK

NBED

STATUS

1

101

1

4

1

2

102

1

2

0

3

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1