Web-高校教务考试管理系统

news2024/11/5 13:41:18

目录

一、前言

1.1  实践目的和要求

1.2  实践项目背景及意义

二、实践内容

2.1  实践过程

2.2  实践内容

2.2.1 项目介绍

2.2.2项目开发环境

2.2.3系统组成与功能

2.2.4 开发工作

2.3  主要成果

三、总结

3.1  个人心得

3.2  其它意见


一、前言

1.1  实践目的和要求

        本次实践的目的是为了帮助学生强化对实践涉及专业技术知识的理解,掌握专业领域中软件知识的应用方法,并了解软件工程在具体行业领域的发展趋势。通过培养学生利用软件工程方法分析、设计并完成具体行业软件开发的能力,学生还能提升自我学习能力、调查研究能力、团队协作能力以及独立解决复杂工程问题的能力和创新意识。最终目的是使学生具备终身学习并适应软件产业持续发展的能力。这一系列任务的完成将为学生提供全面发展和就业竞争力。

        本次实践要求学生从实际问题出发,进行为期四周的综合实践,利用所学专业知识和软件开发流程,独自进行需求分析、系统设计、系统开发和测试,并提交完整的应用系统及相关文档。学生还需具备团队协作能力,良好的沟通和组织协调能力,熟练运用VC++、Java、Matlab、CAD等软件开发工具,能独立解决复杂问题,并具备语言和文字表达能力。这样的要求旨在培养学生的综合能力和适应职业发展的能力。

1.2  实践项目背景及意义

        随着高校教育的规模不断扩大和学生人数的增加,传统的手工操作或简单电子表格已经无法满足复杂的成绩管理需求。教务部门或相关管理人员需要一个高效、准确、可靠的系统来管理和统计学生的考试成绩。而这样的系统建设需要充分了解高校教育的运行机制、成绩统计的流程和规则,以及数据保密和安全性的要求。

       为了培养学生利用软件工程方法分析、设计并完成具体行业软件开发的能力,对软件工程学生进行网络综合实训的培养模式,为提供真实的软件开发环境,培养学生的团队协作能力和沟通能力,使学生了解行业软件开发需求,同时培养学生的自主学习和问题解决能力。这些将为学生未来的职业发展奠定坚实基础,旨在使学生达到成为一名合格软件工程专业从业者的项目实践要求。具体目标如下:

        1. 通过参与实际项目,学生可以更好地理解和掌握软件开发过程中的各个环节,包括需求分析、系统设计、编码开发、测试和文档编写等。

        2. 网络综合实训注重学生的团队协作能力和沟通能力。在实际项目中,学生需要与团队成员合作,分工合作,共同解决问题,这培养了学生的团队意识和协作能力。同时,通过与团队成员的交流和沟通,学生能更好地理解需求,提高软件设计的质量。

        3. 网络综合实训还引入了具体行业软件开发的要求,使学生更好地了解和适应实际工作环境。通过接触和了解具体行业的软件开发需求,学生可以对行业技术趋势和工作要求有更深入的认识,为将来的就业做好准备。

        4. 强调学生的自主学习和问题解决能力。在实践过程中,学生需要独立查找和学习相关技术,解决实际问题。这培养了学生主动学习的意识和能力,并提高了他们解决问题的能力。

二、实践内容

2.1  实践过程

  1. 前期工作

        在网络软件实践开发工作的前期阶段,我完成了高校考务成绩管理系统的数据库设计和整体框架的搭建。运用了PowerDesigner数据库建模工具对高校考务成绩管理系统进行了数据库设计。在数据库设计方面,考虑了高校考务成绩管理系统的需求,使用PowerDesigner工具进行了详细的建模设计。通过合理的表结构和关系,确保了数据的一致性和完整性。这样的设计能够有效地支持系统的各项功能,提高系统的性能和可靠性。

        同时,在系统的前端工程中,我使用Vue框架进行搭建,同时使用Maven工程搭建基于Spring Boot的后端工程。利用Spring Boot的优势,实现了快速的项目配置和依赖管理。引入MyBatis作为持久层框架,与Spring Boot集成,实现了与MySQL数据库的连接和数据操作,通过Springboot+Vue的工程实现前后端的分离,可以提高系统的整体开发效率。

        2.中期工作

        在网络软件实践开发工作的中期阶段,我成功地完成了高校考务成绩管理系统的部分功能实现。首先,我设计并实现了系统的登录界面,通过用户输入合法的登录凭证,验证用户身份并进行多角色跳转认证,确保只有具有相应权限的用户才能访问系统。

        为了增强系统的安全性,我引入了JWT(JSON Web Token)权限验证机制。通过生成和验证JWT令牌,实现了对用户身份的认证和授权,有效防止了恶意请求和未授权访问。

        在用户忘记密码方面,我实现了邮箱验证功能,用户需要验证邮箱以确保账号的有效性和安全性。用户点击获取验证码后,系统将发送验证码到用户注册邮箱,用户通过验证码进行验证,完成忘记密码功能。

        针对教师端功能,设计并实现了教师端的首页,展示各种与教师相关的信息。在我的课程管理功能中,教师可以查看自己的授课课程列表,查看某课程的学生成绩以及其课程的课程分析。同时,实现了课程成绩录入功能,教师可以按照学生和课程进行成绩录入,确保成绩的准确性和完整性。另外,我还实现了课程成绩分析功能,教师可以根据课程成绩数据进行统计和分析,帮助教师评估学生的学习情况和课程的教学效果。通过登录认证、权限验证、邮箱验证等功能保障了系统的安全性和合法性,教师端功能的实现提供了教师进行课程管理和成绩分析的便捷途径。

        3. 后期工作

        在成绩管理系统的后期阶段中,我参与了系统测试和系统功能的合并。测试了用户界面的交互体验、各项功能的正确性和稳定性等方面的测试工作。修复完善了部分系统中存在的问题,确保系统的正常运行和用户体验的优化。

        其次,参与系统功能的合并工作。在开发过程中,各个功能模块由不同的同学分别开发和测试,而后期需要将这些功能模块进行整合,确保它们能够协同工作,提供完整的系统功能。我将各个模块进行整合,并进行必要的调试和测试,以确保系统在合并后的运行中不会出现冲突或错误。

2.2  实践内容

2.2.1 项目介绍

        高校教务考试管理系统是基于Maven平台搭建的系统,采用了经典技术组合(Spring Boot、Spring Security、MyBatis、Jwt、Vue)。该系统的主要目标是实现对高校教务考试相关数据的录入、统计、分析和成绩计算,以便于对学生的考试情况进行观察和分析。

        该系统侧重于SQL脚本分析和学生成绩管理的展示。通过搜集互联网资料,系统能够完成需求分析、概要设计、详细设计、数据库设计以及架构搭建、团队开发和成品测试等工作。

        通过该平台,教师可以方便地录入各课程考试相关数据,并进行统计和分析。系统会根据录入的数据计算学生成绩,提供成绩表和成绩分析展示,帮助教师了解本教学课程的考试成绩变化趋势以及学生成绩综合表现。这将有助于高校管理者和教师更好地了解所授课程学生的学习情况,提供有针对性的教学辅导和评价。

2.2.2项目开发环境

项目结构

环境

后端

  1. MyBatis Plus:代码生成器;
  2. knife: Api接口文档生成;

前端

  1. Node.js: JavaScript 运行环境;
  2. Axios: 发送Ajax请求的工具;
  3. Vue.js: web界面的渐进式框架;
  4. Element-Ul: 前端组件库;
  5. Echarts: 基于JS的数据可视化图表库

数据库和中间件

  1. MySQL 5.7;
  2. Navicat:数据库管理工具;

硬件环境和软件环境

  1. 运行平台:Windows 11 64位,CPU : Intel(R) Core(TM) i9
  2. 开发平台:IntelliJ IDEA 2021.2
  3. HBuilder X

2.2.3系统组成与功能

        整个系统由三大部分组成,分为教师端、学生端和管理员端。

教师端:

  • 考试成绩录入、查看及打印
  • 成绩分析表生成、录入、显示及打印
  • 往年课程成绩情况查看
  • 个人信息查看修改

学生端:

  • 本人本学期课程成绩、排名查看
  • 本人在校课程成绩一览表查看及打印(体现正考分数,补考分数)
  • 成绩通知
  • 挂科统计红灯警告
  • 个人信息查看修改

管理员端:

  • 成绩录入管理
  • 教师和学生信息管理维护
  • 课程管理

  系统框图:

  

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 选择录入课程成绩界面

图3 撤销课程成绩界面

2.成绩录入界面模块设计

        录入成绩时,教师可以输入数值型成绩并且选择比例设置,成绩录入表格提供了暂存和提交功能,以确保数据不会丢失,教师可以查看和提交申请撤回已录入的成绩,以进行修改或更新。成绩录入功能应进行合法性验证,包括成绩范围的检查、重复录入的防止等;教师可以随时导出成绩数据,以备后续分析或报告使用。

界面:

图4 录入成绩界面

3.成绩分析功能模块设计

成绩分析功能,教师录入试题质量分析,考试成绩分析,教学效果分析及改进测试,可以根据课程成绩,教师进行录入分析,帮助教师评估学生的学习情况和课程的教学效果。

界面:

图5 成绩分析界面

4.成绩单功能

        教师通过课程录入完学生成绩后, 选择提交即可将课程提交给管理员审核,审核通过后教师可查看学生成绩单并通过Excel导出或打印。

界面:

图6 成绩单界面

5.登录界面功能

在登录界面中我主要实现了多用户登录过程,以及邮箱验证重置密码功能。

界面:

图7 登录界面

6.批量导出功能

   该功能主要实现将学生成绩单导出Excel。

界面:

三、总结

3.1  个人心得

         为期四周的网络软件综合实训,结合上学期实习所接触到的新技术,进一步运用在了实践过程中,对前端开发有了深入的了解和实践经验。此外,我也更加注重了软件开发文档的编写规范,学习并实践了需求文档、设计文档和测试文档等的编写。通过规范的文档编写,我能够更清晰地记录项目需求、系统设计和测试过程,保证项目开发的质量和可维护性。在团队合作方面,我意识到了沟通和协作的重要性,并逐渐培养出相应的职业素养。在开发过程中,我积极与团队成员进行沟通和协作,共同解决问题和优化方案。我学会了倾听他人的观点,提出自己的想法,并与团队一起合作推动项目的进展。

        与此同时,本次的课程实践让我体验到了自身学习存在很大问题,缺少项目开发经验,对一些主流的开发技术并没有深层的了解,团队沟通和有效交互没有做到很好,没有统一编码规范和提前沟通好,致使项目合并时产生一些阻碍问题,经过不断调整和吸取教训最终还是完成了整个项目。总结而言,本次课程实践项目的完成让我熟悉了完整的软件开发流程,从需求分析、系统设计到编码、测试和部署,我逐渐掌握了整个流程并加以实践,增加了很多自身经验,独自解决了很多的问题,提高了动手能力和软件开发的整体素养,在今后的学习生活中,我将会与团队进行积极沟通,积累项目经验,与项目小组在开发之初确定好所有与项目相关的事情,尽量减少项目开发过程中可避免的问题,在未来的实践中,我将积累经验,克服困难,继续深入学习和应用这些技术,不断提升自己的开发能力。

3.2  其它意见

        课程实践是极好的锻炼机会,在课堂上增加更多的实践项目和实践机会。通过这样的方式,我们可以更加深入地学习和掌握专业知识,提高技术水平和软件开发综合素养。

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

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

相关文章

顺序表排序相关算法题|负数移到正数前面|奇数移到偶数前面|小于x的数移到大于x的数前面|快排思想(C)

负数移到正数前面 已知顺序表 ( a 1 , … , a n ) (a_{1},\dots,a_{n}) (a1​,…,an​),每个元素都是整数,把所有值为负数的元素移到全部正数值元素前边 算法思想 快排的前后指针版本 排序|冒泡排序|快速排序|霍尔版本|挖坑版本|前后指针版本|非递归版…

预览 PDF 文档

引言 在现代Web应用中,文件预览功能是非常常见的需求之一。特别是在企业级应用中,用户经常需要查看各种类型的文件,如 PDF、Word、Excel 等。本文将详细介绍如何在Vue项目中实现 PDF 文档的预览功能。 实现原理 后端API 后端需要提供一个…

蚁剑的介绍和使用

蚁剑介绍 蚁剑(AntSword)是一个开源的跨平台网站管理工具,主要用于渗透测试和安全研究。它提供了一个图形化界面,方便用户管理和操作被攻陷的网站。 安装教程: github官网:https://github.com/AntSwordPro…

AppInventor2能否用网络摄像头画面作为屏幕的背景?

// 视频是否可以作为背景? // 有会员提问:能否用网络摄像头的实时画面作为屏幕的背景?就跟这个一样背景全覆盖: 摄像头画面是一个在线的网站链接视频流。 // 原先思路 // 1、目前原生组件无法直接实现这个功能,屏幕…

DBeaver如何查看ER图

前言 我们在使用DBeaver时,有时候需要查看某张表的ER图,这能帮助我们快速看到表的结构,那么,我们应该如何在DBeaver里面查看ER图呢? 如何查看 首先,我们点击下我们要查看的某张表,鼠标右击一…

pytest高版本兼容test_data[“log“] = _handle_ansi(“\n“.join(logs))错误

一、问题现象: 执行seleniumpytest结束时报: INTERNALERROR> File "D:\workspace\pytestframe\.venv\Lib\site-packages\pytest_html\report_data.py", line 141, in add_test INTERNALERROR> test_data["log"] _handle_ansi(&q…

mysql8.0.32升级到8.0.40

上篇8.0.32库的准备:mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No suc-CSDN博客 此篇测试升级到8.0.40 MySQL :: Download MySQL Community Server rootjyc:~# mysql -u root -pabcd1234 mysql: [Warning]…

【Spring】Spring 核心和设计思想

Spring 核心和设计思想 1.什么是 Spring1.1 传统程序开发1.2 控制反转程序开发 2.理解 Spring IoC 1.什么是 Spring 我们通常所说的 Spring 指的是 Spring Framework(Spring 框架),它是⼀个开源框架,有着活跃而庞大的社区&#x…

白盒测试基本概念(学习笔记)

1.1白盒测试基本概念 测试工作中我们经常遇到的两种测试,就是白盒测试和黑盒测试。基本概念区分如下: 软件的白盒测试是对软件的过程性细节做细致的检查。这一方法是把测试对象看作一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有…

Mybatis使用和原理

Mybatis使用和原理 1、ORM架构2、Spring整合MyBatis使用2.1 添加maven依赖2.2 配置数据源2.3 创建实体类2.4 创建 MyBatis Mapper2.4.1 使用MyBatis注解2.4.2 使用XML方式 2.5 Service 层 3、Spring整合Hibernate使用3.1 添加maven依赖3.2 配置数据源3.3 创建实体类3.4 创建 Re…

C++核心编程和桌面应用开发 第十七天(set和multiset容器 pair map和multimap容器)

目录 1.set和multiset容器 1.1构造和赋值 1.2交换和大小 1.3插入和删除 1.4统计和查找 1.5pair对组 1.6set和multiset的区别 1.7指定内置数据类型排序规则 1.8指定自定义数据类型排序规则 2.map和multimap容器 2.1构造和赋值 2.2交换和大小 2.3插入和删除 2.4统计…

Android中常用adb命令

目录 1.adb连接安卓模拟器 2.adb列出所有已经连接的设备 3.adb显示设备的日志信息 4.adb 电脑文件推送到安卓模拟器中 5.adb 手机传送文件到电脑 6.adb获取安卓应用的包名和Activity名 附录 1--命令 1)adb devices 2)adb install 路径> 3)…

机器学习算法之回归算法

一、回归算法思维导图 二、算法概念、原理、应用场景和实例代码 1、线性回归 1.1、概念 ‌‌线性回归算法是一种统计分析方法,用于确定两种或两种以上变量之间的定量关系。‌ 线性回归算法通过建立线性方程来预测因变量(y)和一个或多个自变量…

SpringBoot项目如何设置定时任务总开关

目录 方法一:使用Spring Profiles 1.1 步骤1 1.2 步骤2 1.3 步骤3 1.4 步骤4 方法二:使用ConditionalOnProperty 2.1 步骤1 2.2 步骤2 2.3 步骤3 方法三: 主启动类禁用EnableScheduling 定时任务原理剖析(选看&#xf…

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-21

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-21 目录 文章目录 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-21目录1. The Fair Language Model Paradox摘要研究背景问题与挑战如何解决创新点算法模型实验效果重要数据与结论推荐阅读指数&…

Python——实时域名通信状态监控

在互联网时代,网站和在线服务的可用性对于个人和企业都至关重要。域名的通信状态直接关系到服务的可达性,因此,实时监控域名的通信状态成为了一项基本需求。本文将详细介绍一个使用Python编写的简单域名通信状态监控工具,该工具能…

vue vxeui 上传组件 vxe-upload 全局配置上传方法,显示上传进度,最完美的配置方案

Vxe UI 上传组件 vxe-upload 全局配置上传方法,显示上传进度,最完美的配置方案 正常使用上传组件 vxe-upload,都是在用的时候传自定义上传方法,然后进行处理。几个页面是没什么问题,当系统页面非常多的时候&#xff0…

springboot 修复 Spring Framework 特定条件下目录遍历漏洞(CVE-2024-38819)

刚解决Spring Framework 特定条件下目录遍历漏洞(CVE-2024-38816)没几天,又来一个新的,真是哭笑不得啊。 springboot 修复 Spring Framework 特定条件下目录遍历漏洞(CVE-2024-38816)https://blog.csdn.ne…

SSH登录介绍

说明:一般登录服务器,我们可以用远程连接工具,如XShell、Windterm等,或者通过公司搭建的JumpServer(跳板机、堡垒机)来连接。前者是点对点登录,输入主机、端口,通过SSH协议登录&…

Unity计算二维向量夹角余弦值和正弦值的优化方法参考

如果不考虑优化问题,计算两个向量的余弦值或者正弦值可以直接使用类似的方法: [SerializeField] Vector2 v1, v2;void Start() {float valCos Mathf.Acos(Vector2.SignedAngle(v1, v2));float valSin Mathf.Asin(Vector2.SignedAngle(v1, v2)); } 但是…