基于J2EE酒店管理系统设计与实现.docx
《基于J2EE酒店管理系统设计与实现.docx》由会员分享,可在线阅读,更多相关《基于J2EE酒店管理系统设计与实现.docx(31页珍藏版)》请在冰豆网上搜索。
基于J2EE酒店管理系统设计与实现
基于J2EE酒店管理系统设计与实现
论文作者姓名:
申请学位专业:
计算机科学与技术
申请学位类别:
工学学士
指导教师姓名(职称):
论文提交日期:
基于J2EE酒店管理系统设计与实现
摘要
为了提高酒店的经济效益,对人流、物流、资金流进行科学管理和有效控制,开发一个稳定可靠的酒店管理系统用以提高员工的工作效率与降低各种经营成本具有现实的必要性和重要意义。
本系统基于JAVA的Application模式,采用JAVA的图形化开发工具JCreator和Access2000数据库进行开发,实现了前台管理,客房管理与系统设置功能,其中前台管理由住宿登记、追加押金与退房结账等模块构成,帮助操作员进行住宿登记,通过追加押金使房客继续入住或直接退房结账;客房管理由客房查询与房态查看模块构成,帮助管理人员全面了解入住信息和客房状态,及时对客房清理或维修;系统设置由操作员管理、权限设置与房态设置等模块构成,使操作员实时地对操作人员的权限进行有效地管理,对客房的设施进行维护和更新。
本系统具有良好的可移植性,占用系统资源少,方便用户使用,能满足酒店管理的实际需求。
关键词:
酒店管理;JAVA;JCreator;SQL
TheDesignandRealizationofHotelManagementSystemBasedonJ2EE
Abstract
Inordertoincreaseeconomicbenefitandcontroltheflowofpeople,goodsalsocapitaleffectively,itisquitenecessaryandsignificancetodevelopastableandreliablehotelmanagementsystemtoimprovestaffproductivityaswellasloweroperating.
ThissystemisdesignedbyusingtheIDEofJCreatorandAccess2000database.Atthesametime,theJAVAapplicationmodeisusedinthismanagementsystem.Itarecomposedofonstagemanagement,guestroommanagementandsystemsettings.Theonstagemanagementincludesthreesubfunctions,i.e.residentialregistration,roommanagement,systemdefault.Thesefunctionshelpoperatorsforthehotelregistrationorthroughadditionaldeposittoenablethetenanttocontinuestayingordirectbilling.Theguestroommanagementhastwosub-managementfunctions,i.e.roominquiringandthestateviewing.Thesefunctionscanhelpmanagertounderstandtheroomoccupancyandstatusinformationinatimelymannertousecleaningroomsormaintenance.Thesystemsettingincludesthreefunctions,i.e.operatormanagement,jurisdictionsettingsandroomstatessettings.Theoperatormanagementcanreplyareal-timeoperationoftheauthorityofeffectivemanagement,safeguardandupdatetheinformationofroomsfacilities.
Thissystemcanbetransplantedandpossessminimalresources.Itcouldbeusedeasilyandsatisfytheneedofhotelmanagement.
Keyword:
hotelmanagement;JAVA;JCreator;SQL
.目录
论文总页数:
25页
1引言
1.1设计背景
随着计算机技术的飞速发展,信息时代的到来,信息改变了我们这个社会。
各类行业在日常经营管理各个方面也在悄悄地走向规范化和信息化。
酒店管理的信息化程度体现在将计算机及信息技术应用于经营与管理,以现代化工具代替传统手工作业。
无疑,使用信息化管理使客房管理更先进、更高效、更科学,信息交流更迅速。
酒店管理系统是酒店经营管理中不可缺少的部分,它的内容对于经营的决策者和管理者来说都至关重要,所以酒店管理系统应该能够为用户提供充足的信息和快捷的查询手段。
但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多弊端,如:
效率低、保密性差,容易出现差错等,且对于查询空房间及已定房间等极为不方便。
酒店管理是将酒店管理与计算机技术紧密结合起来,对酒店的日常事务进行现代化的科学管理,以此来提高酒店形象、档次和服务水准。
这不仅使工作人员的劳动强度降低,工作效率增加,而且能快速地调度酒店各部门的工作,实时动态地掌握酒店的经营状况,从而为企业带来良好的经济效益和社会效益。
在国内,近年来,随着我国改革开放的发展,国内的酒店服务业得到了日新月异的发展。
现代酒店作为一体化的接待场所,相当于一个小型社会。
对一个城市而言,酒店业也起到了举足轻重的作用。
作为一种以服务为主的无烟工业,酒店在其运作期间,服务水平的高低,直接影响到酒店的形象和声誉,如服务安排、调度等。
以客房管理为核心,为用户提供迅速、高效的服务,减免手工处理的繁琐与误差的酒店管理系统能提高酒店的服务质量,再配合现代化的酒店管理,能获得更好的经济效益。
1.2设计意义
面对庞大的信息量,酒店在正常运营中需要对客房资源、顾客信息、结算信息进行管理,为了轻松的处理酒店庞大的信息量,减少在管理上面的物力和人力,提高酒店的工作效率和经济效益,及时了解各个环节中信息的变更。
开发一个酒店管理系统将会为酒店的管理带来极大的方便,并且降低酒店的管理成本。
通过系统,可以做到信息的规范管理、统计和快速的查询,从而减少在管理方面的工作量。
在某种意义上,酒店管理的信息化已成为现代化酒店的重要标志。
1.3设计方法
本系统利用信息技术提高酒店的管理水平、服务水平。
酒店管理系统主要实现住宿登记、追加押金、退房结账、房态查看以及管理员权限管理等功能。
将动态实时的住宿登记、追加押金等有机地联系在一起;对操作员权限分类管理,有助于即使有效的对客户进行服务,对客房进行全方位的管理,提高服务质量。
使用本系统可以处理相对烦琐的客流量统计和资金的管理。
操作人员可通过房态查看或客房查询来进行住宿登记,也可通过追加押金使房客继续入住或直接退房结账。
操作员管理可实时地对操作人员的权限进行有效地管理和设置从而使酒店在管理上分工明确。
本系统运用JAVA的图形化开发工具JCreator和Access2000数据库原理等技术,以及采用JAVA的Application模式进行开发设计。
2开发工具与平台
为了适用系统运行平台的变化性,本系统选择当今流行的Java语言作为系统的开发语言。
Java语言具有跨平台的优势,相对于其他语言来说整个系统的可移植性非常高,对于平台的依赖关系非常小,只要可以安装JDK,系统就可以正常运行。
本酒店管理系统确定的软件系统环境:
●需要安装Sun™公司发布的JDK1.5
●操作系统:
WinXP
●数据库软件:
Access2000
●开发软件为:
JCreator
硬件系统环境配置:
●CPU:
P4或更高处理器
●内存:
256MB
●硬盘:
20G及以上
●显示器:
VGA或更高分辨率的显示器
●相应的输入输出设备
2.1JAVA语言
Java是SUN公司开发的一种面向对象的新一代网络编程语言,可在各种不同的机器、操作系统的网络环境中进行开发,具有解释型语言(如Basic语言)和编译型语言(如C语言)的特性。
用Java开发的程序可以在网络上传输,并运行于任何客户机上。
其主要特点如下:
a、简单性。
Java语言通过提供最基本的方法来完成指定的任务,只需理解一些基本的概念,就可以编写出适合于各种情况的应用程序。
b、面向对象。
Java语言的设计集中于对象及其接口,提供简单的类机制以及动态的接口模型。
c、可靠性。
Java在编译和运行程序时,对可能出现的问题进行检查,以消除错误的产生。
提供自动垃圾收集来进行内存管理,防止程序员在管理内存时容易产生的错误。
通过集成的面向对象的例外处理机制,在编译时,Java提示出可能出现但未被处理的例外,帮助程序员正确地进行选择以防止系统的崩溃。
d、安全性。
用于网络、分布式环境下的Java必须要防止病毒的入侵。
Java不支持指针,一切对内存的访问都必须通过对象的实例变量来实现,防止程序员使用“特洛伊”木马等欺骗手段访问对象的私有成员,同时也避免了指针操作中容易产生的错误。
e、体系结构中立。
Java解释器生成与体系结构无关的字节码指令,只要安装Java运行系统,Java程序就可在任意的处理器上运行。
f、可移植性。
与平台无关的特性使Java程序可以方便地被移植到网络上的不同机器。
同时,Java的类库中也实现了与不同平台的接口,使这些类库可以移植。
g、解释执行。
Java解释器直接对Java字节码进行解释执行。
2.2JDK工具
JDK(JavaDevelopmentKit)是Java开发工具包的缩写,是一种用于构建在Java平台上发布的应用程序、applet和组件的开发环境,它是一切Java应用程序的基础,所有的Java应用程序是构建在这之上的。
JDK由一个标准类库和一组建立、测试及建立文档的Java实用程序组成。
其核心JavaAPI是一些预定义的类库,开发人员需要用这些类来访问Java语言的功能。
JavaAPI包括一些重要的语言结构以及基本图形,网络和文件I/O。
JavaAPI的非I/O部分对于运行Java的所有平台是相同的,而I/O部分则仅在通用Java环境中实现。
其中包括了Java编译器、JVM、大量的Java工具以及Java基础API里面是Java类库和Java的语言规范,同时Java语言的任何改进都应当加到其中,作为后续版本发布。
2.3JCreator工具
JCreator是一个用于Java程序设计的集成开发环境,具有编辑、调试、运行Java程序的功能。
同时也具有语法着色、代码自动完成、代码参数提示、工程向导、类向导等功能。
第一次启动时提示设置JavaJDK主目录及JDKJavaDoc目录,软件自动设置好类路径、编译器及解释器路径,还可以在帮助菜单中使用JDKHelp。
但目前版本对中文支持性不好。
2.4SQL数据库
SQL数据库的体系结构基本上也是三级模式。
SQL术语与传统的关系模型术语不同。
在SQL中,外模式对应于视图,模式对应于基本表,元组称为“行”,属性称为“列”。
内模式对应于存储文件。
SQL数据库的体系结构特点:
A、一个SQL模式(Schema)是表和约束的集合。
B、一个表(Table)是行(Row)的集合,每行是列(Column)的序列,每列对应一个数据项。
C、—张表可以是一个基本表,也可以是一个视图,基本表是实际存储在数据库中的表。
视图是从基本表或其他视图中导出的表,本身不独立存储在数据库中,也就是说数据库中只存放视图的定义而不存放视图的数据,视图是一个虚表。
D、一个基本表可跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表,一个表可以带若干索引,索引也存放在存储文件中。
每个存储文件与外部存储器上一个物理文件对应。
存储文件的逻辑结构组成了关系数据库的内模式。
用户可以用SQL语句对视图和基本表进行查询等操作。
在用户看来,视图和基本表是一样的,都是关系(即表格)。
SQL用户可以是应用程序,也可以是终端用户。
SQL语句可嵌入在宿主语言的程序中使用;SQL语言也能作为独立的用户接口,供交互环境下的终端用户使用。
2.5ACCESS数据库
ACCESS可运行于各种MicrosoftWindows系统环境中,由于继承了Windows的特性,不仅易于使用,而且界面友好,如今在世界各地广泛流行。
它并不需要数据库管理者具有专业的程序设计水平,任何非专业的用户都可以用它来创建功能强大的数据库管理系统。
而且它符合关系数据模型,需要完整性约束。
还有它不需要配置数据源,可移植性好,给用户带来了极大的方便。
3系统需求
3.1需求分析
需求分析是从客户的需求中提取出软件系统能够帮助用户解决的业务问题,现在我国的中小型酒店客房管理水平还停留在纸介质的基础上,这样的机制已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。
而购买大型通用酒店管理系统,对小型酒店老板来说,需要付出昂贵的代价,而且管理项目不一定完全符合小型酒店客房管理的要求。
因此根据企业目前实际的酒店管理情况开发一套酒店管理系统是十分必要的。
通过对用户业务问题的分析,规划出系统的功能模块,即定义用例。
这个步骤是对理解需求的升华,直接关系到该系统的质量。
面对酒店发展过程中日益出现的问题及各种情况,在实施酒店客房管理系统之后,应解决以下问题:
信息化管理,可随时掌握客房、住宿、操作员等信息;系统内部控制严密,数据存储安全可靠;系统工程界面友好美观,操作简易,查询多样且方便;提高工作效率,减少工作成本。
3.2系统流程
系统流程如图3-1所示,房客来到酒店首先要进行住宿登记,同时管理员对房态进行查看如有空闲客房,房客就可以手牌入住。
当退房结账时,如果已经超出宿费,就要进行挂帐退房,或客人直接结账。
当宿费使用完毕,如需要继续入住时,就要追加押金,重新登记。
另外管理员可以随时进行房态查看,及时了解客房信息,对房客进行宿费提醒,更好的提高管理效率。
图3-1系统流程图
3.3性能需求
本系统主要是开发一个酒店管理系统,主要功能有前台管理:
包括住宿登记、追加押金、退房结账;客房管理:
包括客房查询、房态查看;系统设置:
包括操作员管理、权限设置、房态设置等。
本系统可应用于小型的酒店管理,如果想应用于大型酒店管理,需要进行数据库替换和功能模块扩展。
本系统要求服务人员具备一定的计算机基础知识,通过简单培训便能较为熟练的操作计算机和操作本系统。
4总体设计
4.1功能分析
系统主要功能模块如图4-1所示,本系统利用信息技术提高酒店管理的水平,并希望通过本系统的开发使用使得酒店能对房客住宿及客房状况等一系列业务进行系统地管理。
系统由3个部分,共8个完整的模块构成。
其中具体部分是:
前台管理、客房管理和系统设置。
具体子模块如下:
●前台管理:
包括住宿登记、追加押金、退房结账
●客房管理:
包括客房查询、房态查看
●系统设置:
包括权限设置、房态设置、操作员管理
图4-1系统结构图
4.2数据库设计
本酒店管理系统采用采用关系数据库模型,用Access2000作为数据库管理系统(DBMS),对数据进行存储,在数据库应用系统的开发过程中,数据库的结构设计是一个非常重要的问题。
数据库设计是指对数据库中各个表结构的设计,包括信息保存在哪个表格中,各个表的结构如何,字段属性如何,以及各个表之间的关系。
数据库设计的好坏将直接对应用系统的效率以及实现的效果产生影响,好的数据库设计会减少数据库的存储量,保证比较高数据完整性和一致性,同时提高系统的响应速度,简化基于此数据库的应用程序的实现等等。
在本系统中存在三个数据对象包括:
房客、客房、管理员。
并且这三者分别存在这样的属性。
房客登记时包括(入住时间、姓名、性别、押金等基本信息);管理员包括(登陆名和密码、管理权限等);客房包括(房间类型、房间状态、房间号码、价格等)。
通过这些对象的不同结构和属性,以及它们包含的各种信息,相互间作用形成数据流,可以以此得到E-R图如图4-2所示。
图4-2系统E-R图
根据上面的关系和分析设定本系统数据库名为hoteldata.mdb,包含以下3个表:
操作员表(admin)、客房信息表(roominfo)、房客信息表(tenant)。
操作员表(admin)如表4-3所示。
表4-3操作员表(admin)
字段名称
字段名含义
数据类型
字段大小
Admin(主键)
用户名
文本
15
pin
密码
文本
15
legalpower
管理权限
文本
15
enter
是否进入系统
是/否
1
前台管理
操作权限
是/否
1
客房管理
操作权限
是/否
1
查询统计
操作权限
是/否
1
挂帐管理
操作权限
是/否
1
房态设置
操作权限
是/否
1
权限设置
操作权限
是/否
1
应用于系统设置模块,对管理员的信息进行查看,对权限进行修改或者增加等操作。
该表中主键是Admin字段,其余字段如前台管理、客房管理、查询统计、房态设置及权限设置等均表示管理员是否有权限操作相关模块。
客房信息表(roominfo)如表4-4所示。
表4-4客房信息表(roominfo)
字段名称
数据类型
字段大小
房间号(主键)
文本
50
房间类型
文本
10
价格
数字
双精度
房态
文本
10
使用设施
文本
50
备注
备注
备注
用于对客房的信息进行查看和管理,比如说了解房间是否有人入住,是否在修理过程等。
该表的主键为房间号字段,值为非空。
房客信息表(tenant)如表4-5所示。
表4-5房客信息表(tenant)
字段名称
数据类型
字段大小
编号(主键)
文本
50
房客姓名
文本
20
性别
文本
6
证件类型
文本
10
证件号码
文本
50
籍贯
文本
50
联系方式
文本
50
房间号
文本
50
房间类型
文本
10
入住日期
文本
50
退房日期
文本
50
是否挂帐
是/否
1
宿费及押金
数字
双精度型
折扣率
数字
单精度型
住宿备注
备注
备注
操作员
文本
50
用于对房客的信息查看和管理,比如说房客的宿费状况,有多少房客入住,入住的是什么档次的房间等等。
该表的主键为编号字段。
5详细设计
详细设计阶段就是把解决方法具体化,设计出详细规格说明,包含必要的细节,程序员可以根据它们写出实际的程序代码,详细设计也称模块设计,在这个阶段将详细地设计每个模块具体的实现功能。
5.1登陆模块
A、实现目标
操作员进入系统前,必须通过系统登录进入主程序界面,系统登录界面如图5-1所示,主要实现以下功能:
●确认用户的身份及使用权限
●对系统信息起到保密作用
图5-1系统登录界面
B、核心代码
……//其余代码段略
Stringa=((String)adm.getSelectedItem()).trim();
//选中下拉列表框中的名字
Stringp=newString(psw.getPassword());
//选中用户输入的密码
rs=stmt.executeQuery("select*fromadminwhereadmin='"+a+"'andpin='"+p+"'");//校验用户名和密码
5.2前台管理模块
前台管理模块分为:
住宿登记、追加押金、退房结账。
5.2.1住宿登记
A、实现目标
用户单击主菜单前台管理下的住宿登记子菜单,进入住宿登记子菜单界面,如图5-2所示,住宿登记子菜单主要实现如下功能:
●显示入住房客基本信息
●显示住宿房间基本信息
●对房客及入住房间信息进行住宿登记
图5-2住宿登记界面
B、核心代码
publicvoidaddTenantIntoTable(String[]tenant){
……
stat.execute("insertintotenantvalues('"+tenant[0]+
"','"+tenant[1]+"','"+tenant[2]+"','"+tenant[3]+"','"+
tenant[4]+"','"+tenant[5]+"','"+tenant[6]+"','"+
tenant[7]+"','"+tenant[8]+"','"+tenant[9]+"','"+
tenant[10]+"',"+tenant[11]+","+tenant[12]+","+tenant[13]+
",'"+tenant[14]+"','"+tenant[15]+"')");
//初始化房客登记信息
stat.executeUpdate("updateroominfoset房态='入住中'
where房间号='"+tenant[7]+"'");
……//同时修改客房状态
}
5.2.2追加押金
A、实现目标
用户单击主菜单前台管理下的追加押金子菜单,进入追加押金子菜单界面,如下图5-3所示,追加押金子菜单主要实现如下功能:
●显示入住房客基本信息
●显示房客已付费用等基本信息
●对房客及续住信息进行续住登记
图5-3追加押金界面
B、核心代码
publicvoidaddingCash(){
……
stat.executeUpdate("updatetenantset退房日期='"+date+"',
宿费及押金="+cash+",操作员='"+op+"'where房间号='"+roomnumber+"'");
conn.close();//对房客的信息进行重新登记
……
}
5.2.3退房结账
A、实现目标
用户单击主菜单前台管理下的退房结账子菜单,进入退房结账菜单界面,如图5-4所示,退房结账子菜单主要实现如下功能:
●显示入住房客基本信息
●显示房客已付费用及应付费用等基本信息
●根据费用情况来决定是否进行挂帐退房操作还是退房结账操作
图5-4退房结账界面
B、核心代码
publicvoidchargeToAccount(Stringroomnumber){
……
stat.executeUpdate("updatetenantset是否挂帐=true
where房间号'"+roomnumber+"'");
stat.executeUpdate("updateroominfoset房态='空闲中'
where房间号='"+roomnumber+"'");
//挂帐时,更新数据库
……
}
pub