基于SSM开发宿舍管理系统

宿舍管理系统 宿舍管理是高校管理的重要组成部分,一套优秀的管理系统不仅可以降低宿舍管理的难度,也能在一定程度上减少学校管理费用的支出,能是建设现代化高校管理体系的重要标志

本文包含相关资料包-----> 点击直达获取<-------

宿舍管理系统

宿舍管理是高校管理的重要组成部分,一套优秀的管理系统不仅可以降低宿舍管理的难度,也能在一定程度上减少学校管理费用的支出,能是建设现代化高校管理体系的重要标志。

1、系统架构模式

本宿舍管理系统采用 B/S 架构模式。

B/S 架构的全称为 Browser/Server,即浏览器/服务器结构。Browser 指的是 Web 浏览器,与 C/S 架构相比,B/S 模式极少数事务逻辑在前端实现,它的主要事务逻辑在服务器端实现。B/S 架构的系统无须特别安装,只有 Web 浏览器即可。

B/S 架构的分层:

与 C/S 架构只有两层不同的是,B/S 架构有三层,分别为:

  • 第一层表现层:主要完成用户和后台的交互及最终查询结果的输出功能。
  • 第二层逻辑层:主要是利用服务器完成客户端的应用逻辑功能。
  • 第三层数据层:主要是进行数据持久化存储。

2、技术选型

选择合适的技术,整个项目就已经成功了一半,经过对系统需求和系统自身特点的分析,加上现代 B/S 模式主流架构解决方案,对本系统技术选型如下:

数据表现层: Html+JavaScript+CSS+VUE

业务逻辑层 Java+Spring+SpringMVC

数据持久层: MySql+MyBatis

开发工具: Eclipse

3、用户分析

本系统主要应用于高校宿舍管理,使用人群如下:

  • 系统管理员:管理整个系统的安全运行,各个功能使用。
  • 宿舍管理员:管理自己负责的宿管和学生
  • 学生:查看浏览信息,提交任务

4、功能分析

系统管理员:

  1. 添加、修改、删除公告信息
  2. 添加、修改、删除宿舍管理员信息
  3. 添加、修改、删除学生信息
  4. 宿舍楼管理及其宿舍管理员分配
  5. 学生寝室管理
  6. 发布考勤、打卡任务
  7. 查看、修改个人信息

宿舍管理员:

  1. 查看公告
  2. 查看、删除自己管理的学生
  3. 添加、修改、删除考勤记录
  4. 查看学生打卡记录
  5. 查看、修改个人信息

学生:

  1. 查看公告
  2. 查看考勤记录
  3. 完成打卡任务,查看打卡记录
  4. 查看、修改个人信息

5、数据库设计

分析系统需求,数据库应有以下几张表:

t_admin: 主要用于存储系统管理员数据

字段名称 类型 是否主键 说明
adminId int 管理员 Id,唯一
userName varchar 用户名
password varchar 密码
name varchar 真实名称
sex varchar 性别
sex varchar 电话

t_dormbuild: 存储宿舍楼信息

字段名称 类型 是否主键 说明
dormBuildId int 宿舍楼 Id,唯一
dormBuildName varchar 宿舍楼名称
dormBuildDetail varchar 描述

t_dormmanager: 主要存储宿舍管理员信息

字段名称 类型 是否主键 说明
dormManId varchar 宿舍管理员 Id,唯一
userName varchar 用户名,用于登录系统
password varchar 密码
dormBuildId int 宿舍楼 Id
dormBuildDetail varchar 描述
name varchar 真实姓名
sex varchar 性别
tel varchar 电话

t_notice: 用于存储公告信息

字段名称 类型 是否主键 说明
noticeId int 公告 Id,唯一
noticePerson varchar 公告发布人
date date 公告发布日期
content varchar 发布内容

t_punchclock: 用于存储打卡发布记录

字段名称 类型 是否主键 说明
id int Id,唯一
theme varchar 打卡主题
detail varchar 打卡说明
date varchar 发布日期
person varchar 发布人

t_punchclockrecord: 用于存储打卡信息

字段名称 类型 是否主键 说明
id int 记录 Id,唯一
punchClock_id varchar 打卡 Id
punchClock_date date 发布日期
punchClock_theme varchar 打卡主题
punchClock_detail varchar 打卡说明
punchClock_person varchar 发布人
name varchar 学生姓名
dormName varchar 寝室号
tel varchar 学生电话
stuNum varchar 学生学号
dormBuildId int 宿舍楼
isRecord tinyint 是否已经打卡

t_record: 用于存储考勤记录

字段名称 类型 是否主键 说明
recordId int 考勤 Id,唯一
studentNumber varchar 学生学号
dormBuildId int 宿舍楼
dormName varchar 寝室号
date varchar 考勤日期
detail varchar 详细说明

t_student: 学生表,用于存放学生信息

字段名称 类型 是否主键 说明
studentId int 学生 Id,唯一
stuNum varchar 学号
password varchar 密码
name varchar 姓名
dormBuildId int 宿舍楼
dormName varchar 寝室号
sex varchar 性别
tel varchar 电话

7、项目工程结构

根据第六步搭建完系统运行环境后,工程结构目录如下图所示

对工程结构各个目录的解释:

java com.cya.controller

controller 包用于存放接收请求的类,充当前后端数据交互的“桥梁”

java com.cya.service

service 包是所有业务逻辑的接口

java com.cya.service.impl

service.impl 包用于存放 service 接口的所有实现类

java com.cya.mapper

mapper 包用于存放对数据库操纵的接口和对应的 XML 实现

java com.cya.entity

entity 包用于存放项目中用到的所有实体类,它与数据库中的表相对应

resources 文件下存放 SSM 框架整合的必要配置文件,详情请看 《手把手教你搭建 SSM 框架(Eclipse 版)》

dorm 是存放所有 model 层文件的父级文件夹,其中 admin,dormManager、student 三个子文件夹存放系统管理员、宿舍管理员、学生三个角色对应的 HTML 文件。

8、功能实现及展示

由于系统包含功能众多,在此无法一一列举,所以挑选几个代表做展示,如需获取完整源码请在公众号【IT 学长】回复“宿舍管理系统”。

8.1 登录功能实现

项目启动成功后,在浏览器地址栏输入:http://localhost:8080/dormManage/ 进入用户登录界面如下图所示:

在此界面用户可以选择不同的角色登录,输入每个角色对应的登录信息后,首先会判断输入信息的有效性,做出相应的响应或提示。登录功能具体的实现代码如下,此处仅展示 controller 层代码,如下:

```java package com.cya.controller;

import java.util.ArrayList; import java.util.List; import java.util.Map;

import javax.management.relation.Role; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession;

import org.apache.tomcat.util.digester.ArrayStack; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody;

import com.cya.entity.Login; import com.cya.entity.Result; import com.cya.service.ILoginService; import com.cya.service.impl.LoginServiceImpl;

@Controller @ResponseBody public class LoginController {

@Autowired
private ILoginService loginServiceImpl;

@RequestMapping("login")
public List login(HttpServletRequest request, @RequestBody Login login) {
    List list=loginServiceImpl.login(login);
    if(list.size()==1) {
        HttpSession session=request.getSession();
        session.setAttribute(login.getRole(), list);
        System.out.println("session="+session.getAttribute(login.getRole()));
    }
    return list;
}

@RequestMapping("getSession")
public List getSession(HttpServletRequest request,@RequestBody Login login){
    System.out.println(login);
    System.out.println(request.getSession().getAttribute(login.getRole()));
    List list=new ArrayList<>();
    list.add(request.getSession().getAttribute(login.getRole()));
    return list;
}

@RequestMapping("exitSys")
public Result exitSys(HttpServletRequest request) {
    String exit="";
    try {
        if(request.getParameter("exit")!=null) {
            exit=request.getParameter("exit");
        }
        request.getSession().removeAttribute(exit);
        return new Result(true, "注销成功");
    } catch (Exception e) {
        // TODO: handle exception
        e.printStackTrace();
        return new Result(false, "注销失败");
    }
}

}

```

8.2 发布公告功能实现

在系统管理员端,有发布公告的权限,系统管理员点击添加公告按钮,输入相关信息后进行有效性校验,校验成功及代表公告发布成功

成功发布公告后,会出现在宿舍管理员端和学生端界面,效果图如下:

公告模块主要代码以 mapper 层实现为例:

```xml

insert into t_notice(noticePerson,date,content) values(#{noticePerson},current_date,#{content})

update t_notice set noticePerson=#{noticePerson},content=#{content} where noticeId=#{noticeId}

 delete from t_notice where noticeId=#{noticeId}

```

8.3 考勤记录功能实现

宿舍管理员根据自己所管理楼,对住在管理范围内的学生进行考勤,并添加考勤记录,学生端也会显示考勤信息。

主要实现代码如下:

```java @RequestMapping("/getRecordMsg") public PageResult getRecordMsg(HttpServletRequest request){ Integer pageNum=1; Integer pageSize=20; Integer dormBuildId=0; String filter=request.getParameter("filter"); String key=request.getParameter("key"); if(request.getParameter("pageNum")!=null && request.getParameter("pageNum")!="") { pageNum=Integer.parseInt(request.getParameter("pageNum")); } if(request.getParameter("pageSize")!=null && request.getParameter("pageSize")!="") { pageSize=Integer.parseInt(request.getParameter("pageSize")); } if(request.getParameter("dormBuildId")!=null && request.getParameter("dormBuildId")!="") { dormBuildId=Integer.parseInt(request.getParameter("dormBuildId")); } System.out.println("pageNum="+pageNum); System.out.println("pageSize="+pageSize); return dormManageServiceImpl.getRecordMsg(pageNum, pageSize, filter, key, dormBuildId); }

@RequestMapping("getRecordById")
public Record getRecordById(Integer recordId) {
    return dormManageServiceImpl.getRecordById(recordId);
}


@RequestMapping("updataRecordMsg")
public Result updataRecordMsg(@RequestBody Record record) {
    try {
        dormManageServiceImpl.updataRecordMsg(record);
        return new Result(true, "更新成功");
    } catch (Exception e) {
        // TODO: handle exception
        e.printStackTrace();
        return new Result(false, "更新失败");
    }
}

@RequestMapping("addRecordMsg")
public Result addRecordMsg(@RequestBody Record record) {
    try {
        System.out.println(record);
        dormManageServiceImpl.addRecordMsg(record);
        return new Result(true, "添加成功");
    } catch (Exception e) {
        // TODO: handle exception
        e.printStackTrace();
        return new Result(false, "添加失败");
    }
}

@RequestMapping("recordManagerDeleteById1")
public Result recordManagerDeleteById(HttpServletRequest request) {
    Integer recordId=0;
    if(request.getParameter("recordId")!=null && request.getParameter("recordId")!="") {
        recordId=Integer.parseInt(request.getParameter("recordId"));
    }
    try {
        dormManageServiceImpl.recordManagerDeleteById1(recordId);
        return new Result(true, "删除成功");
    } catch (Exception e) {
        // TODO: handle exception
        e.printStackTrace();
        return new Result(false, "删除失败");
    }
}

```

参考文献

  • 基于.NET大学生住宿管理系统的设计与实现(吉林大学·陈巍)
  • 四川化工职业技术学院学生宿舍管理系统的设计与实现(电子科技大学·马海英)
  • 南通理工学院公寓管理信息系统的设计与实现(大连理工大学·杨希)
  • 基于智慧校园中高校学生宿舍管理系统设计与开发(湖北工业大学·严利)
  • 基于.NET大学生住宿管理系统的设计与实现(吉林大学·陈巍)
  • 学生宿舍管理系统的设计与实现(江西财经大学·张丽伟)
  • 基于S2SH框架的高校宿舍管理系统设计与实现(长沙理工大学·伍柏赪)
  • 诸城市实验中学宿舍管理系统的设计与实现(山东大学·高文波)
  • 阿坝师专学生信息管理系统的设计与实现(电子科技大学·官孙平)
  • 基于.NET技术的宿舍管理系统的设计与实现(电子科技大学·蒋泰禧)
  • 基于JSP技术的学生宿舍管理系统的设计与实现(沈阳工业大学·杨俊宝)
  • 校园WEB宿舍管理系统的设计与实现(电子科技大学·李训耀)
  • 基于.NET框架下B/S模式综合教学信息系统设计与开发(合肥工业大学·徐蓓蓓)
  • 基于.NET框架下B/S模式综合教学信息系统设计与开发(合肥工业大学·徐蓓蓓)
  • 基于.NET大学生住宿管理系统的设计与实现(吉林大学·陈巍)

本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:毕设驿站 ,原文地址:https://bishedaima.com/yuanma/35778.html

相关推荐

  • 基于SSM的化妆品销售网站、基于JavaWeb的化妆品在线商城源码

    这是一个🔥🔥基于JavaWeb的化妆品在线商城源码🔥🔥的项目源码,开发语言Java,开发环境Idea/Eclipse,这个 化妆品销售网站开发技术栈为SSM项目,可以作为毕业设计课程设计作业基于SSM技术设计实现一个化妆品销售网站
    2024年05月23日
    6 1 2
  • 基于javaweb+fullcalender.js的排班管理系统源代码

    这是一个🔥🔥基于javaweb的排班管理系统源代码🔥🔥的项目源码,开发语言Java,开发环境Idea/Eclipse,这个 排班管理系统开发技术栈为SSM项目,可以作为毕业设计课程设计作业基于JavaWeb即使开发实现一个排班系统
    2024年05月23日
    3 1 1
  • 基于SSM框架的保险理赔管理系统源码

    这是一个🔥🔥基于SSM框架的保险理赔管理系统🔥🔥的项目源码,开发语言Java,开发环境Idea/Eclipse,这个 保险理赔管理系统开发技术栈为SSM项目,可以作为毕业设计课程设计作业使用SSM框架实现也给保险理赔管理系统(车险)
    2024年05月23日
    5 1 2
  • 基于Java+SpringMVC的图书管理系统

    这是一个🔥🔥基于SpringMVC的图书管理系统🔥🔥的项目源码,开发语言Java,开发环境Idea/Eclipse,这个 图书管理系统开发技术栈为SSM项目,可以作为毕业设计课程设计作业基于Java+SpringMVC的图书管理系统
    2024年05月23日
    5 1 2
  • 师生健康信息管理系统

    这是一个🔥🔥基于SpringBoot框架的师生健康信息管理系统设计与实现🔥🔥的项目源码,开发语言Java,框架使用的SpringBoot+vue技术,开发环境Idea/Eclipse
    2024年05月23日
    1 1 1
  • 基于springboot实现的图书管理系统

    一·,课程设计题目 图书管理系统 二,课程设计目的 通过对图书管理系统的系统分析,系统设计,编码和调试等工作的实践,熟悉管理信息系统的开发过程,设计方法及编程技术
    2024年05月14日
    2 1 1
  • SSM实现值班管理系统排班管理系统

    值班管理系统是现代组织中不可或缺的一部分,其对于人力资源的合理调配和工作效率的提升至关重要,随着信息技术的迅速发展,基于Spring,SpringMVC和MyBatis的值班管理系统(SSM实现值班管理系统)逐渐成为研究和应用的热点
    2024年05月07日
    9 1 4
  • 课程作业管理系统

    这是一个🔥🔥基于SpringBoot框架的课程作业管理系统设计与实现🔥🔥的项目源码,开发语言Java,框架使用的SpringBoot+vue技术,开发环境Idea/Eclipse
    2024年05月23日
    1 1 1
  • 基于SpringBoot框架的产品展示交易平台

    这是一份采用Java编程语言,基于SpringBoot框架构建的电商产品展示系统源代码,该项目运用了SpringBoot和Vue技术栈,适用于Idea或Eclipse开发环境
    2024年05月23日
    5 1 3
  • 基于C语言实现的web服务器

    一,实验目的及任务 1,熟悉并掌握WireShark的基本操作,了解网络协议实体间的交互以及报文交换, 2,通过对WireShark抓包实例进行分析
    2024年05月14日
    2 1 1

发表回复

登录后才能评论