基于Web的酒店管理系统的设计与实现
2018-10-31李传锴叶方超匡芳君
李传锴, 叶方超, 匡芳君
(温州商学院 信息工程学院, 浙江 温州 325035)
引言
研究可知,现代酒店在管理上已全面采用了信息化、网络化的工作方式[1]。目前,大多酒店管理系统均采用客户与服务器(Client/Server,C/S)模式体系结构[2],每个终端都需要安装一个客户端,对于不同操作系统就需要开发不同的版本,操作系统一旦升级还需要提供后续的技术支持。不仅如此,这一工作管理模式还存在可移植性差、可拓展性和可维护性仍属欠佳等缺陷。因此,亟待研发一套功能完善且基于Web的酒店管理系统来有效降低维护和运行成本[3],提高工作效率。基于此,在本次研究中就采用了B/S模式和MVC框架,利用JDBC与SQL Server数据库[4]设计开发了酒店管理系统,使其具有很强的灵活性和复用性。
1 应用关键技术
1.1 JSP
JSP全称为Java Server Pages,中文名叫Java服务器页面,是一种动态网页开发技术。设计时,使用JSP标签在HTML网页中插入Java代码,从而形成JSP文件。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序开发变得迅速和容易。
1.2 MVC框架
MVC[5]全名是Model View Controller,是模型(Model)-视图(View)-控制器(Controller)的缩写。这是一种软件设计典范,即用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改良和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC技术的研发拓展重点就是用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
2 系统设计分析
2.1 用户需求分析
本文研发的酒店管理系统分前台和后台。其中,前台由客户使用,后台由酒店工作人员使用。所以前台需要针对客户做到界面美观,且操作简单、易懂。而后台针对酒店工作人员,需要涉及到入住管理、客房管理、财务管理、用户管理以及员工管理等一系列操作环节,不仅要做到功能规划完备,还要有利于系统维护人员日后的升级维护,以保证系统的安全性、便利性、高效性等。
2.2 功能需求分析
本文将客户群体分为超级管理员(老板),一般管理员(酒店职员)和客户(酒店顾客)3类。这3类用户将在系统中以不同的权限进行区分,并通过权限管理来限制其所能处置的操作,另外还设计有多终端适配、多浏览器适配,以适应广泛的用户群体。系统功能模块如图1所示。由图1可见,对于该系统的功能设计可得阐释分析如下。
(1)客户。要能实现账户注册、登录、账户信息修改、客房查询、客房预定、取消预约、订单管理等操作。
(2)一般管理员。要能实现对客房状态管理、客房密码管理、客户入住、客户退房、客户换房、修改客户信息,查询客户信息等操作。
(3)超级管理员。要能实现对酒店客房数量的增减、一般管理员的职位修改和增减、订单查询、财务管理等操作。
图1 系统功能模块图
3 数据库设计
3.1 概念结构设计
本系统包含的实体主要有:客户、房间、订单、员工、入住人等,下面将给出各实体间的E-R图。实体关系图如图2所示。通过E-R图可以梳理解读各个实体之间的配属关系。
图2 酒店管理E-R图
3.2 逻辑结构设计
根据系统研发确定的需求和功能,设计得出该系统的10个关系。该研究内容可做剖析论述如下。
(1)房间表。包括:房间号、房间密码、房型、房价、状态、特殊说明、入住时间、退房时间、可住人数。
(2)房间预定表。包括:房间号、预定入住时间、预定退房时间、状态。
(3)预定表。包括:预定订单号、预定房价、预定时间、入住人数、预定入住时间、预定退房时间、天数、预定人身份证号、手机号、预定人姓名、订房数。
(4)入住人员表。包括:入住人身份证、入住人姓名、入住时间、房间号、入住人编号。
(5)订单表。包括:订单号、房费、押金、商品消费、结账时间、实际入住天数、订房数、经手人、订房人身份证号、订房人手机号、订房人姓名、入住时间、退房时间、入住人数。
(6)订房表。包括:订房编号、订单号、房间号、房型。
(7)财务表。包括:订单号、结账时间、房间号、总金额、经手人。
(8)客户表。包括:账号、密码、姓名、年龄、性别、生日、邮箱、手机号、身份证号、积分、消费金额、入住酒店次数、取消订单次数、密保问题、密保问题答案。
(9)员工表。包括:账号、密码、姓名、性别、年龄、生日、邮箱、手机号、工资、职位、密保问题、密保问题答案。
(10)权限表。包括:账号、权限。
4 系统功能研究与实现
4.1 客户账号功能设计实现
点击首页的右上角即可登录,登录页面如图3所示。不论是管理员、或是客户都在此页面登录,选择专属身份登录即可。客户登录时,在输入正确账号、密码后会跳转到首页,而管理员登录后会跳转到后台管理页面,以展开各类不同的管理型操作。当然,若是不存在该账号或密码错误则会提示登录错误。若无账号,则点击按钮右上方的注册按钮,就可进入注册界面,所有填入的信息确认合法通过后就将提示注册成功。若忘记密码,也可点击忘记密码将其找回,就是通过验证注册时填入的密保预设问题来重置密码。用户也可在登录后点击右上角导航栏处的用户名进入个人中心,对个人信息进行修改或完善。
图3 登录界面
4.2 预定功能的设计实现
用户点击导航栏的房间预定或者在首页选择入住时间和退房时间点击查询,就将进入到房间预定的页面,选择房型后就将进入到提交订单页面。如图4所示,如果输入预定房间数量,确定入住与退房时间,即会弹出订单总价,在核查预定人信息无误并输入入住人数后,就可提交订单,若提示预定成功,则预定完成。用户可在个人中心对订单进行查看或取消订单操作。研发时可参考如下关键设计代码。
public intInsetordertb(Ordertbordertb, inttype){
Connectionconn=getConn();
Stringsql= "{call reserve(?,?,?,?,?,?, ?,?,?)}";
introw= 0;
CallableStatementcstmt= null;
try {
cstmt=conn.prepareCall(sql);
cstmt.setString(1,ordertb.getOordernum());
cstmt.setInt(2,type);
cstmt.setInt(3,ordertb.getResnum());
cstmt.setString(4,ordertb.getOintime());
cstmt.setString(5,ordertb.getOouttime());
cstmt.setString(6,ordertb.getCustid());
cstmt.setString(7,ordertb.getCustphone());
cstmt.setString(8,ordertb.getCustname());
cstmt.setInt(9,ordertb.getRnum());
row=cstmt.executeUpdate();
}catch(SQLExceptione) {
e.printStackTrace();
} finally {
closeConn(conn,cstmt,null);
}
returnrow;
}
图4 提交订单界面
4.3 后台功能模块的设计实现
进入后台需要使用管理员登录才能进入。管理员有2种,一般管理员即是酒店员工,超级管理员即是老板。其中,当一般管理员登录后台后,可调取房间和员工2种功能。此时若选择员工功能,则能查询、并修所有改客户的基本信息。在房间功能内,将能查询所有的房间信息,如图5所示。具体包括:房间的预定情况,以及该房间的历史订单。而若选择员工功能,则在办理入住时可以登记入住人员的信息,修改房间状态以及查询相应的房间密码,并在客户退房后设置修正房间密码。而当超级管理员登录后台后,将能全盘掌控员工、房间、财务中的所有操作。超级管理员在员工功能内,除了能查询和修改客户信息外,还能对一般管理员账户、即员工实施管理,能添加、删除、修正一般管理员账户。在房间功能中,超级管理员还能对客房进行增加和删除。在财务功能中,超级管理员能查看、修改所有订单信息,以及查看系统生成的统计报表。研发时,可参考如下关键设计代码。
图5 房间查询界面
public List
PreparedStatementpstmt= null;
Connectionconn=this.getConn();
List
try {
pstmt=conn.prepareCall("{callselect_password(?)}");
pstmt.setString(1,rid);
rs=pstmt.executeQuery();
while(rs.next()) {
Roomroom=newRoom();
room.setRid(rs.getString("rid"));
room.setRpwd(rs.getString("rpwd"));
passwordList.add(room);
}
}catch(SQLExceptione) {
e.printStackTrace();
}finally {
closeConn(conn,pstmt,rs);
}
returnpasswordList;
}
5 结束语
随着酒店管理业务的现代化和电子商务的不断进步,利用计算机进行酒店管理已成为时下酒店维系正常运营的一个核心组成部分。本文研发设计的酒店管理系统经过测试及试运行,基本实现了需求分析中的全部功能。该系统运行稳定、安全、可靠,而且界面整洁美观,还具有易操作、易维护的特点,同时也是此类管理系统在Web端设计上的成功尝试,由此也保证了移动办公的可行性。但在测试过程中也反映出一些不足,例如查询订单后的分类,房间状态的自动更新等等,需要进一步改进和完善。