实习报告酒店管理文档格式.docx
- 文档编号:7239778
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:19
- 大小:103.38KB
实习报告酒店管理文档格式.docx
《实习报告酒店管理文档格式.docx》由会员分享,可在线阅读,更多相关《实习报告酒店管理文档格式.docx(19页珍藏版)》请在冰点文库上搜索。
考虑到旅馆的房间数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)。
三、[程序流程图]
B
C
X=0?
Y=0?
把相应的房间状态改为占有。
把相应的房间状态改为空闲。
Continue?
结束
D
Y(订房失败)
Y(退房失败)
N(订房成功)
Y
N
四、[源程序代码]
#include<
iostream.h>
conio.h>
iomanip.h>
voidmain()
{
charch;
constintN=6;
intROOM[N],RANK[N],NBED[N],STATDS[N];
intRATE[3];
for(i=0;
i<
N;
i++)//该循环对ROOM[N]进行初始化。
Cout<
<
”initalizetheROOM[N]”;
Cin>
>
ROOM[i];
}
i++)//该循环对RANK[N]进行初始化
”initalizetheRANK[N]”;
RANK[i];
i++)//该循环对NBED[N]进行初始化
”initalizetheNBED[N]”;
NBED[i];
i++)//该循环对STATDS[N]进行初始化
”initalizetheSTATDS[N]”;
STATDS[i];
i++)//该循环对RATE[3]进行初始化
”initalizetheRATE[3]”;
RATE[i];
do
{
intRM[N]={0};
intI,J,M,R,S,T,K,A;
floatDAYRENT[N]={0.0};
clrscr();
cout<
"
\n\t\t---welcometohotel---\n"
;
\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并排错。
\n\t\tinputtherank:
R;
}while(R<
0||R>
3);
for(I=0,J=0;
I<
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&
=M&
RANK[I]==R)
{
RM[J]=ROOM[I];
DAYRENT[J]=(RATE[S-1]*NBED[I]/(M*1.0));
//计算住宿费。
J++;
}
if(STATDS[I]!
=0||NBED[I]<
M||RANK[I]!
=R){continue;
}//不符合的房间信息跳过。
}
\n\t\tthereare"
J<
roomforyourchoice!
\n\n\t\t"
\n\t\t"
number"
ROOM"
DAYRNT"
for(I=0;
J;
I++)//该循环输出符合条件的J间房间。
cout<
setw(6)<
I+1;
cout<
setw(8)<
RM[I];
cout<
DAYRENT[I];
//设计输出格式。
do
\n\n\t\tplaesechoosenumberoftheroom(K):
cin>
K;
//输入所需订房的房间序号K。
}while(K<
0||K>
J);
I++)//扫描找出相应序号的房间信息
if(RM[K-1]==ROOM[I])
STATDS[I]=1;
//把已订的房间状态改为“占有”。
\n\n\t\tyouhadsuccesstobooktheROOM:
"
ROOM[I];
\n\n\t\tthedayrentofeachpeople:
”<
DAYRENT[K-1];
if(RM[K-1]!
=ROOM[I])
{continue;
else
\n\t\ttheROOMwhichcanyoucheakout:
\n\t\tnumber"
for(J=0,I=0;
I++)//该循环扫描出状态为“占有”的房间。
if(STATDS[I]==1)
J+1;
RM[J];
J++;
}
if(STATDS[I]!
=1)
\n\n\t\tplaeseinputnumberoftheroom(K):
//输入输入所需退房的房间序号K。
}while(K<
for(I=0;
I++)//扫描找出相应序号的房间信息。
if(RM[K-1]==ROOM[I])
STATDS[I]=0;
\n\n\t\tyouhadsuccesstocheakouttheROOM:
if(RM[K-1]!
=ROOM[I])
\n\n\t\tcontinue(yes--anykey/no--N)?
ch=getche();
if(ch=='
N'
)ch='
n'
}while(ch!
='
);
五、[调试方案]
订房需要成功地把房间状态更改,当再次查房时,不会再显示该房间信息,同样地,退房业务也如此。
订房时,根据客人提供的信息(即人数M与等级R)正确筛选出房间信息。
退房时,又正确地筛选出“占有状态”的房间。
根据以上条件,我们设计出方案:
初始化数据为:
Number
STATUS
7
401
8
402
9
501
10
502
DAYRENT
80
100
120
1)现在我们要测试一下订房是否能根据我们提供的数据正确地输出房间信息。
(不需要订房)
①检查语句if(R==0&
输入人数M=3,等级R=0,结果:
200
166.66666666
Thereare4ROOMforyouchoice.
Inputthenumberoftheroomwhichdidyouwanttobook?
(‘0’tostop)0
②检查语句if(R!
输入人数M=4,等级R=2,结果:
Thereare2ROOMforyouchoice.
③检查语句if(STATDS[I]!
=R)
输入人数M=4,等级R=1,结果:
Thereare0ROOMforyouchoice.
2)定房;
人数M=2,等级R=2;
按照题意,程序应该具有筛选出符合条件的房间信息的功能。
正确的结果为:
NUMBER
150
300
250
Thereare3ROOMforyouchoice.
(‘0’tostop)1
然后根据客人提供所需订房的房间号码,找出相应的序号输入(不订房可输入‘0’):
输入’1’;
把201房订了。
3)查房;
我们测试一下订房是否成功,同样输入人数M=2,等级R=2;
依题意,正确结果为:
DARLYRENT
Thereare2ROOMforyouchoice.
这次我们只是查房,不需要订房,可输入‘0’作结束。
4)再次查房;
由于前面一步没有订房,所以再次确认查房结果是否保持不变。
5)退房;
退房功能会直接把状态为占有的房间罗列出来,(注意由于前面把201房顶了,退房显示的房间信息要包含有201)正确结果为:
Thereare5ROOMforyouchoice.
Inputthenumberwhichdidyouwanttocheakout(‘0’tostop)2
然后根据客人提供所需退房的房间号码,找出相应的序号输入(不退房可输入‘0’):
输入’2’;
把201房退了。
6)查房;
首先检测退房是否成功,同样进入退房业务;
依题意;
正确结果:
Inputthenumberwhichdidyouwanttocheakout(‘0’tostop)0
这次我们只是查房,不需要退房,可输入‘0’作结束。
然后,进入订房业务,看退掉的房间是否在订房业务中显示;
(‘0’tospot)0
这次我们只是查房,不需要订房房,可输入‘0’作结束。
7)再次查房;
五、[主要的体会与教训]
1)该题主要是关于“一位数组”和“基本控制结构”的练习,编写完后,对一位数组、复合语句的的应用使有了更深刻的了解。
2)在设计程序中筛选房间信息的循环结构时,对于条件语句的使用一开始很困难,但经过了反复的调试,掌握了复合语句与continue语句的使用。
3)计算住宿费时,一开始无法想到储存方法,后来学会了巧妙把“计算住宿费的语句”写进“扫描房间信息的循环结构中。
4)在对程序的输出格式方面我也下了很大功夫,有所提高。
5)再设计调试方案时,原来只按自己的习惯,忽略了对住宿费的核对,这明显不足。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实习 报告 酒店 管理