页面划分
- 题目列表页面
- 添加/修改题目页面
- 预览题目页面
- 提交记录页面
- 源代码详情页面
具体功能设计
- 题目列表页面
- 在导航栏中选择进入题目列表页面
- 通过上方下拉框选择课程名称和题目类型,显示对应所有题目列表
- 列表显示题目id、题目名称、提交数、通过数、通过率、创建人、创建时间、难度、题目状态
- 输入题目名称或选择创建人、题目难度,点击“筛选”按钮进行筛选
- 点击“新建题目”按钮,进入添加题目页面
- 点击“批量上传”按钮,通过上传一个特定格式的文件,一次上传多个题目
- 列表左侧有复选框,可选择多个题目或选择表头复选框全部选中,列表上方显示选中题目个数,点击“清空”按钮,取消所有已选中题目;点击“批量删除”按钮,删除选中的所有题目
- 点击列表“操作”栏下的“修改”按钮,进入修改题目页面;点击“预览”按钮,进入预览题目页面;点击“删除”按钮,删除对应题目
- 添加/修改题目页面
- 对题目标题、题目类型、题目描述、附件、内存限制、时间限制、输入限制、输出限制、测试输入与输出、测试标签、样例输入与输出、词云标签、状态、难度进行设置编辑
- 点击最下方“保存”按钮,完成题目的添加或修改
- 点击右上方“预览”按钮或最下方“预览”按钮,进入预览题目页面
- 题目预览页面
- 页面显示学生端显示的题目页面,包括题目标题、提交次数、通过次数、通过率、题目描述、附件、内存限制、时间限制、输入限制、输出限制、样例输入与输出,语言下拉选择框和代码文本输入框
- 点击右上角“编辑”按钮,进入添加/修改题目页面进行编辑
- 提交记录页面
- 在导航栏中选择进入提交记录页面
- 列表显示提交id、提交人、语言、问题id、得分、结果、状态、创建时间
- 输入题目id、提交人、选择时间段,点击“查询”按钮进行查询筛选
- 点击列表“操作”栏下的“查看源代码”按钮,进入源代码详情页面
- 源代码详情页面
- 页面显示相应提交代码
- 点击右上角“返回”按钮,返回提交记录页面
数据库初步设计
其中数据库的设计主要集中在下方Exercise表、Testlog表、TestdataLog表、Testdata表等。
- 题目中心的设计为按照课程划分题库,即某一门课(Course)的多年开设的课程实例(Class),使用同一个题库。
- Mark表中为词云标记,其中通过MarkExercise表进行与题目的关联。
- Attachment表中为题目的附件。
- Testdata为测试用例,其中mark为测试用例的标记属性,用来标记此测例的测试针对。
- Testlog为测试记录,即学生某次提交的测试结果。
- Testdatalog为关联测试记录与测试用例,用来保存在某个测试提交中的某个测试用例是否通过。