论文部分内容阅读
程序设计语言是实现计算机软件必不可少的载体。使用程序设计语言设计出高效、可靠、方便的软件是计算机软件发展必经之路,所以学习程序设计语言的重要性不言而喻。“程序设计语言”的教学工作,无论对计算机技术的发展,还是对计算机基本知识的普及来说都是十分重要的。
在程序设计语言的实验教学和考核过程中,编程题的自动阅卷技术是一项非常具有实用价值的应用,也是实现程序设计实验教学监控与评测智能化的一个关键技术。由于程序实现同一功能的代码具有多样化的特性,因此,标准答案的制定变得很复杂。并且,即使得到了标准答案,还需考虑到考生的答案未满足标准答案要求但也可能得分的情况。
本文以具有代表性的编程语言C++语言作为研究对象,提出了一种基于DOS重定向技术与正则表达式度量算法结合的智能评分方法,这种方法通过系统命令自动编译、执行、输入输出验证、得分点匹配及综合评判等步骤,对编程题进行智能评分。该方法中,评分模型各得分点相互独立,互不影响。这种模型采用人工阅卷的方式,首先考核考生程序是否正确,如不正确,则从考生程序中搜索得分点,从而得出匹配的信息,并以此作为评分的依据。同时,对考生源代码进行语法及词法的分析来统计语法错误的数量,将其也作为评分的依据。在对语法错误检查的过程中,本文还提出了一些有效的避免虚假错误判断的方法,提高了评分的准确度。
在学生实验及考试过程中,除了判断程序的对错之外,还应该尽量避免学生缺席及相互抄袭的现象。避免学生缺席最传统的方式是老师挨个点名,但这样会浪费大量的时间。为了解决这些问题,本文采用获取学生登录情况的方式来判断是否到场,是否提交试卷等。在考试过程中,出现抄袭现象可以通过系统记录,直接传送到服务器上,作为评分的依据。评分过程中检测到学生有抄袭记录,则最后得分为0。