[发明专利]编程类考题自动测评方法和系统有效
| 申请号: | 201510740357.8 | 申请日: | 2015-11-03 |
| 公开(公告)号: | CN105427695B | 公开(公告)日: | 2018-11-02 |
| 发明(设计)人: | 高万林;胡慧;郑立华;陈瑛;吕春利;冀荣华;李鑫;李静;段晶洁 | 申请(专利权)人: | 中国农业大学 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36 |
| 代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 李相雨 |
| 地址: | 100193 *** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 编程 考题 自动 测评 方法 系统 | ||
1.一种编程类考题自动测评方法,其特征在于,包括以下步骤:
S1:服务器端获取客户端发来的待测评代码以及预设的测试用例;
S2:确定所述测试用例对应的输入、输出、权重和分数;
S3:根据所述测试用例的输入,运行所述待测评代码,得到所述待测评代码的输出结果;
S4:将所述待测评代码的输出结果与所述测试用例期望的所述输出进行匹配,并根据所述测试用例的权重和分数,计算所述待测评代码的得分;
其中,所述步骤S3还包括:
将所述待测评代码的名称通过消息队列发送到所述服务器端的运行程序监控线程,通过所述运行程序监控线程监控所述待测评代码的运行过程;
其中,所述运行程序监控线程监控所述待测评代码的运行过程具体包括以下步骤:
S301:打开所述消息队列;
S302:等待接收所述消息队列;
S303:休眠第一预设时间;
S304:判断所述待测评代码是否仍在运行;如果已经停止运行,则继续进入步骤S302;如果仍在运行,则继续休眠第二预设时间;
S305:在休眠第二预设之间之后,如果所述待测评代码仍在运行,则强制终止所述待测评代码的运行;如果已经停止运行,则继续进入步骤S302。
2.根据权利要求1所述的一种编程类考题自动测评方法,其特征在于,所述步骤S1还包括:判断所述待测评代码内是否包含被禁止的系统命令,如果包含被禁止的系统命令,则停止所述待测评代码的运行。
3.根据权利要求1或2所述的一种编程类考题自动测评方法,其特征在于,所述步骤S1还包括:编译所述待测评代码,并获取编译结果,如果编译出错则返回出错信息。
4.根据权利要求1或2所述的一种编程类考题自动测评方法,其特征在于,在步骤S1之前还包括:
运行所述服务器端的程序,将所述服务器端的程序的进程号写入运行文件;并开启运行程序监控线程;
通过主线程创建Socket、绑定Socket、监听Socket端口,并等待所述客户端的连接请求;其中,接收一个客户端的连接后,新建一个线程继续处理另一个客户端的连接请求。
5.一种编程类考题自动测评系统,其特征在于,包括服务器端和客户端,所述服务器端包括接收单元、解析单元、运行单元和比较单元;
所述接收单元用于获取客户端发来的待测评代码以及预设的测试用例;
所述解析单元用于确定所述测试用例对应的输入、输出、权重和分数;
所述运行单元用于根据所述测试用例的输入,运行所述待测评代码,得到所述待测评代码的输出结果;
所述比较单元用于将所述待测评代码的输出结果与所述测试用例期望的所述输出进行匹配,并根据所述测试用例的权重和分数,计算所述待测评代码的得分;
其中,所述运行单元还用于:
将所述待测评代码的名称通过消息队列发送到所述服务器端的运行程序监控线程,通过所述运行程序监控线程监控所述待测评代码的运行过程;
其中,所述运行程序监控线程监控所述待测评代码的运行过程具体包括以下步骤:
S301:打开所述消息队列;
S302:等待接收所述消息队列;
S303:休眠第一预设时间;
S304:判断所述待测评代码是否仍在运行;如果已经停止运行,则继续进入步骤S302;如果仍在运行,则继续休眠第二预设时间;
S305:在休眠第二预设之间之后,如果所述待测评代码仍在运行,则强制终止所述待测评代码的运行;如果已经停止运行,则继续进入步骤S302。
6.根据权利要求5所述的编程类考题自动测评系统,其特征在于,所述客户端包括出题模块、答题模块;
所述出题模块用于向所述服务器端提交编程试题以及所述预设的测试用例;
所述答题模块用于向所述服务器端提交所述待测评代码。
7.根据权利要求6所述的编程类考题自动测评系统,其特征在于,所述客户端还包括防抄袭模块,所述防抄袭模块用于计算任意两份所述待测评代码的相似度。
8.根据权利要求5或6所述的编程类考题自动测评系统,其特征在于,
所述服务器端是分布式集群系统,包括评测管理节点、程序运行节点、作业管理节点、任务节点、数据管理节点和数据节点;所述数据管理节点和数据节点构成分布式文件系统,为其他各个节点处理数据提供保存程序代码以及其他数据的环境;
所述评测管理节点用于在收到客户端的连接请求后,通过数据管理节点将待测评代码保存到所述分布式文件系统中,并根据当前的负载情况给所述待测评代码分配所述程序运行节点;
所述程序运行节点用于编译、运行所述待测评代码,并将编译、运行的输出结果保存在所述分布式文件系统中;
所述作业管理节点用于提交搜索查询代码作业,并分配作业到各个所述任务节点,通过各个所述任务节点并发进行代码的大数据搜索、匹配,并将匹配结果返回到所述作业管理节点;
所述评测管理节点还用于将所述运行的输出结果以及匹配结果返回到所述客户端。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国农业大学,未经中国农业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510740357.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种汽车电控动力转向教学实训设备
- 下一篇:高分子驱动器





