小型酒店管理系统的设计与实现_第1页
小型酒店管理系统的设计与实现_第2页
小型酒店管理系统的设计与实现_第3页
小型酒店管理系统的设计与实现_第4页
小型酒店管理系统的设计与实现_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

编号 课程设计报告20142015学年 第二学期小型酒店管理系统的设计与实现Design and implementation of small hotel management system实 习 类 别课程设计学 生 姓 名 XXX专 业 软件工程学 号 1305XXXX指 导 教 师何XX、尹XX学 院计算机科学技术学院二一五年七月 - 1 -长春理工大学计算机科学技术学院课程设计报告起 止 周1819周数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完成前台界面部分,servlet MVC完成后台逻辑部分,采用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.1 Java Web相关技术 1.JDBCJDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序,并且可跨平台运行,并且不受数据库供应商的限制(1)跨平台运行:这是继承了Java语言的“一次编译,到处运行”的特点;(2)不受数据库供应商的限制:巧妙在于JDBC设有两种接口,一个是面向应用程序层,其作用是使得开发人员通过SQL调用数据库和处理结果,而不需要考虑数据库的提供商;另一个是驱动程序层,处理与具体驱动程序的交互,JDBC驱动程序可以利用JDBC API创建Java程序和数据源之间的桥梁。应用程序只需要编写一次,便可以移到各种驱动程序上运行。Sun提供了一个驱动管理器,数据库供应商如MySQL、Oracle,提供的驱动程序满足驱动管理器的要求就可以被识别,就可以正常工作。所以JDBC不受数据库供应商的限制。JDBC API可以作为连接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.SQL server数据库数据库是依照某种数据模型组织起来并存放二级存储器中的数据集合。这种数据集合具有如下特点:尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用程序,对数据的增、删、改和检索由统一软件进行管理和控制。SQL Server 是Microsoft 公司推出的关系型数据库管理系统。具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2012 的大型多处理器的服务器等多种平台使用。 2.Tomcat服务器Tomcat是一个免费的、开放源代码的Web应用服务器,它是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发。Servlet和JSP规范在Tomcat容器中都得到了很好的支持,从Tomcat5开始支持最新的Servlet2.4和JSP2.0规范。Tomcat容器虽然是免费开源的Web应用服务器,但是它的技术含量并不亚于其他Web应用服务器、而且性能稳定,运行时占用的系统资源少,是开发和调试应用程序的理想工具,因而深受Java开发人员的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。 3.MyEclipse开发平台MyEclipse,是在eclipse 基础上加上自己的插件开发而成的功能强大的企业级集成开发环境,主要用于Java、Java EE以及移动应用的开发。MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持相当不错。MyEclipse 是一个十分优秀的用于开发Java, J2EE的 Eclipse 插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse可以支持Java Servlet,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数据库设计系统采用SQL server数据库,在数据库中创建了经理表、前台服务员表、客房管理员表、房间表、顾客表、预定表、入住表、退房表、结账表。此外还定义了两个触发器:顾客预定触发器、删除顾客触发器,后面详细介绍功能。 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.触发器顾客下预定订单后,自动将顾客身份证号存入预定、入住、退房表中。create trigger cust_Infoon customerafter insertasbegindeclare c_num varchar(20),room_num varchar(10),ord_time datetime;select c_num=num from inserted;select room_num=room_num from inserted;select ord_time=or_time from inserted;insert into ordered values (c_num);insert into checkin values(c_num,0);insert into checkout values(c_num,0);end;当顾客下取消预定房间订单或结账完成后后,自动将顾客的身份证号存、从入预定表、入住表、退房表、顾客表中删除create trigger cust_deleteon customerinstead of deleteasbegindeclare c_num varchar(20);select c_num=num from deleted;delete from checkout where num=c_num;delete from checkin where num=c_num;delete from ordered where num=c_num;delete from customer where num=c_num;end;五、详细设计 5.1系统类图使用MyEclipse开发工具导出系统的主要类图1.数据访问层及基本数据增删改查操作类 图-1 数据访问层数据访问层及基本数据增删改查操作类2.javabean封装类 图-2 javabean封装类2. 业务逻辑Service层 图-3 业务逻辑Service层3. Web servlet层及Jsp 图-4 Web servlet层及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前台管理员功能该职员通过登录系统,对前台预定房间、入住房间、退房、结账的顾客,进行接待并完成相应的手续。顾客预定房间时,服务员对顾客的信息进行纳入,并预定顾客所选房间,下订单。顾客入住房间时,服务员通过顾客的身份证号进行查询订单信息,并办理入住手续。同时顾客也可以取消该订单。最后,顾客办理退房手续,也是根据顾客身份证号进行办理,并结账。用到的类:/HotelManagement/src/cn/cust/dao/impl/DaoImpl_fore.java/HotelManagement/src/cn/cust/service/impl/Fore_waiter_service.java/HotelManagement/src/cn/cust/web/controller/CheckInOrNotServlet.java/HotelManagement/src/cn/cust/web/controller/CheckInServlet.java/HotelManagement/src/cn/cust/web/controller/CheckOut2Servlet.java/HotelManagement/src/cn/cust/web/controller/CheckOutServlet.java/HotelManagement/src/cn/cust/web/controller/OrderServlet.java/HotelManagement/src/cn/cust/web/controller/SelectRoomServlet.java主要用到的方法:/查询顾客的预定情况,以便办理入住Cus_room_ord search_order(String c_num);/查询顾客入住情况根据入住办理退房手续Cust_in_out search_in(String c_num);/添加顾客boolean fore_add_customer(Customer customer);/办理入住boolean add_cust_checkIn(String c_num);/办理退房boolean add_cust_checkout(String c_num);/结账功能:房间号、房间价格、(房间订金)boolean add_account(Account account);/删除顾客信息boolean delete_cust(String c_num);/登录Fore_waiter search(String num, String password);/判断顾客是否存在Customer custIsExist(String c_num);/结账后删除结账表中的顾客boolean delete_acc(String num);界面如下:图-9 前台服务员业务界面-查询可用房间 图-10 前台服务员业务界面-顾客信息纳入预定房间前台服务员流程图如下:图-11 前台服务员业务流程图六、软件测试软件开发过程中难免会出现错误或缺陷,而软件测试的目的就是发现这些不足。软件测试贯穿于项目的整个生命周期,在项目开发的每个阶段都需要进行不同目的和内容的测试,确保各阶段的正确性。软件开发与软件测试应该是交互进行的,在单元编码阶段需要单元测试,在模块组合阶段需要集成测试。软件测试的主要工作内容是保证软件正确地实现了一些特定功能的一系列活动和保证软件达到预期的效果。软件测试的对象不仅仅是程序设计,还应包括需求规格说明、概要设计文档、详细设计文档。本系统主要用到了单元测试和集成测试。单元测试用例如下:运用Junit技术在类中编写方法,编写输出语句,将信息显示在控制台,然后观察控制台的输出信息是否为预想的结果。主要测试函数如下:void connection();/检测是否连接上数据库void searchRoom();/测试遍历客房的函数void cust_ord();/测试顾客预定函数void add_f();void search_order();void deleteCust();void add_cust_checkIn();void cancel_ord();void search_room();void time();void account();void delete();Testvoid daaF();集成测试用例如下:三种用户分别用户登录系统,逐一使用各个功能,通过以上步骤,可以有效地测试各个功能模块是否能正常地协同运行。七、总结以Web方式进行信息处理和应用系统的开发已经成为信息系统的主

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论