c酒店管理系统课程设计文档格式.docx
《c酒店管理系统课程设计文档格式.docx》由会员分享,可在线阅读,更多相关《c酒店管理系统课程设计文档格式.docx(24页珍藏版)》请在冰豆网上搜索。
所以开发一个符合自身宾馆实际情况的工作平台是十分必要的。
系统使用对象设定为百康宾馆。
百康酒店是一家乡镇中小型宾馆,三层建筑,拥有各类房间共20间。
其中一层均为单人间,共9间,房号101-109;
二层为均双人间,共6间,房号201-206;
三层均为豪华套房,共5间,房号301-305。
各类房间均设有电视、橱柜、内网电话、风扇、暖气等基础设施,24小时热水供应,可淋浴。
一层前台处设有便捷商店,当时结算,不计入住宿账单。
可通过内网电话购买,免费送至房间。
A、收费标准:
有按天计费和按小时计费两种收费标准。
按天计费,标准为单人间170元/天,双人间280元/天,豪华套房500元/天。
按小时计费,标准为单人间20元/小时,双人间30元/小时,豪华套房50元/小时。
B、计时标准:
按天计费时,从0时至次日0时计一天,不满一天按一天计算;
按小时计费时,不满一小时按一小时计费。
(特殊情形的优惠政策不在本设计考虑范围之内)
C、定金标准:
入住定金按(预计入住时间*其单日房费+500元)收取,退房时充作房费和房屋设施折损费(抵偿损坏的房内设施),多退少补。
预定定金(按预计订房时间*对应房间按天计算住宿价格*40%)收取,若到时不入住且不续订,则不再退还;
若到时入住,充作入住定金,多退少补。
电话预定无需缴纳定金,但不确保届时有空房间。
注:
定金数额可在以上标准数额之上,退房结算时多退少补。
退房时,室内设施经确认无损坏情况,则不收取房屋设施折损费。
功能模块划分
根据任务内容要求及宾馆相关情况等信息,百康宾馆住宿管理系统需要实现查询功能(包括客房总体使用情况查询、已入住客房查询、已预订客房查询、闲置房间信息查询等查询方式),订房登记,入住登记,退房结算等四大基本功能。
系统应实现对各类信息的灵活查找,客户信息的录入、保存与调用,自动结算并生成账单等操作。
为了简化前台人员操作并提高其工作效率,还应实现开始前初始化询问,订房或入住登记时自动显示当前闲置房间,入住前询问是否已预订,输入错误信息时进行提醒等人性化功能。
由以上分析,将系统主要分为以下四大功能模块,如图所示:
1)客房查询:
包括查询客房总体使用情况、查询当前闲置房间信息、查询已入住房间信息、查询已预定房间信息等查询功能;
2)订房登记:
包括显示当前闲置房间信息、登记预定信息等功能;
3)入住登记:
包括显示当前房间总体使用情况、询问是否预定过房间、登记入住人信息等功能;
4)退房结算:
包括选择结算方式、输入结算时间、计算住宿费用等功能。
图功能模块结构图
以下输入项均为键盘输入:
num——房间号,int
kongxian——房间是否空闲,int
name[20]——名字定义,charname[20]
ID[20]——身份证号(18位阿拉伯数字),charID[20]
lianxifangshi[15]——联系方式(11位阿拉伯数字),charlianxifangshi[15]
yajin——押金,int
yudingriqi——预定日期(日期均为8位阿拉伯数字,格式为年月日),long
ruzhushijian——入住日期,long
tianshu——预计天数,int
jiezhiriqi——截止日期,long
p——是否初始化(0或1),int
chose——选择主菜单(1,2,3,4或5),int
t——计费方式(1或2),int
i——子菜单选择(1,2,3,4或5)(不同模块可能定义不同),int
a——是否预定过房间(在ruzhudengji()定义的),int
房间号,int
房间类型,charleixing[10]
价格(元/天),int
价格(元/小时),int
是否空闲,int
客人姓名,charname[20]
身份证,charID[20]
联系方式,charlianxifangshi[15]
押金(元),int
预定日期,long
入住时间,long
预计天数,int
截止日期,long
四、系统实现与测试
主菜单模块实现
图主菜单流程图
voidMenu_Display()
{
system("
cls"
);
cout<
<
"
\t\t###########################################"
endl;
\t\t#@欢迎使用百康宾馆管理系统@#"
\t\t#请输入您所需要的功能:
#"
\t\t#1.客房查询2.订房登记#"
\t\t#3.入住登记4.退房#"
\t\t#5.退出#"
\t\t#感*谢*您*的*使*用#"
}
voidchushihua()
inti[3]={1,0,1},k=0;
for(;
k<
20;
k++)
{
hotel[k].num=i[0]*100+i[1]*10+i[2];
strcpy(hotel[k].ID,"
0"
hotel[k].jiezhiriqi=0;
hotel[k].kongxian=0;
strcpy(hotel[k].lianxifangshi,"
strcpy(hotel[k].name,"
hotel[k].ruzhushijian=0;
hotel[k].tianshu=0;
hotel[k].yudingriqi=0;
switch(i[0])
{
case1:
{hotel[k].jiage=17020;
strcpy(hotel[k].leixing,"
单人间"
break;
case2:
{hotel[k].jiage=28030;
双人间"
case3:
{hotel[k].jiage=50050;
套房"
}
if(k==8)
i[0]++,i[2]=0;
if(k==14)
i[2]++;
}
fstreamxieru("
宾馆房间信息.txt"
ios:
:
out);
xieru<
房间号类型价格是否空闲姓名身份证号联系方式押金预定日期入住时间天数截止日期"
for(intx=0;
x<
x++)
hotel[x].num<
'
'
hotel[x].leixing<
hotel[x].jiage<
hotel[x].kongxian<
hotel[x].name
<
hotel[x].ID<
hotel[x].lianxifangshi<
hotel[x].yajin<
hotel[x].yudingriqi<
hotel[x].ruzhushijian
hotel[x].tianshu<
hotel[x].jiezhiriqi<
();
voidmain()
intp=0;
是否要初始化房间信息"
;
(是请输入1,否请输入0)"
cin>
>
p;
if(p==1)
chushihua();
intchose;
Menu_Display();
请输入选项:
chose;
while(chose!
=0)
{
switch(chose)房查询2.订房登记#"
cout<
cin>
while(chose==0)
输入错误,按任意键退出程序:
exit(0);
主菜单界面中显示客房管理系统的功能选项模块如图所示:
图主菜单
入住登记模块实现
图入住登记流程图
voidruzhudengji()
{
inta,b=0;
stringname;
ifstreamliulan("
in);
<
return;
else
(117,ios:
beg);
um>
hotel[i].leixing>
hotel[i].jiage>
hotel[i].kongxian>
hotel[i].name
>
hotel[i].ID>
hotel[i].lianxifangshi>
hotel[i].yajin>
hotel[i].yudingriqi>
hotel[i].ruzhushijian
hotel[i].tianshu>
hotel[i].jiezhiriqi;
setw(4)<
hotel[i].num<
setw(8)<
hotel[i].leixing<
setw(9)<
hotel[i].jiage/100<
setw(14)<
hotel[i].jiage%100<
setw(13)
hotel[i].kongxian;
um==b)
{
if(hotel[i].yudingriqi!
{
cout<
请输入入住日期:
cin>
hotel[i].ruzhushijian;
请输入截止日期:
hotel[i].yudingriqi=0;
}
else
该房没有被预订过"
system("
pause"
}
空房间有:
for(intk=0;
if(hotel[k].kongxian==0)
cout<
hotel[k].num<
"
请输入房间号:
b;
for(i=0;
i<
i++)
if(hotel[i].num==b)
cout<
姓名:
cin>
hotel[i].name;
身份证号:
hotel[i].ID;
联系方式:
hotel[i].lianxifangshi;
押金:
hotel[i].yajin;
天数:
hotel[i].tianshu;
入住日期:
hotel[i].kongxian=2;
ofstreamxieru("
um<
hotel[i].jiage<
hotel[i].kongxian<
<
hotel[i].ID<
hotel[i].lianxifangshi<
hotel[i].yajin<
hotel[i].yudingriqi<
hotel[i].tianshu<
hotel[i].jiezhiriqi<
登记成功"
}模块测
入住登记界面显示了房间使用情况以及提示以前是否预订过房间如图所示:
图入住登记界面
如果客人预定过房间,则选择“1”,然后输入预订房间号如图所示。
输入入住日期和截止日期则“登记成功”如图所示。
图选择订过房间入住登记界面
图订过房间入住登记界面
未预订过房间则选择“2”则会显示出目前的空房间信息如图所示,根据系统提示输入客人的信息则“登记成功”如图所示。
图选择未订过房间入住登记界面
图选择未订过房间入住登记输入信息界面
退房结算模块实现
图退房结算流程图
voidtuifang()
inta,b;
ifstreamfin("
请输入房号:
a;
intc=0,i=0;
(117,ios:
if(hotel[i].num==a)ame<
hotel[b].yajin<
setw(20)<
hotel[b].ruzhushijian<
请输结算入日期:
intd;
d;
hotel[b].jiezhiriqi=d;
intfei;
按小时/天数计费(小时输入1,天数输入2):
intt;
t;
if(t==2)
fei=hotel[b].yajin-((hotel[b].jiezhiriqi-hotel[b].ruzhushijian)*(hotel[b].jiage/100));
ajin-((hotel[b].jiezhiriqi-hotel[b].ruzhushijian)*(hotel[b].jiage%100));
ajin-fei<
元"
押金足够应返还给您:
fei<
fstreamjsxx("
结算信息.txt"
jsxx<
消费信息为:
hotel[b].name<
endl<
押金(元):
入住时间:
结算时间:
d<
jsxx<
计费方式:
按天数计费"
按小时计费"
总消费金额为:
hotel[b].yajin-fei<
hotel[b].kongxian=0;
ame,"
strcpy(hotel[b].ID,"
strcpy(hotel[b].lianxifangshi,"
hotel[b].yudingriqi=0;
hotel[b].ruzhushijian=0;
hotel[b].jiezhiriqi=0;
hotel[b].yajin=0;
hotel[b].tianshu=0;
um<
选择退房功能输入房间号则会显示出客人的基本信息如图所示;
根据系统提示输入结算日期并选择结算方式则“结算结束”如图和图所示。
账单信息存入到磁盘文件当中去,如图所示。
图退房结算输入结算房间号后界面图
图退房结算输入日期界面
图退房结算完成界面
图退房结算信息文件
五、附录:
程序代码
#include<
iostream>
iomanip>
房查询2.订房登记#"