线上OJ系统需求分析文档
系统用户
本系统用户有三类:学生,助教,教师
用户权限
- 学生
1.1 登录
1.2 加入课程
1.3 查看课程题目
1.4 查看题目描述
1.5 查看题目提交情况
1.6 进入天梯刷题
1.7 查看和修改个人信息
1.8 查看重要提醒 - 助教
2.1 登录
2.2 助教课程列表
2.3 查看课程题目
2.4 查看和修改题目描述
2.5 查看学生回答
2.6 查看学生代码
2.7 查看和修改个人信息
2.7 发布重要提醒 - 教师
3.1 登录
3.2 查看课程列表
3.3 创建课程
3.4 查看课程题目
3.5 创建课程题目
3.6 添加课程题目
3.7 创建考试
3.8 查看题目描述
3.9 查看学生回答
3.10 查看学生代码
3.11 查看和修改个人信息
3.12 添加助教
用户思维导图
用户故事
学生端
登录页面:
当用户输入网页的URL后,会进入登录页面,有两个输入框,分别对应输入学号和密码。若用户输入学号错误,点击登录按钮后会提示用户不存在;若用户输入密码错误,点击登录按钮后会提示密码不正确;若学号和密码都输入正确,会根据用户的权限进入学生首页或教师首页。
学生首页:
该页面显示了学生本学期的所有课程,以及课程的加入情况。对于已经加入的课程,学生可点击进入课程按钮,进入课程详情页面查看信息;对于未加入的课程,学生可点击加入按钮,参与本课程的学习。
学生课程:
在进入课程页面后,学生可以看见该课程发布的所有题目以及自己的答题情况,题目信息包括序号、题目名称、AC率,是否通过等;学生可以进一步点击题目名称,进入题目描述页面查看题目的具体描述。
题目描述:
该页面是题目的具体信息页面。下方有一个大文本框,显示的是题目的具体描述以及示例输入、示例输出;学生可以点击上方的提交情况按钮,切换文本框的内容为提交情况,查看该题目的回答情况。在下方,学生可以选择代码提交的语言类型,例如C、C++、python等,学生可以将代码复制到下方的文本框中,也可以点击清空按钮清除文本框的内容。当学生确定好代码后,点击提交按钮,就会进入提交情况页面。学生也可以点击返回按钮,返回学生课程页面。
提交情况:
本页面显示了该学生在此道题目的所有提交情况,包括学生的提交id,提交人,提交时间,所使用的语言,题目的id,运行结果(AC,ERROR,Time out),此道题目的得分,提交代码的长度,占用的内存,如果错误的话,错误的情况,最后还有运行时长。
重要提醒:
本页面显示了和该学生有关的所有提醒,包括未参加的考试,某课程的作业是否提交,以及该作业是否将要结束,以及老师发布的提醒。
学生信息:
本页面展示了学生的个人资料,包括用户名,真实姓名,用户权限,用户的注册时间,以及学生的邮箱。同时,在页面上还有帮助学生修改此页面资料的button以及更改密码的button。
天梯刷题:
本页面是为了帮助查缺补漏,自我提高而设置的题库页面。包括题目序号,题目名字,题目的难度,以及历史的通过率。同时,学生可以通过难度对题目进行筛选,同时也可以加入标签,例如知识点——字符串、搜索,课程——Java、数据结构,来进行筛选。
教师端
课程列表
在此页面中,教师可以查看本学期教授课程以及以往学期所教授课程,并且可以在此页面中创建课程和创建考试。创建考试后,考试以类似于课程的形式呈现在教师教授的科目中。
课程题目
在此页面中,教师可以查看这门课程目前为止的提交情况以及有关题目的部分信息,同时可以对题目进行修改以及删除。教师创建题目有两种选择,一种是创建新题目,通过创建题目按钮实现,另一种是从历史题库中选择题目,通过添加题目按钮实现。教师还可以上传跟题目相关的文件,对题目进行补充完善
题目描述
在此页面中,教师可以查看题目创建后的页面去检测题目创建是否有误。
学生回答
在此页面,教师可以查看学生提交状况的具体信息包括语言,结果,运行时间,内存,代码长度等和学生的源代码从而对学生的掌握情况作出初步的估计。
学生代码
在此页面中,教师可以查看学生具体的代码,同时提供题目信息和学生代码的运行状况以辅佐教师对学生具体代码作出进一步的判断。
题库
教师往期创建过的题目,都会加入题库中,并进行分类,以便教师为课程或考试添加题目。
创建题目
教师在课程题目页面创建题目,输入题目的具体信息,几个进行创建。
创建考试
教师可以在课程页面创建考试,输入考试科目,开始时间和结束时间,便可以创建考试,可以考试中创建题目和添加题目。