一种作业程序自动评分方法及系统的制作方法_2

文档序号:9471805阅读:来源:国知局
式选项,生成"头文件(iostream)"、"标准命名空 间"、"主函数头"、"主函数返回值"、"输出(cout)"运5个得分点分别对应的正则表达式。
[0053] 在前述作业程序自动评分方法的【具体实施方式】中,进一步地,每一个正则表达式 所对应的得分点对应一个分数权重。
[0054] 本发明实施例中,每一个正则表达式所对应的得分点对应一个分数权重,例如, "头文件(iostream)"、"标准命名空间"、"主函数头"、"主函数返回值"、"输出(cout)"运5 个得分点对应的分数权重分别为70、75、95、30、75。
[00巧]在前述作业程序自动评分方法的【具体实施方式】中,进一步地,所述根据所述正则 表达式匹配所述作业程序的得分点,输出所述作业程序的得分包括:
[0056] 若第一正则表达式匹配第一得分点,则赋予所述第一得分点相应的分数权重;
[0057] 若第一正则表达式不匹配第一得分点,则不赋予所述第一得分点相应的分数权 重;
[005引所有得分点均匹配完成后,将赋予的每个得分点的分数的总和与所有得分点对应 分数权重的总和的比值作为所述作业程序的得分。
[0059] 本发明实施例中,为了判断自动评分的准确性,先通过人工阅卷对作业程序 "wanggang_C++_20151106.CPP"进行分析、评分,发现该程序主函数没有返回值(即主函数 声明时声明了返回值类型为int但是程序中缺少"re化rn0;"语句)。运一错误在初学者 中很常见,虽然现代大多数编译器在编译时会自动地在生成的程序末尾加上"re化rn0;" 语句,但是为了程序的完整性和稳定性,运一语句仍应该人工写入程序文件中。因此,应该 予W-定程度的扣分。
[0060] 本发明实施例中,在自动评分时,通过已选择好的得分点"头文件(iostream)"、 "标准命名空间"、"主函数头"、"主函数返回值"、"输出(cout)"对应的正则表达式匹 配作业程序中相应的得分点。例如,针对"头文件(iostream)"项,则使用正则表达式 "\s*#include\s*<\s*iostream\s*>"进行匹配,若能成功匹配,则说明学生提交的作业程 序文本(代码)中含有类似"#include<iostream〉"的语句,实现了包含头文件的功能,应 该赋予该得分点相应的分数权重(即70)。而对于选项"主函数返回值",在使用正则表达 式"re化rn\s+0\s* 进行匹配时,发现没有匹配项,则该得分点不予赋分,也就是说,该得 分点得分为0。其余得分点判定过程类似。所有得分点均匹配完成后,自动计算所述作业程 序最终得分。
[0061] 本发明实施例,只有"主函数返回值"运项没有匹配成功,则总分为 (70巧5+95+0巧5)八70巧5+95+30+75)*100. 00=91. 30分,该分数与人工阅卷结果相当接 近,说明本发明实施例提供的作业程序自动评分结果科学合理,可W代替人工阅卷。运样, 通过为每一个正则表达式所对应的得分点设置分数权重,再根据设置的分数权重结合匹配 结果得到的最终评分,相较于现有技术中的基于编译器的自动评分系统,输出的评分分数 更接近人工阅卷的结果,且赋分方式更加人性化、精确化。
[0062] 实施例二
[0063] 本发明还提供一种作业程序自动评分系统的【具体实施方式】,由于本发明提供的作 业程序自动评分系统与前述作业程序自动评分方法的【具体实施方式】相对应,该作业程序自 动评分系统可W通过执行上述方法【具体实施方式】中的流程步骤来实现本发明的目的,因此 上述作业程序自动评分方法【具体实施方式】中的解释说明,也适用于本发明提供的作业程序 自动评分系统的【具体实施方式】,在本发明W下的【具体实施方式】中将不再寶述。
[0064] 参看图3所示,本发明实施例还提供一种作业程序自动评分系统,包括:
[0065] 得分点确定模块101,用于获取作业程序,确定所述作业程序的得分点;
[0066] 正则表达式生成模块102,用于生成所述得分点对应的正则表达式;
[0067] 评分模块103,用于根据所述正则表达式匹配所述作业程序的得分点,输出所述作 业程序的得分。
[0068] 本发明实施例所述的作业程序自动评分系统,通过获取作业程序,确定所述作业 程序的得分点;生成所述得分点对应的正则表达式;根据所述正则表达式匹配所述作业程 序的得分点,输出所述作业程序的得分。运样,通过正则表达式匹配作业程序中的得分点, 从作业程序的内部逻辑结构层面对作业程序进行自动评分,只要作业程序中的得分点能够 匹配对应的正则表达式即可,从而模拟人工阅卷的行为模式,解决了现有技术中,W编译器 的输出结果为评分依据,自动评分过程判定标准不科学、评分没有区分度等问题,且能够更 好地适应风格多变、标准不一的学生作业程序风格,增强判断的灵活性。
[0069] 在前述作业程序自动评分系统的【具体实施方式】中,进一步地,所述作业程序W预 设的文件格式命名并存储在指定的文件目录下。
[0070] 在前述作业程序自动评分系统的【具体实施方式】中,进一步地,所述正则表达式生 成模块102,具体用于加载正则表达式选项,生成所述得分点对应的正则表达式。
[0071] 在前述作业程序自动评分系统的【具体实施方式】中,进一步地,每一个正则表达式 所对应的得分点对应一个分数权重。
[0072] 在前述作业程序自动评分系统的【具体实施方式】中,进一步地,所述评分模块103 包括:
[0073] 匹配单元,用于若第一正则表达式匹配第一得分点,则赋予所述第一得分点相应 的分数权重;
[0074] 不匹配单元,用于若第一正则表达式不匹配第一得分点,则不赋予所述第一得分 点相应的分数权重;
[0075] 分数输出单元,用于所有得分点均匹配完成后,将赋予的每个得分点的分数的总 和与所有得分点对应分数权重的总和的比值作为所述作业程序的得分。
[0076] W上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员 来说,在不脱离本发明所述原理的前提下,还可W作出若干改进和润饰,运些改进和润饰也 应视为本发明的保护范围。
【主权项】
1. 一种作业程序自动评分方法,其特征在于,包括: 获取作业程序,确定所述作业程序的得分点; 生成所述得分点对应的正则表达式; 根据所述正则表达式匹配所述作业程序的得分点,输出所述作业程序的得分。2. 根据权利要求1所述的作业程序自动评分方法,其特征在于,所述作业程序以预设 的文件格式命名并存储在指定的文件目录下。3. 根据权利要求1所述的作业程序自动评分方法,其特征在于,所述生成所述得分点 对应的正则表达式包括: 加载正则表达式选项,生成所述得分点对应的正则表达式。4. 根据权利要求1所述的作业程序自动评分方法,其特征在于,每一个正则表达式所 对应的得分点对应一个分数权重。5. 根据权利要求4所述的作业程序自动评分方法,其特征在于,所述根据所述正则表 达式匹配所述作业程序的得分点,输出所述作业程序的得分包括: 若第一正则表达式匹配第一得分点,则赋予所述第一得分点相应的分数权重; 若第一正则表达式不匹配第一得分点,则不赋予所述第一得分点相应的分数权重; 所有得分点均匹配完成后,将赋予的每个得分点的分数的总和与所有得分点对应分数 权重的总和的比值作为所述作业程序的得分。6. -种作业程序自动评分系统,其特征在于,包括: 得分点确定模块,用于获取作业程序,确定所述作业程序的得分点; 正则表达式生成模块,用于生成所述得分点对应的正则表达式; 评分模块,用于根据所述正则表达式匹配所述作业程序的得分点,输出所述作业程序 的得分。7. 根据权利要求6所述的作业程序自动评分系统,其特征在于,所述作业程序以预设 的文件格式命名并存储在指定的文件目录下。8. 根据权利要求6所述的作业程序自动评分系统,其特征在于,所述正则表达式生成 模块,具体用于加载正则表达式选项,生成所述得分点对应的正则表达式。9. 根据权利要求6所述的作业程序自动评分系统,其特征在于,每一个正则表达式所 对应的得分点对应一个分数权重。10. 根据权利要求9所述的作业程序自动评分系统,其特征在于,所述评分模块包括: 匹配单元,用于若第一正则表达式匹配第一得分点,则赋予所述第一得分点相应的分 数权重; 不匹配单元,用于若第一正则表达式不匹配第一得分点,则不赋予所述第一得分点相 应的分数权重; 分数输出单元,用于所有得分点均匹配完成后,将赋予的每个得分点的分数的总和与 所有得分点对应分数权重的总和的比值作为所述作业程序的得分。
【专利摘要】本发明提供一种作业程序自动评分方法及系统,能够根据作业程序中的内部逻辑结构进行自动评分。所述方法包括:获取作业程序,确定所述作业程序的得分点;生成所述得分点对应的正则表达式;根据所述正则表达式匹配所述作业程序的得分点,输出所述作业程序的得分。所述系统包括:得分点确定模块,用于获取作业程序,确定所述作业程序的得分点;正则表达式生成模块,用于生成所述得分点对应的正则表达式;评分模块,用于根据所述正则表达式匹配所述作业程序的得分点,输出所述作业程序的得分。本发明适用于计算机技术领域。
【IPC分类】G06F19/00
【公开号】CN105224818
【申请号】CN201510759755
【发明人】汪红兵, 吴元, 高丽园
【申请人】北京科技大学
【公开日】2016年1月6日
【申请日】2015年11月10日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1