当前位置:问答库>论文摘要

题目:程序设计类课程源代码在线评测系统的设计与实现

关键词:程序自动评测;分布式部署;在线评测;代码剽窃检测;辅助教学

  摘要

目前,在国内各高校程序设计类课程的教学中大都以手工方式对源代码进行评测。手工评测方式存在许多显而易见的弊端,如耗时耗力;评测结果无法及时反馈给学生,且评测结果可靠性较差;评测结果往往包含较多的主观因素等等。这些弊端的存在迫切要求开发出一套能够对源代码进行自动评测的系统,新设计的评测系统必须具有自动测试的特性,即,通过自动测试程序,控制被测源代码的行为,模拟手工测试的步骤,在完全不需要人工干预的情况下完成对源代码的测试。本文在参考兄弟院校在线评测系统的基础上,根据本校实际需求,设计并实现了一套源代码在线评测系统。在该系统中,用户提交源代码后,系统即自动开始对其进行编译、运行、输入测试用例、比对测试结果、结果写回数据库、在网页中显示最终评测结果等一系列操作,整个过程完全自动进行,是一种较为高效的评测方法。本系统仅支持能以命令行方式编译为可执行文件的编程语言,如C、C++、Java、Pascal等。为了对用户提交的源代码进行编译,需首先在服务器上配置相应的编译环境,目前系统中对上述4种编程语言分别采用GCC、G++、JDK 1.5和Free Pascal进行编译。作为一个教学辅助平台,本系统除了能够自动完成源代码评测之外,还提供了较为丰富的教学辅助功能,如细粒度的用户权限管理,题目和课程支持实时编辑,强大的数据统计能力等等。同时本系统还支持代码剽窃检测,帮助教师进行检查确认。在优化系统性能方面,本文也做出了深入的探索。比如,在服务器端,针对连接性能和连接数量进行了优化,提高了服务器的响应能力;评测机的部署采用分布式机制,通过动态负载均衡技术,将评测任务动态分配到各个评测机上,优化了计算资源的使用,提高了系统应对突发的大量评测任务的能力。