本人对下述需求进行了代码实现,使用ssm框架。涉及到Java的动态编译方面的知识,另外,评分通过获取后台数据库中的测试用例,动态执用例进行评分。
需要源码的可以扫码关注公众号『嗜码』,回复「程序题批改系统」即可获取源码,源码使用的 spring mvc 框架。
文章目录
1 需求分析
1.1 系统简介
在计算机教育领域,尤其是程序设计类课程,教学内容基本上是理论与实践相结合。对于的传统的手动批改源代码和程序的方式通常会耗费教师巨大的精力,也难以保证结果公正性,因此程序题自动批改系统备受关注。目前应用较为广泛的的程序自动批改系统是ACM/ICMP的Online Judge程序批改系统,但是在多数的程序设计类课程中,ACM/ICMP并不适用。ACM/ICMP系统只能够处理标准的输入输出程序,并且给出对或错两种结果,无法像手工批改一样,对各方面进行打分,同时给出具体的分数以及错误原因。
因此,设计一个程序题智能批改系统,采用提交-反馈的模式,让学生在离开老师的情况下,可以自己编写程序并交给系统进行批改,同时教师可在后台查看学生的学习情况,并予以反馈。这不仅提高了学生编写程序的积极性,也驱动学生去深入学习编程,大大减轻了教师的工作量。
1.2 需求说明
程序题智能批改系统可用于让学生在没有老师的监督下,独立编写程序并通过系统提交给后台。教师在后台可查看学生的学习情况,并针对不同学生的答题情况予以反馈。主要需求如下:
- 学生可以在线编程,并支持本地调试
- 学生可以将编写好的代码提交到服务器端,并查询自己的成绩
- 教师可以题库进行管理,例如:增加题目、修改答案等等
- 教师可以对学生成绩进行管理,并可查看成绩分析报告
- 教师可以在线批改学生代码,并予以反馈
- 管理员可以对学生及教师信息进行管理
1.3 用例分析
1.3.1 用例与角色
学生:
- 查询相关个人基本信息
- 查询成绩
- 在线编程答题
- 提交代码
- 测试代码
- 下载代码
- 问题反馈
教师:
- 题库管理
- 查询个人基本信息
- 在线批改
- 生成成绩分析报告
- 代码安全检测
- 成绩管理
管理员:
- 管理学生基本信息
- 管理教师基本信息
1.3.2 用例图
1.3.3 用例描述
用例名称:成绩查询 |
---|
描述:学生查询个人成绩信息 |
标识符:UC01 |
角色:学生 |
前置条件:学生成功登录系统 |
主事件流: 1.学生点击个人信息连接,跳转到个人信息页面 2.点击题目,查询所得成绩 3.用例结束 |
其他事件流: 1.学生未答题,未显示分数 |