项目git源码:https://gitee.com/oklongmm/biye
1引言
1.1背景
当前,随着信息的不断飞速发展,信息技术已逐渐成为各种技术的基础,信息也成为企业具有竞争力的核心要素。企业的生存和发展依靠正确的决策,而决策的基础就是信息,所以企业竞争力的高低完全取决于企业对信息的获取和处理能力。企业要准确、快速的获取和处理信息,企业信息化是必然的选择。企业必须加快内部信息交流,改进企业业务流程和管理模式,提高运行效率,降低成本,提高竞争力,信息化建设是企业适应社会发展的要求。企业管理信息系统即企业MIS是企业信息化的重要内容。 随着我国改革开放的不断推进,人民生活水平日益提高,旅游经济蓬勃发展,这一切都带动了酒店行业的发展。再加上入境旅游的人也越来越多,入境从事商务活动的外宾也越来越多。传统的手工已不适应现代化酒店管理的需要。及时、准确、全方位的网络化信息管理成为必需。 酒店是一个服务至上的行业,从客人的预定开始,到入住登记直至最后退房结账,每一步骤都要保持一致性的服务水准,错失一步, 会令其辛苦经营的形象功亏一篑。要成为一间成功的酒店,就必须作到宾至如归,面对酒店业内激烈的竞争形势,各酒店均在努力拓展其服务领域的广度和深度。虽然计算机并不是酒店走向成功的关键元素,但它可以帮助那些真正影响成败的要素发挥更大的效用。因此,采用全新的计算机网络和管理系统,将成为提高酒店的管理效率,改善服务水准的重要手段之一。
1.2目的
面对信息时代的机遇和挑战,利用科技手段提高酒店客房管理无疑使一条有效的途径,采用全新的计算机网络和宾客系统,已成为提高酒店客房管理系统的重要途径之一。
该系统可满足中小型酒店的基本功能需求,其最大的特点是将大量冗余数据信息整理成易于管理的数据库,为中小型酒店提供了实用先进的客房管理模式,提高了客房酒店管理的效率。
1.3可行性分析
(1)经济可行性
在现今日益激烈的竞争环境下,谁给顾客留下良好的服务印象,吸引顾客再次光临,才能最终赢得商机。原本人工的酒店客房管理再也不能适应如今日益繁忙的工作需求,不可避免地出现差错,工作效率低下。最终结果是员工不能正常工作,客人也对酒店管理产生不满与抱怨。原本的管理方法不能采取有效措施改善,最终导致人力、财力、物力等各方面资源的闲置与浪费,是企业不能取得更好业绩的主要原因。要改变这种情况,企业就必须从多方考虑,综合管理,整合资源,提高组织运作效率,有效降低运营成本。
相比之下,应用该系统还有以下各方面的好处:
①能过代替大量的人力处理各种繁芜的工作,节约人力成本;
②为客户节约了时间,方便、快捷的服务又一次提高了各自的效率,节约了大量时间。对于企业来说,时间就是金钱啊;
③能过充分利用社会较低成本的资源(计算机)应用于高质量的服务中(酒店管理),是社会资源得到合理的配置,是资源得到利用,又一次节约社会成本;
④由于该系统可以间接快速的为顾客进行服务,可以吸引更多的顾客,大大增加了客流量,最终是企业不断盈利。
(2)管理可行性
如何最大限度为客人提供优质的服务,以提升客人对酒店的认同度,提升酒店形象,是作为酒店的管理者一直在思考解决的问题。一直以来,酒店管理者肯定不希望在招待客户时出现过多的差错,如果能够利用酒店客房管理系统进行日常的酒店业务管理,可以减少员工工作量,减少差错率,成倍的提高工作效率。该系统的运用在提升酒店服务质量的作用巨大,酒店管理者——特别是中高层管理者——在了解到它的作用后肯定会乐于接受并有力支持这一系统在酒店应用。因此,该系统在管理方面具备可行性。 (3)技术可行性
酒店开发管理系统采用VB6.0作为主要的开发工具,数据库采用Access2000,技术方面已有成熟软件程序支持。对于系统的日常操作与管理,只要对相关的工作人员进行培训,就能够胜任,不必过于担忧在运行中出现重大差错或问题,所以在技术方面具备可行性。
通过上述可行性分析,酒店客房管理信息系统可以帮助酒店实际业务处理,有利于降低管理成本,降低差错率,提高客户满意度与认同度;相关技术成熟易于实现,可以帮助酒店实现计算机辅助的现代化科学管理。
1.4 开发环境
开发语言:javaee
开发平台:windows 7,1G内存,集成显卡。
开发工具:javaee版eclipse,mysql。
2系统需求分析阶段
2.1需求分析阶段的目标
(1)了解酒店客房管理的基本内容;
(2)综合的理解酒店客房管理各层管理人员的部同需求;
(3)了解酒店客房管理的基本业务流程;
(4)了解酒店客房人工管理模式与信息系统的工作概况,以及它们之间的区别;
(5)通过调查和与酒店客房管理人员的交流,了解用户对酒店客房管理系统的业务要求,安全性和完整性要求;
2.2需求分析阶段的任务
处理对象:
系统的处理对象是顾客的预订和退订信息管理、顾客的入住信息管理、顾客的换房信息管理、顾客的退房信息管理和财务统计信息管理。
系统的处理对象涉及以下几个方面的信息:
顾客基本信息(Guest):顾客编号,顾客姓名,顾客性别,顾客身份证号,顾客电话,顾客地址,顾客预交款,顾客积分,顾客的折扣度,顾客余额。
客房基本信息(RoomInfo):客房编号,客房类型,客房价格,客房楼层,客房朝向。
消费项目基本信息(Atariff):消费项目编号,消费项目名称,消费项目价格。
客房物品基本信息(RoGoInfo):客房物品编号,客房物品名称,客房物品原价,客房物品赔偿倍数。
客房状态信息(RoomState):客房编号,顾客编号,入住时间,退房时间,预订入住时间,预订退房时间,入住价格,客房状态修改时间,标志位。
处理功能及要求:
(1)能够存储一定数量的顾客信息,并方便有效的进行相应的顾客数据操作和管理,这主要包括:
顾客信息的录入,删除和修改。
顾客信息的关键字检索查询。
(2)能够对顾客的预订退订信息,入住信息,换房信息,退房信息,消费信息和损坏物品信息进行相应的操作,这主要包括:
顾客预订退订,入住,换房,退房的登记,删除及修改(即对房态信息的登记,删除和修改)。
顾客消费信息的登记,删除及修改。
(3)能够提供一定的安全机制,提供数据信息授权访问,修改和删除,防止随意查询,修改及删除。
(4)对查询,统计的结果能够列表显示。
2.3 需求分析阶段成果
体会与收获
系统需求分析主要是通过对周边的酒店客房管理人员咨询,请教,了解酒店客房管理的规则和运行机制,并通过上网搜索相关酒店客房管理系统的知识,了解酒店客房管理的现状,以及在管理过程中存在的一些问题。由于以前没有接触过酒店管理业务,开始总是不知道哪些业务应该是我们了解的重点。在绘制业务流程图和数据流程图时,遇到很多问题,发现很多烤炉不周到的地方,反反复复的重新考虑,重新分析和完善,才逐步把业务弄清楚,最终顺利的完成了需求分析阶段的任务。
酒店客房管理系统业务流程图和数据流图
本文从酒店客房管理系统的业务为着手点,分别画了预订退订业务流程图、入住业务流程图、换房业务流程图、退房业务流程图。根据业务流程图,画了个业务流程图相对应的数据流图。
业务流程图
(1)预订退订业务流程图
(2)入住业务流程图
(3)退房业务流程图
(4)换房业务流程图
(5)财务统计业务流程图
数据流图
(1)顶层数据流图
(2)第一层数据流图
(3)预订退订数据流
(4)换房数据流图
(5)入住数据流图
(6)财务统计数据流图
(7)退房数据流图
3系统功能总体设计
3.1 系统功能模块划分
结合前面需求分析阶段的结果进行综合处理,确定了客房管理系统需要完成的功能,主要划分为以下模块:
(1)系统
①修改密码 ②添加用户
(2) 客房信息管理
设置客房标准
①添加客房标准 ②修改客房标准 ③删除客房标准
设置客房信息
①添加客房信息 ②修改客房信息 ③删除客房信息 ④查询客房信息
(3)订房信息管理
①查询剩余客房信息 ②添加订房信息
③修改订房信息 ④查询订房信息
(4)结算信息管理
① 添加结算信息 ② 修改结算信息
③ 查询结算信息
3.2 系统的功能模块图
4 系统数据库设计
4.1 酒店客房管理系统数据字典
数据字典是体统中各类数据描述的集合,是进行详细的数据手机和数九分析所获得的主要成果。数据字典在数据库设计中占有很重要的地位。数据字典通常包括数据项、数据结构、数据流、数据存储、处理过程和外部实体6个部分。
数据项是不可再分的数据单位。
数据结构反映了数据之间的组合关系。
数据流是数据结构在系统内传输的路径。
数据存储是数据结构停留或保存的地方也是数据流的来源和去向之一。
处理过程的具体处理逻辑一般用判定表或判定树来描述。数据字典是需要描述处理过程的说明性信息。
本文中包括的数据项.数据结构.处理过程如下
数据项
表4-1 数据项表
数据相编号 数据项名称 数据项别名 数据项类型 长度 取之范围 备注
Dl-1 Gno 顾客编号 Char 20
Dl-2 Gname 顾客姓名 Char 20
Dl-3 Gsex 顾客性别 Char 2 “女”,“男”
Dl-4 Gid 顾客身份证号 Char 18
Dl-5 Gtel 顾客电话 Char 11
Dl-6 Gaddress 顾客地址 Char 20
Dl-18 Rno 客房编号 Char 20
Dl-19 Rtype 客房类型 Char 20
Dl-20 Rprice 客房单价 float
Dl-21 Floor 客房楼层 Int
Dl-22 Toward 客房朝向 Char 10
Dl-24 Atime 入住时间 datetime
Dl-25 Rtime 预订时间 datetime
Dl-26 Ltime 退房时间 datetime
Dl-27 Tntoprice 入住价格 float
Dl-28 Stime1 预订房态修改时间 datetime
Dl-34 Stime2 退订修改房态时间 datetime
Dl-35 Stime3 入住修改房态时间 datetime
Dl-36 Stime4 换房修改房态时间 datetime
Dl-37 Stime5 退房修改房态时间 datetime
数据结构
表4-2 数据结构
数据结构编号 数据结构名 数据结构含义 数据结构组成
DS-1 guest 顾客信息 Gno,Gname,Gsex,Gid,Gtel,Gaddress,Account,balance,grade,discount
DS-2 Into 入住信息 DS-1+DS-8
DS-3 reserve 预订信息 DS-1+DS-8
DS-4 return 退订信息 DS-1+DS-8
DS-7 RoomType 客房信息 Rno,Rtype,Rprice,Floor,Toward
DS-8 RoomState 房态信息 Rno,Atime,Rtime,RLtime,Ltime,Gno,Intoprice,Stime
DS-9 consum 消费清单 Cono,Gno,account,balance,Amoney,Dmoney,Cotime
DS-10 Amuse 顾客消费单 DS-6+DS-1
数据处理
表4-3 处理过程
处理逻辑编号 处理逻辑名称 简述 输入的数据流 处理 输出的数据流
P1.1 核对客户要求 前台核对是否有满足顾客要求的客房 顾客预订数据,房态信息,客房类型 根据客房类型和房态信息,核对是否有满足顾客要求的客房并反馈给顾客 满足要求的顾客信息和顾客信息.
P1.2 预订登记 将顾客分配到满足要求的客房,在前台记录 满足要求的顾客信息和客房信息 根据满足要求的信息,办理登记,并修改客房状态 预订单,将预订单存档并反馈给客户
P1.3 退订登记 对顾客退订处理 顾客的退订数据 根据顾客的退订信息,客房状态 房态信息,根据房态信息更新房态信息
P2.1 入住登记 前台对已定房顾客进行登记 顾客给出的预定信息 办理入住手续,修改房态信息 更改后的房态信息,新的入住记录
P3.1 核对客户要求 查看酒店的空客房是否满足客户要求 顾客换房要求 根据客户的要求,查看是否有满足客户要求的空客房 满足/不满足信息,查询余额要求
P3.2 查询余额 对顾客的消费余额进行查询 查询余额请求 根据换房顾客的消费清单,查询余额是否能满足所换房价格 余额足/不足信息
P3.3 登记换房 对换房者进行换房登记 余额足够信息 对换房者进行登记,并修改房态信息 房态信息
P3.4 开续款通知 对换房顾客填写需款通知 足额不足信息 填写续款通知 续款通知单
P4.1 退房登记 前台对顾客的退房进行确认 顾客退房数据 根据顾客的退房信息,更新房态信息 房态信息,将新的房态信息存档
P4.2 打印消费清单 根据财务部的顾客消费汇总,打印顾客消费情况 消费数据,来源财务部 根据财务部的顾客消费汇总,打印消费清单,反馈给顾客 消费清单,反馈给顾客其消费情况
P5.1 统计消费项目 根据顾客的消费项目和客房部拥有的消费项目核对顾客的消费情况 顾客的消费项目,客房部拥有的消费项目 根据客房部拥有的消费项目统计顾客的消费项目 消费项目记录,传递给财务部
P5.2 汇总顾客消费项目 对顾客的各种花费进行汇总 顾客的消费,损坏物品的赔偿,顾客信息及会员信息 对顾客的所有经费进行汇总如是会员进行优惠 一位顾客的所有花费
数据库模式和用户子模式定义
数据库模式定义
表4-4顾客基本信息(guest)
列名 数据类型 可否为空 说明
Gno char(20) not null 顾客编号
Gname varchar(20) not null 顾客姓名
Gsex varchar(2) not null 顾客性别
Gid char(19) not null 顾客身份证
Gtel char(11) 顾客电话
Gaddress varchar(20) 顾客地址
表4-5房间基本信息(Roominfo)
列名 数据类型 可否为空 说明
Rno char(10) not null 房间编号
Rtype varchar(20) not null 房间类型
Rprice money not null 房间价格
Rfloor int not null 房间楼层
Toward char(10) not null 房间朝向
表4-6房态信息RoomState
列名 数据类型 可否为空 说明
Rno char(10) not null 房间号
Gno char(20) not null 顾客号
Atime datetime 实际入住时间
Ltime datetime 实际退房时间
Rtime datetime 预订入住时间
Rltime datetime 预订退房时间
IntoPrice money 入住价格
Days int 入住天数
flag varchar(4) 预订入住标志位
4.2概念设计阶段
将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计。它是整个数据库设计的关键。
概念设计阶段的任务和目标
(1)选择底层数据流为切入点,通常选择实际系统中的子系统;
(2)设计分E-R图,即各子模块的E-R图;
(3)生成初步E-R图,通过合并方法,做到各子系统实体、属性、联系统一;
(4)生成全局E-R图,通过消除冲突等方面。
在本酒店客房管理系统中,从第二层数据流程图下手,分析个第二层数据流程图和数据字典,知道整个系统的功能围绕“顾客”、“客房”和“消费”的处理。根据尸体与属性间的两条准则:○1作为“属性”,不能再具有需要描述的性质。○2“属性”不能与其他实体具有联系。数据流程图2.8、图2.9、图2.10、图2.11可综合成预订退订、入住、换房和退房的分E-R图3.1,数据流程图2.12可抽象为分E-R图3.2.然后采用逐步集成的方法将各分E-R图合并,消除不必要的冗余和冲突后生成了基本E-R图3.3.
阶段结果
(1)根据不同的对象,从第二层数据流程图入手,分别画出各分E-R图:
(a)从数据流图图2.8、图2.9、图2.10和图2.11抽象出的E-R图:
(b)从数据流图图2.12抽象出的E-R图:
(c)从分E-R图图3.1和图3.2经消除冲突和冗余合成的总E-R图:
(2)各E-R图各实体的属性如下所示:
顾客:Guest(Gno,Gname,Gsex,Gid,Gtel,Gaddress,Account,Ggrade ,discount,balance)
客房基本信息:RoomInfo(Rno,Rtype,Rprice,Rfloor,Toward)
消费项目:Atariff(Atno,Atname,Atprice)
客房物品信息:RoGoInfo(Goodsno,Goodsname,Oprice,Dmultiple)
各E-R图各联系的属性如下所示:
预订:Reserve(Stime1,Rtime, Rltime)
退订:Back(Stime2)
入住:Into(Stime3,Atime,Ltime)
换房:Change(Stime4)
退房:Return(Stime5)
消费:Consumelist(Amount,Wtime)
4.3逻辑设计阶段
逻辑设计的任务和目标
以上的概念设计阶段是独立于任何一种数据模型的,但是逻辑设计阶段就与选用的DBMS产品发生关系了,系统逻辑设计的任务就是将概念设计阶段设计好的基本E-R图转换为选用DBMS产品所支持的数据模型相符合的逻辑结构。具体内容包括数据组织(将E-R图转换成关系模型、模型优化、数据库模式定义、用户子模式设计)、数据处理(画出系统功能模块图)两大任务。
数据组织
将E-R图转换为关系模型
实体型转换为关系模式。实体的属性就是关系的属性,实体的码就是关系的码。对于实体间的联系则有以下不同的情况:
一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。
一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。
一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合具有相同码的关系模式可合并。
由于顾客与客房的联系方式为1:n(一对多),可以将其之间的联系与n端实体客房合并,也可以独立作为一种关系模式,我们选择将其作为独立的关系模式。由于顾客与客房物品,消费项目的联系方式为n:n(多对多),可以将其之间的联系转化为独立的关系模式,具体的基本E-R图向关系模型的转化如下:
顾客:Guest(Gno,Gname,Gsex,Gid,Gtel,Gaddress,Account,Ggrade ,discount,balance)
客房基本信息:RoomInfo(Rno,Rtype,Rprice,Rfloor,Toward)
消费项目:Atariff(Atno,Atname,Atprice)
客房物品信息:RoGoInfo(Goodsno,Rno,Goodsname,Oprice,Dmultiple)
预订:Reserve(Gno,Rno,Stime1,Rtime, Rltime)
退订:Back(Gno,Rno,Stime2)
入住:Into(Gno,Rno,Stime3,Atime,Ltime)
换房:Change(Gno,Rno,Stime4)
退房:Return(Gno,Rno,Stime5)
消费:Consumelist(Atno,Gno,Amount,Wtime)
物品赔偿单 GoAmInfo(Goodsno,Gno,Rno, Amendstime ,Dnum)
(注:画双线的为主码)
模型优化
关系模式
Guest,RoomInfo,Atariff,RoGoInfo,Reserve,Back,Into,Change,Return,Consumelist,GoAmInfo不存在非主属性对主属性的部分函数依赖,也不存在传递函数依赖,已经达到了3NF,但是关系模式Reserve,Back,Into,Change,Return的主码都相同,如果用5个关系模式表示这几个关系,有很大的冗余,所以将5个关系模式优化为关系模式:
房态基本表:RoomState(Gno,Rno,Atime, Ltime,Rtime, Rltime,IntoPrice,Days,Stime,flag),其中flag为标志位,表示客房的状态为预订,入住,空。
数据库模式定义
数据库的模式定义包括三个方面:
(1)数据的逻辑结构;
(2)数据之间的联系;
(3)数据有关的完整性约束、安全性要求。
用户子模式定义
将概念模型转换为全局逻辑模型后,还应该根据局部应用的需要,结合具体DBMS的特点,设计用户的外模式。用户模式注重考虑用户的习惯与方便。包括:
使用更符合用户习惯的别名。
可以对不同级别的用户定义不同的View,以保证系统的安全性。
简化用户对系统的使用。
关系模式:
PW(u_no,u_na,e,password);
Guest(Gno,Gname,Gsex,Gid,Gtel,Gaddress,Account,Ggrade ,discount,balance)
RoomInfo(Rno,Rtype,Rprice,Rfloor,Toward)
Atariff(Atno,Atname,Atprice)
RoGoInfo(Goodsno,Rno,Goodsname,Oprice,Dmultiple)
Reserve(Gno,Rno,Stime1,Rtime, Rltime)
Back(Gno,Rno,Stime2)
Into(Gno,Rno,Stime3,Atime,Ltime)
Change(Gno,Rno,Stime4)
Return(Gno,Rno,Stime5)
Consumelist(Atno,Gno,Amount,Wtime)
GoAmInfo(Goodsno,Gno,Rno, Amendstime ,Dnum)
分解分析:
1)各分量都是不可分割的数据项。满足第一范式;
2)每一个关系中的非码属性都完全函数依赖于码,符合第二范式;
3)每个关系中的主属性不传递依赖关系中的每个关系键,符合第三范式;
4)关系中所有非主属性对每个码都是完全依赖,且所有主码对于每个不包含它的码也是完全函数依赖,没有任 何属性完全函数依赖非码的任何一组属性
4.4数据库设计实现
图4-16
图4-17图4-18图4-19图4-20图4-21
5系统实现
1.登录界面
2.主页面
3.房间预订管理
4.添加房间信息
5.客户信息管理
6.账单查询
6 系统测试
6.1 测试方法
由于软件错误的复杂性,软件测试需要综合应用测试技术,软件测试步骤为单元测试、集成测试、确认测试和系统测试。 单元测试是对源程序中每一个程序单元进行测试,检查各个模块是否正确实现了规定的功能,从而发现模块在编码中或算法中的错误。该阶段涉及编码和详细设计的文档。各模块经过单元测试后,将各模块组装起来进行集成测试,以检查与设计相关的软件体系结构的有关问题。确认测试主要检查已实现的软件是否满足需求规格说明书中确定的各种需求。系统测试将已确定的软件与其他系统元素(如硬件、其他支持软件、数据和人工等)结合在一起进行测试。
6.2 基本功能测试
添加客房标准:
结果显示:
修改客房标准:
显示结果:
查询剩余未定住的客房:
6体会
两周的短暂又充实的课程设计终于结束了,对我来说,却是一次全面的综合训练。这次
课程设计不仅仅是把这个学期的数据库的知识总结,更是自入学以来一次知识大检查。这个不单要掌握数据库原理,还要熟练掌握一门编程语言。我是用这个学期刚学会的VS2010开发环境中的C#语言,设计的是Windows窗体界面运行模式。这样不仅可以学习数据库,而且还可以对C#方面的知识进行巩固。知识是相互联系的,没有哪一门是单独而存在的。所以,要学好一门课,就是应该横向思考,多联系,这样会学得更深刻。
这次课程设计,我选的是“宾馆客房管理系统”,这个课题比较贴近日常生活,所以要考虑到宾馆的实际情况,根据实际情况来进行需求分析,构思好功能模块。这是设计过程的基础,也是最困难,最耗时的一步。作为“地基”的分析是否做得充分与准确,决定了在其上构建数据库大厦的速度与质量。需求分析做得不好,甚至会导致整个数据库设计返工重做。接着就是概念结构设计,这也是整个数据库设计的关键,它通过对用户需求进行综合,归纳与抽象,形成一个独立具体的概念模型。再接着就是逻辑结构设计了,最后就是编程工作了。只要前面的概念设计,逻辑设计没有问题,数据库很快就可以搞定了。
接下来的也可以说是最难的了,软件编程。总的来说,这个系统基本完成了课题的要求,我根据实际情况又增加些功能,让它更加的人性化,满足实际的需求。在编程的途中,遇到的问题也可谓是多种多样。先是因为一些控件没有响应事件,导致运行的时候点击没有效果,然后在SQL语句中的字符串的单引号,双引号标注出现问题,同样程序调试时没有报错,运行时出错。最后是在父窗体子窗体传递参数上,根据我开始设计的要求,用户登录到主界面里可以修改自己的密码,所以就要把用户在登陆界面输入的用户名传递到主界面中,然后调到用户名来修改自己的密码。经过重重考验和解决了各种问题之后,这个系统也终于诞生了!
经过好几天奋斗,看到这个结果,总的来说,还是很欣慰的。这个系统还不够完美,还有一些地方可以做得更好。这也更加激励着我,在以后的学习途中,要掌握好每一部分的知识,培养自己的实际操作能力,可以编出更加完美,用户友好的系统