• 【毕业设计】基于SSM的酒店客房信息管理系统 - java web


    0 前言

    Hi,同学们好呀,被评为全网最细的丹成学长ヾ(•ω•`)o,今天带大家复盘一个学长帮往届同学做的一个毕业作品

    基于java web的酒店客房信息管理系统


    计算机毕设选题大全及项目分享:

    https://blog.csdn.net/WEB_DC/article/details/125563252


    1 课题描述

    酒店客房管理系统是指一种可以提高酒店管理效率的软件或平台,一般包含前台接待、前台收银、客房管家、销售POS、餐饮管理 、娱乐管理、 公关销售、财务查询、电话计费、系统维护、经理查询、工程维修等功能模块。

    2 相关技术

    • java
    • Java Servlet
    • HTML
    • JavaScript
    • CSS
    • myeclipse

    本系统利用myeclipse,Tomcat编译环境,采用可视化编程,以 SQLsever作为后台数据库。

    • (1)计算机及操作系统: Windows10;
    • (2)开发工具: myeclipse;
    • (3)运行环境 : javaJDK;
    • (4)语言 : java,HTML,JavaScript 与 SQL 查询语言。

    3 需求分析

    3.1 系统目标

    本系统需要满足以下几个系统设计目标。

    • (1)实用性原则:真正为酒店工作人员的实际工作服务,按照酒店客房管理工作的实际流程,设计出实用的酒店客房管理系统。
    • (2)安全性原则:必须为酒店客房提供信息安全的服务,以保证酒店信息的不被泄露。
    • (3)可操作性原则:本酒店客房管理系统面向的是酒店内工作人员,所以系统操作上要求简单、方便、快捷,便于用户使用。
    • (4)可扩展性原则:采用开发的标准和接口,便于系统向更大的规模和功能扩展。

    3.2 功能需求

    • (1)利用系统设置中的登录模块可以进行管理员登录。
    • (2)客房管理模块主要是对客房进行设置和查询。
    • (3)预定管理模块主要是对住宿登记、住房时间、房间类型和住户信息。
    • (4)入住模块主要对客户预定好房间来登记入住开始。
    • (5)挂账查询模块主要是对挂账和客户结款进行查询、调房登记、续费房间和退宿结账进行管理。
    • (6)查询统计模块主要是对住宿、退宿进行查询以及对宿费进行提醒。
    • (7)日结模块主要是对登记预收、客房销售进行报表管理以及对客房销售进行统计。
    • (8)数据库模块是对客房信息、住户信息和收入信息的统计,不易丢失。
    • (9)系统维护主要是对数据备份和恢复进行维护。

    4 系统功能描述

    4.1 系统功能结构

    在这里插入图片描述

    4.2 系统功能流程图

    在这里插入图片描述

    5 系统实现

    如下图所示,整个酒店管理系统包含三个模块:

    1、bean模块:用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。

    2、servlet模块:客户端发送请求至服务器;服务器启动并调用 Servlet,Servlet 根据客户端请求生成响应内容并将其传给服务器;服务器将响应返回客户端。

    3、WebRoot模块:是JAVA WEB项目中用来存放JSP,JS,CSS,图片等文件的,其中webroot/WEB-INF用来存放SRC编译好的相关的文件,和需要被保护的JSP文件等。

    在这里插入图片描述
    在这里插入图片描述

    界面设计
    在这里插入图片描述
    在这里插入图片描述

    String username = request.getParameter("user");
    		String upwd = request.getParameter("pwd");
    		PrintWriter out = response.getWriter();
    		Connection conn;
    		try {
    			Class.forName(driverName);
    			try{
    				conn = DriverManager.getConnection(url,user,pwd);
    				String sql = "select *from usertab where uid = ?";
    				PreparedStatement ps = conn.prepareStatement(sql);
    				ps.setString(1, username);
    				ResultSet rs = ps.executeQuery();
    				String mima = "";
    				while(rs.next()){
    					mima = rs.getString("upwd").trim();
    				}
    
    				if(mima.equals(upwd)){
    					HttpSession session = request.getSession();
    					session.setAttribute("un", username);
    					out.println("true");
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    通过数据库中储存的管理员信息,进行验证并且登录进入酒店管理系统。

    用户预定界面设计

    在这里插入图片描述
    在这里插入图片描述

    String sql_customer = "insert customers values('"+customerIDCard+"','"+customerGender+"','"+customerName+"','"+customerPhoneNumber+"',"+price+")";
    		String sql_orders = "insert orders values('"+orderStatus+"','"+customerIDCard+"','"+roomNumber+"','"+roomType+"','"+checkinTime+"','"+checkOutTime+"',"+price+",'"+orderTime+"')";
    		try {
    			Class.forName(driverName);
    			try {
    				conn = DriverManager.getConnection(url,user,pwd);
    				Statement st = conn.createStatement();
    				st.executeUpdate(sql_customer);
    				st.executeUpdate(sql_orders);
    				System.out.print("插入成功!");
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    利用数据库SQL语句进行客户的插入,并且将数据储存到数据库中。

    用户入住界面设计

    在这里插入图片描述
    在这里插入图片描述

    String sql_leave = "update orders set orderStatus = '已入住' where orders.customerIDCard = '"+customerIDCard+"'";
    		String sql_query = "select * from orders where customerIDCard = '"+customerIDCard+"'";
    		
    		
    		Connection conn = null;
    		try {
    			Class.forName(driverName);
    			try {
    				conn = DriverManager.getConnection(url,user,pwd);
    				Statement st = conn.createStatement();
    				st.execute(sql_leave);
    				ResultSet rs = st.executeQuery(sql_query);
    				List<Map> list = new ArrayList<Map>();
     				while(rs.next()){
    					String orderNumber = rs.getString("orderNumber");
    					String orderStatus = rs.getString("orderStatus");
    					customerIDCard = rs.getString("customerIDCard");
    					String roomNumber = rs.getString("roomNumber");
    					String checkInTime = rs.getString("checkInTime");
    					String checkOutTime = rs.getString("checkOutTime");
    					String totalMoney = rs.getString("totalMoney");
    					String orderTime = rs.getString("orderTime");
    					Map e = new HashMap();
    					e.put("orderNumber", orderNumber);
    					e.put("orderStatus",orderStatus);
    					e.put("customerIDCard", customerIDCard);
    					e.put("roomNumber",roomNumber);
    					e.put("checkInTime",checkInTime);
    					e.put("checkOutTime",checkOutTime);
    					e.put("totalMoney",totalMoney);
    					e.put("orderTime",orderTime);
    					list.add(e);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    通过SQL语句将预定的顾客状态改为入住,并储存到数据库中。

    用户续费界面设计

    在这里插入图片描述
    在这里插入图片描述

    String addDay = request.getParameter("addDay");
    		String sql = "declare @addMoney int,@orderNumber int,@oldExpiryTime date,@newExpiryTime date exec dbo.getPrice '"+roomNumber+"',"+addDay+",@addMoney output,@orderNumber output,@oldExpiryTime output,@newExpiryTime output select @addMoney as addMoney,@orderNumber as orderNumber,@oldExpiryTime as oldExpiryTime,@newExpiryTime as newExpiryTime";
    		Connection conn = null;
    		try {
    			Class.forName(driverName);
    			try {
    				conn = DriverManager.getConnection(url,user,pwd);
    				Statement st = conn.createStatement();
    				ResultSet rs = st.executeQuery(sql);
    				List<Map> list = new ArrayList<Map>();
     				while(rs.next()){
    					String addMoney = rs.getString("addMoney");
    					String orderNumber = rs.getString("orderNumber");
    					String oldExpiryTime = rs.getString("oldExpiryTime");
    					String newExpiryTime = rs.getString("newExpiryTime");
    					Map e = new HashMap();
    					e.put("addMoney", addMoney);
    					e.put("orderNumber",orderNumber);
    					e.put("oldExpiryTime",oldExpiryTime);
    					e.put("newExpiryTime",newExpiryTime);
    					list.add(e);
    				}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    用户退房界面设计

    在这里插入图片描述
    在这里插入图片描述

    String sql_leave = "update orders set orderStatus = '已退房' where orders.customerIDCard = '"+customerIDCard+"'";
    		String sql_query = "select * from orders where customerIDCard = '"+customerIDCard+"'";
    		Connection conn = null;
    		try {
    			Class.forName(driverName);
    			try {
    				conn = DriverManager.getConnection(url,user,pwd);
    				Statement st = conn.createStatement();
    				st.execute(sql_leave);
    				ResultSet rs = st.executeQuery(sql_query);
    				List<Map> list = new ArrayList<Map>();
     				while(rs.next()){
    					String orderNumber = rs.getString("orderNumber");
    					String orderStatus = rs.getString("orderStatus");
    					customerIDCard = rs.getString("customerIDCard");
    					String roomNumber = rs.getString("roomNumber");
    					String checkInTime = rs.getString("checkInTime");
    					String checkOutTime = rs.getString("checkOutTime");
    					String totalMoney = rs.getString("totalMoney");
    					String orderTime = rs.getString("orderTime");
    					Map e = new HashMap();
    					e.put("orderNumber", orderNumber);
    					e.put("orderStatus",orderStatus);
    					e.put("customerIDCard", customerIDCard);
    					e.put("roomNumber",roomNumber);
    					e.put("checkInTime",checkInTime);
    					e.put("checkOutTime",checkOutTime);
    					e.put("totalMoney",totalMoney);
    					e.put("orderTime",orderTime);
    					list.add(e);
    				}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    收入视图界面设计

    在这里插入图片描述

    String sql_order = "select * from orderView";//订单视图查询语句
    		String sql_roomInfoView = "select * from roomInfoView";//房间信息视图
    		String sql_timeExtension = "select * from timeExtensionOrdersView";//续费订单视图
    • 1
    • 2
    • 3
    • 4

    计算机毕设选题大全及项目分享:

    https://blog.csdn.net/WEB_DC/article/details/125563252


    6 最后

  • 相关阅读:
    TSN标准化与虹科组网测试方案:赋能多领域以太网新发展
    QT使用MSVC编译时报错C2001: 常量中有换行符
    Android TabLayout总结
    [实践篇]13.25 QCOM平台QNX侧如何分析GPU负载
    uni-app使用uView打开弹出层后输入框聚焦时placeholder错位问题
    【linux环境下安装opencv3.4.5】
    flask实战(问答平台)
    使用VsCode调试UE5的PuerTs(实践测试来啦)
    【QT】QT事件Event大全
    GIT | 基础操作 | 初始化 | 添加文件 | 修改文件 | 版本回退 | 撤销修改 | 删除文件
  • 原文地址:https://blog.csdn.net/WEB_DC/article/details/125627001