酒店管理系统课程设计doc 37页.docx

上传人:b****1 文档编号:3551858 上传时间:2023-05-06 格式:DOCX 页数:45 大小:462.06KB
下载 相关 举报
酒店管理系统课程设计doc 37页.docx_第1页
第1页 / 共45页
酒店管理系统课程设计doc 37页.docx_第2页
第2页 / 共45页
酒店管理系统课程设计doc 37页.docx_第3页
第3页 / 共45页
酒店管理系统课程设计doc 37页.docx_第4页
第4页 / 共45页
酒店管理系统课程设计doc 37页.docx_第5页
第5页 / 共45页
酒店管理系统课程设计doc 37页.docx_第6页
第6页 / 共45页
酒店管理系统课程设计doc 37页.docx_第7页
第7页 / 共45页
酒店管理系统课程设计doc 37页.docx_第8页
第8页 / 共45页
酒店管理系统课程设计doc 37页.docx_第9页
第9页 / 共45页
酒店管理系统课程设计doc 37页.docx_第10页
第10页 / 共45页
酒店管理系统课程设计doc 37页.docx_第11页
第11页 / 共45页
酒店管理系统课程设计doc 37页.docx_第12页
第12页 / 共45页
酒店管理系统课程设计doc 37页.docx_第13页
第13页 / 共45页
酒店管理系统课程设计doc 37页.docx_第14页
第14页 / 共45页
酒店管理系统课程设计doc 37页.docx_第15页
第15页 / 共45页
酒店管理系统课程设计doc 37页.docx_第16页
第16页 / 共45页
酒店管理系统课程设计doc 37页.docx_第17页
第17页 / 共45页
酒店管理系统课程设计doc 37页.docx_第18页
第18页 / 共45页
酒店管理系统课程设计doc 37页.docx_第19页
第19页 / 共45页
酒店管理系统课程设计doc 37页.docx_第20页
第20页 / 共45页
亲,该文档总共45页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

酒店管理系统课程设计doc 37页.docx

《酒店管理系统课程设计doc 37页.docx》由会员分享,可在线阅读,更多相关《酒店管理系统课程设计doc 37页.docx(45页珍藏版)》请在冰点文库上搜索。

酒店管理系统课程设计doc 37页.docx

酒店管理系统课程设计doc37页

酒店管理系统课程设计(doc37页)

面向对象程序设计II

课程设计指导书

题目:

宾馆管理系统

学院:

计算机科学与工程学院

专业:

软件工程

班级:

133301

学号:

201335032013349020133482

姓名:

王帅刘俊甘雨

指导老师:

韩旭明

设计日期:

2015.6.24-2015.6.30

一、课程设计的目的

三、系统设计方案

3.1系统详细描述

3.1.1系统设计背景

随着人民生活水平的提高,旅游出行的人越来越多,宾馆的客流量不断增加,普通的手写登记太过复杂经常出现信息丢失,也不适合现在的节约型社会的发展,宾馆在正常运营中需要对客房资源、顾客信息、退房信息等进行管理,利用客房管理系统及时了解各个环节中信息的变更,有利于提高管理的效率。

本项目作为c++课程设计的训练项目提出,目的是为了提高同学们系统的开发,则提高大家的实践能力。

所以开发一个符合自身宾馆实际情况的工作平台是十分必要的。

3.1.2系统设计详细信息

系统使用对象设定为百康宾馆。

百康酒店是一家乡镇中小型宾馆,三层建筑,拥有各类房间共20间。

其中一层均为单人间,共9间,房号101-109;二层为均双人间,共6间,房号201-206;三层均为豪华套房,共5间,房号301-305。

各类房间均设有电视、橱柜、内网电话、风扇、暖气等基础设施,24小时热水供应,可淋浴。

一层前台处设有便捷商店,当时结算,不计入住宿账单。

可通过内网电话购买,免费送至房间。

A、收费标准:

有按天计费和按小时计费两种收费标准。

按天计费,标准为单人间170元/天,双人间280元/天,豪华套房500元/天。

按小时计费,标准为单人间20元/小时,双人间30元/小时,豪华套房50元/小时。

B、计时标准:

按天计费时,从0时至次日0时计一天,不满一天按一天计算;按小时计费时,不满一小时按一小时计费。

(特殊情形的优惠政策不在本设计考虑范围之内)

C、定金标准:

入住定金按(预计入住时间*其单日房费+500元)收取,退房时充作房费和房屋设施折损费(抵偿损坏的房内设施),多退少补。

预定定金(按预计订房时间*对应房间按天计算住宿价格*40%)收取,若到时不入住且不续订,则不再退还;若到时入住,充作入住定金,多退少补。

电话预定无需缴纳定金,但不确保届时有空房间。

注:

定金数额可在以上标准数额之上,退房结算时多退少补。

退房时,室内设施经确认无损坏情况,则不收取房屋设施折损费。

3.2功能模块划分

3.2.1功能模块描述

根据任务内容要求及宾馆相关情况等信息,百康宾馆住宿管理系统需要实现查询功能(包括客房总体使用情况查询、已入住客房查询、已预订客房查询、闲置房间信息查询等查询方式),订房登记,入住登记,退房结算等四大基本功能。

系统应实现对各类信息的灵活查找,客户信息的录入、保存与调用,自动结算并生成账单等操作。

为了简化前台人员操作并提高其工作效率,还应实现开始前初始化询问,订房或入住登记时自动显示当前闲置房间,入住前询问是否已预订,输入错误信息时进行提醒等人性化功能。

由以上分析,将系统主要分为以下四大功能模块,如图3.1所示:

1)客房查询:

包括查询客房总体使用情况、查询当前闲置房间信息、查询已入住房间信息、查询已预定房间信息等查询功能;

2)订房登记:

包括显示当前闲置房间信息、登记预定信息等功能;

3)入住登记:

包括显示当前房间总体使用情况、询问是否预定过房间、登记入住人信息等功能;

4)退房结算:

包括选择结算方式、输入结算时间、计算住宿费用等功能。

图3.1功能模块结构图

3.2.2输入项

以下输入项均为键盘输入:

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

3.2.3输出项

房间号,int

房间类型,charleixing[10]

价格(元/天),int

价格(元/小时),int

是否空闲,int

客人姓名,charname[20]

身份证,charID[20]

联系方式,charlianxifangshi[15]

押金(元),int

预定日期,long

入住时间,long

预计天数,int

截止日期,long

四、系统实现与测试

4.1主菜单模块实现

4.1.1主菜单流程图

图4.1主菜单流程图

4.1.2主菜单代码

voidMenu_Display()

{

system("cls");

cout<<"\t\t###########################################"<

cout<<"\t\t#@欢迎使用百康宾馆管理系统@#"<

cout<<"\t\t#请输入您所需要的功能:

#"<

cout<<"\t\t#1.客房查询2.订房登记#"<

cout<<"\t\t#3.入住登记4.退房#"<

cout<<"\t\t#5.退出#"<

cout<<"\t\t#感*谢*您*的*使*用#"<

cout<<"\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,"0");

strcpy(hotel[k].name,"0");

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;strcpy(hotel[k].leixing,"双人间");break;}

case3:

{hotel[k].jiage=50050;strcpy(hotel[k].leixing,"套房");break;}

}

if(k==8)

i[0]++,i[2]=0;

if(k==14)

i[0]++,i[2]=0;

i[2]++;

}

fstreamxieru("宾馆房间信息.txt",ios:

:

out);

xieru<<"房间号类型价格是否空闲姓名身份证号联系方式押金预定日期入住时间天数截止日期"<

for(intx=0;x<20;x++)

{

xieru<

<<''<

<<''<

}

xieru.close();

}

voidmain()

{

intp=0;

cout<<"是否要初始化房间信息?

";

cout<<"(是请输入1,否请输入0)"<

cin>>p;

if(p==1)

chushihua();

intchose;

Menu_Display();

cout<<"请输入选项:

";

cin>>chose;

while(chose!

=0)

{

switch(chose)//用switch语句判断选择菜单的功能

{

case1:

search_message();break;//客房查询

case2:

dingfangdengji();break;//订房间

case3:

ruzhudengji();break;//入住房间

case4:

tuifang();break;//退房

case5:

exit(0);

default:

cout<<"输入错误,请重新输入"<

}

cout<<"\t\t###########################################"<

cout<<"\t\t#@欢迎使用百康宾馆管理系统@#"<

cout<<"\t\t#请输入您所需要的功能:

#"<

cout<<"\t\t#1.客房查询2.订房登记#"<

cout<<"\t\t#3.入住登记4.退房#"<

cout<<"\t\t#5.退出#"<

cout<<"\t\t#感*谢*您*的*使*用#"<

cout<<"\t\t###########################################"<

cout<<"请输入选项:

";

cin>>chose;

while(chose==0)

{

cout<<"输入错误,按任意键退出程序:

"<

exit(0);

}

}

}

 

4.1.3主菜单模块测试

主菜单界面中显示客房管理系统的功能选项模块如图4.2所示:

图4.2主菜单

4.2入住登记模块实现

4.2.1入住登记流程图

图4.3入住登记流程图

4.2.2入住登记代码

voidruzhudengji()

{

inta,b=0;

stringname;

ifstreamliulan("宾馆房间信息.txt",ios:

:

in);//定义输入文件流对象,以输入方式打开磁盘文件旅信

if(!

liulan)//判断文件是否打开成功

{

cerr<<"文件不能读."<

}

else

liulan.seekg(117,ios:

:

beg);//在输入文件开头以参照位置为基础移动若干字节(beg=begin)

inti=0;//存放空闲房间的号码

cout<<"房间号类型价格(元/天)价格(元/小时)空闲"<

while(i<20)

{

liulan>>hotel[i].num>>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;

cout<

<

i++,cout<

}

liulan.close();//关闭文件

cout<<"(注:

0表示空房间、1表示房间已入住、2表示房间已预订)"<

cout<<"是否预订过房间?

"<

cout<<"是,请输入1,否,请输入2"<

cin>>a;

if(a==1)

{

cout<<"请输入房间号:

"<

cin>>b;

for(i=0;i<20;i++)

if(hotel[i].num==b)

{

if(hotel[i].yudingriqi!

=0)

{

cout<<"请输入入住日期:

";

cin>>hotel[i].ruzhushijian;

cout<<"请输入截止日期:

";

cin>>hotel[i].jiezhiriqi;

hotel[i].yudingriqi=0;

}

else

{

cout<<"该房没有被预订过"<

system("pause");

}

}

}

else

{

cout<<"空房间有:

"<

for(intk=0;k<20;k++)

{

if(hotel[k].kongxian==0)

cout<

}

cout<

cout<<"请输入房间号:

";

cin>>b;

for(i=0;i<20;i++)

if(hotel[i].num==b)

{

cout<<"请依次输入以下信息并加以核对(日期格式:

年月日例如19920503)"<

cout<<"姓名:

";

cin>>hotel[i].name;

cout<<"身份证号:

";

cin>>hotel[i].ID;

cout<<"联系方式:

";

cin>>hotel[i].lianxifangshi;

cout<<"押金:

";

cin>>hotel[i].yajin;

cout<<"天数:

";

cin>>hotel[i].tianshu;

cout<<"入住日期:

";

cin>>hotel[i].ruzhushijian;

hotel[i].kongxian=2;

}

}

ofstreamxieru("宾馆房间信息.txt",ios:

:

out);//写回文件

xieru<<"房间号类型价格是否空闲姓名身份证号联系方式押金预定日期入住时间天数截止日期"<

for(i=0;i<20;i++)

xieru<

<<''<

<<''<

xieru.close();

cout<<"登记成功"<

}4.2.3入住登记模块测

入住登记界面显示了房间使用情况以及提示以前是否预订过房间如图4.4所示:

图4.4入住登记界面

 

如果客人预定过房间,则选择“1”,然后输入预订房间号如图4.5所示。

输入入住日期和截止日期则“登记成功”如图4.6所示。

图4.5选择订过房间入住登记界面

 

图4.6订过房间入住登记界面

 

未预订过房间则选择“2”则会显示出目前的空房间信息如图4.7所示,根据系统提示输入客人的信息则“登记成功”如图4.8所示。

图4.7选择未订过房间入住登记界面

图4.8选择未订过房间入住登记输入信息界面

4.3退房结算模块实现

4.3.1退房结算流程图

图4.9退房结算流程图

4.3.2退房结算代码

voidtuifang()

{

inta,b;

ifstreamfin("宾馆房间信息.txt",ios:

:

in);

cout<<"请输入房号:

";

cin>>a;

intc=0,i=0;

fin.seekg(117,ios:

:

beg);//在输入文件开头以参照位置为基础移动若干字节(beg=begin)

while(i<20)

{

fin>>hotel[i].num>>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;

if(hotel[i].num==a)//查询客人房间

b=i;

i++;

}

fin.close();

cout<<"房间信息为:

"<

cout<<"姓名:

押金(元):

入住时间:

"<

cout<

cout<<"(注:

日期输入格式年月日例如20120101)"<

cout<<"请输结算入日期:

";

intd;

cin>>d;

hotel[b].jiezhiriqi=d;

intfei;

cout<<"按小时/天数计费(小时输入1,天数输入2):

";

intt;

cin>>t;

if(t==2)

fei=hotel[b].yajin-((hotel[b].jiezhiriqi-hotel[b].ruzhushijian)*(hotel[b].jiage/100));//结算函数,押金—(结算时间-入住时间)*价格

else

fei=hotel[b].yajin-((hotel[b].jiezhiriqi-hotel[b].ruzhushijian)*(hotel[b].jiage%100));//按小时计算

if(fei<0)

{

fei=-fei;

cout<<"应付费用为:

"<

}

else

{

cout<<"总消费金额为:

"<

cout<<"押金足够应返还给您:

"<

}

fstreamjsxx("结算信息.txt",ios:

:

out);

jsxx<<"消费信息为:

"<

jsxx<<"姓名:

"<

"<

"<

"<

if(t==2)

jsxx<<"计费方式:

按天数计费"<

else

jsxx<<"计费方式:

按小时计费"<

jsxx<<"总消费金额为:

"<

jsxx<<"押金足够应返还给您:

"<

jsxx.close();

hotel[b].kongxian=0;//房间结算后初始化房间信息

strcpy(hotel[b].name,"0");

strcpy(hotel[b].ID,"0");

strcpy(hotel[b].lianxifangshi,"0");

hotel[b].yudingriqi=0;

hotel[b].ruzhushijian=0;

hotel[b].jiezhiriqi=0;

hotel[b].yajin=0;

hotel[b].tianshu=0;

hotel[b].jiezhiriqi=0;

fstreamxieru("宾馆房间信息.txt",ios:

:

out);//生成文件

xieru<<"房间号类型价格是否空闲姓名身份证号联系方式押金预定日期入住时间天数截止日期"<

for(i=0;i<20;i++)

{

xieru<

<<''<

<<''<

}

xieru.close();

system("pause");

}

4.3.3退房结算模块测试

选择退房功能输入房间号则会显示出客人的基本信息如图4.10所示;根据系统提示输入结算日期并选择结算方式则“结算结束”

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

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2