课程设计---宾馆客房管理系统

课程名称: 数据库原理及应用

项目名称:宾馆客房管理系统

eclipse、Tomcat、MySQL8、Navicat

【项目内容】
1、主要数据表
客户住房信息登记表,客房信息统计表,账目统计表等。
2、功能模块
1)接待人员可以完成为客人预订房间,客人入住登记,客人离店结帐,并生成结帐报表;并可以按多种属性查询客房或客人情况。
2)经理可以随时查询、汇总宾馆客房和客人情况,并获得房间入住情况汇总报表。
3)经理可以进行房价调整,房间增减。

系统需求分析

结合项目要求以及通过对部分酒店客房管理模式的分析,我们小组设计的宾馆客房管理系统的功能需求具体如下: 该系统用户设置为员工与经理两大类别,各类别用户都有自己的权限。

对系统的第一大用户经理,他具有如下功能:

(1)经理必须通过帐号和密码登入系统。
(2)经理能够对员工进行注册,能够对员工的个人信息进行查询、修改和删除。
(3)经理能够对客户信息进行管理。
(4)经理能够对客房进行管理,主要包括对客房基本信息的添加、查询、删除等管理操作。
(5)经理能够对宾馆客房基本信息进行管理,主要包括对客房的定价等信息进行管理操作。
(6)经理能够对客户的入住消费进行管理,主要包括客户入住日期、退房日期、房费结算等进行管理操作。
(7)经理能够对员工和清洁工的信息进行管理,主要包括对员工和清洁工基本信息的修改和删除,以及增添新的员工和清洁工。

对系统的第二大用户员工,他具有以下功能:

(1)员工必须通过帐号和密码登入系统;
(2)员工可以对客户入住情况进行登记操作,对客户退房进行结账操作,对房间的清扫进行操作;
(3)员工可以对房间的打扫进行操作。
(4)员工为客户办理会员注册。
(5)员工可以查询房间的状态,主要包括是否入住,是否打扫等情况。
综上经理的权限明显多于员工的管理权限,不同权限管理可进行操作稍有差异。

系统的概要设计

E-R图
课程设计---宾馆客房管理系统_第1张图片
功能模块图
课程设计---宾馆客房管理系统_第2张图片

数据库物理设计

(1)清洁工表
清洁工表(clean_worker)
课程设计---宾馆客房管理系统_第3张图片
(2)顾客表
顾客表(custom)
课程设计---宾馆客房管理系统_第4张图片
(3)入住信息表
入住信息表(jdorder)
课程设计---宾馆客房管理系统_第5张图片
(4)房间信息表
房间信息表(room)
课程设计---宾馆客房管理系统_第6张图片
(5)VIP顾客信息表
VIP顾客信息表(VIP)
课程设计---宾馆客房管理系统_第7张图片
(6)员工表
员工表(worker)
课程设计---宾馆客房管理系统_第8张图片

核心代码

后端核心代码

  1. 连接数据库(com.jdbc.DButil包)
  2. 登录处理,房间状态处理(com.jdbc包)
  3. 六个实体类(com.jdbc.entity包)
  4. 处理数据,前端数据传到数据库,以及数据库数据传到前端(com.jdbc.service包)
  5. 后端处理,具体功能实现(com.jdbc.servlet包)

课程设计---宾馆客房管理系统_第9张图片
课程设计---宾馆客房管理系统_第10张图片
DButil.java类(jdbc连接数据库)

package com.jdbc.DButil;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class DButil {
     
	private static String driver="com.mysql.cj.jdbc.Driver";
	private static String url = "jdbc:mysql://localhost:3306/jdgl?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC";/*
																																		 * Asia
																																		 * /
																																		 * Shanghai
																																		 */
	private static String user="root";
	private static String password="19980226";
	
	private static Connection conn = null;
	private static PreparedStatement ps=null;
	private static ResultSet rs=null;
	//加载驱动
	public static Connection getConn() throws SQLException {
     
		try {
     
			Class.forName(driver);
			/* System.out.println("成功加载驱动"); */
			conn=DriverManager.getConnection(url, user, password);
			/* System.out.println("连接成功"); */
		} catch (ClassNotFoundException e) {
     
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return conn;
	}
	
	//释放资源
	public static void close() throws SQLException
	{
     
		if(rs!=null)
		{
     
			rs.close();
		}
		if(ps!=null)
		{
     
			ps.close();
		}
		if(conn!=null)
		{
     
			conn.close();
		}
	}
	//查询
	public static ResultSet select(String sql,Object[] obj) throws SQLException
	{
     
		DButil.getConn();
		try {
     
			ps=conn.prepareStatement(sql);
		} catch (SQLException e) {
     
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		for(int i=0;i;i++)
		{
     
			ps.setObject(i+1,obj[i]);
		}
		rs=ps.executeQuery();
		return rs;
	}
	
	//无条件查询
	public static ResultSet select(String sql) throws SQLException
	{
     
		DButil.getConn();
		try {
     
			ps=conn.prepareStatement(sql);
		} catch (SQLException e) {
     
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		rs=ps.executeQuery();
		return rs;
	}
	
	//删除
	 public static int update0(String sql) throws SQLException{
     
		 DButil.getConn();
	        try {
     
	            ps=conn.prepareStatement(sql);
	        } catch (SQLException e) {
     
	            // TODO Auto-generated catch block
	            e.printStackTrace();
	            System.out.println("发送失败");
	        }
	        int a=0;
	        try {
     
	            a = ps.executeUpdate();
	        } catch (SQLException e) {
     
	            // TODO Auto-generated catch block
	            e.printStackTrace();
	            System.out.println("执行sql语句失败");
	        }finally {
     
	        	DButil.close();
	        }
	        return a;
	    } 
	
	//修改
	public static int update(String sql,Object[]obj) throws SQLException{
     
		 DButil.getConn();
	        try {
     
	            ps=conn.prepareStatement(sql);
	        } catch (SQLException e) {
     
	            // TODO Auto-generated catch block
	            e.printStackTrace();
	            System.out.println("发送失败");
	        }
	        for(int i=0;i;i++){
     
	            try {
     
	                ps.setObject(i+1, obj[i]);
	            } catch (SQLException e) {
     
	                // TODO Auto-generated catch block
	                e.printStackTrace();
	                System.out.println("参数设置失败");
	            }
	        }
	        int a=0;
	        try {
     
	            a = ps.executeUpdate();
			/* conn.commit(); */
	        } catch (SQLException e) {
     
	            // TODO Auto-generated catch block
	            e.printStackTrace();
	            System.out.println("执行sql语句失败");
	        }finally {
     
	        	DButil.close();
	        }
	        return a;
	    }
}

前端核心代码

  1. 引入bootstrap文件,相关js文件,自己写的CSS文件等(assets文件夹)
  2. 管理员界面(backStage文件夹)
  3. 员工界面(forehead、success、sys文件夹)
  4. 登录界面(login.jsp文件)
    课程设计---宾馆客房管理系统_第11张图片
    课程设计---宾馆客房管理系统_第12张图片
    登录界面(login.jsp)
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>



"UTF-8">
登录界面


"assets/css/vendor/bootstrap/bootstrap.min.css"
	rel="stylesheet">
"stylesheet" href="assets/css/vendor/bootstrap-checkbox.css">
"assets/css/minimal.css" rel="stylesheet">

"bg-1">

	
	
"wrap">
"row">
"content" class="col-md-12 full-page login">
"inside-block"> "assets/images/logo-big.png" alt class="logo">

欢迎 登陆

宾馆客房管理系统

"form-signin" class="form-signin" action="login" method="post">
"input-group"> "text" class="form-control" name="user" placeholder="用户名">
"input-group-addon"> "fa fa-user">
"input-group"> "password" class="form-control" name="passwd" placeholder="密码">
"input-group-addon"> "fa fa-key">
"input-group"> "radio" name="login-type" value="0" checked="checked">员工登陆  ;  ;  ;管理员登陆
{ msg!=null }"> ${ msg} c:if>
"controls">
"log-in">

系统实现

登录界面
课程设计---宾馆客房管理系统_第13张图片
员工管理界面
课程设计---宾馆客房管理系统_第14张图片
经理管理界面
课程设计---宾馆客房管理系统_第15张图片

员工管理
课程设计---宾馆客房管理系统_第16张图片

注意

连接自己的数据库时,在com.jdbc.DButil包下面的java文件里,修改为自己的用户名和密码。
课程设计---宾馆客房管理系统_第17张图片
Worker表里面workertype,其中0代表员工,1代表经理,0代表清洁工。
登录的时候,选择员工登录时,输入数据库中workertype为0的对应的姓名和密码。选择经理登录时,输入workertype为1的对应的姓名和密码。

本文借鉴至博文,https://blog.csdn.net/weixin_42673117/article/details/100527448。非常感谢博主的分享。

你可能感兴趣的:(笔记)