C语言查重与自动评分算法研究

来源 :湘潭大学 | 被引量 : 0次 | 上传用户:wqc851109
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
伴随着线上教育平台[1]、无纸化测试系统的出现,计算机自动检测本文的优势已经日益明显。计算机自动测评不仅可以减少传统考试中巨大的财力和人力的消耗,还能避免人工阅卷过程中因为人的主观因素而造成的评分误差。目前,客观题的自动检测技术已经相当成熟,相对来说主观题的检测还在不断的研究中。本文主要研究的是C语言程序设计编程题的检测方法,从编程题的查重到自动评分技术。本文首先提出了基于LSC的C语言查重算法,分析学生一般的抄袭方式,针对性的对源代码做去噪处理。分析匹配的元素,在字符与语句之间经过测试后选取语句作为LCS算法的匹配单元,计算代码之间的相似度。对比阈值选取的静态和动态方式的精确度,最终以程序特征属性为度量值来确定阈值,对比求解出的相似度,筛选出属于抄袭的代码。实验结果表明,基于LCS的C语言程序查重算法是可行的,相对于其他文本相似度检测算法精确度得到有效的提高。接着对非抄袭代码进行自动评分处理,本文提出了基于流程控制匹配的自动评分算法。使用编译原理技术静态分析源代码语法结构。在不改变语义的情况下对源代码进行预处理,减少代码编写的多样性。结合系统依赖图的知识理论以及源代码程序结构,自定义控制流程结构与流程结构之间的依赖关系,得到控制流程结构图。划分图中用于匹配的单位元素,匹配模板程序与学生代码的单位元素,得到一组相似元素集合。最后根据题目总分完成对学生的自动评分。实验结果表明,基于控制流程匹配的自动评分算法是可行的,误差控制接近于人工误差。为提高程序运行效率,本文提出了基于最小子程序的C语言自动评分算法。引入结构化编程的思想,整个程序可看做是由多个不同功能的子程序组合而成的,这样能减少对自定义函数处理过程中可能出现的误差。首先给出子程序与结构树的定义,再对子程序做语法分析转换成结构树的中间表达形式,从结构树中提取不同粒度的子程序进行语义匹配,求得程序之间相似度,结合权值给学生代码评分。实验结果表明,执行效率有所提高,误差控制在可接受范围内。
其他文献
许多实际工程问题可以抽象为相应的函数优化问题。目前已经有很多启发式算法用于解决函数优化问题。与传统算法相比较,启发式算法的优点在于其有较好的全局搜索能力,避免过早收
网络拥塞控制技术已经走过了20多年的发展历程。它的每一次进步都使人们能更有效的利用网络链路的带宽。从RFC1122到TCP Tahoe再到现在应用最广泛的TCP Reno,每次改进都带来
近些年来,各类社会公共场所例如银行、监狱、电梯、车站、机场等均安装了各种各样的监控设备。但是传统的视频监控设备在使用的过程中,由于监控人员的精力有限无法保证时时刻
多媒体视频的加密面临两个巨大的挑战。第一,多媒体数据量通常非常大;第二,多媒体数据通常需要进行实时处理。分布式多媒体应用中,通常的数据安全方法是使用一般的安全密钥标准和
信息技术的发展,使计算机网络信息系统在很多领域得到了广泛应用。但是,计算机网络信息系统的安全性却令人担忧。近十年来,由于计算机系统遭到破坏所造成的损失逐年急剧上升,计算
从虚拟环境的角度出发,虚拟人(VirtualHuman或ComputerSynthesizedCharacters)是人在虚拟环境中的几何特性与行为特性的表示[Badler93],是多功能感知与情感计算的研究内容。以
不断增长的复杂性、多样性和相互关联性是当今信息系统的共同特征。传统的面向功能开发方法,已逐渐不适应越来越复杂和多变的需求,其成果不能得到很好的重用。而面向对象建模技
P2P即Peer to Peer,Deer在英语里有“(地位、能力等)同等者”、“同事”和“伙伴”等意义,因此,P2P也就可以称为对等联网。P2P引导网络计算模式从集中式向分布式偏移,也就是说网
网络技术已经渗入人们生活中的方方面面,不断地改变着大家的生活。与此同时,网络面临的安全问题也与日俱增。正是由于网络安全机制的不健全,蠕虫便有了可乘之机。蠕虫以其多样化
电子商务应用中最为广泛的一种形态是企业对企业(B2B)间的电子商务。将B2B应用的范围加以延伸,便形成所谓的企业供应链。供应链中的基本环节包含了供应商、制造商、批发商、零