软件工程课程设计 酒店管理系统.docx
《软件工程课程设计 酒店管理系统.docx》由会员分享,可在线阅读,更多相关《软件工程课程设计 酒店管理系统.docx(34页珍藏版)》请在冰豆网上搜索。
软件工程课程设计酒店管理系统
1问题定义
酒店,是为客人提供住宿、餐饮、娱乐和其它服务的综合性服务企业,它所接待的客来自世界各地,而且这些客人的生活习惯、消费水平、宗教信仰等各不相同。
随着我国旅游业的飞速发展,以及社会生活水平的普遍提高,人们对于酒店消费不断地提出更高、更多样性的要求。
如何以酒店企业所拥有的有限的人力、物力、财力和信息资源服务于住店客人,满足客人的各种消费需求,在当今竞争日趋激烈的酒店行业中,是经营好酒店企业的重要问题。
近年来,我国的现代酒店业得到了蓬勃的发展,无论是行业规模,设施质量还是经营理念或者管理水平,都取得了长足的进步,已经进入了现代化水平阶段。
酒店经营管理人员不但要掌握科学的管理思想和管理方法来综合的运用酒店资源,还应该采用先进的计算机管理手段处理日益复杂的信息资源,正确、及时地对客源市场信息作出反应和正确的指定经营决策,这样才有可能保证酒店企业在如今激烈的竞争中求得生存和发展。
成功的应用先进的计算机管理手段辅助酒店企业的经营管理,不但要求酒店的日常操作模式要符合计算机信息处理的要求,而且需要有相应的管理体系和人员配合。
作为酒店的经营管理人员只有充分的掌握酒店的各职能岗位的信息流程和计算机处理的要求,并善于结合两者的要求和长处,才能使想进的计算信息处理技术有效的服务与酒店的经营管理。
随着我国经济发展的不断推进,国内人民生活水平的不断提高,旅游出行的人越来越多,商务活动也相当的活跃;再加上入境旅游的人也越来越多,入境从事商务活动的外宾也越来越多。
传统的手工已不适应现代酒店管理的需要,及时、准确、全方位的网络化信息管理成为必需。
在酒店的管理及业务日益复杂、要求在不断提高的现状下,利用高科技、现代化的电脑自动化管理系统来处理日益繁重的酒店业务,对于大型的酒店是必须具备的管理方式。
酒店客房管理系统是根据酒店对客房管理的实际情况进行编写的,主要目的是为了方便酒店对客房的实际情况进行集中的查询与管理工作,以提高整个酒店的工作效率。
酒店客房管理的科学化、系统化、信息化成为各个酒店追求的目标。
因此,而要实现这些功能,就要求各个酒店配备一套客房管理系统,以便在酒店内实施良好的完善的管理且以最快地速度响应客户的需求,及时为他们提供服务,为他们提供一个高效、便捷的居住环境。
客房管理信息系统(MIS)是各个酒店软件建设中一个重要的应用系统,它大大的改善酒店管理的基础环境。
对客房管理系统的若干基本问题进行研究,主要包括客房管理系统的功能组成、系统开发条件、步骤及其总体规划等内容。
同时随着信息技术的发展,许多酒店都把管理信息系统作为酒店实施科学化管理的主要工具,并在应用技术上不断的加以完善和发展,大大的提高了酒店运营的质量与效益。
作为计算机应用的一部分,使用计算机对酒店事务的管理,具有手工管理所无法比拟的优点。
例如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高酒店管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。
在酒店前台的管理工作中,管理信息系统在客户预订,登记,问讯,收银和日常管理方面得到了广泛的应用。
设于酒店前台各处的计算机终端,直接与酒店计算机控制中心联网,它可以非常方便地查阅客人档案,实时调整和显示房间状态。
还可以编制各种营业报表进行市场销售分析,可以说在酒店管理方面应用计算机技术,是很有必要的,这对改善酒店的管理机制,提高管理效率具有非常重要的意义,意义就在于:
可以降低人力资源成本,提高工作效率。
降低优化服务流程,提升服务质量。
实现资源最佳配置,增加酒店收益。
支持管理层全面了解经营状况。
酒店业是一个前景广阔而又竞争激烈的行业。
我国的酒店业迅速发展,已经成为一个具有相当规模的产业。
酒店客房管理使用手工处理账务,存在许多现金流失的漏洞,使用软件来管理宾馆业务,结账既准确,速度又快,而且统计的报表也快捷。
对酒店整个来说,对酒店经营状况起决定作用的是酒店的服务管理水平。
如何利用先进的管理手段来提高酒店的管理水平成为酒店业务发展的当务之急。
面对信息时代的机遇和挑战,利用科技手段提高酒店的管理无疑是一条行之有效的途径。
虽然计算机管理并不是酒店管理走向成功的关键元素,但它可以最大限度地发挥准确、 快捷、高效等作用,对酒店的业务管理提供强有力的支持。
本课程设计主要解决的是在一个酒店的客房管理中,实现计算机对来客的订房情况,消费情况的统计与登记,实现对酒店住房费用的一次性结算服务,为酒店管理人员关于一定时间段里酒店的住房管理情况与酒店的经营情况提供快捷方便高效的管理手段。
2可行性研究
2.1项目概述
本项目旨在利用计算机进行酒店的客房管理,提高客房管理人员的工作效率;提高管理人员的工作质量;改善对客户接待工作;实现管理计算机化,效率化;继承旧的管理系统的优良性能基础上进一步提升软件的管理性能;实现人力资源的高效利用。
“酒店客房管理系统”应客户要求,利用计算机技术对酒店的客房订房退房等日常操作进行管理,不仅节省人力,物力,而且提高了管理效率,方便了业务的管理。
酒店管理系统是酒店宾馆管理中必不可少的软件工具,随着现代化都市发展,酒店的功能也随着逐步扩充,来方便、满足旅客们的需求,因此酒店管理越来越需要电子计算机的帮助,通过管理系统它可以方便工作人员的操作,省去了大量的人力开销。
同时,计算机的管理也大大的提高了管理时的可靠性。
如今,随着我国经济的高速发展,现代化酒店如雨后春笋般涌出,所以,酒店管理系统有着巨大的市场和发展空间。
2.2可行性分析的前提
2.2.1项目的目标
通过对本系统的应用,可以智能化的实现顾客入住,付费,结算等一系列服务,省时省力。
同时酒店管理系统采用科学的管理思想与先进的管理手段的完善结合。
可帮助酒店管理人员,对酒店管理过程中大量动态的、错综复杂的数据和信息进行及时准确的分析和处理,从而使酒店管理真正由经验管理进入到科学管理帮助经营者更好的管理酒店、成本控制和客户来源,从而提高酒店的经营效益。
使用该酒店客房管理系统可以提高酒店客房管理水平,把大量繁琐的工作简单化,能够有效地减少人力物力资源,具体有以下好处:
1.电脑收银、打印帐单:
快速准确,减少宾客等待时间,并可杜绝收银过程中的舞弊现象。
2.高效的客房管理:
能有效的提高房率,增加营业收入。
3.提高决策依据:
管理者可以随时了解经营情况,以制定相应的经营方针。
4.减轻员工的工作负担:
从而使员工把更多的精力放在提高为宾客服务的质量上。
5.简单、方便地保存和查询历史资料。
6.树立良好的酒店形象。
2.2.2项目的环境
Visualstudio2010
SQLServes2005
2.3可选的方案
2.3.1方案一
要想让软件更能智能化的服务酒店管理人员以及客户,该软件就要更贴近生活,所以开发人员可以到各大酒店了解他们在日常生活,工作中遇到的问题,以便更好的开发软件。
2.3.2方案二
开发人员也可以访问酒店入住的客户,征求他们的建议。
2.4所建议的系统
2.4.1系统说明
●客户入住管理;
酒店可对客户客房的相关信息进行管理,包括对客房的基本信息(如客房号,客房价格等)进行检索,录入和修改;
●客房查询管理;
实现客户对酒店客房的预定
●客户付费管理;
方便客户付费,退房
●客房退房管理;
实现客户的退房要求
2.4.2高层数据流图
图2.1高层数据流图
2.5经济可行性
按本软件酒店管理系统开发方案,对于本系统软件开发方向,体现于软件开发,软件生产及软件测试。
本系统由小组成员来开发,本着学习与提高的原则,只需要提供开发软件工具即可,与开发场地无关。
本小组本着提高与学习的原则,秩序每人提供一台计算机即可,无其他的费用支出。
本系统无收益性质开发,本着方便酒店管理人员的管理。
2.6技术可行性
人员素质:
本小组的5名学生;
技术基础:
C语言等相关知识;
项目技术要求:
较为简单的,但基本功能较为完善的现代酒店管理系统,根据项目的技术要求是较低的;
界面编程要求是:
简单明了,可以看出,其要求没有超出现有开发的技术内容;
接口编码要求是:
无,由于要求非常简单,技术上不会有任何问题;
用户:
没有特殊的要求。
2.7操作可行性
软件编写是经过大量的市场调查而得出的结果,更符合人们的意愿。
软件编写简单,可执行性比较强,该软件集合了登记入住,房间查询,付费结算,退房信息等模块集合而成,这体现了现代化城市的操作大众化,简单化。
同时,计算机化的管理能够给酒店管理人员带来极大的方便,从而带来效率与质量的提高。
管理计算机化同时为酒店节省了一部分的设备支出。
接待员利用计算机为客人办理入住登记手续,可以尽量缩短客人滞留总台的时间,为客人提供快捷高效的服务。
顾客在酒店的消费都将录入计算机,顾客在办理离店时一次性结账,为顾客带来极大的便利。
建成一套具有不断发展能力的系统,能给酒店的人流、物流、资金流带来极大的发挥效益,管理计算机化,为酒店未来带来长远的发展。
管理与国际惯例接轨,吸收别人的成功经验,为酒店发展铺平道路。
3需求分析
3.1需求概述
随着计算机技术的飞速发展,信息时代的到来,信息改变了我们这个社会。
各类行业在日常经营管理各个方面也在悄悄地走向规范化和网络化。
酒店管理的信息化程度体现在将计算机及网络与信息技术应用于经营与管理,以现代化工具代替传统手工作业。
无疑,使用网络信息化管理使酒店更先进、更高效、更科学,信息交流更迅速,酒店信息管理系统是酒店管理中不可缺少的部分,它的内容对于经营的决策者和管理者来说都至关重要,所以客房管理系统信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。
3.2需求模型
3.2.1数据模型
N1
NN
图3.1数据模型图
3.2.2功能模型
D2客房信息表
入住登记表客户需求房价收据
D1登记表
图3.2功能模型图
3.2.3行为模型
显示信息
图3.3行为模型图
3.2.4数据字典
系统的主要数据字典:
1.入住信息
表3.1入住信息数据字电表
2.结算
表3.2结算数据字典表
3.退房
表3.3退房数据字典表
4总体设计
4.1系统体系结构
1.02.03.04.05.0
图4.1系统体系结构图
4.2模块详细说明
查询当前费用IPO表:
IPO表
系统:
酒店管理系统
模块:
查询当前费用
编号:
3.0
作者:
冀马超
日期:
2015.3.11
被调用:
申请退房信息
调用:
客户登记入住
输入:
入住时间以及房间单价
输出:
需要缴费
处理:
所需付费=入住天数*房间单价
局部数据元素:
所需缴费
注释:
无
表4.1查询当前费用IPO表
4.3数据库设计
系统构建酒店房间信息数据表用来查询当前费用。
表4.2房间信息数据表
列名
数据类型
大小
字段描述
RoomNo
char
3
记录房间号
FloorNo
int
记录房间楼层
RoomCategory
varchar
30
记录房间类型
RoomAvailable
varchar
10
记录空房
Price
int
记录房间单价
E-R模型的“联系”用于刻画实体之间的关联。
一种完整的方式是对局部结构中任何两个实体类型,依据需求分析的结果,考察局部结构中任意两个实体类型之间是否存在联系。
若有联系,进一步确定是1:
N,M:
N,还是1:
1等。
还要考察一个实体类型内部是否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在联系,等等。
根据上面的设计可以规划出的实体有:
客人实体、查询实体、客房实体、系统管理实体和退房实体。
1.客人实体
入住客人表的设计详细的给出了客人入住时需要的一些基本信息,运用此表能方便的对客人的一些基本信息进行查询、修改、删除等操作。
方便使用者的操作,使操作方便、快捷。
2.查询实体
查询实体的设计主要是针对房间基本信息的查询,能使使用者方便的了解到房间的一些状态,比如价位,类型等,此实体的设计能让使用者方便的对客房进行一些管理,开房、退房等。
3.客房实体
客房实体的设计主要是针对不同的入住群体,根据不同入住者的不同需求来选择合适的房间类型,让入住者真正的感觉到酒店所提供的各种服务,让入住者认识到酒店是为大众群体所开设的。
4.退房实体
退房实体表的设计主要是针对客房实体,入住者信息以及入住的信息计算出入住者的费用。
该实体可以根据客房表和入住者信息表对酒店进行管理,让使用者能快速,有效,准确的对入住费用进行计算,进而达到方便,高效的管理酒店的目的。
5.系统实体E-R图
入住者根据情况入住客房,酒店管理者对入住者进行服务,当入住者要求退房时,酒店管理者可根据入住这在酒店享有的服务进行账目的结算,让管理者可根据这一系列的合理流程来更加有效的管理酒店。
5详细设计
5.1人机界面设计
1.登记入住
图5.1登记入住
2.查询房间入住情况
图5.2查询房间住住情况
3.查询当前费用
图5.3查询当前费用
4.结账退房
图5.4退房结账
5.退出程序
图5.5退出程序
5.2过程设计
当入住人员申请退款时,酒店人员就进行结算工作。
入住人员所需缴纳的费用是
所需费用=所住天数*房间单价,当入住人员入住天数不足一天时,此时就按一天算。
1、功能要求:
(1)后台实现添加、删除、查询功能,同时还应具有用户管理功能。
(2)前台实现添加、查询、、预订、结账功能。
(3)经理与总经理管理系统,对员工的信息进行管理。
(4)电话系统、管家系统、帮助系统等一些其他系统。
2、问题的解决方案:
根据系统功能要求,可以将问题解决分为以下步骤:
(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;
(2)分析系统中的各个实体及它们之间的关系包括属性和行为;
(3)根据问题描述,设计系统的类层次;
(4)完成类层次中各个类的描述(包括属性和方法);
(5)完成类中各个成员函数的定义;
(6)完成系统的应用模块;
(7)功能调试。
简要算法如下:
voidhotel_execute()
{
intx,y,z,h;chark;
printf("请输入客户姓名,身份证号:
");
scanf("%c,%d",&k,&h);
printf("请输入你要住本酒店多少层楼的住房?
【1-5】");
fflush(stdin);
L:
scanf("%d",&x);
p=x;
if(x>5)
{
printf("不好意思本店没有该层楼房。
\n请重新选择:
");
gotoL;
}
printf("请输入你要住第%d层的几号房间?
【1-5】",x);
fflush(stdin);
LP:
scanf("%d",&y);
if(y>5)
{
printf("不好意思该层楼并无该房间。
\n请重新选择:
");
gotoLP;//无条件的回去GOTO语句
}
if(x>2){//二层以上则100元一天
printf("\n提示:
该房是贵宾套房,100元一天\n");
}else{
printf("\n提示:
该房是标准套房,50元一天\n");
}
if(room[x-1][y-1]==0)//判断该房无人入住
{
room[x-1][y-1]=1;
printf("\n谢谢您的光临,您已经成功登记。
\n您的信息如下:
\n入住房间:
%d-%d\n",x,y);
start=clock();
}
else
{
printf("警告:
该房已经有人入住...请换房入住哈。
\n");
}
}
6测试
6.1白盒测试
测试目的:
当天数是整数时和不是整数时,输出费用分别是多少
测试数据:
入住房间1-1
测试结果:
图6.1白盒测试图
6.2黑盒测试
1)测试目的:
当天数是整数时和不是整数时,输出费用分别是多少
测试数据:
登陆界面选择6时
测试结果:
图6.2黑盒测试图
(1)
2)测试数据:
当输入楼层号大于5时
测试结果:
图6.3黑盒测试图
(2)
7结论
酒店管理系统通过节省大量的人力物力,增加酒店的服务项目,提高酒店的服务档次,减少管理上的漏洞,从整体上提高酒店的经济效益。
如完善的预订功能可防止有房不能住或满房重订的情况出现,可随时提供准确的房间使用和预订情况,从而提高客房入住率。
在本次课程设计中,我们知道软件工程的维护方法有:
本系统主要采取三种方式维护:
1改正性维护
在软件初期使用,由于某种原因,软件存在一些错误或缺陷。
需要由软件开发小组按用户要求对系统进行改正性维护。
2适应性维护
当系统长时间使用后,随着用户的增加,系统在某些方面的速度可能不如刚开始的时候,所以针对这个问题我们要做出适当维护。
3完善性维护
在系统使用几年后,该应用系统可能不适应业务的发展。
用户对软件提出了新的需求和性能要求。
在实习中同学之间相互讨论思考,将平日里所学的知识运用到实践中来,并不断的熟悉巩固知识。
8参考文献
[1]杨志强著.VisualBasic6.0程序设计教程.北京:
高等教育出版社.2008
[2]赵斯思著.VisualBasic数据库编程与实例.北京:
人民教育出版社.2009
[3]张海藩著.软件工程导论.第五版.清华大学出版社.2008
[4]张海藩著.软件工程导论.第五版.学习辅导.清华大学出版社.2008
[5]刘志妩,张焕君,马秀丽等著.基于VB和SQL的数据库编程技术.北京:
清华大学出版社.2010
附录:
程序代码
#include
#include
#include
#include
//成员变量的声明
inti,j,k,p=0;
chartemp[]="";
introom[5][5];
clock_tstart;
//成员方法的声明
voidinit()
{
intx,y,z;
for(x=0;x<5;x++)
{
for(y=0;y<5;y++)
{
room[x][y]=0;
}
}
}
voidhotelTitle()
{
printf("\n-------酒店房间登记与计费管理系统----\n");
printf("\t1.登记入住\n");
printf("\t2.查询房间的入住情况\n");
printf("\t3.查询当前费用\n");
printf("\t4.结账退房\n");
printf("\t5.退出程序\n");
}
voidhotel_execute();
voidhotel_select();
voidhotel_outhotel();
voidoutsystem();
voidhotel_total();
intmain(void)
{
system("colorf1");
init();//调用数组函数
while
(1)
{
Loop:
hotelTitle();//调用输出函数写明进入程序系统所对应的数字
printf("\n请选择:
");
j=scanf("%d",&k);
if(j==0||k<1||k>5)
{
printf("\n输入错误。
\n\t请输入所列出的选项。
\n\n3秒后刷新...PleaseWeit!
Thanks\n");
//fflush(stdin);
//unsignedSleep(3000);
//delay(3000);
time_tstart,end;
start=time(NULL);
end=time(NULL);
while(end-start<3)
end=time(NULL);//延时函数
//system("cls");
gotoLoop;//循环体
}else{
switch(k)
{
case1:
hotel_execute();break;
case2:
hotel_select();break;
case3:
hotel_total();break;
case4:
hotel_outhotel();break;
case5:
outsystem();return;
default:
printf("\n\t系统出错!
请联系管理员!
\n");//怕出现BUG
return;
}
}
fflush(stdin);//清空缓存
}
}
//入住登记
voidhotel_execute()
{
intx,y,z,h;chark;
printf("请输入客户姓名,身份证号:
");
scanf("%c,%d",&k,&h);
printf("请输入你要住本酒店多少层楼的住房?
【1-5】");
fflush(stdin);
L:
scanf("%d",&x);
p=x;
if(x>5)
{
printf("不好意思本店没有该层楼房。
\n请重新选择:
");
gotoL;
}
printf("请输入你要住第%d层的几号房间?
【1-5】",x);
fflush(stdin);
LP:
scanf("%d",&y);
if(y>5)
{
printf("不好意思该层楼并无该房间。
\n请重新选择:
");
gotoLP;//无条件的回去GOTO语句
}
if(x>2){//二层以上则100元一天
printf("\n提示:
该房是贵宾套房,100元一天\n");
}else{
printf("\n提示:
该房是标准套房,50元一天\n");
}
if(room[x-1][y-1]==0)//判断该房无人入住
{
room[x-1][y-1]=1;
printf("\n谢谢您的光临,您已经成功登记。
\n您的信息如下:
\n入住房间:
%d-%d\n",x,y);
start=clock();
}
else
{
printf("警告:
该房已经有人入住...请换房入住哈。
\n");
}
}
//查询住房信息
voidhotel_select()
{
intx,y,z;
system("cls");//清空内容。
//以下没什么重要的。
就是控制输出格式
printf("宾馆入住情况如下:
");
printf("\n|-------|--------|--------|--------|--------|--------|\n");
printf("||");
for(x=1;x<=5;x++)
{
print