自动测试绘图程序的方法、装置以及系统与流程

文档序号:15445228发布日期:2018-09-14 23:16阅读:359来源:国知局

本申请涉及程序测试平台技术领域,特别是涉及一种自动测试绘图程序的方法、装置以及系统。



背景技术:

编程教学的普及面越来越大,而编程教育的在线学习、自主学习更需要一种非教师参与的自动测评系统。目前,“onlinejudge”可对传统的编程题结果进行测评,但是使用了图形化教学模式的logo、scratch、goc等语言,与目前传统教学的c/c++、java以及python等不一样,程序的运行结果一般为图形。

在实现过程中,发明人发现传统技术中至少存在如下问题:传统的程序测评系统无法自动对绘图类的程序运行结果进行测评,需教师对该类程序进行人工判断,工作量大,且不利于学生自主学习,教学效率低。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种自动化程度高且测评准确的一种自动测试绘图程序的方法、装置以及系统。

一种自动测试绘图程序的方法,包括以下步骤:

获取待测试程序以及待测试程序对应的标准程序;

根据标准程序中的命令在图形容器的第一图层上绘制标准图形;

根据待测试程序中的命令在图形容器的第二图层上绘制待测试图形;

测评标准图形与待测试图形的图形相似度,并根据图形相似度对待测试程序进行最终判别。

在其中一个实施例中,还包括图形容器为在htlm5创建的canvas画布。

在其中一个实施例中,测评标准图形与待测试图形的图形相似度,并根据图形相似度对待测试程序进行最终判别的步骤之前,还包括步骤:

根据标准图形的图形尺寸,沿第一预设几何图形的边长方向在第一图层中切割出包含标准图形的第一几何区域;

根据待测试图形的图形尺寸,沿第二预设几何图形的边长方向在第二图层中切割出包含待测试图形的第二几何区域。

在其中一个实施例中,测评标准图形与待测试图形的图形相似度的步骤包括:

在标准图形的像素点总个数与待测试图形的像素点总个数的差值在预设范围内时,获取第二几何区域中与标准图形的像素点坐标相同的各第一待匹配像素点;

在第一待匹配像素点与对应的标准图形的像素点的颜色不同时,获取以第一待匹配像素点为中心、第一预设半径形成的区域圆内;

选取出圆内任一像素点与对应的标准图形的像素点的颜色相同的各区域圆;

记录对应选取出的区域圆的第一待匹配像素点的第一总数,并根据记录的第一总数得到图形相似度。

在其中一个实施例中,测评标准图形与待测试图形的图形相似度的步骤还包括:

在标准图形的像素点总个数与待测试图形的像素点总个数的差值在预设范围内时,获取第一几何区域中与待测试图形的像素点坐标相同的各第二待匹配像素点;

在第二待匹配像素点与对应的待测试图形的像素点的颜色不相同时,获取以第二待匹配像素点为中心、第二预设半径形成的区域圆内的像素点;

选取出圆内任一像素点与对应的待测试图形的像素点颜色相同的各待测试图形的像素点;

记录选取出的各待测试图形的像素点的第二总数,并根据记录的第二总数得到图形相似度。

在其中一个实施例中,测试标准图形与待测试图形的图形相似度,并根据图形相似度对待测试程序进行判别的步骤包括:

在图形相似度处于预设相似度范围内时,确定标准图形与待测试图形相似,并通过对待测试程序的最终判别。

在其中一个实施例中,获取待测试程序以及待测试程序对应的标准程序的步骤包括:

根据待测试程序,获取待测试程序对应的测试数据,从测试数据中提取标准程序;测试数据包括测评时限、题目分值以及题目信息。

一种自动测试绘图程序的装置,包括:

获取模块,用于获取待测试程序以及待测试程序对应的标准程序;

第一绘制模块,用于根据标准程序中的命令在图形容器的第一图层上绘制标准图形;

第二绘制模块,用于根据待测试程序中的命令在图形容器的第二图层上绘制待测试图形;

测评模块,用于测评标准图形与待测试图形的图形相似度,并根据图形相似度对待测试程序进行最终评判。

一种自动测试绘图程序的系统,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现自动测试绘图程序的方法中的各步骤。

一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现自动测试绘图程序的方法中的各步骤。

上述技术方案中的一个技术方案具有如下优点和有益效果:

通过获取待测试程序以及对应的标准程序,利用图形容器在第一图层绘制标准图形,在第二图层绘制待测试图形,进而可以将标准图形与待测试图形的图形相似度进行测评,根据测评后的图形相似度对待测试程序进行最终判别。本发明各实施例能够实现在线自动判别运行结果为绘图类的程序正确性,效率高,可适用于大规模的绘图类编程测试、比赛等。

附图说明

图1为一个实施例中自动测试绘图程序的方法流程示意图;

图2为一个实施例中自动测试绘图程序的方法切割图形的流程示意图;

图3为一个实施例中测评标准图形与待测试图形相似度步骤的第一流程示意图;

图4为一个实施例中测评标准图形与待测试图形相似度步骤的第二流程示意图;

图5为另一个实施例中对待测试程序评分的流程示意图;

图6为另一个实施例中自动测试绘图程序的方法的具体流程示意图;

图7为一个实施例中测评标准图形与待测试图形相似度的具体流程示意图;

图8为一个实施例中某一标准程序运行得到的标准图形示意图;

图9为一个实施例中某一待测试程序运行得到的待测试图形示意图;

图10为一个实施例中自动测试绘图程序的装置结构框图;

图11为一个实施例中自动测试绘图程序的系统结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的自动测评程序的方法,可以应用于大规模的编程绘图类的教学测试、比赛等场景,尤其是采用logo、scratch、goc等语言的图形化编程教学模式的教学场景。其中,本发明能够运行于安装有相应操作系统的计算机或者移动终端,例如windows操作系统的计算机,macos操作系统的计算机,安卓操作系统的移动终端,并将信息反馈至计算机或者移动终端的显示界面。本发明各实施例中的自动测试绘图程序的方法还可在后台服务器上运行完成,再将测试判别结果反馈到前端的web页面或者app页面。尤其在编程教学中,教师判断学生写的程序是否正确是非常重要的环节,应用本发明能够实现一种编程绘图类的非教师参与的在线学习、自主学习环境,学生将自己编写的程序上传至例如后台服务器的测试数据库或者本地计算机,后台服务器或者本地计算机根据学生的程序生成待测试图形,根据对应的标准程序生成标准图形,通过待测试图形与标准图形的比对,判别学生的程序正确与否,以及还可以对学生的程序进行评分。

在一个实施例中,如图1所示,提供了一种自动测试绘图程序的方法,包括以下步骤:

步骤s120:获取待测试程序以及待测试程序对应的标准程序。

具体而言,待测试程序以及对应的标准程序可以为logo、scratch或者goc等绘图类编程语言编写的程序,本发明的待测试程序和标准程序的运行结果可以为图形类。其中,可以但不局限于通过后台服务器或者本地计算机的方式获取待测试程序以及对应的标准程序。

步骤s140:根据标准程序中的命令在图形容器的第一图层上绘制标准图形。

具体而言,图形容器为用于绘制图形的组件,且可以添加其他组件形成复合组件。第一图层可为在图形容器中创建的不可见图层,在标准程序运行时,可根据命令将为图形类的运行结果绘制在该第一图层上。

本发明的自动测试绘图程序的方法,可根据标准程序中的命令将运行结果为图形类的标准程序对应的图形绘制在图形容器的第一图层上,进而能够将图形类的程序运行结果预存,或者在测试过程中快速调用对应的标准图形,实现在线编程绘图类的程序测评。

步骤s160:根据待测试程序中的命令在图形容器的第二图层上绘制待测试图形。

具体而言,第二图层可为在图形容器中创建的可见图层,在待测试程序运行时,可将待测试程序为图形类的运行结果绘制在该第二图层上。

本发明的自动测试绘图程序的方法,可根据待测试程序中的命令将运行结果为图形类的待测试程序对应图形绘制在图形容器的第二图层上,能够在测评过程中,快速调用待测试程序的待测试图形,进而能够将待测试图形与标准图形比对,实现在线编程绘图类的程序测评。

步骤s180:测评标准图形与待测试图形的图形相似度,并根据图形相似度对待测试程序进行最终判别。

具体而言,标准图形取决于对应标准程序的运行,待测试图形取决于对应的待测试程序的运行,通过标准图形与待测试图形的比对,能够测评到两者的图形相似度,由此,可通过图形相似度对待测试程序进行判别,判断识别待测试程序的正确与否。

本发明通过获取待测试程序以及对应的标准程序,利用图形容器在第一图层绘制标准图形,在第二图层绘制待测试图形,进而可以将标准图形与待测试图形进行测评,并判别待测试程序。本发明的自动测试绘图程序的方法能够实现在线自动判别运行结果为绘图类的程序正确性,评测准确,效率高,有助于提升学生的自主学习能力以及教学质量,同时可适用于大规模的绘图类编程测试、比赛等。

在一个具体的实施例中,图形容器为在htlm5创建的canvas画布。

canvas是html5的一个组件,可以用javascrip在其上绘制各种图表等。通过创建canvas可得到一定尺寸的矩形框,在这个范围内能创建多个不同的canvas层绘制标准图形以及待测试图形。

本发明可在html5创建canvas画布,能够实现利用后台服务器实现前端web网页的在线程序测评,可将标准图形和待测试图形进行绘制,测评效率高,速度快。

如图2所示,在一个具体的实施例中,测评标准图形与待测试图形的图形相似度,并根据图形相似度对待测试程序进行最终判别的步骤之前,还包括步骤:

步骤s210:根据标准图形的图形尺寸,沿第一预设几何图形的边长方向在第一图层中切割出包含标准图形的第一几何区域。

具体而言,可获取各标准图形的像素点分别对应的坐标,在第一图层的坐标轴上从各坐标中选取预设方位上的最大值或者最小值的坐标,根据选取出的坐标确定标准图形的图形尺寸。具体的,可在第一图层的平面直角坐标系上选取标准图形上方位最大值的坐标,选取下方位最小值的坐标,选取左方位最小值的坐标,右方位最大值的坐标。由此,根据上方位最大值的坐标的纵坐标可得到该点到横轴的距离,根据下方位最小值的坐标的纵坐标,可得到该点到横轴的距离,根据左方位最小值的坐标的横坐标可得到该点到纵轴的距离,根据右方位最大值的坐标的横坐标可得到该点到纵轴的距离,进一步可以计算得到标准图形的图形尺寸。

进一步地,第一预设几何图形可以为矩形、圆形、三角形等几何图形。第一几何区域可以为矩形区域、圆形区域、三角形区域等几何区域。沿第一预设几何图形的边长方向切割出包含标准图形的第一几何区域,能够生成包含标准图形的新的绘图图像。

步骤s220:根据待测试图形的图形尺寸,沿第二预设几何图形的边长方向在第二图层中切割出包含待测试图形的第二几何区域。

具体而言,可以获取各待测试图形的像素点分别对应的坐标,在第二图层的坐标轴上从各坐标中选取预设方位上的最大值或者最小值,根据选取出的坐标确定待测试图形的图形尺寸。具体的,可在第二图层的平面直角坐标系上选取待测试图形的上方位的最大值的坐标,选取下方位最小值的坐标,选取左方位最小值的坐标,右方位最大值的坐标。由此,根据上方位最大值的坐标的纵坐标可得到该点到横轴的距离,根据下方位最小值的坐标的纵坐标可得到该点到横轴的距离,根据左方位最小值的坐标的横坐标可得到该点到纵轴的距离,根据右方位最大值的坐标的横坐标可得到该点到纵轴的距离,进一步可以计算得到待测试图形的图形尺寸。

进一步地,第二预设图形可以为矩形、圆形、三角形等几何图形。第二几何区域可以为矩形区域、圆形区域、三角形区域等几何区域。沿第二预设几何图形的边长方向切割出包含待测试图形的第二几何区域,能够生成包含待测试图形的新的绘图图像。

本发明可以根据标准图形的尺寸大小在第一图层中准确地切割出包含标准图形的第一几何区域,根据待测试图形的大小在第二图层中准确地切割出包含待测试图形的第二几何区域,进而能够生成新的包含标准图形的绘图图像以及新的包含待测试图形的绘图图像。进一步地可以保证第一几何区域中的像素点与第二几何区域中的像素点的相对坐标相同,在将标准图形与待测试图形比对测评时有效提高比对的精度,准确获取图形相似度,提升对待测试程序判别的效率。

如图3所示,在一个具体的实施例中,测评标准图形与待测试图形的图形相似度的步骤包括:

步骤s310:在标准图形的像素点总个数与待测试图形的像素点总个数的差值在预设范围内时,获取第二几何区域中与标准图形的像素点坐标相同的各第一待匹配像素点。

通过标准图形的像素点的总个数与待测试图形的像素点的总个数进行对比,可初步判断两者的图形相似度。若两者的像素点的总数相差过大,可判断标准图形与待测试图形不相似,即表明待测试程序有误,可结束测评。若两者的像素点在预设范围内,表明待测试图形在允许的误差范围内,可进行下一步测评。由此,可提高测评效率。

进一步地,以标准图形为参照,判断标准图形包含的像素点在第二几何区域上是否相应存在,可在第二几何区域中获取与标准图形的像素点坐标相同的各第一待匹配像素点。由此,可将标准图形的像素点与对应的第一待匹配像素点一一比对,从而可以判断在第二几何区域中是否存在与标准图形相似或者相同的图形。

步骤s320:在第一待匹配像素点与对应的标准图形的像素点的颜色不同时,获取以第一待匹配像素点为中心、第一预设半径形成的区域圆。

具体而言,可以通过识别第一待匹配像素点的颜色,以及对应的标准图形的像素点的颜色,在第一待匹配像素点的颜色与对应的标准图形的像素点的颜色不相同时,则表示匹配不成功。为了防止在绘图时产生的偏差以及误判,以该第一待匹配像素点中心,第一预设半径为距离形成区域圆,进而可以将该区域圆内的像素点与对应的标准图形的像素点的颜色进行对比,提升测试的灵活性和容错能力。在第一待匹配像素点与对应的标准图形的像素点的颜色相同时,则匹配成功,可继续匹配下一第一待匹配像素点,提高测试效率。

步骤s330:选取出圆内任一像素点与对应的标准图形的像素点的颜色相同的各区域圆。

具体而言,根据上述步骤s320,区域圆、第一待匹配像素点以及标准图形的像素点三者是一一对应的关系。在圆内任一像素点与对应的标准图形的像素点颜色相同时,表示该待测试图形在规定的误差范围内。由此,在区域圆内存在任一像素点与对应的标准图形的像素点颜色相同时,将该区域圆选取出,以提升测试的灵活性。

步骤s340:记录选取出的区域圆对应的第一待匹配像素点的第一总数,并根据记录的第一总数得到图形相似度。

具体而言,第一总数的大小表示第二几何区域中有多少第一待匹配像素点与第一几何区域中对应的标准图形的像素点颜色不相同,即待测试图形与标准图形的图形相似度的高低。

本发明的自动测试绘图程序的方法,能够以标准图形的像素点的坐标作为参照,在第二几何区域中获取与标准图形的像素点坐标相同的各第一待匹配像素点,通过匹配测试第一待匹配像素点与对应的标准图形的像素点的颜色,可判断在第二几何区域中待测试图形的正确与否。进一步地,利用在第二几何区域形成的区域圆,获取区域内的像素点,并对区域圆内的像素点与对应的标准图形的像素点的颜色进行匹配测试,可减少误判,通过记录任一像素点与对应的标准图形的像素点颜色相同的对应区域圆的第一待匹配像素点的第一总数,进而可以根据第一总数准确得到图形相似度。

进一步地,在区域圆内的所有像素点与对应的标准图形的像素点的颜色都不相同时,测试失败,即表明该待测试图形不在误差范围内,结束测试,从而提高测试效率。

如图4所示,在一个具体的实施例中,测评标准图形与待测试图形的图形相似度的步骤还包括:

步骤s410:在标准图形的像素点总个数与待测试图形的像素点总个数的差值在预设范围内时,获取第一几何区域中与待测试图形的像素点坐标相同的各第二待匹配像素点。

具体而言,通过待测试图形的像素点的总个数与标准图形的像素点的总个数进行对比,可初步判断两者的图形相似度。若两者的像素点的总数相差过大,可判断待测试图形与标准图形不相似,即表明待测试程序有误,可结束测评。若两者的像素点在预设范围内,表明待测试图形在允许的误差范围内,可进行下一步测评。由此,可提高测试效率。

进一步地,以待测试图形为参照,判断待测试图形的像素点在第一几何区域上是否相应存在,可在第一几何区域中获取与待测试图形的像素点坐标相同的各第二待匹配像素点。由此,可将待测试图形的像素点与对应的第一待匹配像素点一一比对,从而可以判断在第一几何区域中是否存在与待测试图形相似或者相同的图形。

步骤s420:在第二待匹配像素点与对应的待测试图形的像素点的颜色不相同时,获取以第二待匹配像素点为中心、第二预设半径形成的区域圆内。

具体而言,可以通过识别第二待匹配像素点颜色,以及对应的待测试图形的像素点的颜色,在第二待匹配像素点的颜色与对应的待测试图形的像素点的颜色不相同时,则表示匹配不成功。为了防止在绘图时产生的偏差以及误判,以该第二待匹配像素点为中心,第二预设半径为距离形成区域圆,进而可以将该区域圆内的像素点与对应的待测试图形的像素点的颜色进行对比,提升测试的灵活性和容错能力。在第二待匹配像素点与对应的待测评像素点的颜色相同时,匹配成功,可继续匹配下一第二待匹配像素点,提高测试效率。

步骤s430:选取出圆内任一像素点与对应的待测试图形的像素点颜色相同的各待测试图形的像素点。

具体而言,根据上述步骤s420,区域圆、第二待匹配像素点以及待测试图形的像素点三者是一一对应的关系。在任一像素点与对应的待测试图形的像素点颜色相同时,表示待测试图形在规定的误差范围内。由此,在区域圆内存在任一像素点与对应的待测试图形的像素点颜色相同时,将该对应的待测试图形的像素点选取出,以提升测试的灵活性。

步骤s440:记录选取出的待测试图形的像素点的第二总数,并根据记录的第二总数得到图形相似度待测试图形待测试图形。

具体而言,第二总数的大小表示待测试图形中有多少与第一几何区域中的标准图形的像素点颜色不相同的待测试图形的像素点,即待测试图形与标准图形的图形相似度的高低。

本发明的自动测试绘图程序的方法,能够以待测试图形的像素点的坐标作为参照,在第一几何区域中获取与待测试图形的像素点坐标相同的各第二待匹配像素点,通过匹配测试第二待匹配像素点与对应的待匹配图形的像素点的颜色,可判断在第二几何区域中待测试图形的正确与否。进一步地,利用在第一几何区域形成的区域圆,获取区域圆内的像素点,并对区域圆内的像素点与对应的待测试图形的像素点的颜色进行匹配测试,可减少误判,通过记录任一像素点与对应的待测试图形的像素点颜色相同的待测试图形的像素点的第二总数,进而可根据第二准确得到图形相似度。

进一步地,在区域圆内的所有像素点与对应的待测试图形的像素单的颜色都不相同时,测试失败,即表明该待测试图形不在误差范围内,结束测试,从而提高测试效率。

进一步地,在第二几何区域中根据待测试程序运行生成的待测试图形,与第一几何区域的标准图形对比,实际上第二几何区域的待测试图形中除了与标准图形的像素点坐标相同的各第一待匹配像素点外,可能还存在额外的待测试图形的像素点,即根据待测试程序生成的待测试图形相对于标准程序生成的标准图形而言,待测试图形可能比标准图形多出某些部分图形,或者某部分图形出现位置偏差。因此,本发明可以标准图形为参照,将待测试图形上与各标准图形的像素点坐标相同的待测试图形的像素点逐一测评,同时可以转换以待测试图形为参照,将标准图形上与各待测试图形的像素点坐标相同的标准图形的像素点逐一测评,进而能够通过两次轮流测试,降低误判率,提高对待测试程序判别的准确性。

在一个具体的实施例中,测评标准图形与待测试图形的图形相似度,并根据图形相似度对待测试程序进行最终判别的步骤包括:

在图形相似度处于预设相似度范围内时,确定标准图形与待测试图形相似,并通过对待测试程序的最终判别。

具体而言,待测试图形与标准图形的图形相似度高低,取决于待测试程序中对相关命令或者指令调用以及编写准确与否。由于在根据待测试程序绘制待测试图形过程中,可能存在偏差,造成待测试图形与标准图形不完全一致。因此,在图形相似度处于预设相似度范围内时,可确定标准图形与待测试图形相似,即对待测试图形的判别通过。

本发明能够有效保证对待测试程序判别的准确性,使得编程绘图类的程序能够在线测评,满足编程绘图类教学的教学需求。

在一个具体的实施例中,获取待测试程序以及待测试程序对应的标准程序的步骤包括:

根据待测试程序,获取待测试程序对应的测试数据,从测试数据中提取标准程序;测试数据包括测评时限、题目分值以及题目信息。

本发明根据待测试程序获取待测程序对应的测试数据,能够通过多种测评依据,有效确保对待测试程序判别的准确性,以及测评效率。

如图5所示,作为一优选的实施例,测评标准图形与待测试图形的图形相似度,并根据图形相似度对待测试程序进行最终判别的步骤之后,还包括步骤:

步骤s510:获取第一总数与标准图形的像素点总个数的比值;

步骤s520:获取第二总数与标准图形的像素点总个数的比值;

步骤s530:获取第一总数和第二的总数之和、与标准图形的像素点总个数的比值;

步骤s540:在测评时限内,根据比值、题目分值以及题目信息,得到待测试程序的测评分值。

本发明的自动测试绘图程序的方法,可通过记录的第一总数或者第二总数,或者第一总数和第二总数之和,得到与标准图形的像素点总个数的比值,进而可获得与标准图形的像素点匹配测试失败的待测试图形的像素点占标准图形的像素点总个数的比例。进一步地,待测试程序可根据题目信息编写而得,对应的题目信息有对应的题目分值,本发明能够保证在有效的测试时限内,根据比值,依照题目分值以及题目信息,对对应的待测试程序计算分值。本发明可实现对编程绘图类的待测试程序进行判别,判断对错与否,同时可对待测试程序进行分值计算,可有效快速处理大量的数据,进一步优化在线程序测评平台,满足编程绘图类的教学需求。

作为一优选的实施例,可通过如下方式对待测试程序进行评分:

r=匹配失败点个数/总点个数;

if(r>0.1)得分=0;

else得分=(0.1-r)*1000%*本测试点分值。

其中,r表示第一总数或者第二总数,或者第一总数和第二总数之和,与标准图形的像素点总个数的比值。由此,通过该算法使得本发明对待测试程序的评分更加精准。

如图6所示,作为一优选的实施例,以对某一学生的待测试程序进行测评且评分为例进行说明,本实施例的自动测试绘图程序的方法可在自动测试软件中运行,步骤如下:

步骤610:获取测评任务请求并根据测评任务请求中的题目号,从服务器取得对应的测试数据,其中测试数据可以但不局限于包括题目信息、标准程序、测试时限、题目分值等。

步骤s620:从测试数据中提取对应的标准程序。

步骤s630:在后台运行标准程序,并在图形容器一不可见的图层a上绘制标准图形。

步骤s640:从服务器取得某一学生的待测试程序,或者从软件的编辑窗口输入待测试程序。

步骤s650:在软件的工具窗口中调用运行功能,运行待测试程序,在图形容器的可见图层b上绘制待测试图形。

步骤s660:在软件的工具窗口中调用“提交/判断”功能,进入判断(judge)模块,对图层a和图层b进行图形相似度判断测评,对待测试程序进行判别。

步骤s670:根据图形相似度和题目分值,对待测试程序进行评分。

本发明能够实现在线自动测评运行结果为绘图类的程序,判别准确,效率高,有助于提升学生的自主学习能力以及教学质量,同时可适用于大规模的绘图类编程测试、比赛等。

如图7所示,结合图8和图9,作为一优选的实施例,以某一学生的待测试程序为例,对测评标准图形与待测试图形相似度进一步说明,其中,图8和图9是goc程序运行生成的图形,步骤如下:

步骤s710:在图层a上遍历如图8所示的标准图形的像素点,根据标准图形的像素点的坐标中的上、下、左、右的最大值或者最小值,沿着矩形的边长方向切割出包含图8的标准图形的矩形区域a。同理,在图层b中切割出包含图9所示的待测试图形的矩形区域b。

步骤s720:统计标准图形的像素点总个数以及待测试图形的像素点的总个数,得到两者的差值,在差值大于预设个数时,进入步骤s730,否则进入步骤s740。

步骤s730:返回,该学生的待测试图形与标准图形不相似,待测试程序程序为0分。

步骤s740:在矩形区域a中枚举标准图形的像素点pa的坐标。

步骤s750:判断标准图形的像素点pa是否为标准图形的最后一个像素点,是则进入步骤s820,否则进入步骤s760。

步骤s760:在矩形区域b中枚举与标准图形的像素点坐标相同的对应的第一待匹配像素点pb。

步骤s770:判断第一待匹配像素点pb是否与对应的标准图形的像素点pa的颜色是否相同,若相同进入步骤s740继续枚举下一个标准图形的像素点pa,否则进入步骤s780。

步骤s780:在矩形区域b中获取第一待匹配像素点pb周围(预设扫描半径)的像素点。

s790:判断第一待匹像素点pb周围是否有与标准图形的像素点pa颜色相同的像素点,若有则进入步骤s800,否则进入步骤s830。

步骤s800:累加第一待匹配像素点pb,记录第一待匹配像素点pb的总数ca。

步骤s810:判断总数ca是否大于预设总值,若大于,则进入步骤s830,否则进入步骤s740。

步骤s820:统计最终的总数ca,进入步骤s830。

步骤s830:数据统计。

以上步骤是以图8的标准图形作为参照对待测试程序进行判别,按照上述步骤原理交换成以图9作为参照对待测试程序进行判别,其中,总数ca记录的是矩形区域b中与矩形区域a的像素点匹配失败的图9的待测试图形的像素点。

在本实施例中,将图8的标准图形与图9的待测试图形互换作为参照测评两者的相似度,进而能够匹配识别出如图9相对于图8的标准图形多出的图形部分,根据记录该多出的图形部分的像素点总数,准确得到图形相似度。

应该理解的是,虽然图1-7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-7中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

如图10所示,本发明提供了一种自动测试绘图程序的装置,包括:

获取模块10,用于获取待测试程序以及待测试程序对应的标准程序;

第一绘制模块20,用于根据标准程序中的命令在图形容器的第一图层上绘制标准图形;

第二绘制模块30,用于根据待测试程序中的命令在图形容器的第二图层上绘制待测试图形;

测评模块40,用于测评标准图形与待测试图形的图形相似度,并根据图形相似度对待测试程序进行判别。

本发明自动测试绘图程序的装置,通过获取待测试程序以及对应的标准程序,利用图形容器在第一图层绘制标准图形,在第二图层绘制待测试图形,进而可以将标准图形与待测试图形进行测试,并判别待测试程序。本发明能够实现在线自动判别运行结果为绘图类的程序,评测准确,效率高,有助于提升学生的自主学习能力以及教学质量,同时可适用于大规模的绘图类编程测试、比赛等。

关于自动测试绘图程序的装置的具体限定可以参见上文中对于自动测试绘图程序的方法的限定,在此不再赘述。上述自动测试绘图程序的装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

如图11所示,在一个实施例中,提供了一种自动测试绘图程序的系统,该自动测试绘图程序的系统可以是服务器,其内部结构图可以如图11所示。该自动测试绘图程序的系统包括通过系统总线连接的处理器、存储器、网络接口。其中,该处理器用于提供计算和控制能力。该自动测试绘图程序的系统的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该自动测试绘图程序的系统的数据库用于存储测试数据。该自动测试绘图程序的系统的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时可以实现自动测试绘图程序方法。

本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现自动测试绘图程序的方法的各步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1