该文档是计科1605班软件工程课程设计,成绩管理子系统的开发模块仓库。内容包含:
从面向的用户分,成绩管理子系统主要面向三类用户,即至少需要满足这三类用户的需求:
- 学生:学生是成绩管理系统的最基本的用户,需要向学生提供:
- 查看课程成绩。成绩信息汇总,并提供打印下载功能。
- 申请成绩复议。
- 提交教师评价与课程评价。
- 教师:教师也是成绩管理系统的重要用户,教师需要使用成绩管理系统:
- 提交学生成绩。
- 打印学生成绩。
- 查看和下载成绩汇总,班级、年级等角度,从而能够对学生成绩有一个更好的把握。
- 管理员或学校领导:这是成绩管理系统的高级用户,需要向其提供:
- 学生成绩的查询界面,需要支持多个维度的查询功能,并支持模糊查询。
- 生成关于学生成绩的各类统计报表功能。包括成绩统计的直方图(包含平均值、中位数、众数等)、学期成绩变化的曲线、学院角度分析、专业角度分析等。
开发内容涉及到很多的前端工作,需要设计出比较好用用户体验比较好的界面以及图像展示效果。
- 开发人员:编制代码,构建系统,完成前后端的设计和开发,以及用户交互、图标生成等功能的构建。
- 测试人员:测试代码,单元测试的编写,测试开发人员编制的函数的鲁棒性、健壮性。开发的界面是否美观、交互是否好用。需要撰写详细的测试文档,并及时反馈。
采用在github上提交issue的方式来作为每周汇报。目的是回顾每周的工作情况,促进交流提升。
标题: Review-{yyyy\mm\dd(必须为当周周日)}-{姓名}
i.e:
Review-2019/03/17-罗登
内容:使用Markdown标记语言编辑自己这周的工作学习内容及下周的安排。
教程:Markdown教程
weekly-review 参考:Review-2018/12/16-罗登
Tips:
- 重要的是记录下自己这周做了什么及其心得
- 如果明确安排了任务,可以叙述自己的任务的完成情况;如果没有安排任务,可以叙述平时的学习情况、学习心得,网上见到的比较有趣的东西。
- GitHub的issues是可以评论的, 欢迎大家多多评论别人提交的review
- 点击右上角的
Watch
按钮 关注Weekly-review
的动态
前提条件:学生的用户名和账号必须是正确的
参与者:学生
情境目标:学生查询到自己的成绩信息,打印成绩单
参与者:学生
情境目标:学生向学校申请成绩复议,并得到回复
参与者:学生
情境目标:学生在网站中完成教学评价,评价提交后不可更改
参与者:学生
情境目标:学生在网站中完成查看自己的学业情况(已获得学分,总绩点等)
函数名 | 完成功能 | 传入参数 | 返回值 |
---|---|---|---|
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_name | a set of students score > 90 |
get_class_excelent_rat | 获取教学班优秀率 | class_name | the exc_stu_num / total_stu_num_in_clas |
get_major_gpa_mean | 获取专业平均GPA,可以指定学期,默认是本学期,下同 | major_id / major_name, semaster | |
get_major_gpa_max | 获取专业最高GPA | major_id / major_name | |
get_major_gpa_mode | 获取专业GPA众数 | major_id / major_name | |
get_major_failed | 获取该专业学位警告学生名单 | major_id / major_name | a set of students failed to graduate(gpa < 2.0) |
get_major_failed_rat | 获取本专业学位警告学生率 | major_id / major_name | float |
get_major_num | 获取专业人数 | major_id / major_name | int |
get_class_failed | 获取到该教学班未通过考试的学生 | class_name | a set of students failed to pass the exam |
get_class_failed_rat | 获取到该教学班未通过率 | class_name | float |
get_class_num | 获取教学班人数 | class_name | int |
get_stu_in_range | 获取到成绩在指定范围内的的学生 | score_range, score_type | a set of students in the range of score |
table_to_pdf | 导出表格为pdf | ||
send_annocement | 向指定用户发送通知 | user_id |