(附源码)基于Spring Boot的宿舍管理系统设计

目录

[一、 前言](#一、 前言)

二、技术环境

三、功能设计

四、实现效果图

五、数据库表(部分)

六、系统测试

七、项目论文展示

八、我们的优势

九、源码及文档获取



💻博主介绍(必看)

大家好,我是烽学长 ,一名拥有五年实战经验 的全栈程序员,计算机科班出身的"老学长"(本科于18年计算机科学与技术专业毕业)。现致力于成为大学生毕业设计和技术成长的引航者,提供定制开发、论文指导、项目咨询等一站式服务👋。

同时欢迎高校老师、企业同仁、校园代理交流合作,共同推动计算机教育与行业应用的深度融合🎯。

如果你正在为毕设头疼、为项目迷茫,欢迎点击文末名片私信我------我将以专业的态度和丰富的经验,为你指明方向、化解难题,助你在毕业路上高效前行,交出满意的答卷🗂️。

一、 前言

随着信息技术的快速发展,学生宿舍管理的数字化与智能化成为高校管理的重要一环。本文基于Spring Boot框架,设计并实现一个高效、便捷的学生宿舍管理系统。该系统旨在解决传统宿舍管理中存在的信息不透明、效率低下等问题,通过信息化手段提升管理水平,为学生提供更优质的住宿服务。

系统实现了信息的实时更新与共享,宿管员可以方便地管理学生信息和宿舍资源,学生也可以随时查看住宿情况和报修进度,还可以申请选宿调宿。另外,该系统还具有一定的自动化、智能化,极大地降低了管理者的工作量,提高了宿舍的管理效率。通过本项目的实施,为广大学生提供一个更加方便、透明的寝室管理平台,为实现高校寝室管理的现代化、智能化做出积极的贡献。

二、技术环境

【技术选择根据实际项目需求而定,有需要可通过文末名片咨询定制】

2.1.1 Java语言

Java是一门广泛应用于企业级开发、移动应用开发、大数据处理等多个领域的编程语言。它以其独特的跨平台特性、面向对象的设计理念以及强大的类库支持而著称。Java的跨平台能力得益于其"一次编写,到处运行"的理念。通过Java虚拟机(JVM),Java代码可以在任何支持JVM的平台上运行,无需进行额外的编译或修改。这一特性使得Java成为开发跨平台应用程序的首选语言。在面向对象方面,Java提供了类、继承、封装和多态等基本概念,使得开发者能够构建出模块化、可重用和易于维护的代码。

2.1.2 Spring Boot后端框架

Spring Boot是一个用于简化Spring应用初始搭建和开发过程的全新框架。它消除了许多样板代码和配置,让开发人员能够专注于业务逻辑的实现。Spring Boot以jar包的形式独立运行,内嵌了Tomcat等Servlet容器,使得应用更加轻量级,部署更加方便。

2.1.3 Vue前端技术

Vue前端技术是一种用于构建用户界面的渐进式JavaScript框架。它结合HTML、CSS和JavaScript,为开发者提供了一种高效、灵活的方式来构建现代Web应用。Vue的核心思想是数据驱动视图,通过简洁的模板语法和指令,开发者可以轻松地将数据与DOM元素进行绑定,实现页面的动态更新。

2.1.4 MySQL数据库

MySQL是一种流行的关系型数据库管理系统(RDBMS),由瑞典MySQL AB公司开发,现隶属于Oracle公司。它以高效、稳定、开源和易用等特性而受到广泛欢迎。

2.1.5 Echarts可视化工具

Echarts是一款基于JavaScript的数据可视化图表库,它以其直观、生动、可交互以及可个性化定制的特点,在数据可视化领域占据了重要地位。

Echarts提供丰富的图表类型,如折线图、柱状图、饼图、散点图等,能够满足不同场景下的数据展示需求。同时,它支持各种动画效果,使得数据展示更加生动有趣。

三、功能设计

线考试管理系统包括3种角色:管理员、学生和宿管员,3种角色根据宿舍管理系统的业务进行宿舍管理、报修管理、调宿管理、公告管理及日常管理等功能的划分。具体的功能模块如图4.1所示。

图4.1 功能结构图

系统功能设计

经过第三章系统分析的研究后,得出本系统应该实现的功能。本系统分为管理员、学生和宿管员功能三部分。管理员功能包括登录、楼宇管理、宿舍管理、维修管理及用户管理等功能;学生功能包括在线申请调宿、在线报修及查看公告等;宿管员功能包括访客登记、宿舍信息管理、维修处理等核心功能。

数据库设计

数据库概念设计

概念模型(E-R图)如图4.2所示。

图4.2 E-R图

逻辑结构设计

1、管理员信息表(管理员ID、登录账号、登录密码、状态、添加时间)

2、学生信息表(学生ID、学号、姓名、性别、身份证、电话、院系、班级、楼号、宿舍号、添加时间)

3、宿管员信息表(宿管员ID、账号、名字、电话、邮箱、照片、添加时间)

4、访客表(访客ID、来访人、电话、身份证、原因、来访时间、添加时间)

5、维修表(维修ID、故障描述、照片、宿舍号、学号、姓名、电话、上报时间、添加时间)

6、学生登记表(学生登记ID、学号、姓名、宿舍号、类型、日期、内容、添加时间)

7、宿舍表(宿舍ID、学号、姓名、宿舍号、理由、添加时间)

8、楼宇表(楼宇ID、学号、姓名、性别、身份证、电话、院系、班级、楼号、宿舍号、添加时间)

9、楼宇分配表(楼宇分配ID、楼号、宿管、院系、类型、添加时间)

10、公告表(公告ID、标题、内容、添加时间)

四、实现效果图

登录模块功能

在管理员、宿管员和学生的登录功能模块中,用户需输入账号和密码进行身份验证。系统验证通过后,用户即可进入相应角色界面,进行后续操作。如图5.1所示。

表5.1登录功能

核心代码:

public Result login(@RequestBody Yonghuxinxi yonghuxinxi, HttpServletRequest request) {

if (StrUtil.isBlank(yonghuxinxi.getXuehao()) || StrUtil.isBlank(yonghuxinxi.getMima())) {

throw new CustomException(ResultCode.PARAM_LOST_ERROR);

}

Yonghuxinxi login = yonghuxinxiService.login(yonghuxinxi);

if(login != null) {

HashMap hashMap = new HashMap();

hashMap.put("user", login);

Map<String,Object> map = MapWrapperUtils.builder(MapWrapperUtils.KEY_USER_ID,yonghuxinxi.getId());

String token = JwtUtil.creatToken(map);

hashMap.put("token", token);

return Result.success(hashMap);

}else {

return Result.error();

}

}

5.2管理员功能模块

5.2.1宿管管理

在管理员功能模块中的宿管员管理部分,管理员可以添加、编辑或删除宿管员信息,确保宿管员数据的实时性和准确性。同时,该模块还提供权限设置功能,以便灵活调整宿管员的职责范围,实现精细化的宿舍管理。如图5.2所示。

图5.2宿管员管理界面图

核心代码:

public Result<Guanliyuan> deleteList(@RequestBody GuanliyuanVo guanliyuan) {

guanliyuanService.deleteList(guanliyuan.getList());

return Result.success();

}

public Result<Guanliyuan> add(@RequestBody GuanliyuanVo guanliyuan) {

guanliyuanService.add(guanliyuan);

return Result.success(guanliyuan);

}

public Result update(@RequestBody GuanliyuanVo guanliyuan) {

guanliyuanService.update(guanliyuan);

return Result.success();

}

5.2.2学生管理

在管理员功能模块的学生管理功能部分,管理员能够查看、编辑和删除学生信息,包括学生的个人资料、住宿记录等。管理员还能通过该模块对用户进行权限分配,以保障系统的安全和用户信息的保密性。如图5.3所示。

图5.3学生管理界面图

核心代码:

public class YonghuxinxiController {

@Resource

private YonghuxinxiService yonghuxinxiService;

@PostMapping

public Result<Yonghuxinxi> add(@RequestBody YonghuxinxiVo yonghuxinxi) {

//yoxuxiaxnci

yonghuxinxiService.add(yonghuxinxi);

return Result.success(yonghuxinxi);

}

@GetMapping("/getExcel")

public void getExcel(HttpServletResponse response) throws IOException {

// 1. 生成excel

Map<String, Object> row = new LinkedHashMap<>();

row.put("xuehao","学号");

row.put("xingming","姓名");

row.put("xingbie","性别");

row.put("sushe","宿舍");

row.put("beizhu","备注");

row.put("addtime","添加时间");

List<Map<String, Object>> list = CollUtil.newArrayList(row);

List<Map<String, Object>> daochuexcellist = yonghuxinxiService.daochuexcel();

for (Map<String, Object> map : daochuexcellist) {

list.add(map);

}

5.2.3楼宇管理

在管理员功能模块中的楼宇管理部分,管理员可以全面地管理楼宇宿舍信息,包括宿舍的分配、宿管的分配等。通过这一模块,管理员可以高效地掌握宿舍的使用情况,确保宿舍资源的合理分配和有效利用。如图5.4所示。

图5.4楼宇管理界面图

核心代码:

public void getExcel(HttpServletResponse response) throws IOException {

// 1. 生成excel

Map<String, Object> row = new LinkedHashMap<>();

row.put("sushe","宿舍");

row.put("yuanxi","院系");

row.put("suozailouceng","楼宇");

row.put("sushehao","宿舍号");

row.put("addtime","添加时间");

List<Map<String, Object>> list = CollUtil.newArrayList(row);

List<Map<String, Object>> daochuexcellist = sushexinxiService.daochuexcel();

for (Map<String, Object> map : daochuexcellist) {

list.add(map);

}

5.2.4学生登记管理

在管理员功能模块的学生登记管理部分,管理员可以方便地录入、查询和更新学生的登记信息,包括学生的姓名、学号、宿舍号、登记类型及理由等关键数据。这有助于学生宿舍的规范化管理。如图5.5所示。

图5.5学生登记管理界面图

核心代码:

public void getExcel(HttpServletResponse response) throws IOException {

// 1. 生成excel

Map<String, Object> row = new LinkedHashMap<>();

row.put("xuehao","学号");

row.put("xingming","姓名");

row.put("sushe","宿舍");

row.put("leixing","类型");

row.put("riqi","日期");

row.put("liyou","理由");

row.put("addtime","添加时间");

List<Map<String, Object>> list = CollUtil.newArrayList(row);

List<Map<String, Object>> daochuexcellist = xueshengdengjiService.daochuexcel();

for (Map<String, Object> map : daochuexcellist) {

list.add(map);

}

// 2. 写excel

ExcelWriter writer = ExcelUtil.getWriter(true);

writer.write(list,true); response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");

response.setHeader("Content-Disposition","attachment;filename=chaoba.xlsx");

ServletOutputStream out = response.getOutputStream();

writer.flush(out, true);

writer.close();

IoUtil.close(System.out);

}

5.2.5维修管理

在管理员功能模块中的维修管理部分,管理员可以有效跟踪和管理宿舍设施的维修请求。通过记录维修详情、分配维修人员及监控维修进度,确保问题得到及时解决,提升宿舍设施的维护效率和居住体验。如图5.6所示。

图5.6维修管理界面图

核心代码:

public void getExcel(HttpServletResponse response) throws IOException {

// 1. 生成excel

Map<String, Object> row = new LinkedHashMap<>();

row.put("guzhangmiapshu","故障描述");

row.put("zhaopian","照片");

row.put("sushehao","宿舍号");

row.put("xuehao","学号");

row.put("addtime","添加时间");

List<Map<String, Object>> list = CollUtil.newArrayList(row);

List<Map<String, Object>> daochuexcellist = weixiujiluService.daochuexcel();

for (Map<String, Object> map : daochuexcellist) {

list.add(map);

}

5.2.6申请上报管理

在管理员功能模块中的申请上报管理部分,管理员能够处理和审批来自学生的各类申请,如宿舍调换、退宿等。通过这一模块,申请流程更加规范高效,有助于管理员及时了解并响应宿舍内部需求。如图5.7所示。

图5.7申请上报管理界面图

核心代码:

public void getExcel(HttpServletResponse response) throws IOException {

// 1. 生成excel

Map<String, Object> row = new LinkedHashMap<>();

row.put("xuehao","学号");

row.put("sushehao","宿舍号");

row.put("riqi","日期");

row.put("liyou","理由");

row.put("xingming","姓名");

row.put("sushe","宿舍");

row.put("addtime","添加时间");

List<Map<String, Object>> list = CollUtil.newArrayList(row);

List<Map<String, Object>> daochuexcellist = shenqingshangbaoService.daochuexcel();

for (Map<String, Object> map : daochuexcellist) {

list.add(map);

}

5.2.7访客管理

在管理员功能模块中的访客管理部分,管理员能够全面管理每个楼宇的访客登记信息,包括来访人的姓名、电话、身份证等。通过这一功能,管理员可以清晰掌握来访情况。如图5.8所示。

图5.8访客管理界面图

核心代码:

public void getExcel(HttpServletResponse response) throws IOException {

// 1. 生成excel

Map<String, Object> row = new LinkedHashMap<>();

row.put("laifangren","来访人");

row.put("dianhua","电话");

row.put("shenfenzheng","身份证");

row.put("yuanyin","原因");

row.put("laifangshijian","来访时间");

row.put("addtime","添加时间");

List<Map<String, Object>> list = CollUtil.newArrayList(row);

List<Map<String, Object>> daochuexcellist = sushechengyuanService.daochuexcel();

for (Map<String, Object> map : daochuexcellist) {

list.add(map);

}

5.3宿管员功能模块

5.3.1个人资料管理

宿管员功能模块中的个人资料管理部分,允许宿管员编辑和更新自己的个人信息,如姓名、联系方式等,确保个人资料的准确性和最新性。这有助于提升系统内部通讯的效率和准确性,便于其他管理人员或学生与宿管员进行联系。如图5.9所示。

图5.9个人资料管理界面图

核心代码:

public class DormitoryManagerService {

@PersistenceContext

private EntityManager entityManager;

@Transactional

public DormitoryManager updateDormitoryManager(DormitoryManager dormitoryManager) {

DormitoryManager existingManager = entityManager.find(DormitoryManager.class, dormitoryManager.getId());

if (existingManager != null) {

// 更新属性

existingManager.setName(dormitoryManager.getName());

existingManager.setPhoneNumber(dormitoryManager.getPhoneNumber());

existingManager.setEmail(dormitoryManager.getEmail());

// ... 更新其他属性

// 保存更新

entityManager.flush();

return existingManager;

}

return null;

}

5.3.2学生登记管理

宿管员功能模块中的学生登记管理,使宿管员能够直接管理和记录入住学生的基本信息,包括入住状态、个人信息变更等。通过这一功能,宿管员可以迅速掌握宿舍入住情况,确保学生信息的实时更新和准确性。如图5.11所示。

图5.11学生登记管理模块界面图

核心代码:

public class StudentController {

@Autowired

private StudentService studentService;

@PostMapping("/register")

public Student registerStudent(@RequestBody Student student) {

return studentService.registerStudent(student);

}

// 其他控制器方法,如获取学生列表、获取单个学生信息等...

}

5.3.3访客查询

宿管员功能模块中的访客管理功能,使宿管员能够方便地查看和管理所负责宿舍的来访信息,包括来访者的姓名、电话、身份证和原因等。这有助于宿管员及时了解外来人口变动,确保宿舍安全和秩序。如图5.12所示。

图5.12访客记录查询界面图

核心代码:

public class DormitoryController {

@Autowired

private DormitoryService dormitoryService;

@PostMapping("/{dormitoryId}/students")

public void addStudentToDormitory(@PathVariable Long dormitoryId, @RequestParam Long studentId) {

dormitoryService.addStudentToDormitory(dormitoryId, studentId);

}

@DeleteMapping("/{dormitoryId}/students/{studentId}")

public void removeStudentFromDormitory(@PathVariable Long dormitoryId, @PathVariable Long studentId) {

dormitoryService.removeStudentFromDormitory(dormitoryId, studentId);

}

}

5.3.4申请记录查询

宿管员功能模块中的申请管理功能,允许宿管员查看学生的各类申请,如换宿、退宿等,并及时上报给管理员审批。这一功能提高了申请处理的效率,确保了学生需求的及时响应和解决。如图5.13所示。

图5.13申请记录查询界面图

核心代码:

public class DormitoryApplicationController {

@Autowired

private DormitoryApplicationService dormitoryApplicationService;

@PostMapping

public void submitApplication(@RequestBody DormitoryApplication application) {

dormitoryApplicationService.submitApplication(application);

}

@GetMapping("/pending")

public Iterable<DormitoryApplication> getAllPendingApplications() {

return dormitoryApplicationService.getAllPendingApplications();

}

@PutMapping("/{id}/process")

public void processApplication(@PathVariable Long id) {

dormitoryApplicationService.processApplication(id);

}

5.3.5维修管理

宿管员功能模块中的维修管理,让宿管员能够及时记录并跟进宿舍内的维修需求。宿管员可以上报损坏情况,跟踪维修进度,确保问题得到及时解决,为学生提供更好的居住环境。如图5.14所示。

图5.14维修管理界面图

核心代码:

public class DormitoryMaintenanceService {

@Autowired

private DormitoryMaintenanceRepository dormitoryMaintenanceRepository;

// 创建维修请求

@Transactional

public DormitoryMaintenance createMaintenanceRequest(DormitoryMaintenance maintenance) {

return dormitoryMaintenanceRepository.save(maintenance);

}

// 获取所有维修请求

public List<DormitoryMaintenance> getAllMaintenanceRequests() {

return dormitoryMaintenanceRepository.findAll();

}

// 更新维修状态

@Transactional

public void updateMaintenanceStatus(Long id, MaintenanceStatus status) {

DormitoryMaintenance maintenance = dormitoryMaintenanceRepository.findById(id)

.orElseThrow(() -> new IllegalArgumentException("维修请求不存在"));

maintenance.setStatus(status);

dormitoryMaintenanceRepository.save(maintenance);

}

5.4学生功能模块

5.4.1个人资料管理

学生功能模块中的个人资料管理,使学生能够自主管理和更新自己的基本信息,如姓名、联系方式等。这一功能不仅有助于学生确保个人资料的准确性,还能提升学生在系统中的自助服务能力。如图5.15所示。

图5.15个人资料管理界面图

核心代码:

public class StudentProfileService {

@Autowired

private StudentRepository studentRepository;

// 获取当前登录学生的个人资料

public Student getCurrentStudentProfile(Long studentId) {

return studentRepository.findById(studentId)

.orElseThrow(() -> new IllegalArgumentException("学生不存在"));

}

// 更新当前登录学生的个人资料

@Transactional

public Student updateStudentProfile(Long studentId, StudentProfileUpdateDto profileUpdateDto) {

Student student = getCurrentStudentProfile(studentId);

// 根据DTO更新学生对象

student.setName(profileUpdateDto.getName());

student.setEmail(profileUpdateDto.getEmail());

student.setPhoneNumber(profileUpdateDto.getPhoneNumber());

// ... 其他字段更新

return studentRepository.save(student);

}

5.4.2申请上报管理

学生功能模块中的申请上报管理,允许学生提交各类申请,如换宿、退宿等,并实时查看申请状态。通过这一功能,学生可以便捷地表达自己的需求,并及时获得管理层的反馈,提高了申请处理的透明度和效率。如图5.16所示。

图5.16申请上报添加管理界面图

图5.16申请上报查询管理界面图

核心代码:

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Service;

import org.springframework.transaction.annotation.Transactional;

@Service

public class DormitoryApplicationService {

@Autowired

private DormitoryApplicationRepository applicationRepository;

// 学生提交宿舍申请

@Transactional

public DormitoryApplication submitApplication(DormitoryApplication application) {

return applicationRepository.save(application);

}

// 管理员审核宿舍申请

@Transactional

public void reviewApplication(Long applicationId, ApplicationStatus status, String remark) {

DormitoryApplication application = applicationRepository.findById(applicationId)

.orElseThrow(() -> new IllegalArgumentException("申请不存在"));

application.setStatus(status);

application.setRemark(remark);

applicationRepository.save(application);

}

}

5.2.3学生登记管理

学生功能模块中的学生登记管理,让学生可以查看和管理自己的日常登记信息,包括不归、晚归等章台。通过这一功能,可以清晰地了解学生的入住情况。如图5.17所示。

图5.17学生登记管理图

核心代码:

public class StudentRegistrationService {

@Autowired

private StudentRepository studentRepository;

// 学生登记

public Student registerStudent(@RequestBody Student student) {

// 验证学生信息是否完整或合法

// 保存学生信息到数据库

Student savedStudent = studentRepository.save(student);

return savedStudent;

}

五、数据库表(部分)

管理员信息表主要用于保存系统管理员的信息,主要字段包括:管理员ID、登录账号、登录密码、状态、添加时间。表结构如表4.1所示。

表4.1管理员信息表

|------------|--------------|------------|-------------|--------------|------------|
| 列名 | 数据类型 | 长度 | 允许空 | 是否主键 | 说明 |
| userId | int | 10 | 否 | 是 | 管理员ID |
| userName | varchar | 12 | 否 | 否 | 登录账号 |
| userPw | varchar | 15 | 否 | 否 | 登录密码 |
| status | varchar | 10 | 是 | 否 | 管理员状态 |
| addTime | datetime | 8 | 是 | 否 | 添加时间 |

学生信息表主要用于存储学生个人信息,主要字段包括:学生ID、学号、姓名、性别、身份证、电话、院系、班级、楼号、宿舍号、添加时间。表结构如表4.2所示。

表4.2学生信息表

|-------------|--------------|------------|-------------|--------------|------------|
| 列名 | 数据类型 | 长度 | 允许空 | 是否主键 | 说明 |
| studentId | int | 11 | 否 | 是 | 学生ID |
| studentNo | varchar | 20 | 否 | 否 | 学号 |
| name | varchar | 50 | 否 | 否 | 姓名 |
| gender | varchar | 10 | 否 | 否 | 性别 |
| idCard | varchar | 18 | 否 | 否 | 身份证 |
| phone | varchar | 20 | 是 | 否 | 电话 |
| department | varchar | 50 | 否 | 否 | 院系 |
| className | varchar | 50 | 否 | 否 | 班级 |
| buildingNo | varchar | 10 | 否 | 否 | 楼号 |
| dormitoryNo | varchar | 10 | 否 | 否 | 宿舍号 |
| addTime | datetime | 8 | 是 | 否 | 添加时间 |

宿管员信息表主要用于保存宿管员信息信息,主要字段包括:宿管员ID、账号、名字、电话、邮箱、照片、添加时间。表结构如表4.3所示。

表4.3宿管员信息表

|--------------------|--------------|------------|-------------|--------------|------------|
| 列名 | 数据类型 | 长度 | 允许空 | 是否主键 | 说明 |
| dormitoryManagerId | int | 11 | 否 | 是 | 宿管员ID |
| account | varchar | 50 | 否 | 否 | 账号 |
| name | varchar | 50 | 否 | 否 | 名字 |
| phone | varchar | 20 | 是 | 否 | 电话 |
| email | varchar | 100 | 是 | 否 | 邮箱 |
| photo | varchar | 255 | 是 | 否 | 照片 |
| addTime | datetime | 8 | 是 | 否 | 添加时间 |

访客表主要用于保存访客信息,主要字段包括:访客ID、来访人、电话、身份证、原因、来访时间、添加时间。表结构如表4.4所示。

表4.4访客表

|---------------|--------------|------------|-------------|--------------|------------|
| 列名 | 数据类型 | 长度 | 允许空 | 是否主键 | 说明 |
| visitorId | int | 11 | 否 | 是 | 访客ID |
| visitorName | varchar | 50 | 否 | 否 | 来访人 |
| visitorPhone | varchar | 20 | 否 | 否 | 电话 |
| visitorIdCard | varchar | 18 | 否 | 否 | 身份证 |
| reason | varchar | 255 | 否 | 否 | 原因 |
| visitTime | datetime | 8 | 否 | 否 | 来访时间 |
| addTime | datetime | 8 | 是 | 否 | 添加时间 |

维修表主要用于保存维修信息,主要字段包括:维修ID、故障描述、照片、宿舍号、学号、姓名、电话、上报时间、添加时间。表结构如表4.5所示。

表4.5维修表

|------------------|--------------|------------|-------------|--------------|------------|---|
| 列名 | 数据类型 | 长度 | 允许空 | 是否主键 | 说明 | |
| maintenanceId | int | 11 | 否 | 是 | 维修ID | |
| faultDescription | varchar | 255 | 否 | 否 | 故障描述 | |
| photo | varchar | 255 | 是 | 否 | 照片 | |
| dormitoryNo | varchar | 10 | 否 | 否 | 宿舍号 | |
| studentNo | varchar | 20 | 否 | 否 | 学号 | |
| studentName | varchar | 50 | 否 | 否 | 姓名 | |
| studentPhone | varchar | 20 | 否 | 否 | 电话 | |
| reportTime | datetime | 8 | 否 | 否 | 上报时间 | |
| addTime | datetime | 8 | 是 | 否 | 添加时间 | |

学生登记表主要用于存储学生登记信息,主要字段包括:学生登记ID、学号、姓名、宿舍号、类型、日期、内容、添加时间。表结构如表4.6所示。

表4.6学生登记表

|-------------------|--------------|------------|-------------|--------------|------------|
| 列名 | 数据类型 | 长度 | 允许空 | 是否主键 | 说明 |
| studentRegisterId | int | 11 | 否 | 是 | 学生登记ID |
| studentNo | varchar | 20 | 否 | 否 | 学号 |
| name | varchar | 50 | 否 | 否 | 姓名 |
| dormitoryNo | varchar | 10 | 否 | 否 | 宿舍号 |
| type | varchar | 50 | 否 | 否 | 类型 |
| date | date | 10 | 否 | 否 | 日期 |
| content | varchar | 255 | 否 | 否 | 内容 |
| addTime | datetime | 8 | 是 | 否 | 添加时间 |

宿舍表主要用于存储宿舍信息,主要字段包括:宿舍ID、学号、姓名、宿舍号、理由、添加时间。表结构如表4.7所示。

表4.7宿舍表

|-------------|--------------|------------|-------------|--------------|------------|
| 列名 | 数据类型 | 长度 | 允许空 | 是否主键 | 说明 |
| dormitoryId | int | 11 | 否 | 是 | 宿舍ID |
| studentNo | varchar | 20 | 否 | 否 | 学号 |
| name | varchar | 50 | 否 | 否 | 姓名 |
| dormitoryNo | varchar | 10 | 否 | 否 | 宿舍号 |
| reason | varchar | 255 | 否 | 否 | 理由 |
| addTime | datetime | 8 | 是 | 否 | 添加时间 |

楼宇表主要用于存储楼宇信息,主要字段包括:楼宇ID、学号、姓名、性别、身份证、电话、院系、班级、楼号、宿舍号、添加时间。表结构如表4.8所示。

表4.8楼宇表

|-------------|--------------|------------|-------------|--------------|------------|
| 列名 | 数据类型 | 长度 | 允许空 | 是否主键 | 说明 |
| buildingId | int | 11 | 否 | 是 | 楼宇ID |
| studentNo | varchar | 20 | 否 | 否 | 学号 |
| name | varchar | 50 | 否 | 否 | 姓名 |
| gender | varchar | 10 | 否 | 否 | 性别 |
| idCard | varchar | 18 | 否 | 否 | 身份证 |
| phone | varchar | 20 | 是 | 否 | 电话 |
| department | varchar | 50 | 否 | 否 | 院系 |
| className | varchar | 50 | 否 | 否 | 班级 |
| buildingNo | varchar | 10 | 否 | 否 | 楼号 |
| dormitoryNo | varchar | 10 | 否 | 否 | 宿舍号 |
| addTime | datetime | 8 | 是 | 否 | 添加时间 |

六、系统测试

表6.1宿舍管理测试用例表

|--------|----------------------------------|----------------------------|
| 测试用例 | 测试方法 | 测试结果 |
| 添加宿舍 | 通过系统尝试添加一个新的宿舍,填写所有必填信息。 | 宿舍成功添加,可以在宿舍列表中看到新添加的宿舍。 |
| 修改宿舍信息 | 选择一个已存在的宿舍,修改其部分信息(如宿舍号、楼层等)后保存。 | 宿舍信息成功更新,可以在宿舍详情中看到修改后的信息。 |
| 删除宿舍 | 选择一个已存在的宿舍,进行删除操作。 | 宿舍成功删除,宿舍列表中不再显示该宿舍。 |

表6.2维修管理测试用例表

|--------|---------------------------|---------------------------------|
| 测试用例 | 测试方法 | 测试结果 |
| 提交维修申请 | 以学生或宿管员身份提交一个维修申请,填写相关信息。 | 维修申请成功提交,可以在维修申请列表中看到新提交的申请。 |
| 分配维修人员 | 管理员尝试分配维修人员给一个已提交的维修申请。 | 维修人员成功分配,可以在维修申请详情中看到分配的维修人员信息。 |
| 完成维修任务 | 维修人员完成维修任务后,标记维修完成。 | 维修任务成功标记为完成,申请状态更新为已完成。 |

表6.3申请上报管理测试用例表

|--------|-------------------------|---------------------------------|
| 测试用例 | 测试方法 | 测试结果 |
| 提交换宿申请 | 学生尝试提交一个换宿申请,填写相关信息。 | 换宿申请成功提交,可以在申请列表中看到新提交的申请。 |
| 审批换宿申请 | 管理员尝试审批一个已提交的换宿申请。 | 换宿申请成功审批,申请状态更新为已审批,学生宿舍信息相应更新。 |
| 提交请假申请 | 学生尝试提交一个请假申请,填写请假时间和原因。 | 请假申请成功提交,可以在申请列表中看到新提交的申请 |

6.2 非功能测试

以下是基于Spring Boot的宿舍管理系统的非功能测试用例表,重点关注系统的性能、兼容性和易用性等非功能方面。

表6.4性能测试用例表

|----------|--------------------------------|---------------------------------|
| 测试用例 | 测试方法 | 测试结果 |
| 用户同时操作 | 模拟多个用户同时访问系统并进行操作,如创建用户、提交申请等。 | 系统能够稳定处理多用户并发操作,无明显延迟或错误。 |
| 大量数据处理 | 在系统中导入大量用户数据,并进行查询、修改等操作。 | 系统能够高效处理大量数据,查询和修改操作在可接受的时间内完成。 |
| 长时间运行稳定性 | 让系统连续运行数天,期间不断进行各种操作。 | 系统在长时间运行后仍然保持稳定,未出现崩溃或性能下降。 |

表6.5兼容性测试用例表

|-----------|-----------------------------------------|------------------------------|
| 测试用例 | 测试方法 | 测试结果 |
| 不同浏览器兼容性 | 使用Chrome、Firefox、Safari、Edge等不同浏览器访问系统。 | 系统在不同浏览器上均能正常显示和运行,无明显差异或错误。 |
| 不同操作系统兼容性 | 在Windows、macOS、Linux等不同操作系统上运行系统。 | 系统在不同操作系统上均能正常安装和运行,无明显问题。 |
| 移动设备兼容性 | 使用手机和平板等移动设备访问系统。 | 系统在移动设备上能够自适应屏幕大小,功能正常使用。 |

表6.6易用性测试用例表

|---------|-------------------------------|--------------------------------|
| 测试用例 | 测试方法 | 测试结果 |
| 界面布局合理性 | 观察系统的界面布局,检查按钮、输入框等元素的摆放是否合理。 | 界面布局整洁、直观,用户能够轻松找到所需功能。 |
| 操作流程简洁性 | 按照正常业务流程操作系统,观察操作步骤是否简洁明了。 | 操作流程清晰,用户能够顺利完成各项任务,无需额外帮助。 |
| 提示信息明确性 | 在操作过程中观察系统给出的提示信息是否明确易懂。 | 提示信息准确、清晰,能够帮助用户快速理解当前操作或问题所在。 |

七、项目论文展示

论文字数1.6W+

八、我们的优势

项目功能点多,界面美观满足毕设要求!

项目提供源码,无bug包远程部署运行!

配套文档内容全,满足答辩要求!

九、源码及文档获取

点击文章下方名片联系我即可~

精彩专栏推荐订阅:在下方专栏

java类毕设实战案例
计算机毕设答辩指南

计算机毕设选题指导

大家点赞、收藏、关注啦,查看联系方式⬇

相关推荐
lssjzmn2 小时前
基于Spring Boot与Micrometer的系统参数监控指南
java·spring boot·数据可视化
柯南二号2 小时前
【Java后端】Spring Boot 集成雪花算法唯一 ID
java·linux·服务器
纤瘦的鲸鱼2 小时前
Docker 从入门到实践:容器化技术核心指南
java·docker·容器
不吃洋葱.2 小时前
Bean.
java·开发语言
送秋三十五2 小时前
spring源码分析————ListableBeanFactory
java·后端·spring
努力也学不会java2 小时前
【设计模式】状态模式
java·设计模式·状态模式
.豆鲨包2 小时前
【设计模式】单例模式
java·单例模式·设计模式
邂逅星河浪漫2 小时前
【Docker+Nginx+Ollama】前后端分离式项目部署(传统打包方式)
java·nginx·docker·部署
IAtlantiscsdn2 小时前
Redis Stack扩展功能
java·数据库·redis