Java编程题自动评分技术的研究与实现(二)

本文探讨了Java编程题自动评分技术,通过Java反射机制和编译错误处理,实现了对考生程序的功能性测试评分和知识要点匹配评分方法。针对无法通过编译的程序进行查错和局部纠错,并结合正则表达式处理语义多样化问题。系统还包含了成绩查询和统计等功能,以减轻教师工作负担。
摘要由CSDN通过智能技术生成
1.4 课题的研究思路
    本文以 Java 编程题为例,结合人工评阅的方法,对不同的考生程序采用不同的评分方法。考生的程序大致可分为两种情况: 可以通过编译和无法通过编译。
    第一种情况,对于可以通过编译的考生程序,利用 Java 反射机制提取考生程序的相关信息进行黑盒测试。反射机制可以轻松提取考生程序中与输入有关的变量或对象属性,系统根据变量或对象属性的数据类型给定输入值,然后调用具有返回值的方法来验证该方法的输出结果是否与预期的输出值一致,给出测试分,再结合语法分、结果分,计算出总得分。该评分方法简称为“功能性测试评分方法”。
    第二种情况,对于无法通过编译的考生程序,利用本地 jdk 包中自带的编译器对考生程序进行编译,结合使用错误流获取编译的错误信息,然后使用Scanner 类来分解错误信息并进行局部错误,每纠正一个错误都要重新编译以消除虚假错误。对于纠错后能顺利通过编译的考生程序,采用“功能性测试评分方法”计算总得分。对于无法纠错的考生程序,则采取放弃纠错,根据错误种类适当给出语法分,再结合知识要点匹配情况计算总得分,称该评分方法为“知识要点匹配评分方法”。
    1.5 研究目标
    本文以设计出能对 Java程序进行自动评分,并且评分过程能够较合理、灵4活及评分结果与人工评分大致相符为目标。避免因极小错误或标准答案中没有给出多种可能的参考答案而导致失分严重的情况的发生。对于有极小错误的考生程序,应该采取查错并纠正错误,如果运行正确,适当扣点语法分,考生仍然
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值