Vue+SpringBoot打造实验报告管理系统

在这里插入图片描述


目录

  • 一、摘要
    • 1.1 项目介绍
    • 1.2 项目录屏
  • 二、功能模块
    • 2.1 实验管理模块
    • 2.2 实验实例模块
    • 2.3 实验批阅模块
    • 2.4 实验咨询模块
  • 三、系统展示
  • 四、核心代码
    • 4.1 查询实验
    • 4.2 新增实验咨询
    • 4.3 回复实验咨询
    • 4.4 新增实验实例
    • 4.5 查询实验实例
  • 五、免责说明


一、摘要

1.1 项目介绍

基于JAVA+Vue+SpringBoot+MySQL的实验报告管理系统,包含了实验管理模块、实验实例模块、实验批阅模块、实验咨询模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,实验报告管理系统基于角色的访问控制,给高校管理员、学生角色使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。

1.2 项目录屏


二、功能模块

2.1 实验管理模块

实验报告管理系统的实验管理模块通常包括实验信息的增加、删除、修改和查询功能,用户可以通过实验管理模块添加新的实验信息,包括实验名称、实验时间、实验地点、实验内容等。通常会有表单或者界面供用户填写相关信息,并在提交后将信息存储到数据库中。用户可以删除不再需要的实验信息。通常会提供一个列表或者搜索功能供用户选择需要删除的实验信息,确认删除后,系统会从数据库中删除相应的记录。用户可以对已有的实验信息进行修改,例如更改实验时间、地点,或者修正实验内容等。一般会提供编辑界面让用户对已有信息进行修改,并更新到数据库中。用户可以通过实验管理模块进行实验信息的查询,可以根据实验名称、时间、地点等条件进行搜索,系统会返回符合条件的实验信息列表供用户查看。这些功能通常会被整合到实验管理模块中,以便用户能够方便地管理和查看实验信息,提高实验管理的效率和准确性。

2.2 实验实例模块

实验报告管理系统的实验实例模块是用于管理和记录具体实验过程和实验结果的部分。主要包括实验实例的增加、删除、修改和查询功能,用户可以通过实验实例模块添加新的实验实例,包括实验名称、实验时间、实验地点、实验者、实验步骤、实验结果等。通常会提供表单或者界面供用户填写具体实验过程和结果,并将信息存储到数据库中。用户可以删除不再需要的实验实例。通常会提供一个列表或者搜索功能供用户选择需要删除的实验实例,确认删除后,系统会从数据库中删除相应的记录。用户可以对已有的实验实例进行修改,例如更改实验步骤、修改实验结果等。一般会提供编辑界面让用户对已有实验实例进行修改,并更新到数据库中。用户可以通过实验实例模块进行实验实例的查询,可以根据实验名称、实验者、时间等条件进行搜索,系统会返回符合条件的实验实例列表供用户查看。这些功能通常会被整合到实验实例模块中,以便用户能够方便地管理和查看具体实验过程和结果,提高实验记录和管理的效率和准确性。

2.3 实验批阅模块

实验报告管理系统的实验批阅模块是用于教师或者指导员对学生提交的实验报告进行评阅和反馈的部分,该模块通常包括实验报告批阅的增加、删除、修改和查询功能。教师或者指导员可以通过实验批阅模块对学生提交的实验报告进行评阅和反馈。通常会提供一个界面或者表单供教师输入评阅结果、评分、意见等信息,并将批阅结果存储到数据库中,以便学生查看。教师可以删除错误的实验批阅结果,或者重新进行评阅。通常会提供一个列表或者搜索功能供教师选择需要删除的批阅记录,确认删除后,系统会从数据库中删除相应的记录。教师可以对已有的实验批阅结果进行修改,例如修改评分、修改评语等。一般会提供编辑界面让教师对已有批阅结果进行修改,并更新到数据库中。教师可以通过实验批阅模块进行实验批阅结果的查询,可以根据学生姓名、实验名称、时间等条件进行搜索,系统会返回符合条件的实验批阅结果供教师查看和管理。这些功能通常会被整合到实验批阅模块中,以便教师能够方便地对学生提交的实验报告进行评阅和反馈,提高教学管理的效率和准确性。

2.4 实验咨询模块

实验报告管理系统的实验咨询模块是用于学生在实验过程中对实验内容、实验步骤等方面提出疑问并获得解答的部分。该模块通常包括实验咨询的增加、删除、修改和查询功能,学生可以通过实验咨询模块提出实验相关的问题和疑问。通常提供一个表单或者界面供学生填写问题的具体描述和相关信息,并将咨询信息存储到数据库中。学生可以删除不再需要或已解决的实验咨询。通常提供一个列表或者搜索功能供学生选择需要删除的咨询记录,确认删除后,系统会从数据库中删除相应的记录。学生可以对已有的实验咨询进行修改,例如补充问题描述或修改相关信息。一般会提供编辑界面让学生对已有咨询进行修改,并更新到数据库中。学生可以通过实验咨询模块进行实验咨询记录的查询。通常可以根据问题关键词、时间、状态等条件进行搜索,系统会返回符合条件的咨询记录供学生查看。这些功能通常会被整合到实验咨询模块中,以便学生能够方便地提出问题并获得相关解答,提高学生在实验过程中的支持和指导效果。同时,教师或指导员也可以通过该模块回复学生的咨询,以提供更好的实验辅导和支持。


三、系统展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


四、核心代码

4.1 查询实验

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询实验")
public Result<IPage<Experiment>> getByPage(@ModelAttribute Experiment experiment ,@ModelAttribute PageVo page){QueryWrapper<Experiment> qw = new QueryWrapper<>();if(!ZwzNullUtils.isNull(experiment.getTitle())) {qw.like("title",experiment.getTitle());}if(!ZwzNullUtils.isNull(experiment.getLevel())) {qw.like("level",experiment.getLevel());}IPage<Experiment> data = iExperimentService.page(PageUtil.initMpPage(page),qw);return new ResultUtil<IPage<Experiment>>().setData(data);
}

4.2 新增实验咨询

@RequestMapping(value = "/addOne", method = RequestMethod.GET)
@ApiOperation(value = "新增实验咨询")
public Result<Object> addOne(@RequestParam String exampleId,@RequestParam String content){ExperimentExample example = iExperimentExampleService.getById(exampleId);if(example == null) {return ResultUtil.error("实验实例不存在");}User currUser = securityUtil.getCurrUser();ExperimentAsk ea = new ExperimentAsk();ea.setExperimentId(example.getExperimentId());ea.setExampleId(example.getId());ea.setTitle(example.getTitle());ea.setUserId(currUser.getId());ea.setUserName(currUser.getNickname());ea.setContent(content);ea.setFile("");ea.setAskTime(DateUtil.now());ea.setReplyFlag(false);ea.setReplyTime("");ea.setReplyMessage("未答复");iExperimentAskService.saveOrUpdate(ea);return ResultUtil.success();
}

4.3 回复实验咨询

@RequestMapping(value = "/replyOne", method = RequestMethod.GET)
@ApiOperation(value = "回复实验咨询")
public Result<Object> replyOne(@RequestParam String askId,@RequestParam String content) {ExperimentAsk ask = iExperimentAskService.getById(askId);if (ask == null) {return ResultUtil.error("实验咨询单不存在");}ask.setReplyFlag(true);ask.setReplyMessage(content);ask.setReplyTime(DateUtil.now());iExperimentAskService.saveOrUpdate(ask);return ResultUtil.success();
}

4.4 新增实验实例

@RequestMapping(value = "/addOne", method = RequestMethod.GET)
@ApiOperation(value = "新增实验实例")
public Result<Object> addOne(@RequestParam String experimentId,@RequestParam String userId){Experiment experiment = iExperimentService.getById(experimentId);if(experiment == null) {return ResultUtil.error("实验不存在");}User currUser = iUserService.getById(userId);if(currUser == null) {return ResultUtil.error("用户不存在");}ExperimentExample ee = ExperimentUtils.getNewExperimentExample(experiment);ee.setUserId(currUser.getId());ee.setUserName(currUser.getNickname());ee.setSubmitStatus(0);ee.setFile1("");ee.setFile2("");ee.setFile3("");ee.setAuditStatus(0);ee.setAuditMessage("未审核");ee.setAchievement(BigDecimal.ZERO);iExperimentExampleService.saveOrUpdate(ee);return ResultUtil.success();
}

4.5 查询实验实例

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询实验实例")
public Result<IPage<ExperimentExample>> getByPage(@ModelAttribute ExperimentExample experimentExample ,@ModelAttribute PageVo page){QueryWrapper<ExperimentExample> qw = new QueryWrapper<>();if(!ZwzNullUtils.isNull(experimentExample.getTitle())) {qw.like("title",experimentExample.getTitle());}if(!ZwzNullUtils.isNull(experimentExample.getUserName())) {qw.like("user_name",experimentExample.getUserName());}IPage<ExperimentExample> data = iExperimentExampleService.page(PageUtil.initMpPage(page),qw);return new ResultUtil<IPage<ExperimentExample>>().setData(data);
}

五、免责说明

  • 本项目仅供个人学习使用,商用授权请联系博主,否则后果自负。
  • 博主拥有本软件构建后的应用系统全部内容所有权及独立的知识产权,拥有最终解释权。
  • 如有问题,欢迎在仓库 Issue 留言,看到后会第一时间回复,相关意见会酌情考虑,但没有一定被采纳的承诺或保证。

下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!

  1. 出于自愿而使用/开发本软件,了解使用本软件的风险,且同意自己承担使用本软件的风险。
  2. 利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和博主无关,博主对此不承担任何责任。
  3. 在任何情况下,对于因使用或无法使用本软件而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),博主概不承担任何责任。
  4. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/723145.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【学习笔记】卫星基础知识

一、什么是卫星以及它如何工作&#xff1f; 通信卫星是一种人造卫星&#xff0c;通过使用转发器在源和接收器之间中继和放大无线电电信信号。卫星的工作原理是接收从地球发送的无线电信号并将无线电信号重新发送回地球。卫星使用从大型太阳能电池阵列收集的太阳能&#xff0c;…

HTML标签分类,web微信开发者工具

第一个阶段&#xff0c;开发环境和工具准备 浏览器 &#xff08;Google&#xff0c;FireFox&#xff0c;…&#xff09;下载&#xff0c;安装前端开发工具vscode&#xff0c;下载、安装 node、npm、webpack、webpack-cli、cnpm&#xff0c;配置前端开发环境下载、配置PHP和MyS…

Centos安装Jenkins

1、更新系统 &#xff08;1&#xff09;更新下系统 sudo yum -y update 安装用于下载java 17二进制文件的wget命令行工具 sudo yum -y install wget vim 2、卸载centos自带的jdk 由于我们安装的版本比较高&#xff0c;需要jdk17&#xff0c;卸载centos自带的jdk。用 下面的…

【vue/组件封装】封装一个带条件筛选的搜索框组件(多组条件思路、可多选)详细流程

引入&#xff1a;实现一个带有筛选功能的搜索框&#xff0c;封装成组件&#xff1b; 搜索框长这样子&#xff1a; 点击右侧筛选图标后弹出层&#xff0c;长这样子&#xff1a; 实际应用中有多组筛选条件&#xff0c;这里为了举栗子就展示一组&#xff1b; 预览&#xff1a;…

07-prometheus的自定义监控-pushgateway工具组件

一、概述 pushgateway用于自定义监控节点、节点中服务的工具&#xff0c;用户可以通过自定义的命令获取数据&#xff0c;并将数据推送给pushgateway中&#xff1b; prometheus服务&#xff0c;从pushgateway中获取监控数据&#xff1b; 二、部署pushgateway 我们可以“随便”找…

Pytorch学习 day03(Tensorboard、Transforms)

Tensorboard Tensorboard能够可视化loss的变化过程&#xff0c;便于我们查看模型的训练状态&#xff0c;也能查看模型当前的输入和输出结果 在Pycharm中&#xff0c;可以通过按住ctrl&#xff0c;并左键点击某个库来进入源文件查看该库的使用方法SummaryWriter是用来向log_dir…

【数据结构】顺序表+链表

目录 1.顺序表 1.1初始化顺序表 1.2销毁顺序表 1.3检查容量并扩容 1.4把某个元素插入到下标为pos的位置 1.5头插和尾插 1.6删除下标为pos的元素 1.7头删和尾删 2.顺序表的问题及思考 3.链表 3.1链表的访问 3.2链表的增删查改 1.顺序表 顺序表的本质其实就是一个数组…

Tensorflow2.0笔记 - 计算梯度

本笔记主要记录tf.GradientTape和tf.gradient的用法 import tensorflow as tf import numpy as nptf.__version__#要计算梯度的所有参数计算过程必须放到gradient tape中 #with tf.GradientTape as tape: w tf.constant(1.) x tf.constant(2.)with tf.GradientTape() as tap…

惯性导航 | 测量方程中的噪声模型与离散时间噪声模型

惯性导航 | 测量方程中的噪声模型与离散时间噪声模型 IMU测量方程中的噪声模型IMU的离散时间噪声模型 IMU测量方程中的噪声模型 在大多数系统中&#xff0c;IMU的噪声由两部分组成&#xff1a;测量噪声&#xff08;Measurement Nosie&#xff09;与零偏&#xff08;Bias&#…

1.1_3 性能指标——时延、时延带宽积、往返时间RTT、利用率

文章目录 1.1_3 性能指标——时延、时延带宽积、往返时间RTT、利用率&#xff08;一&#xff09;时延&#xff08;二&#xff09;时延带宽积&#xff08;三&#xff09;往返时延RTT&#xff08;四&#xff09;利用率 1.1_3 性能指标——时延、时延带宽积、往返时间RTT、利用率 …

wireshark抓取localhost(127.0.0.1)数据包

打开wireshark中&#xff0c;在"capture"菜单中&#xff0c;选择"interfaces"子菜单&#xff0c;在列出的接口中选中"Adapter for loopback traffic capture"即可。 必须安装了Npcap才有此选项&#xff0c;否则需要重新安装wireshark。 抓包截图…

桥梁安全监测方案:多维度的技术与设备应用

一、背景与意义 随着交通基础设施的快速发展&#xff0c;桥梁作为连接两岸的关键纽带&#xff0c;其安全性能直接关系到人们的生命财产安全和交通畅通。为确保桥梁的安全与稳定&#xff0c;及时发现潜在的安全隐患&#xff0c;采取科学、有效的安全监测方案显得尤为重要。本文将…

材料物理 (HIT) 笔记-2

原内容请参考哈尔滨工业大学何飞教授&#xff1a;https://www.bilibili.com/video/BV18b4y1Y7wd/?p12&spm_id_frompageDriver&vd_source61654d4a6e8d7941436149dd99026962 或《材料物理性能及其在材料研究中的应用》&#xff08;哈尔滨工业大学出版社&#xff09; 三…

进程间通信之信号灯 || 网络协议UDP/TCP || 三次握手四次挥手

在线程通信中由于数据段等内存空间的共用性&#xff0c;导致同时访问时资源竞争的问题&#xff0c;在线程中我们使用信号量的申请和释放&#xff0c;在防止资源竞争的产生。在进程间的通信中&#xff0c;有信号灯的概念。搭配共享内存实现进程同步。 有名信号量: 1.创建 …

HTML标签语义化,含面试题+答案

form表单细节 一、表单 1.表单 标签用于为用户输入创建 HTML 表单 2.表单能够包含 input 元素&#xff0c;比如文本字段、复选框、单选框、提交按钮等等。 3.表单还可以包含 menus、textarea、fieldset、legend 和 label 元素。 4.表单用于向服务器传输数据。 二、表单form 的…

相机类型的分辨率长宽、靶面尺寸大小、像元大小汇总

镜头的靶面尺寸大于等于相机靶面尺寸。 相机的芯片长这样&#xff0c;绿色反光部分&#xff08;我的手忽略&#xff09;&#xff1a; 基本所有像素的相机的靶面大小都可以在这个表格里面找到。 镜头的靶面尺寸在镜头外表上可以找到&#xff0c;选型很重要&#xff01;

代码还原之 函数

指令堆里逆向出来的代码有歧义&#xff0c;有三处返回&#xff0c;有嵌套IF语句&#xff0c;故推断出是个函数&#xff1b; #if 0/*27ec: 48 8d 3d 58 39 00 00 lea 0x3958(%rip),%rdi # 614b <_IO_stdin_usedBase0x14b> // rdi"COLUMNS"27f3: e8 e…

【鸿蒙 HarmonyOS 4.0】多设备响应式布局

一、背景 在渲染页面时&#xff0c;需要根据不同屏幕大小渲染出不同的效果&#xff0c;动态的判断设备屏幕大小&#xff0c;便需要采用多设备响应式布局。这种设计方法能够动态适配各种屏幕大小&#xff0c;确保网站在不同设备上都能呈现出最佳的效果。 二、媒体查询&#xf…

第九篇:– 过程发现(Process Discovery)是如何赋能数字化市场营销全过程?- 我为什么要翻译介绍美国人工智能科技巨头IAB公司

IAB平台&#xff0c;使命和功能 IAB成立于1996年&#xff0c;总部位于纽约市。 作为美国的人工智能科技巨头社会媒体和营销专业平台公司&#xff0c;互动广告局&#xff08;IAB- the Interactive Advertising Bureau&#xff09;自1996年成立以来&#xff0c;先后为700多家媒体…

【ELK日志分析系统】ELK+Filebeat分布式日志管理平台部署

ELKFilebeat部署一、ELK简介1、ELK组件1.1 其他组件 2、为什么要使用 ELK3、完整日志系统基本特征 二、ELK的工作原理三、ELK Elasticsearch 集群部署1、环境准备2、部署 Elasticsearch 软件(node节点)2.1 安装elasticsearch—rpm包2.2 修改elasticsearch主配置文件2.3 es性能调…