基于 Web 的宾馆管理系统
第一章 概述
1.1 项目背景
随着中国经济快速发展,旅游已经成为了人们生活,娱乐跟休闲的一种方式,伴随着旅游业的快速发展,宾馆,宾馆行业同样也日趋火爆,大量的客源入住使得宾馆行业不得不提高自身的管理效率跟经济效益。
宾馆行业充满了激烈的市场竞争,尤其是在客源方面更是竞相追逐,改革开放以来,我国的宾馆,宾馆行业快速发展成为具有一定规模的第三产业,拥有了良好的发展趋势跟广阔的市场前景。
以前的宾馆或者现在宾馆基本上都是采用传统的管理方式,比如说手工处理账务,存在非常大的缺陷,像现金流失的漏洞,人工查访不能及时,房间是否处于空间状态都不能及时的反馈出来,为了提高办公效率,降低成本,同时提高竞争力,使用宾馆管理系统必不可少,在未来的日子里,经济多元化发展,利润增长点的分散,如何面对日常经营中大量的数据处理,如何提高入住客源、提高管理水平、提升宾馆整体服务,加强成本控制。因此好的宾馆管理系统是解决以上问题的有效方式。
1.2 编写目的
相对传统的宾馆管理模式,现代化的宾馆管理系统对于提高宾馆的入住效率以及宾馆的管理方面都有很大的成效,实现宾馆的盈利。
现目前宾馆组织庞大、信息量大,借助计算机来进行现代化的信息管理可以提高经济效益、降低经济成本、提高管理水平和服务质量。以往登记宾馆客人信息内容复杂,信息量大,在操作上浪费了很多的时间,降低了工作效率,而且很大程度上影响了宾馆的服务质量和经济效益,对于这方面突出的问题,我设计了这个宾馆管理系统,目的是为了提高宾馆管理者对旅客以及宾馆的运营,通过计算机系统可对企业的经营状况、宾馆信息情况、客户信息有整体、有准确的了解和掌握,可以提高工作效率和经济效益,使得宾馆管理更加国际化。
同时提升自己的编程实践能力,对数据库有更好的了解。
1.3 软件定义
本课设软件的主要使用客户主要为宾馆管理人员,具有以下功能
1、系统管理功能;(角色管理、用户管理、修改密码等);
2、客房的管理;
3、客房价格的管理;
4、房间预订的管理;
5、房间入住与结算的管理;
6、 按时间段统计营业收入情况。
1.4 开发环境
系统环境:win10
运行容器:tomcat9.1
开发 IDE:intellij idea17.10
运行浏览器:Chrome
第二章 需求分析
2.1 问题陈述
在未来宾馆行业的竞争中,提高宾馆的管理效率,提供高质量的服务,对客人提出的要求要不断完善,同时及时更新宾馆的实时动态等着将会是宾馆管理的目标与方向,在经济越来越发达的今天,只有将宾馆与计算机实现计算机化,智能化,信息化等发面发展,才能更加提高宾馆的管理效率,经济效益。
该系统主要服务于管理者,可以很好的提高宾馆的运作效率,对于宾馆的信息,客户入住率了如指掌,提高宾馆的经济效益起到很大的帮助。
主要实现了如下功能:
1、系统管理功能;(角色管理、用户管理、修改密码等);
2、客房的管理;
3、客房价格的管理;
4、房间预订的管理;
5、房间入住与结算的管理;
6、 按时间段统计营业收入情况。
2.2 功能分析
由问题陈述及需求设计 6 个模块
1 入住管理模块
功能描述:主要用来登记顾客入住宾馆的详细信息,退房等一些基本手续。
2 房间设置模块
功能描述:对宾馆的房间进行详细的设计,更好的对旅客的入住进行选择,比如说是豪华单人房,双人房之类的,入住的人数,价格方面等详细信息。
3 查询管理模块
功能描述:查询客户的基本信息,住的房间的情况。
4 预定管理模块
功能描述:这项功能主要是用来登记顾客预定宾馆的详细信息,退房等一些基本手续。
5 营业统计模块
功能描述:该模块主要是管理者可以查看宾馆近来的入住率以及分析宾馆的运营情况等方面信息,对管理者来说可以衡量宾馆的经济效益情况。
6 系统信息管理模块
功能描述:主要是用来对系统管理员实现增,删,改等功能。
第三章 数据库逻辑设计
3.1 ER 图及表设计
Figure 1 数据设计表
系统管理员表 systemAdministrator
字段名 | 数据类型 | 含义说明 | 空值情况 |
---|---|---|---|
userID | varchar(10) | 用户 ID | 主关键字 |
userName | VARCHAR(32) | 用户名 | 不为空 |
userPassword | VARCHAR(32) | 登录密码 | 不为空 |
服务员信息表 waiter
字段名 | 数据类型 | 含义说明 | 空值情况 |
---|---|---|---|
waiterID | varchar(10) | 工号 | 主键 |
waiterName | VARCHAR(32) | 姓名 | 不为空 |
waiterBirthday | DATE | 出生日期 | 不为空 |
waiterIDCard | CHAR(18) | 身份证 | 不为空 |
waiterPassword | VARCHAR(32) | 系统登录密码 | 不为空 |
waiterJoinDate | DATE | 入职日期 | 不为空 |
waiterPhoneNumber | CHAR(11) | 手机 | 不为空 |
remarks | VARCHAR(32) | 备注 | 可为空 |
会员信息表 VIPLevel
字段名 | 数据类型 | 含义说明 | 空值情况 |
---|---|---|---|
level | smallint | 会员等级 | 主键 |
discount | decimal(10,2) | 享受折扣 | 可为空 |
totalAmount | bigint | 等级对应消费金额 | 可为空 |
remarks | VARCHAR(32) | 备注 | 可为空 |
房间类型与价格表 roomTypeAndPrice
字段名 | 数据类型 | 含义说明 | 空值情况 |
---|---|---|---|
roomType | VARCHAR(32) | 房间类型 | 主键 |
price | INT | 价格 | 可为空 |
desc
|
VARCHAR(100) | 房间描述 | 可为空 |
url | varchar(40) | 房间图片链接 | 可为空 |
顾客信息表 customers
字段名 | 数据类型 | 含义说明 | 空值情况 |
---|---|---|---|
customerIDCard | CHAR(18) | 顾客身份证 | 主键 |
customerGender | CHAR (4) | 性别 | 不为空 |
customerName | VARCHAR(16) | 姓名 | 不为空 |
customerBirthday | DATE | 出生日期 | 不为空 |
customerVIPLevel | smallint | 会员等级 | 不为空 外键 |
customerPhoneNumber | CHAR(11) | 手机号码 | 不为空 |
totalAmount | INT | 消费金额 | 不为空 |
remarks | VARCHAR(32) | 备注 | 可为空 |
房间信息表 room
字段名 | 数据类型 | 含义说明 | 空值情况 |
---|---|---|---|
roomNumber | CHAR(6) | 房间号 | 主键 |
roomType | VARCHAR(32) | 房间类型 | 不为空 外键 |
roomStatus | CHAR(6) | 状态 | 不为空 |
remarks | VARCHAR(32) | 备注 | 不为空 |
订单信息表 orders
字段名 | 数据类型 | 含义说明 | 空值情况 |
---|---|---|---|
orderNumber | CHAR(32) | 订单号 | 主键 |
orderStatus | CHAR(32) | 订单状态 | 不为空 |
customerIDCard | CHAR(32) | 客户身份证 | 不为空 |
roomNumber | CHAR(32) | 入住房间号 | 不为空 |
checkInTime | DATE | 入住时间 | 不为空 |
checkOutTime | DATE | 离店时间 | 不为空 |
totalMoney | INT | 需付金额 | 不为空 |
waiterID | CHAR(32) | 服务员工号 | 不为空 |
remarks | CHAR(32) | 备注 | 不为空 |
orderTime | DATE | 预定时间 | 不为空 |
订单跟踪信息表 orderTracking
字段名 | 数据类型 | 含义说明 | 空值情况 |
---|---|---|---|
orderNumber | CHAR(32) | 订单号 | 主键 外键 |
orderTime | DATE | 预定时间 | 可为空 |
checkInTime | DATE | 实际入住时间 | 可为空 |
checkOutTime | DATE | 实际退房时间 | 可为空 |
remarks | CHAR(32) | 备注 | 可为空 |
续费延长信息表 timeExtension
字段名 | 数据类型 | 含义说明 | 空值情况 |
---|---|---|---|
operatingID | INT | 操作记录号 | 主键 |
orderNumber | CHAR(32) | 操作的订单号 | 外键 |
oldExpiryDate | DATE | 住房原到期日期 | 不为空 |
newExpiryDate | DATE | 住房新到期日期 | 不为空 |
addedMoney | INT | 需要添加的金额 | 不为空 |
3.2 视图、索引及触发器创建
```
创建收入视图
create view incomeView as
选择退房时间,总金额,订单数量
select checkOutTime co, sum(totalMoney) tot, count(*) num from orders where orders.orderNumber in ( select ordertracking.orderNumber from ordertracking where ordertracking.checkOutTime is not null ) group by co ;
创建客户折扣视图
create view customerVipLevelInfo as
选择客户以及对应的VIP等级
select customers.*, viplevel.discount from customers, viplevel where customers.customerVIPLevel = viplevel.level ;
创建房间信息视图
CREATE VIEW roomInfo
AS
select
room.*, rp.price, rp.
desc
,
rp.url
FROM
room, roomtypeandprice rp
WHERE
room.roomType = rp.roomType ;
创建续费订单视图
CREATE VIEW timeExtensionOrdersView AS
选择订单号,顾客名,手机号码,房间号,入住时间,旧的到期时间,新的到期时间以及增加的金额
SELECT tt.orderNumber, ct.customerName, ct.customerPhoneNumber, od.roomNumber, od.checkInTime, tt.oldExpiryDate, tt.newExpiryDate, tt.addedMoney FROM timeextension tt, orders od, customers ct WHERE tt.orderNumber = od.orderNumber AND od.customerIDCard = ct.customerIDCard ;
创建订单视图
CREATE VIEW orderviews as SELECT orders.orderNumber, orders.orderStatus, customers.customerName, room.roomNumber, room.roomType, orders.orderTime, orders.checkInTime, orders.checkOutTime, customers.customerPhoneNumber, orders.totalMoney FROM orders, room, customers, roomtypeandprice WHERE orders.customerIDCard = customers.customerIDCard AND room.roomType = roomtypeandprice.roomType AND orders.roomNumber = room.roomNumber ORDER BY orders.orderNumber DESC; ```
第四章 软件功能设计
4.1 模块描述
由问题陈述及需求设计 6 个模块
1 入住管理模块
功能描述:主要用来登记顾客入住宾馆的详细信息,退房等一些基本手续。
2 房间设置模块
功能描述:对宾馆的房间进行详细的设计,更好的对旅客的入住进行选择,比如说是豪华单人房,双人房之类的,入住的人数,价格方面等详细信息。
3 查询管理模块
功能描述:查询客户的基本信息,住的房间的情况。
4 预定管理模块
功能描述:这项功能主要是用来登记顾客预定宾馆的详细信息,退房等一些基本手续。
5 营业统计模块
功能描述:该模块主要是管理者可以查看宾馆近来的入住率以及分析宾馆的运营情况等方面信息,对管理者来说可以衡量宾馆的经济效益情况。
6 系统信息管理模块
功能描述:主要是用来对系统管理员实现增,删,改等功能。
Figure 2 系统模块划分
4.2 模块实现
采用迭代式模式开发,仅描述关键操作部分
全部源码位于 http://mafulong.top
index.jsp 登陆界面
表单提交给 /LoginServlet
传输参数值有
admin: 为 0 时登陆系统管理员
为1时登陆宾馆管理员
id: 用户名
password: 密码
Loginservlet
@WebServlet(“/LoginServlet”)
doPost 方法得到 index.jsp 传输的参数包括 admin, id, password
根据 admin 的值:
为0时,select * from systemadministrator,验证系统管理员身份
成功则重定向到/systemManagement/waiterShow.jsp?mop=7
失败则设置error属性并重定向到index.jsp
为1时,select * from waiter,验证宾馆管理员waiter身份
成功则重定向到/roomOrder.jsp?op=1
失败则设置error属性并重定向到index.js
systemAdmin.jsp 系统管理员顶栏
点击管理员树图
重定向到/AdministrationManage?mop=7
点击新增员工
重定向到/AdministrationManage?mop=4
点击编辑员工
重定向到/AdministrationManage?mop=5
点击业务统计
重定向到/AdministrationManage?mop=10
点击注销
重定向到/ServiceManage?op=10
AdministrationManage @WebServlet("/AdministrationManage")
本 servlet 用于办理三种业务:新增服务员 编辑服务员 删除服务员
doget 方法
参数包括 mop
根据 mop 的值:
为 4 时,添加员工,生成一个新的 waiter,根据 request 的参数列表中的值,并通过 Query 类与数据库交互的接口中插入到数据中去,重定向到/systemManagement/waiterAdd.jsp?mop=4
为5时,编辑服务员,显示所有服务员信息,重定向到/systemManagement/waiterEdit.jsp?mop=5
为6时,删除服务员,重定向到/systemManagement/waiterUpdate.jsp?mop=6
为7时,显示管理员树图,重定向到/systemManagement/waiterShow.jsp?mop=7
为10时,显示业务统计图,重定向到/systemManagement/statistics.jsp?mop=10
waiterShow.jsp
管理员树图,显示所有 waiter 信息
如果 mop=7,则获取 waiterID 值,并删除这个 waiter
waiterAdd.jsp
根据 mop 的值:
为4时,新增信息填写,填写各种信息
为5时,新增信息确认,待添加员工信息确认
为6时,新增信息提交,Query.insertWaiter(waiter);
waiterEdit.jsp
显示所有服务员的信息
点击编辑则重定向到/systemManagement/waiterUpdate.jsp?mop=4&waiterID="+waiterid
点击删除则重定向到/systemManagement/waiterShow.jsp?mop=7&waiterID="+waiterid
waiterUpdate.jsp
根据 mop 的值:
为4时,编辑信息填写
为5时,编辑信息确认
为6时,编辑信息提交,Query.editWaiter(waiter);
Query 类
//房间指定型号对应的空和非空房间数量
public static ArrayList<Integer> getNumofRoom(String roomType)
//获得已入住的orderview
public static OrderView getFullOrderViews(String roomid)
//删除waiter
public static void deleteWaiter(Waiter waiter)
//更新waiter
public static void editWaiter(Waiter waiter)
//使用incomeView
public static ArrayList<InComeView> getInComeView()
//根据waiterid 来返回waiter
public static Waiter getWaiter(String waiterID)
//根据房间的型号查询房间的相关信息
public static HashMap<String,RoomTypeAndPrice> getRoomTypeMap()
//查询所有房间的信息
public static ArrayList<Room> getAllRoomsInfo(String s , String search)
public static ArrayList<String> searchFullRooms()
public static ArrayList<String> searchEmptyRooms(String roomtype)
//查询所有房间信息
public static ArrayList<RoomTypeAndPrice> getAllRooms()
//查询所有订单信息
public static ArrayList<Order> getAllOrders()
//查询系统管理员信息
public static ArrayList<SystemAdministrator> getAllSystemAdmin()
//新建管理员(测试)
public static void insertSystemAdministrator(SystemAdministrator systemAdministrator)
//查询服务员
public static ArrayList<Waiter> getAllWaiters()
//得到页面显示的预定订单
public static ArrayList<OrderView> getAllOrderViews(String orderStatus)
//添加新的房间
public static void insertRoom(Room room)
roomOrder.jsp
预定界面
参数 op
根据 op 的值:
为1时,选定房型,设置参数roomType
为2时,用户登记,设置用户信息
为3或者4时,订单支付,ServiceManage?<%=request.getQueryString()%>,也就是op=3加需要的用户信息
ServerManage
本 servlet 用于办理三种业务: 订房 退房 续费
参数 op
根据 op 的值:
为1时,用户登记 查询折扣 根据参数信息添加用户,并重定向到/roomOrder.jsp?op=3
为2时,注销当前用户
为3时,添加订单
为4时,续费订单
为5时,退房
为10时,注销当前管理员登陆
hotelAdmin.jsp
业务办理:
订房,/roomOrder.jsp?op=1
续费,/roomRenew.jsp?op=1
退房,/roomCheckOut.jsp?op=1
客房管理:
查询房间,/RoomManage?op=1
增加房间,/RoomManage?op=2
房间概览,/roomManagement/roomDisplay.jsp
订单预览:
预定订单,/OrderManage?op=1
入住订单,/OrderManage?op=2
续费订单,/OrderManage?op=3
历史订单,/OrderManage?op=4
所有订单,/OrderManage?op=5
注销: /ServiceManage?op=2
roomRenew.jsp
续费房间
根据 op 的值,重定向到:
为1时,选择房间
为2时,确认信息,订单支付
roomCheckOut.jsp
退房
根据 op 的值,重定向到:
为1时,选择房号
为2时,确认订单信息
RoomManage
根据 op 的值,重定向到:
为1时,searchRoom.jsp
为2时,roomAdd.jsp
为3时,roomEdit.jsp
为4时,roomDelete.jsp
第五章 界面设计
Figure 3 开始界面
Figure 4 入住房间
Figure 5 预定房间
Figure 6 续费房间
Figure 7 退房
Figure 8 客房查询
Figure 9 客房添加
Figure 10 客房概览
Figure 11 客房价格管理
Figure 12 预定订单管理
Figure 13 历史订单
Figure 14 续费订单查询
Figure 15 服务员树图
Figure 16 服务员管理
Figure 17 收入显示
Figure 18 服务员添加
Figure 19 服务员编辑
Figure 20 服务员信息更改
第六章 结束语
对于此次的宾馆管理系统的设计,加深了对大学所学的知识,但是由于本人缺乏系统的开发实际经验,对系统的分析还不够彻底,存在了很多缺陷,页面不够美观,没有专业的绘图知识,对代码的运用也不能够很熟的掌握,程序上也有很多需要改进的地方,在未来的日子里,还得要不断学习这方面知识,加深代码编写能力,吸收新的知识,提高自己的工作能力。
通过宾馆管理系统的编写,加强了我开发系统的能力,对于大学所学的知识又重新加深了了解,是一次很好的学习机会,特别感谢向遥老师的指导!
第七章 参考文献
[1] 王珊 萨师煊 数据库系统概论(第 4 版) 高等教育出版社,2006
[2] 彭伟民.基于需求的酒店管理系统的建模与实现.微机发展,2005.10
参考文献
- 宾馆信息管理系统的分析设计与实现(电子科技大学·阎骏)
- 六安福鑫佳缘宾馆管理系统的设计和实现(大连理工大学·郑松)
- 宾馆信息管理系统的分析设计与实现(电子科技大学·阎骏)
- 基于.NET的酒店管理系统的设计与实现(吉林大学·陈阳)
- 基于WEB的酒店信息管理系统设计与实现(大连理工大学·左成吏)
- 基于.Net Remoting技术的可配置化宾馆管理系统(华东师范大学·郑娟)
- 基于ASP.NET的酒店信息管理系统的设计与实现(电子科技大学·方亮)
- 酒店管理信息系统的设计与实现(电子科技大学·陈群)
- 统一用户管理系统开发与设计(南昌大学·郭妍)
- 基于.NET构架的酒店管理系统研究与实现(复旦大学·孙跃良)
- 基于Web Service的掌上酒店预订系统的设计与实现(电子科技大学·王立波)
- 基于WEB的酒店信息管理系统设计与实现(大连理工大学·左成吏)
- 基于.NET的酒店预订代理平台的设计与实现(西安电子科技大学·侯玉连)
- 宾馆信息管理系统的分析设计与实现(电子科技大学·阎骏)
- 基于.Net Remoting技术的可配置化宾馆管理系统(华东师范大学·郑娟)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:毕设小屋 ,原文地址:https://bishedaima.com/yuanma/35811.html