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

news2024/9/21 18:42:44

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

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

功能分析

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

  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

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

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

相关文章

实现keepalive+Haproxyde 的高可用

需要准备五台实验机 一台客户机&#xff1a;test1 两台&#xff1a;一主一备的实验机&#xff1a;test2 test3 两台真实服务器&#xff1a;nginx1 nginx2 实验 首先在两台实验机上安装Haproxy 安装依赖环境&#xff0c;并将Haproxy的包进行解压处理 yum install -y pcre…

什么ISP?什么是IAP?

做单片机开发的工程师经常会听到两个词&#xff1a;ISP和IAP&#xff0c;但新手往往对这两个概念不是很清楚&#xff0c;今天就来和大家聊聊什么是ISP&#xff0c;什么是IAP&#xff1f; 一、ISP ISP的全称是&#xff1a;In System Programming&#xff0c;即在系统编程&…

vscode常用组件

1.vue-helper 启用后点击右下角注册&#xff0c;可以通过vue组件点击到源码里面 2.【Auto Close Tag】和【Auto Rename Tag】 3.setting---Auto Reveal Exclude vscode跳转node_modules下文件&#xff0c;没有切换定位到左侧菜单目录> 打开VSCode的setting配置&#xff…

Redis的使用(四)常见使用场景-缓存使用技巧

1.绪论 redis本质上就是一个缓存框架&#xff0c;所以我们需要研究如何使用redis来缓存数据&#xff0c;并且如何解决缓存中的常见问题&#xff0c;缓存穿透&#xff0c;缓存击穿&#xff0c;缓存雪崩&#xff0c;以及如何来解决缓存一致性问题。 2.缓存的优缺点 2.1 缓存的…

Transformer模型解析:走进自然语言处理的新时代

UPDATED&#xff1a;2023 年 1 月 27 日&#xff0c;本文登上 ATA 头条。&#xff08;注&#xff1a;ATA 全称 Alibaba Technology Associate&#xff0c;是阿里集团最大的技术社区&#xff09;UPDATED&#xff1a;2023 年 2 月 2 日&#xff0c;本文在 ATA 获得鲁肃点赞。&…

华为OD算法题汇总

60、计算网络信号 题目 网络信号经过传递会逐层衰减&#xff0c;且遇到阻隔物无法直接穿透&#xff0c;在此情况下需要计算某个位置的网络信号值。注意:网络信号可以绕过阻隔物 array[m][n]&#xff0c;二维数组代表网格地图 array[i][j]0&#xff0c;代表i行j列是空旷位置 a…

数据结构(4.0)——串的定义和基本操作

串的定义(逻辑结构) 串&#xff0c;即字符串(String)是由零个或多个字符组成的有序数列。 一般记为Sa1a2....an(n>0) 其中&#xff0c;S是串名&#xff0c;单引号括起来的字符序列是串的值;ai可以是字母、数字或其他字符&#xff1b;串中字符的个数n称为串的长度。n0时的…

分布式对象存储minio

本教程minio 版本&#xff1a;RELEASE.2021-07-*及以上 1. 分布式文件系统应用场景 互联网海量非结构化数据的存储需求 电商网站&#xff1a;海量商品图片视频网站&#xff1a;海量视频文件网盘 : 海量文件社交网站&#xff1a;海量图片 1.1 Minio介绍 MinIO 是一个基于Ap…

Spring解决循环依赖:三级缓存

1.什么是循环依赖 通俗来讲&#xff0c;循环依赖指的是一个实例或多个实例存在相互依赖的关系&#xff08;类之间循环嵌套引用&#xff09;。 2.Spring如何解决循环依赖 首先&#xff0c;先介绍Spring是如何创建Bean的。 &#xff08;1&#xff09;createBeanInstance&…

【LoadRunner】博客笔记项目 性能测试报告

文章目录 前言一、博客笔记项目性能测试介绍二、编写性能测试脚本&#xff08;VUG&#xff09; 2.1 测试脚本编写步骤 2.2 脚本总代码和结果分析三、创建测试场景&#xff08;Controller&#xff09; 3.1 测试场景创建实现步骤四、生成测试报告&#xff08;Anal…

集合相关知识

string final&#xff0c;不能追加&#xff0c;需要重新new一个 stringbuild&#xff0c;内容 可变&#xff0c;可以重新赋能&#xff0c;能够追加&#xff0c;空间不足创造一个更大的&#xff0c;然后复制过去 stringbufferbuild 线程安全 javac编译&#xff0c;字符串加号…

SpringBoot介绍以及第一个SpringBoot程序

T04BF &#x1f44b;专栏: 算法|JAVA|MySQL|C语言 &#x1faf5; 今天你敲代码了吗 文章目录 2.第一个SpringBoot程序2.1Spring Boot介绍2.2使用idea创建Spring Boot程序2.2.1 社区版idea2.2.2专业版idea2.2.3创建SpringBoot项目2.2.4项目代码和目录介绍目录介绍pom文件 2.3Web…

Linux 上 TTY 的起源

注&#xff1a;机翻&#xff0c;未校对。 What is a TTY on Linux? (and How to Use the tty Command) What does the tty command do? It prints the name of the terminal you’re using. TTY stands for “teletypewriter.” What’s the story behind the name of the co…

【边缘计算网关教程】6.松下 Mewtocol TCP 协议

前景回顾&#xff1a;【边缘计算网关教程】5.三菱FX3U编程口通讯-CSDN博客 松下 Mewtocol TCP 协议 适配PLC&#xff1a;松下FP0H 松下XHC60ET 1. 硬件连接 Mewtocol TCP协议采用网口通信的方式&#xff0c;因此&#xff0c;只需要保证网关的LAN口和松下PLC的IP在一个网段即…

STM32怎么把VDD与VSS引脚配置为GPIO?

在 STM32 微控制器中&#xff0c;VDD 和 VSS 引脚是供电引脚&#xff0c;分别用于电源和接地。我收集归类了一份嵌入式学习包&#xff0c;对于新手而言简直不要太棒&#xff0c;里面包括了新手各个时期的学习方向编程教学、问题视频讲解、毕设800套和语言类教学&#xff0c;敲个…

使用base64通用文件上传

编写一个上传文件的组件 tuku,点击图片上传后使用FileReader异步读取文件的内容&#xff0c;读取完成后获得文件名和base64码&#xff0c;调用后端uploadApi,传入姓名和base64文件信息&#xff0c;后端存入nginx中&#xff0c;用于访问 tuku.ts组件代码&#xff1a; <templa…

变量筛选—特征包含信息量

在变量筛选中,通过衡量特征所包含信息量大小,决定是否删除特征,常用的指标有单一值占比、缺失值占比和方差值大小。单一值或缺失值占比越高,表示特征包含信息量越少,不同公司设置不同阈值,一般单一值、缺失值占比高于95%,建议删除。方差值越小,代表特征包含信息量越小。…

JMeter进行HTTP接口测试的技术要点

参数化 用户定义的变量 用的时候 ${名字} 用户参数 在参数列表中传递 并且也是${} csv数据文件设置 false 不忽略首行 要首行 从第一行读取 true 忽略首行 从第二行开始 请求时的参数设置&#xff1a; 这里的名称是看其接口需要的请求参数的名称 这里的变量名称就是为csv里面…

C语言程序设计实例2

C语言程序设计2 问题2_1代码2_1结果2_1 问题2_2代码2_2结果2_2 问题2_3代码2_3结果2_3 问题2_1 函数 f u n fun fun的功能是&#xff1a;计算如下公式前 n n n项的和&#xff0c;并作为函数值返回。 S 1 3 2 2 3 5 4 2 5 7 6 2 ⋅ ⋅ ⋅ ( 2 n − 1 ) ( 2 n 1 ) …

Linux操作系统——数据库

数据库 sun solaris gnu 1、分类&#xff1a; 大型 中型 小型 ORACLE MYSQL/MSSQL SQLITE DBII powdb 关系型数据库 2、名词&#xff1a; DB 数据库 select update database DBMS 数据…