实验室是高校开展实践教学活动、科学研究工作的主要阵地,其管理质量的好坏不仅会直接影响学校教学及科研工作的顺利高效开展,同时也会影响学校的发展,因此,就需要各高校全面做好实验室管理。
从当前我国高校实验室管理现状来看,大部分高校实验室管理均存在不少的问题。对此,就需要积极探索优化实验室管理的对策。在实验室的管理工作中,学生的管理以及实验室的管理是比较麻烦的事情,对于实验室是否空闲,学生的实验是否完成等工作统计起来都很麻烦。
利用计算机辅助进行学生管理,以及实验室的状态更改可以实时地更改,有利于提高老师的办公效率,同时也便于学生对实验室报告的提交,提高工作效率,让实验室管理实现现代化。以前实验室的管理都是通过登记存档等工作进行的,随着近几年,国内发展和改革的步伐日趋加快,实验室建设的投入逐年增加,面对规模庞大,事务繁杂的实验室管理工作,许多管理上的问题也逐渐暴露出来,为了提高效率便有了此次的在线实验室管理系统的设计与开发。
随着现代科学技术的迅猛发展,计算机技术已经渗透到各个领域,在线实验室管理系统是基于网络环境的只需要通过互联网,就可以实现实验室管理,学生管理等功能,为老师和学生更加合理的安排实验时间,提高实验室的使用效率。
系统主要目标是实现实验室的实验报告管理,学生可以提交实验报告,查看实验分数,预约实验室,也能够看到各个实验室的实时状态,还可以观看老师上传的微课。老师可以上传微课视频,还可以布置实验任务,可以为查看学生的实验报告并打分。
本管理系统的开发适用于各大学校的实验室的线上管理,提高实验室管理过程的运作效率。实验室管理系统能够实现实验室的预约,微课的发布以及学习,实验内容的管理,实验报告的批阅等操作,为实验老师和学生更加合理的安排实验时间,提高实验室的管理效率。
系统管理员:管理员信息管理模块、教师信息管理模块、学生信息管理模块、班级信息管理模块、实验教室信息管理模块;
教师:班级学生模块、实验室预约模块、作业管理模块、作业批阅模块、实验管理模块、实验批阅模块、微课管理模块;
学生:我的资料模块、实验室预约模块、作业模块、实验模块、微课管理模块。
实验室在线实验管理系统的总体业务流程如图2.1所示。
图2.1 总体业务流程图
本系统主要分为三个角色学生、教师、管理员。领域模型如图2.2所示。
图2.2 领域模型
图2.3 高层用例图
用例摘要描述如表2.1所示。
表2.1 用例摘要描述
用例标识(UC) | 用例名称 | 摘要描述 |
1 | 登录 | 根据分配账号进行登录 |
2 | 管理员管理 | 管理系统管理员角色用户,对用户信息进行维护 |
3 | 用户管理 | 管理系统教师和学生用户,对信息进行维护 |
4 | 教师管理 | 对教师信息进行管理维护 |
5 | 班级管理 | 对班级信息进行管理维护 |
6 | 实验室预约 | 教师和学生预约实验室 |
7 | 作业 | 教师可以发布作业,学生查看以及上交作业 |
8 | 课程 | 教师发布课程,学生学习课程 |
9 | 实验 | 教师可以发布实验,学生查看以及上交实验报告 |
(1)用户管理用例描述如表2.2所示。
表2.2 用户管理用例
用例标识 | 2.3 |
用例名称 | 用户管理 |
参与者 | 管理员 |
前置条件 | 已经以管理员身份登录 |
后置条件 | 在用户表中添加一条用户信息 |
用例概述 | 管理员可以对用户信息进行增删改查操作 |
基本事件流 | 1、管理员登录系统。 2、管理员点击教师/学生管理 3、系统显示管理页面 4、点击添加按钮 5、输入姓名,账号,密码,联系方式,详细地址,班级信息 6、系统检查信息的有效性 7、系统显示添加成功 |
备选事件流 | 5a系统查询到重复信息,提示添加失败 |
备注 | 无 |
(3)实验室管理用例描述如表2.3所示。
表2.3 实验室管理用例
用例标识 | 2.3 |
用例名称 | 实验室管理 |
参与者 | 管理员 |
前置条件 | 已经以管理员身份登录 |
后置条件 | 在实验室表中添加一条实验室信息 |
用例概述 | 管理员可以添加实验室,修改实验室信息,以及删除实验室 |
基本事件流 | 1、管理员登录系统。 2、管理员点击实验室管理 3、系统显示实验室管理页面 4、点击新增按钮 5、输入实验室名称和实验室编号 6、系统检查信息的有效性 7、系统显示添加成功 8、管理员点击编辑按钮 9、系统弹出修改信息对话框 10、管理员修改实验室信息,并点击确认 11、系统提示修改成功 12、管理员点击删除按钮 13、系统提示是否继续 14、管理员点击确定 15、系统提示删除成功 |
备选事件流 | 5a系统查询到重复信息,提示添加失败 |
备注 | 无 |
(4)实验室预约用例描述如表2.4所示。
表2.4 实验室预约用例
用例标识 | 2.4 |
用例名称 | 实验室预约 |
参与者 | 教师/学生 |
前置条件 | 教师/学生成功登录系统 |
后置条件 | 实验室预约成功 |
用例概述 | 教师/学生可以进行实验室预约 |
基本事件流 | 1、教师/学生登录系统 2、教师/学生点击实验室预约 3、系统显示实验室预约页面 4、教师/学生点击新增按钮 5、系统弹出实验室预约信息 6、教师/学生输入实验室名称,选择开始时间和结束时间,点击确定 7、系统提示预约成功 |
备选事件流 | 6a实验室已经被预约,显示预约失败 |
备注 | 无 |
(5)作业发布用例描述如表2.5所示。
表2.5 作业发布用例
用例标识 | 2.5 |
用例名称 | 作业发布 |
参与者 | 教师 |
前置条件 | 教师已经登录系统 |
后置条件 | 作业发布成功,学生可以收到作业信息 |
用例概述 | 教师可以发布作业 |
基本事件流 | 1、教师登录系统。 2、教师点击作业管理 3、系统显示发布作业页面 4、教师点击新增作业 5、系统弹出作业信息对话框 6、教师填写作业标题和作业内容,点击确定 7、系统显示添加成功 |
备选事件流 | 无 |
备注 | 无 |
正确性:不允许出现业务错误。
健壮性:在系统出现故障时,系统必须提供相应的数据保护措施,不能丢失数据,并提供重新恢复正常工作的机制。
性能:系统处理业务时间正常业务量的情况下不超过2秒,繁忙业务情况下最迟时间不可超过5秒。
安全性:用户信息具有保密性。
兼容性:可运行在Windows7以上操作系统中。
由于本系统未涉及复杂的算法计算,为了能够利用最节约的成本以及简洁的代码达到最佳的效果,经过调研,计划采用Java语言来开发,具体的软硬件环境要求如下。
(1)硬件环境:Corei7处理器,内存要求8G及以上,硬盘50G以上。
(2)服务器:采用普通办公用个人计算机作为服务器,用来发布服务。
(3)开发工具:Idea。
(4)操作系统:可以采用Windows7及以上系统。
(5)数据库系统:采用现在比较流行的MySQL数据库。
(6)服务器:采用Tomcat9。
(7)Java环境:JDK10。
本在实验室在线实验管理系统的开发,我通过Idea作为这次毕业设计的开发工具,Java作为后端开发语言,Spring boot作为后端开发框架,Vue作为前端开发框架,MySQL数据管理工具作为本次系统开发数据库,MySQL它是一个能够支持很多的用户的一种新型的数据库,适用各类大中小规模的数据存储需求。MySQL保证了数据模块化存储的要求,当模块化存储能力的提高,有利于未来对在实验室在线实验管理系统的扩展以及修改。
按照开题报告中设计的功能需求,可以将整个实验室在线实验管理系统拆分为学生模块、教师模块、管理员三大模块根据不同模块的功能设计。如图3.1所示。
图3.1 系统功能结构图
系统采用Ajax(Asynchronous Javascript And XML)技术进行异步交互,客户端系统架构图如图3.2所示。
图3.2 客户端系统架构图
服务端分为四层,实现不同职责的划分,控制层负责分发处理客户端请求、身份验证、权限控制、数据类型转换、视图解析、会话管理;业务逻辑层负责处理具体业务逻辑;基础服务层为业务逻辑层提供必要的支持;数据访问层负责业务实体持久化。服务端系统架构图如图3.3所示。
图3.3 服务端系统架构图
管理员概念模型(ER图)如图3.4所示,用户概念模型(ER图)如图3.5所示。
图3.4 管理员E-R图
图3.5 用户E-R图
(1)用户表(yhb)
用来存储用户的基本信息,包括用户名、设置密码、确认密码、姓名、手机号、住址角色(管理员\学生\教师)、所属班级等信息。表结构如表3.1所示。
表3.1 用户表(yhb)
列名 | 数据类型 | 长度 | 允许空 | 是否主键 | 说明 |
userid | varchar | 32 | 否 | 是 | |
name | varchar | 500 | 否 | 否 | 姓名 |
account | varchar | 1000 | 否 | 否 | 账号 |
password | varchar | 1000 | 否 | 否 | 密码 |
phone | varchar | 1000 | 否 | 否 | 电话 |
address | varchar | 1000 | 否 | 否 | 收货地址 |
roles | varchar | 1000 | 否 | 否 | 角色 |
(2)班级管理表(sybj)
用来存储班级的基本信息,包括班级名称、班级编号等班级的基本信息。表结构如表3.2所示。
表3.2 班级管理表(sybj)
列名 | 数据类型 | 长度 | 允许空 | 是否主键 | 说明 |
id | varchar | 32 | 否 | 是 | |
mc | varchar | 500 | 否 | 否 | 班级名称 |
bh | varchar | 500 | 否 | 否 | 班级编号 |
(3)实验教室表(syjs)
用来存储实验教室表的基本信息,包括:实验室名称、实验室编号。表结构如表3.3所示。
表3.3 实验教室表(sybj)
列名 | 数据类型 | 长度 | 允许空 | 是否主键 | 说明 |
id | varchar | 32 | 否 | 是 | |
mc | varchar | 500 | 否 | 否 | 实验室名称 |
bh | varchar | 500 | 否 | 否 | 实验室编号 |
(4)作业发布表(syzyfb)
用来存储作业发布表的基本信息,包括:教师id、发布教师姓名、作业标题、作业内容、发布时间、班级。表结构如表3.4所示。
表3.4 作业发布表(syzyfb)
列名 | 数据类型 | 长度 | 允许空 | 是否主键 | 说明 |
id | varchar | 32 | 否 | 是 | |
jsid | varchar | 500 | 否 | 否 | 发布教师姓名 |
jsxm | varchar | 1000 | 否 | 否 | 教师id |
bt | varchar | 1000 | 否 | 否 | 作业标题 |
nr | varchar | 1000 | 是 | 否 | 作业内容 |
sj | varchar | 1000 | 否 | 否 | 发布时间 |
(5)作业记录表(syzy)
用来存储作业记录表的基本信息,包括:教师id、教师姓名、学生id、学生姓名、作业内容、学生提交作业、教师评分、教师备注、作业提交时间、作业标题、作业id等。表结构如表3.5所示。
表3.5 作业记录表(syzy)
列名 | 数据类型 | 长度 | 允许空 | 是否主键 | 说明 |
id | varchar | 32 | 否 | 是 | |
jsid | varchar | 500 | 否 | 否 | 发布教师姓名 |
jsxm | varchar | 1000 | 否 | 否 | 教师id |
xsid | varchar | 1000 | 否 | 否 | 学生姓名 |
xsxm | varchar | 1000 | 是 | 否 | 学生id |
nr | varchar | 1000 | 否 | 否 | 作业内容 |
xsnr | varchar | 1000 | 否 | 否 | 学生提交作业 |
pf | varchar | 1000 | 否 | 否 | 教师评分 |
bz | varchar | 1000 | 否 | 否 | 教师备注 |
(6)实验发布表(synrfb)
用来存储实验发布表的基本信息,包括:教师id、发布教师姓名、实验标题、实验内容、发布时间、班级。表结构如表3.6所示。
表3.6 实验发布表(synrfb)
列名 | 数据类型 | 长度 | 允许空 | 是否主键 | 说明 |
id | varchar | 32 | 否 | 是 | |
jsid | varchar | 500 | 否 | 否 | 发布教师姓名 |
jsxm | varchar | 1000 | 否 | 否 | 教师id |
bt | varchar | 1000 | 否 | 否 | 实验标题 |
nr | varchar | 1000 | 否 | 否 | 实验内容 |
sj | varchar | 1000 | 否 | 否 | 发布时间 |
(7)实验记录表(synr)
用来存储实验记录表的基本信息,包括:教师id、教师姓名、学生id、学生姓名、实验内容、学生提交实验、教师评分、教师备注、实验提交时间、实验标题、实验id等。表结构如表3.7所示。
列名 | 数据类型 | 长度 | 允许空 | 是否主键 | 说明 |
id | varchar | 32 | 否 | 是 | |
jsid | varchar | 500 | 否 | 否 | 实验发布教师姓名 |
jsxm | varchar | 1000 | 否 | 否 | 教师id |
xsid | varchar | 1000 | 否 | 否 | 学生姓名 |
xsxm | varchar | 1000 | 是 | 否 | 学生id |
nr | varchar | 1000 | 否 | 否 | 实验内容 |
xsnr | varchar | 1000 | 否 | 否 | 学生提交实验报告 |
pf | varchar | 1000 | 否 | 否 | 教师批阅 |
bz | varchar | 1000 | 否 | 否 | 教师备注 |
本系统由多模块构成,controller模块负责请求接入,service层负责业务逻辑处理,dao层做数据库操作层,各模块间依赖关系如图3.5所示。
图3.5 模块依赖关系图
(1)controller包中类的描述
controller包中类的描述如表3.1所示。
表3.1 controller包中类的描述
类名 | 属性/方法 | 描述 |
SybjController | addsybj(Sybj sybj) | 新增班级 |
updatesybj(Sybj sybj) | 修改班级 | |
deletesybj(Sybj sybj) | 删除班级 | |
sybjlist(Sybj sybj) | 查询班级 | |
SyjsController | addsyjs(syjs syjs) | 新增教室 |
updatesyjs(syjs syjs) | 修改教室 | |
deletesyjs(syjs syjs) | 删除教室 | |
syjslist(syjs sybj) | 查询教室 | |
synrController | addsynr(synr synr) | 新增实验内容 |
updatesynr(synr synr) | 修改实验内容 | |
deletesynr(synr synr) | 删除实验内容 | |
synrlist(synr synr) | 查询实验内容 | |
synrfbController | addsynrfb(synrfb synrfb) | 新增实验内容发布 |
updatesynrfb(synrfb synrfb) | 修改实验内容发布 | |
deletesynrfb(synrfb synrfb) | 删除实验内容发布 | |
synrfblist(synrfb synrfb) | 查询实验内容发布 | |
sywkController | addsywk(sywk sywk) | 新增微课 |
updatesywk(sywk sywk) | 修改微课 | |
deletesywk(sywk sywk) | 删除微课 | |
sywklist(sywk sywk) | 查询微课 | |
syyyController | addsyyy(syyy syyy) | 新增实验预约 |
updatesyyy(syyy syyy) | 修改实验预约 | |
deletesyyy(syyy syyy) | 删除实验预约 | |
syyylist(syyy syyy) | 查询实验预约 | |
syzyController | addsyzy(syzy syzy) | 新增作业 |
updatesyzy(syzy syzy) | 修改作业 | |
deletesyzy(syzy syzy) | 删除作业 | |
syzylist(syzy syzy) | 查询作业 | |
syzyfbController | addsyzyfb(syzyfb syzyfb) | 新增作业发布 |
updatesyzyfb(syzyfb syzyfb) | 修改作业发布 | |
deletesyzyfb(syzyfb syzyfb) | 删除作业发布 | |
syzyfblist(syzyfb syzyfb) | 查询作业发布 | |
yhbController | addyhb(yhb yhb) | 新增用户 |
updateyhb(yhb yhb) | 修改用户 | |
deleteyhb(yhb yhb) | 删除用户 | |
yhblist(yhb yhb) | 查询用户 |
(2)service包中类的描述
service包中类的描述如表3.2所示。
表3.2 service包中类的描述
类名 | 属性/方法 | 描述 |
SybjService | insert(Sybj record) | 新增班级 |
updateByPrimaryKey(Sybj record) | 修改班级 | |
int deleteByPrimaryKey(String id) | 删除班级 | |
selectByPrimaryKey(String id) | 查询班级 | |
SyjsService | insert( Syjs record) | 新增教室 |
updateByPrimaryKey(Syjs record) | 修改教室 | |
int deleteByPrimaryKey(String id) | 删除教室 | |
selectByPrimaryKey(String id) | 查询教室 | |
synrService | insert( Synr record) | 新增实验内容 |
updateByPrimaryKey(Synr record) | 修改实验内容 | |
int deleteByPrimaryKey(String id) | 删除实验内容 | |
selectByPrimaryKey(String id) | 查询实验内容 | |
synrfbService | insert( Synrfb record) | 新增实验内容发布 |
updateByPrimaryKey(Synrfb record) | 修改实验内容发布 | |
int deleteByPrimaryKey(String id) | 删除实验内容发布 | |
selectByPrimaryKey(String id) | 查询实验内容发布 | |
sywkService | insert( sywk record) | 新增微课 |
updateByPrimaryKey(sywk record) | 修改微课 | |
int deleteByPrimaryKey(String id) | 删除微课 | |
selectByPrimaryKey(String id) | 查询微课 | |
syyyService | insert( syyy record) | 新增实验预约 |
updateByPrimaryKey(syyy record) | 修改实验预约 | |
int deleteByPrimaryKey(String id) | 删除实验预约 | |
selectByPrimaryKey(String id) | 查询实验预约 | |
syzyService | insert( syzy record) | 新增作业 |
updateByPrimaryKey(syzy record) | 修改作业 | |
int deleteByPrimaryKey(String id) | 删除作业 | |
selectByPrimaryKey(String id) | 查询作业 | |
syzyfbService | insert( syzyfb record) | 新增作业发布 |
updateByPrimaryKey(syzyfb record) | 修改作业发布 | |
int deleteByPrimaryKey(String id) | 删除作业发布 | |
selectByPrimaryKey(String id) | 查询作业发布 | |
yhbService | insert( yhb record) | 新增用户 |
updateByPrimaryKey(yhb record) | 修改用户 | |
int deleteByPrimaryKey(String id) | 删除用户 | |
selectByPrimaryKey(String id) | 查询用户 |
(3)serviceImpl包中类的描述
serviceImpl包中类的描述如表3.3所示。
表3.3 serviceImpl包中类的描述
类名 | 属性/方法 | 描述 |
SybjServiceImpl | insert(Sybj record) | 新增班级 |
updateByPrimaryKey(Sybj record) | 修改班级 | |
int deleteByPrimaryKey(String id) | 删除班级 | |
selectByPrimaryKey(String id) | 查询班级 | |
SyjsServiceImpl | insert( Syjs record) | 新增教室 |
updateByPrimaryKey(Syjs record) | 修改教室 | |
int deleteByPrimaryKey(String id) | 删除教室 | |
selectByPrimaryKey(String id) | 查询教室 | |
synrServiceImpl | insert( Synr record) | 新增实验内容 |
updateByPrimaryKey(Synr record) | 修改实验内容 | |
int deleteByPrimaryKey(String id) | 删除实验内容 | |
selectByPrimaryKey(String id) | 查询实验内容 | |
synrfbServiceImpl | insert( Synrfb record) | 新增实验内容发布 |
updateByPrimaryKey(Synrfb record) | 修改实验内容发布 | |
int deleteByPrimaryKey(String id) | 删除实验内容发布 | |
selectByPrimaryKey(String id) | 查询实验内容发布 | |
sywkServiceImpl | insert( sywk record) | 新增微课 |
updateByPrimaryKey(sywk record) | 修改微课 | |
int deleteByPrimaryKey(String id) | 删除微课 | |
selectByPrimaryKey(String id) | 查询微课 | |
syyyServiceImpl | insert( syyy record) | 新增实验预约 |
updateByPrimaryKey(syyy record) | 修改实验预约 | |
int deleteByPrimaryKey(String id) | 删除实验预约 | |
selectByPrimaryKey(String id) | 查询实验预约 | |
syzyServiceImpl | insert( syzy record) | 新增作业 |
updateByPrimaryKey(syzy record) | 修改作业 | |
int deleteByPrimaryKey(String id) | 删除作业 | |
selectByPrimaryKey(String id) | 查询作业 | |
syzyfbServiceImpl | insert( syzyfb record) | 新增作业发布 |
updateByPrimaryKey(syzyfb record) | 修改作业发布 | |
int deleteByPrimaryKey(String id) | 删除作业发布 | |
selectByPrimaryKey(String id) | 查询作业发布 | |
yhbServiceImpl | insert( yhb record) | 新增用户 |
updateByPrimaryKey(yhb record) | 修改用户 | |
int deleteByPrimaryKey(String id) | 删除用户 | |
selectByPrimaryKey(String id) | 查询用户 |
教师发布作业,发布成功返回提示具体如下图3.6所示;
图3.6作业发布用例实现图
教师发布作业,发布成功返回提示具体如下图3.7所示;
图3.7微课发布用例实现图
教师发布实验,发布成功返回提示具体如下图3.8所示;
图3.8 实验发布用例实现图
用户管理,添加成功返回提示具体如下图3.8所示;
图3.8用户管理用例实现图
留言与评论(共有 0 条评论) “” |