![cover](https://img-blog.csdnimg.cn/8139e1a89e4645b388dce844e96a57ba.png)
基于Vue+SpringBoot的大学计算机课程管理平台 开源项目
大学计算机课程管理平台包含实验课程模块、实验资源模块、学生实验模块,前端采用Vue.js,采用View UI组件库美化界面,后端采用SpringBoot框架。在操作系统、开发语言、服务器,数据库、连接技术方面,对应使用Window操作系统、Java语言、Tomcat服务器、MySql数据库以及MyBatis技术完成系统搭建,大学计算机课程管理平台基于B/S架构,采用前后端分离架构,用户可以在系统上
目录
一、摘要
1.1 项目介绍
大学计算机课程管理平台包含实验课程模块、实验资源模块、学生实验模块,前端采用Vue.js,采用View UI组件库美化界面,后端采用SpringBoot框架。在操作系统、开发语言、服务器,数据库、连接技术方面,对应使用Window操作系统、Java语言、Tomcat服务器、MySql数据库以及MyBatis技术完成系统搭建,大学计算机课程管理平台基于B/S架构,采用前后端分离架构,用户可以在系统上查询计算机实验课程、下载实验资源。
随着计算机技术日渐成熟,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学校的课程信息进行管理,与手工维护课程相比,有巨大的的优势。越来越多的高校开始采用大学计算机课程管理平台,将学生选择的课程和课程资源通过网络进行管理,为学生、教师和教务管理人员提供便利。
大学计算机课程管理平台使用Idea开发工具完成了编码实现。前端采用Vue.js,采用View UI组件库美化界面,后端采用SpringBoot框架。在操作系统、开发语言、服务器,数据库、连接技术方面,对应使用Window操作系统、Java语言、Tomcat服务器、MySql数据库以及MyBatis技术完成系统搭建。该系统基于B/S架构,采用前后端分离架构,用户可以在系统上查询计算机实验课程、下载实验资源。
1.2 项目录屏
源码下载
二、功能模块
2.1 实验课程档案模块
实验课程档案模块是高校实验教育中用于记录和管理实验课程信息的模块,实验课程档案模块可以记录和管理实验教学的过程和结果,帮助教师更好地评估学生的知识获取水平和实验操作技能,确保实验教学质量,实验课程档案模块可以记录实验教学的详细过程和结果,使教师能够在后续的实验教学中更有效地管理教学,安排教育资源,提高实验教学的效率,实验课程档案模块提供了丰富的实验数据和结果,使教师能够轻松评估和改进自己的实验课程,并为未来的实验教育提供有力支持,实验课程档案模块记录了实验教学的基本信息、过程和结果,可以为实验教学的研究和考核提供基础数据和资料,实验课程档案模块对高校实验教学是非常必要的,通过实验课程档案模块,可以保证实验教育的质量,提高实验教育的效率,方便课堂评估,加强实验教育和研究,为实验教育的标准化、标准化和信息化提供有力支撑。
2.2 实验资源模块
实验资源模块是用于管理教育机构中与科学实验相关的资源的模块,实验资源模块可以统一管理各类实验设备、设备、文献等资源,并进行分类、编号、记录等操作,使实验资源更加规范、规范、便捷,编写、提供参考资料和教材,促进学生的实验自主性、创新性和探索性,提高实验教育效果,实验资源模块可以提供智能辅助服务,使实验资源的使用更加高效、经济和安全,如网上购物、预订使用和维护,实验资源模块不仅可以支持实验教育,还可以为科学研究提供必要的技术支持和数据分析,促进学术研究的发展。实验资源模块对于教育和研究机构来说是非常必要的,该模块可以统一实验资源的管理,提高实验教育的有效性,节省成本和时间,支持科学研究,同时,实验资源模块可以促进和帮助教育科研机构的数字化转型和智能化升级。
2.3 学生实验模块
学生实验模块是一种用于管理和组织学生实验的教育软件模块,学生实验模块使学生对教学内容和理论知识有更直观的理解,并通过实际操作提高实践能力,学生实验模块允许学生自己操作设备和工具,并具有移动双手和创新的能力。学生实验模块帮助学生加深对课程内容的理解,加深对课程的理解,学生实验模块可以为教师提供全面的实验计划、操作指导和评估系统,并通过实验数据进行分析和反馈,以提高教育质量和效果。通过学生实验模块,可以提高学生的实践能力和动手能力,加深他们对教学的理解和理解,并提供更全面的教育支持和反馈,以提高教学质量和效果。
三、系统设计
3.1 用例设计
3.2 数据库设计
3.2.1 实验课程档案表
3.2.2 实验资源表
3.2.3 学生实验表
四、系统展示
五、核心代码
5.1 一键生成实验
@RequestMapping(value = "/oneCreateExp", method = RequestMethod.GET)
@ApiOperation(value = "一键生成实验")
public Result<Object> oneCreateExp(@RequestParam String id){
ExperimentCurriculum curriculum = iExperimentCurriculumService.getById(id);
if(curriculum == null) {
return ResultUtil.error("实验不存在");
}
// 删除原来的
QueryWrapper<Experiment> oldQw = new QueryWrapper<>();
oldQw.eq("curriculum_id",curriculum.getId());
iExperimentService.remove(oldQw);
// 生成新的
QueryWrapper<User> userQw = new QueryWrapper<>();
userQw.eq("type",0);
List<User> studentList = iUserService.list(userQw);
for (User stu : studentList) {
Experiment e = new Experiment();
e.setCurriculumId(curriculum.getId());
e.setCurriculumName(curriculum.getTitle());
e.setStudentId(stu.getId());
e.setStudentName(stu.getNickname());
e.setExpResult("");
e.setExpReport("");
e.setUploadTime("");
e.setGrade(BigDecimal.ZERO);
e.setCheckFlag(false);
e.setCheckTime("");
e.setCheckUser("");
iExperimentService.saveOrUpdate(e);
}
return ResultUtil.success();
}
5.2 提交实验
@RequestMapping(value = "/upload", method = RequestMethod.GET)
@ApiOperation(value = "提交实验")
public Result<Object> upload(@RequestParam String id,@RequestParam String result,@RequestParam String url){
Experiment exp = iExperimentService.getById(id);
if(exp == null) {
return ResultUtil.error("实验不存在");
}
exp.setExpResult(result);
exp.setExpReport(url);
exp.setUploadTime(DateUtil.now());
iExperimentService.saveOrUpdate(exp);
return ResultUtil.success();
}
5.3 批阅实验
@RequestMapping(value = "/check", method = RequestMethod.GET)
@ApiOperation(value = "批阅实验")
public Result<Object> check(@RequestParam String id,@RequestParam BigDecimal grade){
Experiment exp = iExperimentService.getById(id);
if(exp == null) {
return ResultUtil.error("实验不存在");
}
User currUser = securityUtil.getCurrUser();
exp.setGrade(grade);
exp.setCheckFlag(true);
exp.setCheckTime(DateUtil.now());
exp.setCheckUser(currUser.getNickname());
iExperimentService.saveOrUpdate(exp);
return ResultUtil.success();
}
5.4 新增实验资源
@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增实验资源")
public Result<ExperimentResources> insert(ExperimentResources experimentResources){
ExperimentCurriculum curriculum = iExperimentCurriculumService.getById(experimentResources.getCurriculumId());
if(curriculum == null) {
return ResultUtil.error("实验课程不存在");
}
experimentResources.setCurriculumName(curriculum.getTitle());
String fileUrl = experimentResources.getFileUrl();
if(!ZwzNullUtils.isNull(fileUrl)) {
String[] split = fileUrl.split("/");
File f = iFileService.getById(split[split.length - 1]);
if(f != null) {
experimentResources.setFileId(f.getId());
experimentResources.setFileName(f.getName());
experimentResources.setFileSize(f.getSize());
}
}
iExperimentResourcesService.saveOrUpdate(experimentResources);
return new ResultUtil<ExperimentResources>().setData(experimentResources);
}
5.5 查询实验课程
@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询实验课程")
public Result<IPage<ExperimentCurriculum>> getByPage(@ModelAttribute ExperimentCurriculum experimentCurriculum ,@ModelAttribute PageVo page){
QueryWrapper<ExperimentCurriculum> qw = new QueryWrapper<>();
User currUser = securityUtil.getCurrUser();
QueryWrapper<User> userQw = new QueryWrapper<>();
userQw.eq("id",currUser.getId());
userQw.inSql("id","SELECT user_id FROM a_user_role WHERE del_flag = 0 AND (role_id = '1536606659751841795' OR role_id = '1536606659751841799')");
if(iUserService.count(userQw) < 1L) {
qw.eq("teacher_id",currUser.getId());
}
if(!ZwzNullUtils.isNull(experimentCurriculum.getTitle())) {
qw.like("title",experimentCurriculum.getTitle());
}
if(!ZwzNullUtils.isNull(experimentCurriculum.getContent1())) {
qw.like("content1",experimentCurriculum.getContent1());
}
if(!ZwzNullUtils.isNull(experimentCurriculum.getTeacherName())) {
qw.like("teacher_name",experimentCurriculum.getTeacherName());
}
IPage<ExperimentCurriculum> data = iExperimentCurriculumService.page(PageUtil.initMpPage(page),qw);
return new ResultUtil<IPage<ExperimentCurriculum>>().setData(data);
}
六、免责说明
- 本项目仅供个人学习使用,商用授权请联系博主,否则后果自负。
- 博主拥有本软件构建后的应用系统全部内容所有权及独立的知识产权,拥有最终解释权。
- 如有问题,欢迎在仓库 Issue 留言,看到后会第一时间回复,相关意见会酌情考虑,但没有一定被采纳的承诺或保证。
下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!
- 出于自愿而使用/开发本软件,了解使用本软件的风险,且同意自己承担使用本软件的风险。
- 利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和博主无关,博主对此不承担任何责任。
- 在任何情况下,对于因使用或无法使用本软件而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),博主概不承担任何责任。
- 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。
![Logo](https://devpress.csdnimg.cn/79de2bf0b7994defa4242ef90d5513fa.jpg)
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)