- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于VB程序设计题考点自动阅卷方法研究
基于VB程序设计题考点自动阅卷方法研究
摘要:针对Visual Basic程序设计的考核,在研究其程序设计题目特点的基础上,提出以考点及位置为评分标准对程序设计题进行功能动态测试、逻辑结构分析和语句格式模糊匹配的一种研究方法。详细介绍了整个设计的研究思路。
关键词:自动阅卷;程序设计;考核;动态测试;模糊匹配
中图分类号:TP312文献标识码:A文章编号:1672??7800(2011)02??0094??02
基金项目:嘉兴学院平湖校区科研项目(0920)
作者简介:杨畅(1981-),男,湖南长沙人,硕士,嘉兴学院平湖校区助教,研究方向为Web服务;刘芳(1982-),男,江西萍乡人,硕士,渝州科技职业学院助教,研究方向为软件工程。0引言
目前对于VB程序设计题的自动阅卷,一般采用两种方法:一种是分析源程序是否拥有规定的控件,针对相应的控件事件判断源程序中是否编写了功能代码。在保证不会对程序功能产生任何影响的情况下加入测试代码及辅助临时代码使VB程序能够在运行过程中输出反映功能的运行参数。在这种系统中,主要是测重于VB本身控件事件等运用,而对程序设计方面很难去做很好的测试,如循环分支等结构、函数表达式的运用,这些都是程序设计中很重要的测评标准。对于运行查看结果,也是很不全面的,有些代码它可能没办法编译运行。这时,就需要具体知道考生代码的详细情况,像人工阅卷一样去检测考生掌握哪些知识点,以此来评分。另一种方法是模糊匹配,采用的是关键字模糊匹配方式,也就是系统把能决定该程序设计题答案的关键词逐一找出来,存储在一个临时数组里,然后将此数组中的字符与考生的答案进行匹配,在考生答案中找这些关键词,再根据匹配的程度来对考生的试卷进行打分。但其也存在一定的问题。比如考生答案中存在这些关键词,但是由于顺序相反使得语义完全改变,或者考生答案中并未出现关键词,但是他的语义和标准答案的语义是一致的。如果采用这种机制进行评分可能会导致误判。
1自动阅卷方法
1.1总体方案
VB是以工程来组织文件的,在集成环境中打开一个VB工程时,首先装载.vbp文件,从中分析出该工程中存在的窗体、模块等对象,然后进一步加载并分析这些对象及其存在的控件、事件、函数和过程等。利用VB的运行环境,可以对VB工程文件进行编译运行。VB程序是一个标准的Windows应用程序,它遵循Windows操作系统的消息驱动(或事件驱动)模式,即可以通过Windows消息与其程序进行通讯。VB程序的源文件主要以文本方式并按照一定格式保存,这就方便我们对它进行分析。因此,本方法要求对程序设计题以VB工程的形式作答,即程序代码写在一个工程中,分析程序对这个工程进行运行分析。其分析流程如图1所示:
图1程序设计题分析流程图
在此流程图中,首先是对程序进行编译运行比较结果。分析程序先嵌入、替换工程文件中相关代码,如果能编译运行则把结果保存到一个文件中。试题一般会要求考生把代码写在某个按钮事件里面,再利用Windows 的消息机制与此程序进行通讯,即发送一个点击相应按钮消息,从而运行要求的代码得到结果进行比较。在此当中,排除工程文件不存在和作弊代码直接给零分,其中任何一个环节出现错误,就进入代码的分析。当然,如果结果正确,又不是作弊代码就直接给满分。
1.2代码的静态分析
在代码的分析当中,最重要的就是考点的表示及考点间位置的描述。考点就是要在代码中进行搜索判断是否存在的知识点,而位置就是其在整个代码中与其它考点的相对位置。因此,把考点分成两类:结构考点和位置考点。
1.2.1结构考点设计
此类主要是针对代码的结构分析,即通过搜索判断考点是否存在及其位置是否正确,通过这两个方面结合来判断给分的。它分为3小类:
(1)循环判断。判断一重循环、二重循环是否存在,此处主要是检验循环运用为主,所以并未涉及大于二重循环的判断。这个问题,在通过出题时可控制试题不出现大于二重循环的考点。循环的判断,将忽略其循环的类型,即For或While等全部看成是的循环。
(2)分支判断。判断N分支在代码中是否存在,来确定对分支运用情况。分支的判断,也是忽略其分支类型,即IF或Case等全部看作是分支。
(3)特定语句判断。特定语句判断又分为:固定格式的判断和控件使用的判断。固定格式的判断如变量赋值、变量类型、格式匹配、固定字符串匹配等,其变量是模糊匹配的。控件使用分为:控件的某个属性、方法的判断、控件的某个事件是否存在。它也是模糊判断,即控件名称是模糊判断,而其属性、方法、事件和值是明确判断的。
1.2.2位置考点设计
在此类中另一个重要的方面就是考点间的相对位置。考点间的位置描述
文档评论(0)