(附源码)基于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 | 是 | 否 | 电话 |
| 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类毕设实战案例
计算机毕设答辩指南计算机毕设选题指导
大家点赞、收藏、关注啦,查看联系方式⬇