关键词:
B/S模式
自动阅卷
编译原理
关键代码对比
摘要:
C语言是国际上广泛流行的计算机高级程序设计语言,在各类高等院校的计算机及相关专业中,C语言均被列为一门必修的基础课程。该课程考核中使用的传统手工阅卷已经逐渐走向计算机自动评阅。目前很多关于C语言的上机考试系统,客观题自动评分技术较为成熟。但对于程序设计题,主要采用的是结果比对评分法,即只依据程序运行结果与标准结果相符程度给出相应分数,并不查看考生的程序内容,显然不能反映考生的真实水平并且有失公允。而且大部分这样的考试系统,也是基于C/S模式的,存在时空受限等缺点,用于远程教育和教学辅助网站时受限。
针对上述问题,本人研究开发了一套基于B/S模式的C语言上机考试及自动评分系统。目的是,一方面实现C语言课程的完全无纸化考试及自动评阅,尤其是对程序设计题的自动评阅,减少阅卷工作量,提高评阅过程的公正性和准确性;另一方面,为C语言教学网站提供一套完备的自我测试系统,为C语言的教学和学生的自主学习提供更好支持。
在系统开发中,主要对考试系统中的自动组卷、考生考试及自动评分系统分别进行了研究和设计,重点是程序设计题的自动评分方法。在比较结果的评分方法基础上,设计了修复编译评分与关键代码对比相结合的方法,使评分结果更加公正、准确。对于只有少量错误的考生程序,应用编译原理中的词法和语法的分析方法,找出其中的错误并修改,使之能运行,然后根据结果信息及错误情况进行评分,解决了考生因编程中的小失误而导致大量丢分的问题。而对于错误严重、无输出结果或结果不正确的程序,则对程序进行关键代码对比,根据对比情况给出相应分数,使评分结果更加接近于人工阅卷。
在设计系统的过程中,我们十分重视用户的需求,注重软件的实用性。该系统设计成功后,经过大量测试和一定范围试用,初步证明该系统运行稳定,自动评分准确,评分标准统一,整体效果良好,具有很好的实用价值和应用前景。