教务考试管理系统-Sprintboot vue
一、前言
1.1 实践目的和要求
本次实践的目的是为了帮助学生强化对实践涉及专业技术知识的理解,掌握专业领域中软件知识的应用方法,并了解软件工程在具体行业领域的发展趋势。通过培养学生利用软件工程方法分析、设计并完成具体行业软件开发的能力,学生还能提升自我学习能力、调查研究能力、团队协作能力以及独立解决复杂工程问题的能力和创新意识。最终目的是使学生具备终身学习并适应软件产业持续发展的能力。这一系列任务的完成将为学生提供全面发展和就业竞争力。
本次实践要求学生从实际问题出发,进行为期四周的综合实践,利用所学专业知识和软件开发流程,独自进行需求分析、系统设计、系统开发和测试,并提交完整的应用系统及相关文档。学生还需具备团队协作能力,良好的沟通和组织协调能力,熟练运用VC++、Java、Matlab、CAD等软件开发工具,能独立解决复杂问题,并具备语言和文字表达能力。这样的要求旨在培养学生的综合能力和适应职业发展的能力。
1.2 实践项目背景及意义
随着高校教育的规模不断扩大和学生人数的增加,传统的手工操作或简单电子表格已经无法满足复杂的成绩管理需求。教务部门或相关管理人员需要一个高效、准确、可靠的系统来管理和统计学生的考试成绩。而这样的系统建设需要充分了解高校教育的运行机制、成绩统计的流程和规则,以及数据保密和安全性的要求。
为了培养学生利用软件工程方法分析、设计并完成具体行业软件开发的能力,对软件工程学生进行网络综合实训的培养模式,为提供真实的软件开发环境,培养学生的团队协作能力和沟通能力,使学生了解行业软件开发需求,同时培养学生的自主学习和问题解决能力。这些将为学生未来的职业发展奠定坚实基础。
通过 8月28到9月22号20个工作日的网络软件综合实践,旨在使学生达到成为一名合格软件工程专业从业者的项目实践要求。具体目标如下:
- 通过参与实际项目,学生可以更好地理解和掌握软件开发过程中的各个环节,包括需求分析、系统设计、编码开发、测试和文档编写等。
- 网络综合实训注重学生的团队协作能力和沟通能力。在实际项目中,学生需要与团队成员合作,分工合作,共同解决问题,这培养了学生的团队意识和协作能力。同时,通过与团队成员的交流和沟通,学生能更好地理解需求,提高软件设计的质量。
- 网络综合实训还引入了具体行业软件开发的要求,使学生更好地了解和适应实际工作环境。通过接触和了解具体行业的软件开发需求,学生可以对行业技术趋势和工作要求有更深入的认识,为将来的就业做好准备。
- 强调学生的自主学习和问题解决能力。在实践过程中,学生需要独立查找和学习相关技术,解决实际问题。这培养了学生主动学习的意识和能力,并提高了他们解决问题的能力。
二、实践内容
2.1 实践过程
- 前期工作
在网络软件实践开发工作的前期阶段,我完成了高校考务成绩管理系统的数据库设计和整体框架的搭建。运用了PowerDesigner数据库建模工具对高校考务成绩管理系统进行了数据库设计。在数据库设计方面,考虑了高校考务成绩管理系统的需求,使用PowerDesigner工具进行了详细的建模设计。通过合理的表结构和关系,确保了数据的一致性和完整性。这样的设计能够有效地支持系统的各项功能,提高系统的性能和可靠性。
同时,在系统的前端工程中,我使用Vue框架进行搭建,同时使用Maven工程搭建基于Spring Boot的后端工程。利用Spring Boot的优势,实现了快速的项目配置和依赖管理。引入MyBatis作为持久层框架,与Spring Boot集成,实现了与MySQL数据库的连接和数据操作,通过Springboot+Vue的工程实现前后端的分离,可以提高系统的整体开发效率。
- 中期工作
在网络软件实践开发工作的中期阶段,我成功地完成了高校考务成绩管理系统的部分功能实现。首先,我设计并实现了系统的登录界面,通过用户输入合法的登录凭证,验证用户身份并进行多角色跳转认证,确保只有具有相应权限的用户才能访问系统。
为了增强系统的安全性,我引入了JWT(JSON Web Token)权限验证机制。通过生成和验证JWT令牌,实现了对用户身份的认证和授权,有效防止了恶意请求和未授权访问。
在用户忘记密码方面,我实现了邮箱验证功能,用户需要验证邮箱以确保账号的有效性和安全性。用户点击获取验证码后,系统将发送验证码到用户注册邮箱,用户通过验证码进行验证,完成忘记密码功能。
针对教师端功能,设计并实现了教师端的首页,展示各种与教师相关的信息。在我的课程管理功能中,教师可以查看自己的授课课程列表,查看某课程的学生成绩以及其课程的课程分析。同时,实现了课程成绩录入功能,教师可以按照学生和课程进行成绩录入,确保成绩的准确性和完整性。另外,我还实现了课程成绩分析功能,教师可以根据课程成绩数据进行统计和分析,帮助教师评估学生的学习情况和课程的教学效果。通过登录认证、权限验证、邮箱验证等功能保障了系统的安全性和合法性,教师端功能的实现提供了教师进行课程管理和成绩分析的便捷途径。
- 后期工作
在成绩管理系统的后期阶段中,我参与了系统测试和系统功能的合并。测试了用户界面的交互体验、各项功能的正确性和稳定性等方面的测试工作。修复完善了部分系统中存在的问题,确保系统的正常运行和用户体验的优化。
其次,参与系统功能的合并工作。在开发过程中,各个功能模块由不同的同学分别开发和测试,而后期需要将这些功能模块进行整合,确保它们能够协同工作,提供完整的系统功能。我将各个模块进行整合,并进行必要的调试和测试,以确保系统在合并后的运行中不会出现冲突或错误。
2.2 实践内容
2.2.1 项目介绍
高校教务考试管理系统是基于Maven平台搭建的系统,采用了经典技术组合(Spring Boot、Spring Security、MyBatis、Jwt、Vue)。该系统的主要目标是实现对高校教务考试相关数据的录入、统计、分析和成绩计算,以便于对学生的考试情况进行观察和分析。
该系统侧重于SQL脚本分析和学生成绩管理的展示。通过搜集互联网资料,系统能够完成需求分析、概要设计、详细设计、数据库设计以及架构搭建、团队开发和成品测试等工作。
通过该平台,教师可以方便地录入各课程考试相关数据,并进行统计和分析。系统会根据录入的数据计算学生成绩,提供成绩表和成绩分析展示,帮助教师了解本教学课程的考试成绩变化趋势以及学生成绩综合表现。这将有助于高校管理者和教师更好地了解所授课程学生的学习情况,提供有针对性的教学辅导和评价。
2.2.2项目开发环境
项目结构 | 环境 |
后端 |
|
前端 |
|
数据库和中间件 |
|
硬件环境和软件环境 |
|
2.2.3系统组成与功能
整个系统由三大部分组成,分为教师端、学生端和管理员端。
- 教师端:
- 考试成绩录入、查看及打印
- 成绩分析表生成、录入、显示及打印
- 往年课程成绩情况查看
- 个人信息查看修改
- 学生端:
- 本人本学期课程成绩、排名查看
- 本人在校课程成绩一览表查看及打印(体现正考分数,补考分数)
- 成绩通知
- 挂科统计红灯警告
- 个人信息查看修改
- 管理员端:
- 成绩录入管理
- 教师和学生信息管理维护
- 课程管理
系统框图:
图1 系统框图
2.2.4 开发工作
1.数据库设计
高校教务考试平台数据库的设计工作,数据库设计是系统架构中的一个关键环节,它涉及到如何组织和存储数据,以支持系统的功能和需求,由于该系统主要需要的是课程、成绩、用户等信息,所以设计了以下八个数据库表。
数据库概表 表1
表名 | 含义 |
Userlog | 用户表 |
Teacher | 教师表 |
Student | 学生表 |
adminor | 管理员表 |
Class | 班级表 |
Course | 课程表 |
Classcou | 授课表 |
Grade | 成绩表 |
用户表 表2
列名 | 数据类型 | 空/非空 | 约束条件 | 列描述 |
Userid | varchar | Y | 主键 | 用户名 |
Password | varchar | Y | 密码 | |
Role | int | Y | 角色 |
教师表 表3
列名 | 数据类型 | 空/非空 | 约束条件 | 列描述 |
Teaid | varchar | Y | 主键 | 教师id |
Teaname | varchar | Y | 姓名 | |
Teasex | varchar | Y | 性别 | |
teatitle | varchar | Y | 职称 | |
teacollege | varchar | Y | 学院 | |
teaage | varchar | Y | 年龄 | |
teaphone | varchar | Y | 联系方式 |
学生表 表4
列名 | 数据类型 | 空/非空 | 约束条件 | 列描述 |
Stuid | varchar | Y | 主键 | 学生id |
Stuname | varchar | Y | 姓名 | |
Stusex | varchar | Y | 性别 | |
classid | varchar | Y | 班级 | |
stumajor | varchar | Y | 专业 | |
stucolloge | varchar | Y | 学院 | |
birthday | varchar | Y | 出生日期 |
图1 数据库逻辑视图
2.教师端功能开发
教师端功能包括以下几个方面:
- 首页展示:展示与教师相关的信息,如个人信息、通知消息等。
- 课程管理:教师可以查看自己的授课课程列表,查看某课程的学生成绩以及其课程的课程分析。
- 成绩录入:教师可以按照学生和课程进行成绩录入,确保成绩的准确性和完整性。
- 成绩分析:教师可以根据课程成绩数据进行统计和分析,帮助教师评估学生的学习情况和课程的教学效果。
3.登录功能模块开发
- 安全认证:通过登录认证、JWT权限验证、邮箱验证等功能保障系统的安全性和合法性。
- 证用户身份并进行多角色跳转认证。
2.3 主要成果
1.教师成绩录入功能设计
教师成绩录入功能在整个高校教务考试管理系统中扮演者重要的角色,其中这个模块提供了以下功能:教师登录并选择所教授的课程,在选定的课程页面中,显示学生列表和成绩录入表格,教师可以按照学生顺序或课程要求逐个录入成绩。
界面:
图2 选择录入课程成绩界面
2.成绩录入界面模块设计
录入成绩时,教师可以输入数值型成绩并且选择比例设置,成绩录入表格提供了暂存和提交功能,以确保数据不会丢失,教师可以查看和提交申请撤回已录入的成绩,以进行修改或更新。成绩录入功能应进行合法性验证,包括成绩范围的检查、重复录入的防止等;教师可以随时导出成绩数据,以备后续分析或报告使用。
界面:
3.成绩分析功能模块设计
成绩分析功能,教师录入试题质量分析,考试成绩分析,教学效果分析及改进测试,可以根据课程成绩,教师进行录入分析,帮助教师评估学生的学习情况和课程的教学效果。
界面:
4.成绩单功能
教师通过课程录入完学生成绩后, 选择提交即可将课程提交给管理员审核,审核通过后教师可查看学生成绩单并通过Excel导出或打印。
界面:
5.成绩分析显示功能
这部分功能是用来对选择查看成绩分析课程学生成绩数据分析,包括这门课程的最高,最低,平均成绩,以及各自占比的数据分析、教师对授课课程的评价分析等。
界面:
6.登录界面功能
在登录界面中我主要实现了多用户登录过程,以及邮箱验证重置密码功能。
界面:
7.批量导出功能
该功能主要实现将学生成绩单导出Excel。
界面:
三、总结
3.1 个人心得
为期四周的网络软件综合实训,结合上学期实习所接触到的新技术,进一步运用在了实践过程中,对前端开发有了深入的了解和实践经验。
此外,我也更加注重了软件开发文档的编写规范,学习并实践了需求文档、设计文档和测试文档等的编写。通过规范的文档编写,我能够更清晰地记录项目需求、系统设计和测试过程,保证项目开发的质量和可维护性。
在团队合作方面,我意识到了沟通和协作的重要性,并逐渐培养出相应的职业素养。在开发过程中,我积极与团队成员进行沟通和协作,共同解决问题和优化方案。我学会了倾听他人的观点,提出自己的想法,并与团队一起合作推动项目的进展。
与此同时,本次的课程实践让我体验到了自身学习存在很大问题,缺少项目开发经验,对一些主流的开发技术并没有深层的了解,团队沟通和有效交互没有做到很好,没有统一编码规范和提前沟通好,致使项目合并时产生一些阻碍问题,经过不断调整和吸取教训最终还是完成了整个项目。
总结而言,本次课程实践项目的完成让我熟悉了完整的软件开发流程,从需求分析、系统设计到编码、测试和部署,我逐渐掌握了整个流程并加以实践,增加了很多自身经验,独自解决了很多的问题,提高了动手能力和软件开发的整体素养,在今后的学习生活中,我将会与团队进行积极沟通,积累项目经验,与项目小组在开发之初确定好所有与项目相关的事情,尽量减少项目开发过程中可避免的问题,在未来的实践中,我将积累经验,克服困难,继续深入学习和应用这些技术,不断提升自己的开发能力。
3.2 其它意见
课程实践是极好的锻炼机会,在课堂上增加更多的实践项目和实践机会。通过这样的方式,我们可以更加深入地学习和掌握专业知识,提高技术水平和软件开发综合素养。
需要源码私聊。
相关文章:

教务考试管理系统-Sprintboot vue
一、前言 1.1 实践目的和要求 本次实践的目的是为了帮助学生强化对实践涉及专业技术知识的理解,掌握专业领域中软件知识的应用方法,并了解软件工程在具体行业领域的发展趋势。通过培养学生利用软件工程方法分析、设计并完成具体行业软件开发的能力&…...

vue实现一个pdf在线预览,pdf选择文本并提取复制文字触发弹窗效果
[TOC] 一、文件预览 1、安装依赖包 这里安装了disjs-dist2.16版本,安装过程中报错缺少worker-loader npm i pdfjs-dist2.16.105 worker-loader3.0.8 2、模板部分 <template><div id"pdf-view"><canvas v-for"page in pdfPages&qu…...

【CSS 】Class Variance Authority CSS 类名管理工具库
1.背景、什么是 CVA? Class Variance Authority (CVA) 是一个用于管理 CSS 类名 的工具库,特别适合在 React 或 Vue 等前端框架中使用。它可以帮助你更轻松地处理组件的 样式变体(Variants),比如按钮的不同状态&#…...
自然语言处理:文本分类
介绍 大家好,我这个热衷于分享知识的博主又来啦!之前我们一起深入探讨了自然语言处理领域中非常重要的两个方法:朴素贝叶斯和逻辑斯谛回归。在探索的过程中,我们剖析了朴素贝叶斯如何基于概率原理和特征条件独立假设,…...

刷题记录 HOT100 贪心-2:45. 跳跃游戏 II
题目:45. 跳跃游戏 II 难度:中等 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向后跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums[i j] 处: 0 &l…...

7.2 奇异值分解的基与矩阵
一、奇异值分解 奇异值分解(SVD)是线性代数的高光时刻。 A A A 是一个 m n m\times n mn 的矩阵,可以是方阵或者长方形矩阵,秩为 r r r。我们要对角化 A A A,但并不是把它化成 X − 1 A X X^{-1}A X X−1AX 的形…...

PDFMathTranslate安装使用
PDF全文翻译!!!! PDFMathTranslate安装使用 它是个啥 PDFMathTranslate 可能是一个用于 PDF 文件的数学公式翻译 工具。它可能包含以下功能: 提取 PDF 内的数学公式 将数学公式转换成 LaTeX 代码 翻译数学公式的内…...

STL之list的使用(超详解)
目录 一、list的介绍及使用 1.1 list的介绍 1.2 list的使用 1.2.1 list的构造 1.2.2 iterator的使用 1.2.3capacity(容量相关) 1.2.4 element access(元素访问) 1.2.5 modifiers(链表修改)…...

动态 SQL 的使用
目录 1、< if> 标签2、< trim> 标签3、< where> 标签4、< set> 标签5、< foreach> 标签 1、< if> 标签 < if test“条件语句”> xxxx < /if> 只有当条件语句满足条件,才会拼接 < if> 标签内容,因…...

【如何删除在 Linux 系统中的删除乱码文件】
如何删除在 Linux 系统中的删除乱码文件 1. 列出文件并找到乱码文件:2. 使用通配符(谨慎使用):3. 转义特殊字符:4. 使用 find 命令:5. 使用 inode 号删除文件:6. 图形界面文件管理器:…...

防火墙IPSec (无固定IP地址---一对多)
目录 前言 一、场景: 二、实现 1.拓扑图 2.配置思路 ①基础通信配置 ②PPPoE配置 ③总部的模版IPSec配置 ④分部的IPSec配置 ⑤NAT配置 3.具体配置 ①基础配置 ②详细配置和顺序 效果测试: ③PPPOE ①配置PPPoE ②策略放行 ③IPSec与NA…...

基于SpringBoot的智能问诊系统设计与隐私保护策略
通过SpringBoot框架,我们可以快速搭建一个智能问诊系统,为用户提供便捷的线上医疗服务。然而,在系统设计和实现过程中,如何保障用户的隐私和数据安全,始终是一个亟需关注的问题。本文将探讨基于SpringBoot的智能问诊系…...

DeepSeek进阶应用(一):结合Mermaid绘图(流程图、时序图、类图、状态图、甘特图、饼图)
🌟前言: 在软件开发、项目管理和系统设计等领域,图表是表达复杂信息的有效工具。随着AI助手如DeepSeek的普及,我们现在可以更轻松地创建各种专业图表。 名人说:博观而约取,厚积而薄发。——苏轼《稼说送张琥》 创作者&…...

Ubuntu 下 nginx-1.24.0 源码分析 - ngx_init_cycle 函数
nei声明在 src/core/ngx_cycle.h ngx_cycle_t *ngx_init_cycle(ngx_cycle_t *old_cycle);实现在 src/core/ngx_cycle.c ngx_cycle_t * ngx_init_cycle(ngx_cycle_t *old_cycle) {void *rv;char **senv;ngx_uint_t i, n;ngx_log_t …...

【redis】数据类型之geo
Redis的GEO数据类型用于存储地理位置信息(如经纬度),并提供高效的地理位置查询功能(如计算两地距离、搜索附近地点等)。其底层基于Sorted Set(有序集合)实现,通过Geohash编码将经纬度…...

vue3 vite或者vue2 百度地图(卫星图)离线使用详细讲解
1、在Windows上下载瓦片,使用的工具为: 全能电子地图下载器3.0最新版(推荐) 下载后解压,然后进入目录"全能电子地图下载器3.0最新版(推荐)\全能电子地图下载器3.0\MapTileDownloader" 在这个目录…...

《Python实战进阶》No17: 数据库连接与 ORM(SQLAlchemy 实战)
No17: 数据库连接与 ORM(SQLAlchemy 实战) 摘要 本文深入探讨SQLAlchemy在复杂场景下的高级应用,涵盖四大核心主题: 会话生命周期管理:通过事件钩子实现事务监控与审计追踪混合继承映射:结合单表/连接表继…...

工程化与框架系列(27)--前端音视频处理
前端音视频处理 🎥 引言 前端音视频处理是现代Web应用中的重要组成部分,涉及音频播放、视频处理、流媒体传输等多个方面。本文将深入探讨前端音视频处理的关键技术和最佳实践,帮助开发者构建高质量的多媒体应用。 音视频技术概述 前端音视…...

芋道打包时报错:缺失@unocss插件
在遇到打包时,报这个错误,提示构建失败是因为 ESLint 在加载 unocss 插件时,找不到 unocss/eslint-plugin 模块 解决办法:安装缺失的依赖:保证unocss/eslint-plugin已经被正确安装, 使用以下命令安装&…...

PY32MD320单片机 QFN32封装,内置多功能三相 NN 型预驱。
PY32MD320单片机是普冉半导体的一款电机专用MCU,芯片采用了高性能的 32 位 ARM Cortex-M0 内核,主要用于电机控制。PY32MD320嵌入高达 64 KB Flash 和 8 KB SRAM 存储器,最高工作频率 48 MHz。PY32MD320单片机的工作温度范围为 -40 ~ 105 ℃&…...

深入解析 configService.addListener 使用中的注意事项
在使用 Nacos 的 configService.addListener 方法进行配置监听时,为了确保程序的稳定性、可靠性以及高效性,有诸多注意事项需要我们关注。下面将对这些关键要点进行详细阐述。 一、连接稳定性 1.1 网络连接问题 Nacos 客户端与服务端通过网络进行通信&…...

Windows控制台函数:控制台读取输入函数ReadConsoleA()
目录 什么是 ReadConsoleA? 它长什么样? 怎么用它? 它跟 std::cin 有什么不一样? 注意事项 什么是 ReadConsoleA? ReadConsoleA 是一个 Windows API 函数,用来从控制台读取用户输入。想象一下&#…...

奇安信 2025 年护网蓝队初选笔试题(附答案解析)
🔥 爆款 CSDN 题库 | 超全护网蓝队笔试真题 | 含详细答案解析 🔥 熬夜为大家整理了 奇安信 2025 年护网蓝队初选笔试题,(关注我我会持续更新)涵盖 SQL 注入、Web 安全、渗透测试、二进制安全 等核心知识点,…...

国产编辑器EverEdit - Web预览设置
1 设置-高级-Web预览 1.1 设置说明 选择主菜单工具 -> 设置 -> 常规,在弹出的选项窗口中选择Web预览分类,如下图所示: 1.1.1 本地浏览HTML文件 如果用户只是在本地浏览HTML文件,即直接用浏览器打开HTML文件,确…...

P8686 [蓝桥杯 2019 省 A] 修改数组--并查集 or Set--lower_bound()的解法!!!
P8686 [蓝桥杯 2019 省 A] 修改数组--并查集 题目 并查集解析代码【并查集解】 Set 解法解析lower_bound代码 题目 并查集解析 首先先让所有的f(i)i,即每个人最开始的祖先都是自己,然后就每一次都让轮到那个数的父亲1(…...

HTML 编辑器推荐与 VS Code 使用教程
在进行 HTML 编程时,选择一款合适的 HTML 编辑器能极大地提高开发效率。以下为大家推荐几款常用且功能强大的 HTML 编辑器,同时详细介绍如何使用 VS Code 创建和预览 HTML 文件。 一、HTML 编辑器推荐 VS Code:由微软开发,是一款…...

MyBatis增删改查:静态与动态SQL语句拼接及SQL注入问题解析
MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的工作。本文将深入探讨 MyBatis 中的增删改查操作,重点讲解静态与动态 SQL 语句的拼接,并分析 S…...

在运维工作中,Lvs、nginx、haproxy工作原理分别是什么?
在运维工作中,LVS、NGINX和HAProxy都是常用的负载均衡和反向代理工具,它们在高可用性和负载均衡场景中发挥重要作用。以下是其原理和应用场景详解: LVS(Linux Virtual Server) 工作原理 LVS是基于Linux内核的负载均…...

linux学习(五)(服务器审查,正常运行时间负载,身份验证日志,正在运行的服务,评估可用内存)
服务器审查 在 Linux 中审查服务器的过程包括评估服务器的性能、安全性和配置,以确定需要改进的领域或任何潜在问题。审查的范围可以包括检查安全增强功能、检查日志文件、审查用户帐户、分析服务器的网络配置以及检查其软件版本。 Linux 以其稳定性和安全性而闻名…...

Java在小米SU7 Ultra汽车中的技术赋能
目录 一、智能驾驶“大脑”与实时数据 场景一:海量数据的分布式计算 场景二:实时决策的毫秒级响应 场景三:弹性扩展与容错机制 技术隐喻: 二、车载信息系统(IVI)的交互 场景一:Android Automo…...