课设--学生成绩管理系统(二)

2a20c54b85e042bfa2440367ae4807e9.gif

欢迎来到 Papicatch的博客

2a20c54b85e042bfa2440367ae4807e9.gif

目录

🐋引言 

🦈编写目的

🦈项目说明

🐋产品介绍 

 🦈产品概要说明

🦈产品用户定位 

🦈产品中的角色 

🐋 产品总体业务流程图

🐋 产品功能结构图

🐋任务管理 

🦈 项目现状

🦈项目目标 

🐋功能需求

🦈功能概述 

🦈功能点清单 

🦈功能点描述

🐋软件系统任务

🦈系统分析

🐡总体设计

🐡数据库设计

🐡架构设计

🐡类设计

🐡详细设计

🐡编码实现

🐡系统测试

🦈开发技术

🦈运行环境


2a20c54b85e042bfa2440367ae4807e9.gif

🐋引言 

🦈编写目的

         编写此需求分析说明书是因为项目持续周期长,为了使用户和团队开发人员对所开发的系统有一致性的理解。通过阅读此文档,团队开发人员能够迅速了解项目的具体需求与实现,同时用户通过此文档能够迅速了解系统。

🦈项目说明

         该项目名称为学生成绩管理系统,技术选型为前后端分离,前端基于Vue.js,后端基于Java语言开发,使用了SpringBoot和MyBatis框架提高开发效率和质量。主要面向高校教育中学生管理、课程管理、教师管理、成绩管理、成绩统计等需求。

🐋产品介绍 

 🦈产品概要说明

         实现对学生成绩管理过程中的课程表管理、成绩查询、成绩详情、课程管理、用户管理、账号管理,站在纯手工解决这些问题存在的繁琐步骤和容错率,故设计了这个学生成绩管理系统大大加强日常成绩管理过程中的办事效率和数据管理。

🦈产品用户定位 

        有大量学生和教学任务的学校成员,包括任课教师、学生、高校领导管理人员。 

🦈产品中的角色 

         学生成绩管理员、教师、学生

🐋 产品总体业务流程图

产品总体业务流程图

🐋 产品功能结构图

系统功能图

🐋任务管理 

🦈 项目现状

         目前处于需求分析阶段,后续小组会根据项目需求分析进一步进行可行性分析,并逐步对页面的设计、详细功能进行设计。

🦈项目目标 

        在规定时间内完成一个学生成绩管理系统网页版,可以在本地成功运行,并为后续项目上线做准备。 

🐋功能需求

🦈功能概述 

        实现图书管理系统以下功能:用户登录、课程管理、课程表管理、成绩管理、用户管理、账号管理。 

🦈功能点清单 

功能模块功能点功能描述
用户功能用户登录用户通过用户名和密码登录系统,系统进行身份验证,验证成功后进入系统主页。
修改密码用户可以修改自己的密码,输入旧密码、新密码和确认新密码,系统进行验证后完成密码修改。
课程管理新增课程信息管理员可以新增课程信息,包括课程名称、课程编号、课程描述、学分、授课教师等,新增后系统保存课程信息并更新课程列表。
修改课程信息管理员可以修改现有课程的信息,修改内容包括课程名称、课程编号、课程描述、学分、授课教师等。
删除课程信息管理员可以删除指定的课程信息,删除后系统从数据库中移除该课程,并更新课程列表。
条件分页查询课程信息用户可以根据条件查询课程信息,如按课程名称、课程编号、授课教师等,查询结果支持分页显示,提高用户体验。
课程表管理录入课程表管理员或教师可以录入新的课程表信息,包括课程时间、地点、授课教师等,录入后系统保存并更新课程表。
修改课程表管理员或教师可以修改已有的课程表信息,修改内容包括课程时间、地点、授课教师等。
成绩管理录入成绩教师可以录入学生的成绩信息,包括课程成绩、考试成绩等,录入后系统保存成绩并更新学生成绩记录。
修改成绩教师可以修改学生的成绩信息,修改后系统更新学生成绩记录。
统计成绩系统可以对学生的成绩进行统计分析,提供各种统计报表,如平均成绩、成绩分布等。
用户管理新增用户信息管理员可以新增用户信息,包括用户名、密码、角色等,新增后系统保存用户信息并更新用户列表。
修改用户信息管理员可以修改现有用户的信息,修改内容包括用户名、密码、角色等。
删除用户信息管理员可以删除指定的用户信息,删除后系统从数据库中移除该用户,并更新用户列表。
条件分页查询用户信息管理员可以根据条件查询用户信息,如按用户名、角色等,查询结果支持分页显示,提高用户体验。

🦈功能点描述

主要功能包括以下几项:

  • 登录:不同角色用户通过账号密码登录系统,系统根据用户角色分配相应的功能权限。
  • 学生信息管理:包括学生的基本信息(姓名、学号、班级等)的录入和维护。
  • 成绩查询:学生可以查询自己各科目的成绩。
  • 成绩分析:学生可以查看自己的成绩走势和各科目成绩的分布情况。
  • 成绩录入:教师可以录入、修改和删除学生的成绩。
  • 成绩统计:教师可以对所授班级的成绩进行统计和分析,生成报表。
  • 课程信息管理:管理员针对课程信息进行新增、删除、修改、条件分页查询。
  • 课程表管理:管理员针对课程表信息进行录入、修改。学生和教师可以查询对应课程表。
  • 成绩管理:管理员针对成绩信息进行录入、修改、条件分页查询、统计。学生可以查询对应的成绩和成绩统计。教师可以查询对应的成绩、录入成绩和成绩统计。
  • 用户信息管理:管理员针对用户信息进行新增、删除、修改、条件分页查询。
  • 课程设置管理:老师可以添加、修改和删除课程信息。

🐋软件系统任务

🦈系统分析

功能需求:系统需要实现用户登录、课程管理、课程表管理、成绩管理、用户管理、账号管理等功能。

技术可行性:系统采用Java、MySQL、HTML、JavaScript等技术,利用SpringBoot和Vue.js框架,技术上完全可行。

🐡总体设计

系统采用前后端分离的架构,前端使用Vue.js,后端使用SpringBoot框架进行开发

数据流和控制流设计遵循面向对象的原则,将业务逻辑和数据处理分离,保证系统的可维护性和扩展性。

数据库设计,数据库包括多个主要表,如管理员信息表、课程信息表、学生信息表、教师信息表等。

🐡数据库设计

主要表包括:管理员信息表、课程基本信息表、课程扩展信息表、学生信息表、教师信息表等。

每个表的字段详细定义,包括数据类型和描述,确保数据存储的准确性和完整性​

数据库表之间的关系通过外键约束实现,如学生与课程之间的关联表、教师与课程之间的关联表。

🐡架构设计

模块设计:划分系统主要模块包括用户管理模块、课程管理模块、课程表管理模块、成绩管理模块。各模块的功能和接口详细设计,包括用户登录、课程信息的CRUD操作、课程表的管理、成绩的录入和查询。

界面设计:系统提供多个用户界面,包括管理员首页、教师首页、学生首页,界面简洁直观,功能明确。

🐡类设计

系统定义了多个类,每个类对应数据库中的一个表。类的属性和方法清晰定义,确保各类之间的关系和交互明确,利于系统的维护和扩展。类之间的关系通过关联、继承等方式实现。

🐡详细设计

每个模块的功能详细描述,包括输入输出、处理逻辑、算法等。例如,成绩管理模块的详细设计包括成绩的录入、修改、查询,成绩统计等功能​。

接口设计:外部接口和内部接口的设计详细说明,包括接口的URL、请求方式、参数和返回值等。

🐡编码实现

编码过程中严格遵循代码规范和最佳实践,保证代码的可读性和可维护性。使用版本控制工具进行代码管理,确保代码的安全和版本的可追溯性。各模块的功能通过具体代码实现,包括业务逻辑、数据处理、界面展示等。详细描述了各功能的实现步骤和注意事项,帮助开发人员高效完成任务。

🐡系统测试

制定详细的测试计划,包括单元测试、集成测试、系统测试等,确保系统功能和性能达到预期要求。测试结果记录和分析,发现并修复系统中的问题,确保系统的稳定性和安全性。

🦈开发技术

  • 前端采用的是Vue框架开发,Vue.js作为一种现代化的JavaScript前端框架,Vue.js提供了响应式的组件化开发模式,使前端开发更加高效和灵活。Vue.js具有轻量级、易学易用的特点,能够将前端界面和数据进行有效地绑定,实现动态和交互式的用户体验。在该项目中,Vue.js用于开发前端用户界面,实现学生和教师的交互操作、数据展示和报告生成等功能。
  • 后端采用springboot+mybaits框架技术开发,Spring Boot作为Java开发的主要框架,Spring Boot提供了一种快速构建和部署应用程序的方式。它简化了Spring框架的配置和开发过程,通过自动化配置和约定大于配置的原则,减少了开发人员的工作量。Spring Boot还提供了丰富的功能模块和库,使开发人员可以轻松集成其他技术和扩展应用程序的功能。
  • MyBatis是一个优秀的持久层框架,它通过XML或注解的方式将对象与SQL语句进行映射,提供了一种简单、直观的数据库访问方式。MyBatis支持动态SQL、批量操作等高级特性,提供了丰富的插件机制,使得它在企业级应用中得到了广泛的应用。
  • MySQL作为一款经久不衰的数据库,作为该系统的数据持久化工具是比较合理的,加上其强大的技术生态圈,以及编程延伸出来的各种ORM框架,对MySQL的操作是比较友好的。项目创建完成后,会自动在pom.xml文件中,导入Mybatis依赖和 MySQL驱动依赖。
  • HTML作为传统网站页面标记语言,用来建设网站是必不可少的。搭配javaScript编写的脚本可以完美的与后端服务器完成数据操作,这里再借助Vue.js框架针对系统进行模块化控制,大大加强代码效率及可维护性。

系统框架图如下图所示

系统框架图

🦈运行环境

系统运行平台:Windows 10及以上

开发工具及语言: intellij-idea、VScode、JAVA

数据库及工具:MySQL、Navicat

运行环境:JDK1.8

2a20c54b85e042bfa2440367ae4807e9.gif

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Pixel Transformer:用像素代替补丁可以提升图像分类精度

在快速发展的人工智能领域,ViTs已成为各种计算机视觉任务的基础模型。ViTs通过将图像划分为小块并将这些小块作为标记来处理图像。6月刚发布一篇论文,引入了一种新颖的方法,即像素级Transformers,它通过将单个像素视为令牌来挑战这…

【深度学习】基于EANet模型的图像识别和分类技术

1.引言 1.1.EANet模型简介 EANet(External Attention Transformer)是一种深度学习模型,它结合了Transformer架构和外部注意力机制,特别适用于图像分类等计算机视觉任务。以下是关于EANet的详细解释: 1.1.1 定义与背…

2024年了,苹果可以通话录音了

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 6月11日凌晨,苹果在WWDC24大会上,密集输出了酝酿多时的AI应用更新。苹果对通话、对话、图…

从传统到智能:数字孪生在火电厂中的应用

通过图扑 HT 可视化技术数字孪生正在运行的火力发电厂,搭建数字化运营平台,对发电厂进行工厂式精细化的数字化管理,提升企业对整个发电厂业务进行数字化管理能力。

virtualbox扩展磁盘

使用virtualbox搭建虚拟机,如果磁盘不够用了,可以通过以下方式扩展。 扩容磁盘 分区扩展 查看磁盘情况 fdisk -l Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 sectors Units sectors of 1 * 512 512 bytes Sector size (logical/phys…

探索开源世界:2024年值得关注的热门开源项目推荐

文章目录 每日一句正能量前言GitCode成立背景如何使用GitCode如何把你现有的项目迁移至 GitCode?热门开源项目推荐actions-poetry - 管理 Python 依赖项的 GitLab CI/CD 工具项目概述技术分析应用场景特点项目地址 Spider - 网络爬虫框架项目简介技术分析应用场景项…

51单片机STC89C52RC——2.3 两个独立按键模拟控制LED流水灯方向

目的 按下K1键LED流水向左移动 按下K2键LED流水向右移动 一,STC单片机模块 二,独立按键 2.1 独立按键位置 2.2 独立按键电路图 这里要注意一个设计的bug P3_1 引脚对应是K1 P3_0 引脚对应是K2 要实现按一下点亮、再按一下熄灭,我们就需…

使用 Python 进行测试(4)为什么要测试?测什么?

总结 要知道测试的内容,首先要知道测试的原因。下面是测试的几个主要目的: 避免回归质量管理匹配规格淡化责任让你放心学习测试选中一个框 你为什么要测试? 要决定测试什么、测试多少以及以什么顺序测试,您需要首先弄清楚测试的…

QT系列教程(11) TextEdit实现Qt 文本高亮

文本高亮 对于textedit里录入的部分单词我们可以实现高亮,实现高亮主要依赖于QSyntaxHighlighter。 我们先创建一个Qt Application类,类名MainWindow, 然后新增一个C类,类名为MySyntaxHighlighter。 #ifndef MYSYNTAXHIGHLIGHTER_H #define …

优化查询性能:DolphinDB 时间类型数据比较规则详解

在数据库中,时间是一种常见的数据类型。在处理时间数据时,比较操作是非常常见的需求。然而,在不同的场景下,对时间类型数据进行比较时应用的规则不同。本文将从 DolphinDB 支持的时间类型开始,由浅入深分别介绍时间类型…

C++访问Private,Protecd的一些方法总结

前言 在编写C程序中 我们偶尔会碰到这样的三种特殊修改变量值的需求: [1]在不修改类原本的实现下,访问修改类的Private变量 [2]在不修改类原本的实现下,修改类的Protected变量 Private变量访问 public类模版函数特化 这种办法利用了类模…

Qt自定义日志输出

Qt自定义日志输出 简略版&#xff1a; #include <QApplication> #include <QDebug> #include <QDateTime> #include <QFileInfo> // 将日志类型转换为字符串 QString typeToString(QtMsgType type) {switch (type) {case QtDebugMsg: return "D…

全网爆火的AI语音合成工具-ChatTTS,有人已经拿它赚到了第一桶金,送增强版整合包

上篇分享了如何从0到1搭建一套语音交互系统。 其中&#xff0c;语音合成&#xff08;TTS&#xff09;是提升用户体验的关键所在。 不得不说&#xff0c;AI 语音界人才辈出&#xff0c;从之前的Bert-Sovit&#xff0c;到GPT-Sovits&#xff0c;再到最近一周狂揽了 1w Star 的C…

热门开源项目ChatTTS: 国内语音技术突破,实现弯道超车

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

细说MCU修改回调函数调用模式的方法

目录 1、硬件及工程 2、实现方法 &#xff08;1&#xff09;修改while(1)中的代码&#xff1a; &#xff08;2&#xff09;修改2 &#xff08;3&#xff09;修改3 &#xff08;4&#xff09;修改4 &#xff08;5&#xff09;修改5 3、下载并运行 在本文作者的文章中&a…

RPC知识

一、为什么要有RPC&#xff1a; HTTP协议的接口&#xff0c;在接口不多、系统与系统交互较少的情况下&#xff0c;解决信息孤岛初期常使用的一种通信手段&#xff1b;优点就是简单、直接、开发方便&#xff0c;利用现成的HTTP协议进行传输。 但是&#xff0c;如果是一个大型的网…

python-基础篇-函数-在py中的长相

文章目录 整体长相长相要求 整体长相 怎么自定义函数&#xff1f; 要知道怎么定义函数&#xff0c;就要知道函数的组成部分是怎样的。 def 函数名(参数1&#xff0c;参数2....参数n):函数体return 语句这就是 Python 函数的组成部分。 长相要求 所以自定义函数&#xff0c…

读AI新生:破解人机共存密码笔记02进化

1. 人工智能的标准模型 1.1. 机器优化人类提供的固定目标 1.1.1. 是一条死胡同 1.1.1.1. 当你走进死胡同时&#xff0c;你最好掉头返回&#xff0c;找出走错的地方 1.2. 问题不在于我们可能无法做好构建人工智能系统的工作&…

【loguru】【notifiers】配置ERROR级别邮件发送通知

完整代码 from loguru import logger from notifiers import get_notifier# 获取电子邮件通知器 notifier get_notifier("email")# 配置电子邮件通知参数 email_params {"username": "xxxxx163.com", # 发送邮件的用户名&#xff0c;我这里用…

时机:产品成功的关键因子

在商业世界里&#xff0c;产品成功与否往往与许多因素有关&#xff1a;优秀的创意、强大的团队、充足的资金等。然而&#xff0c;在这些因素之外&#xff0c;一个常被忽视但至关重要的因素就是“时机”。正如古语所言&#xff1a;“人为可做&#xff0c;天时难造”&#xff0c;…