软件工程课设——成绩管理系统

软件工程课设——成绩管理系统

该文档是软件工程课程设计,成绩管理子系统的开发模块仓库。

功能分析

从面向的用户分,成绩管理子系统主要面向三类用户,即至少需要满足这三类用户的需求:

  1. 学生:学生是成绩管理系统的最基本的用户,需要向学生提供:
    1. 查看课程成绩。成绩信息汇总,并提供打印下载功能。
    2. 申请成绩复议。
    3. 提交教师评价与课程评价。
  2. 教师:教师也是成绩管理系统的重要用户,教师需要使用成绩管理系统:
    1. 提交学生成绩。
    2. 打印学生成绩。
    3. 查看和下载成绩汇总,班级、年级等角度,从而能够对学生成绩有一个更好的把握。
  3. 管理员或学校领导:这是成绩管理系统的高级用户,需要向其提供:
    1. 学生成绩的查询界面,需要支持多个维度的查询功能,并支持模糊查询。
    2. 生成关于学生成绩的各类统计报表功能。包括成绩统计的直方图(包含平均值、中位数、众数等)、学期成绩变化的曲线、学院角度分析、专业角度分析等。

人员分工

开发内容涉及到很多的前端工作,需要设计出比较好用用户体验比较好的界面以及图像展示效果。

  • 开发人员:编制代码,构建系统,完成前后端的设计和开发,以及用户交互、图标生成等功能的构建。
  • 测试人员:测试代码,单元测试的编写,测试开发人员编制的函数的鲁棒性、健壮性。开发的界面是否美观、交互是否好用。需要撰写详细的测试文档,并及时反馈。

需求分析规格说明

用例图

学生用例分析

在这里插入图片描述

学生用户示例

前提条件:学生的用户名和账号必须是正确的

用例1:学生通过访问网站,查询某学期成绩,并打印出成绩单

参与者:学生
情境目标:学生查询到自己的成绩信息,打印成绩单

场景:

1、学生访问到该网站,输入用户名,密码,选择学生身份,登录;
2、学生选择成绩查询功能;
3、如果学生已经完成教学评价,可以接着该用例往下走;如果未完成,看到提示后,进入用例3,完成教学评价;
4、网站中有学期和学年的选择框,有查询和打印两个按钮;
5、学生选择好学期和学年后,点击查询,网站中列出成绩单(课程号,课程名,任课老师,学院,专业,学分,分数,评级,绩点),成绩单中还有本学期总绩点的学分。
6、点击打印,预览后打印出成绩单;

用例2:学生通过访问网站,进行成绩复议

参与者:学生
情境目标:学生向学校申请成绩复议,并得到回复

场景:

1、学生访问到该网站,输入用户名,密码,选择学生身份,登录;
2、学生选择成绩复议功能;
3、网站中出现几个小功能模块:
(1)申请复议:学生将新建一个成绩复议表单,按照表中提示填信息之后,可以提交给学校;
(2)复议回复:学生将再次看到自己收到的复议回复,未读和已读都有标记,学生可以查看和删除;
(3)复议草稿箱:学生未提交出去的成绩复议表单将保存在这里;
(4)复议记录:学生提交过的复议记录,有日期信息。学生可以查看和删除记录;
(5)垃圾箱:学生删除过的记录和表单都暂时保存在此,可以回收,删除,清空;
4、学生点击申请复议,填好信息,点击提交,提示成功,申请已经分别交给老师和教务人员。
5、一段时间后(这段时间教务人员和老师在交互),学生登录网站,在主页有消息提示,点击进入“复议回复”模块中可以查看。

用例3:学生通过网站,对本学期进行教学评价

参与者:学生
情境目标:学生在网站中完成教学评价,评价提交后不可更改

场景:

1、学生访问到该网站,输入用户名,密码,选择学生身份,登录;
2、学生选择教学评价功能;
3、网站中条列出本学期的所有课程和老师,已评价的提供查看功能,未评价的点击评价进行问卷评价。
4、学生点击评价,填写好问卷调查。
5、问卷末尾,有确定,重填和提交三个按钮,确定用来固定答案,重填用来清空原来的填写,提交把问卷提交至教务管理人员处。
6、全部提交完成后,本项完成。

用例4:学生通过网站,查看大学成绩总体情况

参与者:学生
情境目标:学生在网站中完成查看自己的学业情况(已获得学分,总绩点等)

场景:

1、学生访问到该网站,输入用户名,密码,选择学生身份,登录;
2、学生选择成绩总览功能;
3、网站前几行有总学分,总绩点,以及大学各类课程所修数量;
4、网站中出现几个统计模块,每个模块上显示该模块中课程数量,总学分,模块如下:
(1)必修课(2)选修课(3)通识课(4)其他课
点击模块展开相应类别的所有已修课程信息,包含课程名,课程代码,绩点,学分,评级;
5、点击打印按钮打印出所有模块和模块展开后的信息。

教师用例分析

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

教务管理员用例分析

在这里插入图片描述

UML类图

在这里插入图片描述

View函数列表

函数名完成功能传入参数返回值
stu_search_score学生查看自己本学期的成绩,包括了考试总分和平时分等成绩明细
stu_view_stat学生查看自己成绩的统计信息,包括已修学分和未修学分,成绩走势
stu_proposal学生针对某一门课提交成绩复议申请,填写相应的表单。对应的申请会被同时发送到教务管理人员和教师处,需要教师确认同意或者不同意,教务处起到监管的作用
stu_print_score学生打印自己的个人成绩
stu_comment_tch学生对教师教学情况进行评价,填写相应的评教表单
tch_upload_score_xls教师通过excel电子表格上传成绩
tch_upload_score_online教师在线填写学生成绩
tch_print_score教师打印自己教学班级的学生成绩信息
tch_download_score教师下载学生成绩用于分析
tch_proposal教师向教务处提出修改成绩申请
get_xls_template根据教师所选条目,下载对应的填写和上传成绩的电子表格
mg_view_proposal教务管理人员查看并且选择通过还是不通过学生和教师提出的修改成绩申请
email_send在系统内发送email到对应的人员处,包括教务管理人员,教师,学生等
get_xls_to_instructor汇总信息提交给专业辅导员(比如,计算机科学与技术的辅导员,通过调用该函数,获取到对应专业的学生各学科信息,结果需降序排列)
cal_stu_gpa计算该学生本学期所有成绩加权的综合GPA(通过对应公式加权计算)
cal_total_gpa计算该学生自入学以来的个学期GPA汇总
get_stu_course_score获取到该学生某指定一门课程的成绩,传入参数课程名和学号,如果不存在需要抛出对应的异常
get_class_mean获取对应教学班级的平均分class_name
get_class_max获取教学班成绩最高分class_name
get_class_excelent获取教学班90分以上的学生class_namea set of students score > 90
get_class_excelent_rat获取教学班优秀率class_namethe exc_stu_num / total_stu_num_in_clas
get_major_gpa_mean获取专业平均GPA,可以指定学期,默认是本学期,下同major_id / major_name, semaster
get_major_gpa_max获取专业最高GPAmajor_id / major_name
get_major_gpa_mode获取专业GPA众数major_id / major_name
get_major_failed获取该专业学位警告学生名单major_id / major_namea set of students failed to graduate(gpa < 2.0)
get_major_failed_rat获取本专业学位警告学生率major_id / major_namefloat
get_major_num获取专业人数major_id / major_nameint
get_class_failed获取到该教学班未通过考试的学生class_namea set of students failed to pass the exam
get_class_failed_rat获取到该教学班未通过率class_namefloat
get_class_num获取教学班人数class_nameint
get_stu_in_range获取到成绩在指定范围内的的学生score_range, score_typea set of students in the range of score
table_to_pdf导出表格为pdf
send_annocement向指定用户发送通知user_id

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

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

相关文章

FlinkErr:org/apache/hadoop/hive/ql/parse/SemanticException

在flink项目中跑 上面这段代码出现如下这个异常&#xff0c; java.lang.NoClassDefFoundError: org/apache/thrift/TException 加上下面这个依赖后不报错 <dependency> <groupId>org.apache.thrift</groupId> <artifactId>libthrift</artifactId…

PGCCC|【PostgreSQL】PCM认证考试大纲#postgresql 认证

PostgreSQL Certified Master PCM&#xff08;高级&#xff09; PostgreSQL Certified Master (PCM)是PostgreSQL的极高级别&#xff0c;是对数据库从业人员的技术、知识和操作技能的极高级别的认可。 PCM是解决极困难的技术难题和极复杂的系统故障的极佳PostgreSQL专家人选&a…

vue3 快速入门 (一) : 环境配置与搭建

1. 本文环境 Vue版本 : 3.4.29Node.js版本 : v20.15.0系统 : Windows11 64位IDE : VsCode 2. 安装Node.Js 首先&#xff0c;我们需要安装Node.Js。Node.js提供了运行 JavaScript 代码的环境。并且Node.js 带来了 npm&#xff0c;它是JavaScript世界的包管理工具。开发vue时&…

Scott Brinker:Martech的新数据层成为营销人工智能的基础

在我们最近发布的《2024年Martech状况报告》&#xff08;State of Martech 2024 report&#xff09;中&#xff0c;我和Frans Riemersma分析了整个Martech行业发生的大量转变&#xff0c;从人工智能驱动的Martech领域的爆炸式增长&#xff0c;到Martech技术栈中「可组合性」 的…

【vue教程】一. 环境搭建与代码规范配置

目录 引言Vue 框架概述起源与设计理念核心特性优势 Vue 开发环境搭建环境要求安装 Vue CLI创建 Vue 项目项目结构介绍运行与构建 组件实例基础模板响应式更新 代码规范为什么要使用代码规范在 Vue 项目中使用 ESLint 、PrettierESLint配置 ESLintrules 自定义错误级别 Prettier…

python数据可视化(6)——绘制散点图

课程学习来源&#xff1a;b站up&#xff1a;【蚂蚁学python】 【课程链接&#xff1a;【【数据可视化】Python数据图表可视化入门到实战】】 【课程资料链接&#xff1a;【链接】】 Python绘制散点图查看BMI与保险费的关系 散点图: 用两组数据构成多个坐标点&#xff0c;考察…

【postgresql】pg_dump备份数据库

pg_dump 介绍 pg_dump 是一个用于备份 PostgreSQL 数据库的实用工具。它可以将数据库的内容导出为一个 SQL 脚本文件或其他格式的文件&#xff0c;以便在需要时进行恢复或迁移。 基本用法 pg_dump [选项] [数据库名] 命令选项 -h 或 --host&#xff1a;指定数据库服务器的主…

使用Elasticsearch Python SDK 查询Easysearch

随着数据分析需求的不断增长&#xff0c;能够高效地查询和分析大数据集变得越来越重要。Elasticsearch作为一种强大的分布式搜索和分析引擎&#xff0c;被广泛应用于各种场景。Easyearch 支持原生 Elasticsearch 的 DSL 查询语法&#xff0c;确保原业务代码无需调整即可无缝迁移…

S274钡铼技术多功能可编程RTU在矿山通风系统远程监控中的应用案例

在现代矿山运营中&#xff0c;安全和效率是至关重要的考量因素。矿山通风系统作为确保工作场所空气质量和员工安全的关键部分&#xff0c;需要可靠的监控和控制以应对复杂多变的工作环境。钡铼第四代RTU S274作为一款多功能可编程的无线工业物联网数据监测采集控制短信报警终端…

log4js node日志插件

最近不是特别忙在用express搭建后台项目&#xff0c;在开发过程中遇到了需要输入日志的问 本来想直接用node自带的console来实现&#xff0c;后来发现console输出的日志达不到自己希望的 日志格式&#xff0c;后来各种百度发现了log4js插件&#xff0c;本文来记录log4js插件使用…

C++客户端Qt开发——常用控件(多元素控件)

5.多元素控件 Qt中提供的多元素控件有&#xff1a; QListWidget QListView QTablewidget QTableview QTreewidget QTreeview xxWidget和xView之间的区别 以QTableWidget和QTableView为例. QTableView是基于MVC设计的控件.QTableView自身不持有数据.使用QTableView的时候需要…

[BJDCTF2020]EzPHP1

知识点&#xff1a;1. url编码绕过 2. %0a绕过 3. post优先级绕过 4. php伪协议 5. 数组的强类型比较绕过 6. 取反绕过 进入之后发现了一个很帅气的页面&#x1f60e;~ 看看网页源代码试试~ 是base32编码&#xff0c;尝试一下解码. https://www.qqxiuzi.cn/bianma/base.php 解…

Java二十三种设计模式-适配器模式(6/23)

适配器模式&#xff1a;使不兼容的接口协同工作的桥梁 引言 适配器模式&#xff08;Adapter Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许不兼容的接口之间可以一起工作&#xff0c;通过将一个类的接口转换成客户端期望的另一个接口。 在计算机编程中&#x…

Java | Leetcode Java题解之第237题删除链表中的节点

题目&#xff1a; 题解&#xff1a; class Solution {public void deleteNode(ListNode node) {node.val node.next.val;node.next node.next.next;} }

Windows上LabVIEW编译生成可执行程序

LabVIEW项目浏览器(Project Explorer)中的"Build Specifications"就是用来配置项目发布方法的。在"Build Specifications"右键菜单中选取"New"&#xff0c;可以看到程序有几种不同的发布方法&#xff1a;Application(EXE)、Installer、.Net Inte…

Redis的热key解决

1、Redis热Key会带来哪些问题 1、流量集中&#xff0c;达到物理网卡上限。 当某一热点 Key 的请求在某一主机上超过该主机网卡上限时&#xff0c;由于流量的过度集中&#xff0c;会导致服务器中其它服务无法进行。 2、请求过多&#xff0c;缓存分片服务被打垮。 如果热点过于…

深入理解缓冲区:提升程序性能的关键

深入理解缓冲区&#xff1a;提升程序性能的关键 1、什么是缓冲区&#xff1f;2、缓冲区的作用3、缓冲区在Java中的应用4、如何操作缓冲区5、总结 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 缓冲区&#xff08;Buffer&#xff09;是一种…

mac电脑pdf合并,macpdf合并成一个pdf

在数字化办公和学习的今天&#xff0c;pdf文件因其跨平台兼容性强、格式稳定而成为了最受欢迎的文档格式之一。但随之而来的问题也接踵而至&#xff0c;如何将多个pdf文件合并为一个&#xff1f;这不仅关系到文档的整洁性&#xff0c;更是时间管理的重要环节。今天&#xff0c;…

安全防御:防火墙基本模块

目录 一、接口 1.1 物理接口 1.2 虚拟接口 二、区域 三、模式 3.1 路由模式 3.2 透明模式 3.3 旁路检测模式 3.4 混合模式 四、安全策略 五、防火墙的状态检测和会话表技术 一、接口 1.1 物理接口 三层口 --- 可以配置IP地址的接口 二层口&#xff1a; 普通二层…

CSS在页面中使用的三种方式:行内样式、内嵌式样式表、链接式样式表

CSS样式如何在页面中使用&#xff0c;包含三种方式&#xff1a;行内样式、内嵌式样式表、链接式样式表。 CSS样式的使用系列博文&#xff1a; 《CSS在页面中使用的三种方式&#xff1a;行内样式、内嵌式样式表、链接式样式表》 《CSS选择器&#xff1a;基本选择器、复合选择器、…