当前位置: 首页 > 专利查询>吉林大学专利>正文

自动评测以大量数据处理为核心的计算机程序源码的方法技术

技术编号:4218500 阅读:254 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种计算机程序源码的自动评测方法,涉及计算机科学与技术领域,特别是涉及一种计算机辅助教学技术。该方法包括下列步骤:对于每个待编码问题,确定其所对应的问题描述、示例数据、以及参考标准源码;用户针对某一问题提交自己编写的程序源码,保存于某一约定位置;探取获得已提交的源码,若预分析结果正确则继续,否则评测为“错误”并结束;将示例数据分别结合待评测源码、参考标准源码运行得到两种结果,比较两种结果,如果两结果一致,则评测为“正确”否则评测为“错误”。该方法克服了现有方法难于评测那些以大量数据处理为核心的程序源码的缺点,能够有效的适用于以大量数据处理为核心的编程环境,尤其是数据库编程。

【技术实现步骤摘要】

本专利技术涉及计算机科学与
,特别是涉及一种计算机辅助教学技术,尤其是涉及到一种计算机程序源码的自动评测方法。
技术介绍
在计算机编程教学实践过程中,通常需要对程序编码的正确性进行判别。例如,编 程教学的过程中,教者通常需要对学者所编写的程序源码的正确性进行评测,从而教者可 以检查教学效果,学者可以检查学习效果。 计算机程序源码正确性判别的过程可以分为两种一种是人工完成的过程,简称 为人工评测;另一种是由计算机辅助自动完成的过程,简称为自动评测。人工评测过程中以 人为主体,对程序源码进行纯人工或者半人工的推理与演算进而得出结果。人工评测费时 费力,且容易出现差错。而自动评测则是由计算机作为主体,评测的过程几乎不需要人工的 参与,利用计算机快速、精确的特点,由计算机自动分析,进而得出结果。此种方法,迅速快 捷,正确性可以得到保障,是一种较为先进的方法。 现有一种自动评测计算机程序源码的实现方法事先同时准备好待测试的输入数 据与期望得到的输出数据,将输入数据结合待评测的计算机程序源码运行,得到输出数据, 然后将得到的输出数据与事先准备好的期望得到的输出数据进行对比,如果一致则认为待 评测的程序源码是正确的,否则认为是错误的。这种实现方法的缺点在于不适用于以大量 数据处理为核心的编程环境。当待评测计算机程序源码中存在大量数据的读取、保存操作 时,如果说事先准备好输入数据是必须的话,那么同时也准备好期望得到的输出数据则是 很不现实的。因为大量的数据存储需要占用大量的存储空间;另外数据的前期准备工作需 要人工来完成,而随着数据量的增大,前期准备的工作量也急剧增长。例如数据库SQL编 程。
技术实现思路
( — )要解决的技术问题 本专利技术的主要目的是为自动评测以大量数据处理为核心的计算机程序源码提供 一种实现方法。该方法克服了现有方法不适用于以大量数据处理为核心的编程环境的缺 点。( 二 )技术方案 为了实现上述目的,本专利技术提供了一种方法,主要包括以下步骤 步骤A :对于每一个待编码问题,确定其两个组成部分问题描述和问题所针对的数据,以及确定针对此问题的一种正确编码。我们称"问题所针对的数据"为"示例数据",称"针对此问题的一种正确编码"为"参考标准源码"。然后,将以上所确定的问题描述、示例数据、参考标准源码统一录入某一种计算机数据存储机制中。通常可以选择使用数据库存储。将每个问题的问题描述完全公开,将每个问题的示例数据部分公开,将每个问题的参考标准源码保密。 步骤B :为保存用户提交的待评测程序源码之目的,准备好一种计算机数据存储 机制。通常可以选用数据库。 上述步骤A与步骤B是预备性的,皆由人工完成。完成这两个步骤之后,用户(欲 提交待评测程序源码的用户)即可参看步骤A中所公开的问题描述和部分示例数据,并且 依据问题描述和部分示例数据做出自己的程序源码并提交。将用户提交的程序源码作为待 评测程序源码存储到步骤B中所确定的存储位置。 步骤C :从步骤B中所确定的待评测程序源码存储位置,探取、获得一个尚未被评 测过的待评测程序的源码。 步骤D :将步骤C中所取得的待评测程序源码结合步骤A中所确定的与其对应的 示例数据运行,得到运行结果,将此运行结果与将步骤A中所确定的与其对应的参考标准 源码程序结合步骤A中所确定的与其对应的示例数据运行得到的结果进行比较,得出比较 结果。如果得出的比较结果为"二者是一致的"那么认为,待评测程序源码是正确的,否则 认为其是错误的。 所述步骤C进一步包括以下几个步骤 CI :判断是否存在尚未被评测过的待评测程序源码;如果否,则重新进行本步骤; 否则转步骤C2 ; C2 :以某种既定规则,挑选、取得一个待评测程序的源码。 所述步骤D进一步包括以下几个步骤 Dl :对步骤C中所取得的待评测程序源码的文本进行预分析,判断是否含有系统 级操作关键字。如果是,则直接评定该程序源码是错误的,评测过程结束;否则转步骤D2 ; D2 :将步骤C中所取得的待评测程序源码结合步骤A中所确定的与其对应的示例 数据运行,得到运行结果; D3 :恢复示例数据到原始状态,以免除步骤D2可能对示例数据造成的损坏; D4 :将步骤A中所确定的与其对应的参考标准源码结合步骤A中所确定的与其对 应的示例数据运行,得到运行结果; D5 :恢复示例数据到原始状态,以免除步骤D4可能对示例数据造成的损坏;; D6 :将步骤D2中得到的运行结果与步骤D4中得到的运行结果,进行比较。如果得 出的比较结果为"二者是一致的"那么认为,待评测程序源码是正确的,否则认为其是错误 的。并且标记此次被评测的待评测程序源码已被评测过; D7:转向步骤C。按照本专利技术的另一个方面,步骤D6中的比较方法为对于两种待比较的运行结 果,按照相同的划分方法,均划分为一个或多个数据元素,则每个结果对应一个允许有重复 元素的数据元素集合,判断两个结果对应的集合是否相等,如果判断为是,则两种待比较的 运行结果是一致的,否则非一致。 (三)有益效果 本专利技术通过设计一种自动评测计算机程序源码的方法,能够有效的适用于以大量 数据处理为核心的编程环境,尤其是数据库SQL编程。附图说明 附图是本专利技术的流程 图。具体实施例方式如前所述,在自动评测之前,需要做好几点准备,其已在本文的
技术实现思路
部分中技 术方案部分的步骤A与步骤B中详细叙述。在做完充足的准备之后,下面结合附图和实施 例,对本专利技术的具体实施方式做进一步详细描述。 如附图所示,附图中的所有步骤都是由计算机系统按照本专利技术自动执行的。参照 附图,本专利技术包括下列步骤 步骤S1,从已经提交的待评测程序源码中探取一个尚未被评测过的待评测程序的 源码。 为此,系统中需要为用户提交的待评测程序源码提供一个存储的机制,通常可以 选用数据库存储,较为方便,易于管理。 步骤S2,判断是否成功探取得到。如果成功探取得到待评测程序源码,则继续进行 S3。否则返回步骤S1继续探取。 步骤S3,对已得到的待评测程序源码进行预分析,即分析待评程序源码的文本,如 果源码的文本中含有系统级操作关键字,则直接跳到步骤Sll。 步骤S4,将示例数据结合所取到的待评测程序源码运行,得到运行结果Rl。 为此,要先确定取得的待评测程序源码所对应的待编码问题,然后根据确定的待 编码问题再确定此待编码问题所对应的示例数据。然后,即可将示例数据结合所取到的待 评测程序源码运行。 步骤S5,为了示例数据的下次使用,考虑到在步骤S4中有可能会对示例数据进行了损坏,所以在此步骤中将对示例数据进行恢复。 步骤S6,取得参考标准源码。 为此,先确定取得的待评测程序源码所对应的待编码问题,然后根据确定的待编 码问题再确定此待编码问题所对应的参考标准源码。 步骤S7,将步骤S6中已经恢复完毕的示例数据结合参考标准源码运行,得到运行 结果R2。 步骤S8,为了示例数据的下次使用,考虑到在步骤S7中有可能会对示例数据进行 了损坏,所以在此步骤中将对示例数据进行恢复。 步骤S9,判定Rl与R2是否一致,如果判定结果为"是",那么转向步骤SIO,否则转 向步骤Sll。此步骤,具体的判定方法可采用以下方法对于两种待比较的运行结果,按照 相同的划分方法本文档来自技高网
...

【技术保护点】
一种自动评测以大量数据处理为核心的计算机程序源码的方法,其特征在于包括以下处理步骤:A.对于一个待编码问题,确定其两个组成部分:问题描述和问题所针对的数据,以及确定针对此问题的一种正确编码;B.取得针对步骤A中所述“待编码问题”的待评测程序源码;C.将步骤B中所取得的待评测程序源码结合步骤A中所确定的“问题所针对的数据”运行,得到运行结果,将此运行结果与将步骤A中所确定的“针对此问题的一种正确编码”结合步骤A中所确定的“问题所针对的数据”运行得到的结果进行比较,得出比较结果;D.如果步骤C中得出的“比较结果”是一致的则评定待评测的程序源码是正确的。

【技术特征摘要】

【专利技术属性】
技术研发人员:郭东伟于明光刘淼贾晨辉
申请(专利权)人:吉林大学
类型:发明
国别省市:82[中国|长春]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1