小型酒店管理系统的设计与实现.docx
- 文档编号:5206851
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:24
- 大小:518.18KB
小型酒店管理系统的设计与实现.docx
《小型酒店管理系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《小型酒店管理系统的设计与实现.docx(24页珍藏版)》请在冰豆网上搜索。
小型酒店管理系统的设计与实现
编号
课程设计报告
2014~2015学年第二学期
小型酒店管理系统的设计与实现
Designandimplementationofsmallhotelmanagementsystem
实习类别
课程设计
学生姓名
XXX
专业
软件工程
学号
1305XXXX
指导教师
何XX、尹XX
学院
计算机科学技术学院
二〇一五年七月
起止周
18~19
周数
2
实习地点
南研1213实验室
课程设计目的:
信息系统开发实践活动是学习《数据库原理与应用》课程理论联系实际的综合训练。
1、加深对数据库基础知识的理解,巩固理论基础。
2、熟练掌握数据库应用系统开发中数据库的规范设计过程,训练和提高数据库设计的技能,实现理论与实践的结合。
3、学习和掌握主流数据库工具的使用;4、学会自主性学习、研究性探索以及技术文档的撰写,促进研究能力、协作能力和创新能力的提高。
课程设计要求:
1、独立思考,独立完成:
课程设计中各任务的设计和调试要求独立完成,遇到问题可以讨论,但不可以拷贝。
2、做好上机准备:
每次上机前,要事先编制好准备调试的程序,认真想好调试步骤和有关环境的设置方法,准备好有关的文件。
3、实践设计以实际应用中的小型题目为主,要求学生独立完成或合作完成。
要求学生能根据不同的题目类型选择一种或两种开发模式,完成从系统定义,指定开发计划,需求分析,设计,编码/测试,直至运行/维护的软件生存期的全过程。
完成课程设计题目《小型酒店管理系统的设计与实现》
进度安排及主要内容:
第一周:
调研;需求分析及总体设计;规范化数据库模型;建库。
第二周:
详细设计及测试;使用具体语言实现算法;数据库连接;调试程序;编写课程设计报告。
成绩:
指导教师(签字)
年月日
1、概述
1.1本课题研究的目的及意义
随着我国经济发展水平的迅速提高,酒店业作为服务行业中的重要组成部分己经越来越显示出其强劲的发展势头。
纵观国内外酒店业信息化发展轨迹和趋势,我们不难看出,随着酒店业竞争的加剧,酒店之间客源的争夺越来越激烈,客房销售的利润空间越来越小,酒店需要使用更有效的信息化手段,拓展经营空间,降低运营成本,提高管理和决策效率。
而经济型酒店通过信息化管理提高收益的需求更加突出。
高层次的酒店业信息化不再是仅仅追求计算机辅助管理,而是追求建立在集成化基础上的协同化应用。
我国酒店业利用计算机管理系统来加强管理、提高服务水平,虽然至今已有了20多年的历史,但起步发展较晚,只是一些浅层次应用,大多数还停留于拼八凑的MIS系统水平,甚至还仅限于简单的电算化和信息发布阶段,与国际酒店业先进信息化应用的差距非常明显。
信息化程度不高导致企业决策失误、市场反应速度缓慢等,己经成为制约我国酒店业进一步发展的重要瓶颈。
中国信息化推进联盟副理事长张献军曾说,随着酒店信息化的发展,酒店将改变以往的经营理念和竞争模式,店内装潢、客房数量、房间设施等质量竞争和价格竞争将退居其次,取而代之的是酒店信息化竞争,信息化正改变着酒店业的竞争模式。
国家旅游局2002年修订的旅游星级饭店评定的国家标准,已经把酒店管理的软件指标及服务方面作为主要测评手段。
而现代化的酒店是集客房、餐饮、通讯、娱乐,商务文化及其他各种服务与设施为一体化的消费场所,酒店组织庞大,服务项目多,信息量大,要想提高劳动生产,降低成本,提高服务质量和管理水平,进而促进经济效益,必须借助计算机来进行现代化的信息管理,本酒店管理系统正是为此而设计,目的是使酒店管理特别是经济型酒店在高效、低成本方面跨上一个新的台阶。
由此可见,一个好的酒店管理系统应该达到以下几个目标:
1.提高工作效率,减轻劳动强度。
在酒店的日常工作中,每天都要完成对营业信息进行更新统计,提供查询服务,结算账单等大量的业务,用手工方式进行的话,不仅速度慢,需要的人手多,且出错的概率也大,而计算机管理则可以大大提高业务运作的速度和准确性,实现营业管理自动化。
2.提高了酒店经济效益,增加营业收入。
完善的客房管理功能可防止有房不能出租或房间重订的情况出现,随时提供准确和最新的房态信息,从而可提高工作效率和客房出租率。
客人费用的一次性结账,不仅减少了票据传送,而且避免了管理上的混乱,更主要的是有效地防止逃帐的发生。
3.提高了服务质量,可以为客人提供快捷、细致、周到的服务。
操作人员只需敲击键盘,就可以办理客人入住、查询信息、结账等各项手续,并准确无误地记录客人的每笔消费记录,大大缩短客人办理手续时的等候时间,提高了服务质量。
4.信息透明,酒店营业情况一目了然,提高了经营者的决策水平。
经营者可以通过对酒店经营状况及历史数据的分析,做出相关的经营决策,并加强对饭店运营的内部控制,为酒店未来的发展提供理论依据。
1.2现状分析
酒店计算机管理系统最早是于上世纪70年代初在国外开始发展起来的,到了上世纪80年代,国外的饭店管理系统,如EECO,HIS,CLS,Lodgistix等,整个模式已基本定型,技术较成熟,功能也比较全面。
国内的酒店计算机管理系统最早是在80年代初开始的,从事该方面工作的有清华大学自动化系的金国芬教授、西安交大和浙江省计算技术研究所。
到上世纪80年代中经济型酒店管理信息系统的设计与实现后期,;随着国外酒店计算机系统的大规模引进,
国外酒店的先进管理技术进入我国,进打步促进曩我国饭店管理技术的发展。
国内系统正是在充分吸收国外管理系统的精华。
,再结合国内的实际情况,逐步发展成熟,到上世纪90年代初期形成了几个较成熟的软件系统,同时产生了许多专职从事酒店计算机管理系统的公司。
进入21世纪后,随着计算机在酒店中的普及应用,以及计算机技术的不断发展,酒店计算机系统的发展到了一个新的时期,新的系统平台、新的软件功能、新的系统特点及发展方向断涌现,酒店管理系统逐渐向ERP方向发展。
1.3课程设计主要研究内容和架构
小型酒店管理系统的设计与实现是基于MVC三层架构完成,使用Java语言开发,主要应用jsp完成前台界面部分,servletMVC完成后台逻辑部分,采用javabean操作封装数据库的表信息。
本系统的设计从现实角度出发,根据实际小型酒店管理系统的实际需求,采用功能模块化设计,便于系统组合和修改,又便于酒店系统各类工作人员不同功能操作。
系统的设计过程由概述、需求分析、技术方案、总体设计、详细设计、软件测试、总结等部分构成。
二、需求分析
2.1系统角色
本系统有三个角色分别为:
经理、前台服务员、客房管理员,他们进入系统都具有不同的权限和功能,分别都能进行自己的管理事项,既分工明确,又协调统一。
2.2系统功能
不同角色登录就有着不同的功能:
1.经理具有雇佣员工、解雇员工的功能;
2.前台服务员满足顾客的需求:
填写预定客房订单、取消顾客的预定订单、办理入住手续、办理退房结账手续;
3.客房管理员管理客房的状态,是否可提供入住,还是正在整理中
2.3数据库需求
2.3.1数据库表E-R图
本系统的主要的实体有经理,前台服务员,客房管理员,顾客,客房。
它们对应的实体和关系ER图如下所示:
图-1系统ER图
2.3.2系统管理模块
数据库实体共有九个实体,实体属性如下图所示。
1.经理实体图-2所示:
图-2经理实体图
2.前台服务员实体图-3所示:
图-3前台服务员实体图
3.客房管理员实体图-4所示:
图-4客房管理员实体图
4.客房实体图-5所示:
图-5客房实体图
5.顾客实体图-6所示:
图-6顾客实体图
6.预定实体图-7所示:
图-7预定实体图
7..入住实体图-8所示:
图-8入住实体图
8.经理实体图-9所示:
图-9入住实体图
9.经理实体图-10所示:
图-10入住实体图
三、技术方案
3.1JavaWeb相关技术
1.JDBC
JDBC(JavaDataBaseConnectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
JDBC为数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯JavaAPI编写数据库应用程序,并且可跨平台运行,并且不受数据库供应商的限制
(1)跨平台运行:
这是继承了Java语言的“一次编译,到处运行”的特点;
(2)不受数据库供应商的限制:
巧妙在于JDBC设有两种接口,一个是面向应用程序层,其作用是使得开发人员通过SQL调用数据库和处理结果,而不需要考虑数据库的提供商;另一个是驱动程序层,处理与具体驱动程序的交互,JDBC驱动程序可以利用JDBCAPI创建Java程序和数据源之间的桥梁。
应用程序只需要编写一次,便可以移到各种驱动程序上运行。
Sun提供了一个驱动管理器,数据库供应商——如MySQL、Oracle,提供的驱动程序满足驱动管理器的要求就可以被识别,就可以正常工作。
所以JDBC不受数据库供应商的限制。
JDBCAPI可以作为连接Java应用程序与各种关系数据库的纽带,在带来方便的同时也有负面影响,以下是JDBC的优、缺点。
优点如下:
(1)操作便捷:
JDBC使得开发人员不需要再使用复杂的驱动器调用命令和函数;
(2)可移植性强:
JDBC支持不同的关系数据库,所以可以使同一个应用程序支持多个数据库的访问,只要加载相应的驱动程序即可;
(3)通用性好:
JDBC-ODBC桥接驱动器将JDBC函数换成ODBC;
(4)面向对象:
可以将常用的JDBC数据库连接封装成一个类,在使用的时候直接调用即可。
缺点如下:
(1)访问数据记录的速度受到一定程度的影响;
(2)更改数据源困难:
JDBC可支持多种数据库,各种数据库之间的操作必有不同,这就给更改数据源带来了很大的麻烦
2.MVC框架
MVC最早是在SMALLTALK-80语言中出现。
后来在JSP开发中渐渐得到广泛应用。
并且成为Sun公司推荐的J2EE平添的设计模式,Sun公司提出的Model2开发模型就是基于MVC设计模式的应用。
Model2实现了业务逻辑、显示逻辑和控制的分离,即是基于MVC的框架。
MVC框架即模型-视图-控制器(Model-View-Controller)设计模式。
M代表Model,V代表View,C代表Controller。
MVC的核心思想是将一个应用程序的数据业务处理功能(模型)、表示功能(视图)和控制功能(控制层)在3个不同的部分(或层)上分别实现。
MVC的目的是增加代码的可重用性,减少数据描述和应用操作的可耦合度,并提高代码的可读性。
3.2开发工具
1.SQLserver数据库
数据库是依照某种数据模型组织起来并存放二级存储器中的数据集合。
这种数据集合具有如下特点:
尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用程序,对数据的增、删、改和检索由统一软件进行管理和控制。
SQLServer是Microsoft公司推出的关系型数据库管理系统。
具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行MicrosoftWindows98的膝上型电脑到运行MicrosoftWindows2012的大型多处理器的服务器等多种平台使用。
2.Tomcat服务器
Tomcat是一个免费的、开放源代码的Web应用服务器,它是Apache软件基金会(ApacheSoftwareFoundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发。
Servlet和JSP规范在Tomcat容器中都得到了很好的支持,从Tomcat5开始支持最新的Servlet2.4和JSP2.0规范。
Tomcat容器虽然是免费开源的Web应用服务器,但是它的技术含量并不亚于其他Web应用服务器、而且性能稳定,运行时占用的系统资源少,是开发和调试应用程序的理想工具,因而深受Java开发人员的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。
3.MyEclipse开发平台
MyEclipse,是在eclipse基础上加上自己的插件开发而成的功能强大的企业级集成开发环境,主要用于Java、JavaEE以及移动应用的开发。
MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持相当不错。
MyEclipse是一个十分优秀的用于开发Java,J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。
MyEclipse可以支持JavaServlet,AJAX,JSP,JSF,Struts,Spring,Hibernate,EJB3,JDBC数据库链接工具等多项功能。
可以说MyEclipse是几乎囊括了目前所有主流开源产品的专属eclipse开发工具。
四、总体设计
该小型酒店管理系统是基于MVC开发模式,使用B/S体系,采用Servlet+Jsp+service框架。
其中数据访问层被封装在Dao层,数据访问层在底层封装了JDBC。
。
而系统的业务逻辑层由service负责。
系统的所有Jsp装在工程的根目录下,Servlet负责web层以及Jsp页面的跳转功能。
此外,系统将数据库中的所有关系表都封装在damain中,以便使用。
当用户进行操作时,将页面中获取的表单数据提取出来,交给servlet进行处理,servlet通过调用业务逻辑层(service层)功能函数,与从数据库中获取的信息交互,处理问题
4.1系统功能模块介绍
图-11系统功能模块图
各个模块具体功能描述如下:
4.1.1登录管理
登录管理模块是分角色登录系统,包括经理、前台服务员、客房管理员。
不同用户进入系统的不同功能模块进行各自的操作。
利用不同的系统登录角色,是系统的结构更为清晰,功能体现的更为具体。
4.1.2经理管理
该酒店系统只有一位经理,该经理对各类员工雇佣、解雇的职能。
经理通过选择需要解雇的员工职工号,进行员工的删除。
同理根据职工号进行增添员工信息。
功能如下图:
图-12经理功能模块图
4.1.3客房管理
该酒店系统有客房管理员一职,该职员通过登录系统,对房间的状态进行及时的更新。
房间的状态有两种:
可提供和整理中。
客房管理员通过房间号进行更新状态。
功能如下图:
图-13客房管理员功能模块图
4.1.4前台管理
该酒店系统有前台服务员一职,该职员通过登录系统,对前台预定房间、入住房间、退房、结账的顾客,进行接待并完成相应的手续。
顾客预定房间时,服务员对顾客的信息进行纳入,并预定顾客所选房间,下订单。
顾客入住房间时,服务员通过顾客的身份证号进行查询订单信息,并办理入住手续。
同时顾客也可以取消该订单。
最后,顾客办理退房手续,也是根据顾客身份证号进行办理,并结账。
功能如下图:
图-14前台服务员功能模块图
4.2数据库设计
系统采用SQLserver数据库,在数据库中创建了经理表、前台服务员表、客房管理员表、房间表、顾客表、预定表、入住表、退房表、结账表。
此外还定义了两个触发器:
顾客预定触发器、删除顾客触发器,后面详细介绍功能。
4.2.1.各表定义情况。
表-1经理表
字段名称
含义
数据类型
是否主键
是否外键
其他约束
num
职工号
varchar(10)
是
否
无
name
varchar(10)
否
否
非空
password
登录密码
varchar(10)
否
否
非空
表-2客房管理员表
字段名称
含义
数据类型
是否主键
是否外键
其他约束
num
职工号
varchar(10)
是
否
无
name
varchar(10)
否
否
非空
password
登录密码
varchar(10)
否
否
非空
表-3前台服务员表
字段名称
含义
数据类型
是否主键
是否外键
其他约束
num
职工号
varchar(10)
是
是
无
name
varchar(10)
否
否
非空
password
登录密码
varchar(10)
否
否
非空
表-4客房表
字段名称
含义
数据类型
是否主键
是否外键
其他约束
num
房间号
varchar(10)
是
是
无
type
类型
varchar(20)
否
否
非空
area
面积
int
否
否
非空
hour_price
钟点费
int
否
否
非空
day_price
一晚价
int
否
否
非空
ssp
押金
int
否
否
非空
state
状态
varchar(10)
否
否
非空
rm_num
客房管理员
varchar(10)
否
否
非空
表-5顾客表
字段名称
含义
数据类型
是否主键
是否外键
其他约束
num
身份证号
varchar(10)
是
是
无
name
varchar(10)
否
否
非空
room_num
预定房间号
varchar(10)
否
否
非空
intype
预订房间类型
int
否
否
非空
intime
入住时长
int
否
否
非空
or_time
预定时间
date
否
否
非空
in_time
预定入住时间
date
否
否
非空
co_time
预定退房时间
date
否
否
非空
fore_num
前台接待服务员
varchar(10)
否
否
非空
表-6预定表
字段名称
含义
数据类型
是否主键
是否外键
其他约束
num
顾客身份证号
varchar(10)
是
是
无
表-7入住表
字段名称
含义
数据类型
是否主键
是否外键
其他约束
num
顾客身份证号
varchar(10)
是
是
无
ischeckin
是否入住
int
否
否
无
表-8退房表
字段名称
含义
数据类型
是否主键
是否外键
其他约束
num
顾客身份证号
varchar(10)
是
否
无
表-9结账表
字段名称
含义
数据类型
是否主键
是否外键
其他约束
num
顾客身份证号
varchar(10)
是
否
无
name
顾客姓名
varchar(10)
否
否
无
allmoney
结账金额
int
否
否
无
a_time
结账日期
date
否
否
无
4.2.2.触发器
顾客下预定订单后,自动将顾客身份证号存入预定、入住、退房表中。
createtriggercust_Info
oncustomer
afterinsert
as
begin
declarec_numvarchar(20),room_numvarchar(10),ord_timedatetime;
selectc_num=numfrominserted;
selectroom_num=room_numfrominserted;
selectord_time=or_timefrominserted;
insertintoorderedvalues(c_num);
insertintocheckinvalues(c_num,0);
insertintocheckoutvalues(c_num,0);
end;
当顾客下取消预定房间订单或结账完成后后,自动将顾客的身份证号存、从入预定表、入住表、退房表、顾客表中删除
createtriggercust_delete
oncustomer
insteadofdelete
as
begin
declarec_numvarchar(20);
selectc_num=numfromdeleted;
deletefromcheckoutwherenum=c_num;
deletefromcheckinwherenum=c_num;
deletefromorderedwherenum=c_num;
deletefromcustomerwherenum=c_num;
end;
五、详细设计
5.1系统类图
使用MyEclipse开发工具导出系统的主要类图
1.数据访问层及基本数据增删改查操作类
图-1数据访问层数据访问层及基本数据增删改查操作类
2.javabean封装类
图-2javabean封装类
2.业务逻辑Service层
图-3业务逻辑Service层
3.Webservlet层及Jsp
图-4Webservlet层及Jsp
5.2用户登录
1.登录实现
首先选择登录角色,默认为经理。
再输入职工号与密码当用户名和密码都正确时,用户进入到属于自己角色的系统界面。
2.异常处理
异常主要包括用户名或密码为空、用户名或密码在数据库中不存在。
根据异常原因,将在对应的输入框后面显示提示信息。
3.主要实现方法
(1)约束用户名须是字母开头和字母数字组成,给用户名的文本框设置onblur()事件。
当失去焦点时,执行checkUserName(),在方法里根据id获取用户名的输入框对象,并进行非空判断和正则表达式校验。
(2)在LoginServlet类中获取职工号,从数据库中调出等于该职工号的员工信息,如果为null或与获取的密码不一致,则在LoginServlet类中使用setAttribute()方法设置属性值,返回到jsp中显示出“不存在该用户”或“密码错误”。
登录流程如图5-4所示:
图-5登录流程
5.3经理功能
经理对各类员工雇佣、解雇的职能。
经理通过选择需要解雇的员工职工号,进行员工的删除。
同理根据职工号进行增添员工信息。
界面如下:
(a)(b)
(c)(d)
图-6经理业务界面
用到的类:
AddMemberServlet、Manager_service、DaoImpl_ma、DeleteMemberServlet、AddMemberServlet
经理流程图如下:
图-7经理业务流程图
5.4客房管理功能
客房管理员通过登录系统,对房间的状态进行及时的更新。
房间的状态有两种:
可提供和整理中。
客房管理员通过房间号进行更新状态。
用到的类:
RoomChangeServlet、RoomManager_service、DaoImpl_roma
流程图如下:
图-8客房管理员业务流程图
5.5前台管
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 小型 酒店 管理 系统 设计 实现