24小时论文定制热线

咨询电话

ASP.NETVC++MySQLPHP安卓JSPLinuxJava机械VBASP单片机模具汽车工程毕业设计Flash
您当前的位置:论文定制 > 毕业设计论文 >
快速导航
毕业论文定制
关于我们
我们是一家专业提供高质量代做毕业设计的网站。2002年成立至今为众多客户提供大量毕业设计、论文定制等服务,赢得众多客户好评,因为专注,所以专业。写作老师大部分由全国211/958等高校的博士及硕士生设计,执笔,目前已为5000余位客户解决了论文写作的难题。 秉承以用户为中心,为用户创造价值的理念,我站拥有无缝对接的售后服务体系,代做毕业设计完成后有专业的老师进行一对一修改与完善,对有答辩需求的同学进行一对一的辅导,为你顺利毕业保驾护航
代做毕业设计
常见问题

针对VB上机考试的自动评分系统

添加时间:2020/01/17
本文提出了一种基于Windows API的VB编程题自动评分的解决方案,针对VB语言的事件驱动和可视化界面设计的编程机制,采用“动态评分与静态评分相结合”的思路分别对学生程序进行功能检查和源程序中得分点和关键词的匹配。
  以下为本篇论文正文:

摘要

  目前,无纸化考试已经成为一种趋势,与此同时,产生了一系列新课题,包括程序设计语言类中编程题自动评阅技术的研究。程序设计语言类考试中编程题自动评阅技术的实现,是无纸化考试必须解决的关键性问题之一。目前编程题的自动评阅技术,成为一个研究热点和难点。国内已经有一些关于程序设计语言类的考试系统,这些考试系统大多数是针对选择题、填空题和完善程序题,可以说对于这些客观题或操作受限的主观题的评分技术己经很成熟。但是对于具有主观性很强的编程题来说,还没有特别好的办法和成熟的技术。本课题就是为解决编程题评分这一难题而提出的,具有重要的理论和现实意义。

  本文首先对VB编程题自动评分系统的课题背景和现状进行了研究和分析,然后对API函数、Windows的消息机制、进程间通信以及字符串匹配算法进行了深入地研究,模拟人工阅卷的思维过程,采用了动态评阅和静态评阅相结合的方法分别对学生程序进行事件代码的功能测评和界面设计的静态测评。给出了VB编程题的自动评分系统的解决方案和设计思路:使用APIHook记录标准答案程序在运行时由人工操作所触发的消息,在动态评分时,借助VB6.O对学生程序进行编译和运行,将记录的消息发送给正在运行的学生程序以驱动学生程序的自动运行,利用输出代码将学生程序的运行结果输出到指定的文件中,并和标准答案运行结果进行匹配;在静态评分时,对学生程序文件进行窗体信息匹配、窗体中控件信息匹配、关键词匹配和得分点匹配,按照各个部分不同的权值计算学生的得分。最后,开发了一个针对VB上机考试的自动评分系统。

  初步实验结果表明:基于WindowSAPI的VB编程题自动评分系统能准确的给出编程题的分数,系统运行稳定,评分误差较小。

  关键词:W1ndowsAPI;Windows消息机制;字符串匹配;自动评分

ABSTRACT

  Presently, the paperless examination has become a trend, at the same time, a series of new issues have emerged, including the study of automation marking technology for programming problem in programming language. The implementation of automation marking technology for programming problem in the examination of programming language is one of the key issues which must be resolved in the paperless examination.The automation marking technology has become a hotspot and difficulty. There already were some programming languages on the examination systems at home, most of them are for multiple-choice, blank-filling and procedure-improving. It can be said that the technology which is for objective questions or operation-limited subjective questions is already mature. But for the programming problem which is very subjective, there is no particularly good approach and mature technology. This topic is put forward to solve the  difficult  problem  of scoring  programming  problem  scoring,  with  important theoretical and practical significance.

  This article first researches and analyzes the status and the background of the automatic scoring system of VB programming problem, and then studies the API functions,  Windows message mechanism,  inter-process  communication and string matching algorithms in depth; this paper simulates the thinking process of manual marking, uses the method, which combines dynamic marking and static marking, to assess the event code of the function and statically evaluate the form design of student programs. This paper has given the solutions and design ideas of the automatic scoring system of VB programming problem, it uses API Hook to record the message,which is triggered by a man operator, when the standard answer program is in the run-time, and during dynamic scoring, it compiles and runs the program for students with the VB 6.0 ,and sends the message recorded to student program that is running to drive student program to run automatically, it uses the output code to output the results of actual runs of student program to the designated file, and matches the results with the results of actual runs of the standard answer; in static scoring, it is for the form message matching ,the control message matching in form, key words matching and scoring matching, and it calculates the score, according to the different weight of each part.Finally, it develops an automatic test scoring system for a VB testing on the machine.

  Preliminary results show that: the automatic scoring system of VB programming problem based on Windows API can give an accurate score, and it is stable, and has smaller scoring errors.

  Key Words:Windows API;  Windows Message Mechanism;  String Matching; Automatic Scoring

  随着计算机技术、互联网技术的发展和广泛应用,网络已经深入人们的生活,网络教学也随之发展起来。其中,以网络为载体的无纸化考试作为教学评估中的重要形式,已经变得越来越不容忽视。无纸化考试不仅节省出大量的人力和物力,把教师从繁重的出卷和批卷工作中解脱出来,而且在一定程度上解决了考试这一群体活动在时间上和空间上的不协调。网络考试系统基本上能完成学生在线答题和客观题自动评分,对于主观题的自动评分的处理还处于积极探索阶段。网络考试中编程题的考核不仅应能充分反映出学生的编程技巧和编程思想,而且节省大量的资源,但是目前网络考试中的编程题的评阅工作大多数还只能以运行结果作为唯一的评分标准。

  编程题自动评分的实现,不仅能像客观题评分一样节省教师的时间,减少教师的劳动强度,而且更加公平公正的给出学生对这门编程语言的把握;而这一课题涉及到人工智能、模式识别和自然语言的理解等诸多领域,因此它的实现对上述领域的发展具有很强的推动作用。对编程题自动评分的实现要涉及词法分析、语法分析、交互式特性、多线程并行处理特性、消息处理、数据处理、系统健壮性等诸多技术上的难题,因此这一课题具有很高的研究和实用价值。

  无纸化考试是一种发展趋势,编程题自动评分技术的研究与实现,是实现程序设计语言类无纸化考试亚待解决的关键。程序设计语言类的无纸化考试和自动评测一直以来都是国内外计算机教育领域的一个热点话题。目前,自动评测系统己经很好的完成了对常见客观题的自动评测工作,对主观题(比如问答题、简答题等形式的试题)的评测也有一定的进展,在对Word、Excel、AccesS、PowerPoint等应用软件的上机考核中利用VBA(Visual Basiefor Application,vBA)技术基本上实现了自动评分的功能。但是对于一些主观性较强的考核题,尤其是编程题的评测,还没有很好的解决方案。

  Visual Basic是一种集成开发环境,它简单易学,而且引入了可视化、事件驱动和面向对象等编程设计方法,使的开发应用程序的效率大大提高。为了考核学生应用VisualBasic编程能力,传统的笔试考试己经不能满足需要。目前国内己经有一些针对VB的考试系统,这些考试系统多数是针对选择题和填空题。虽然对于客观题的评分技术已经很成熟,但是对于主观性很强的编程题来说,还没有特别好的方法和成熟的技术。

  本文基于校教改项目“计算机程序设计基础(VB)考试方式的改革”,针对传统考试中人力和财力支出大、试卷重复、考前押题等现象,设计开发了一套基于Web的Visual Basic考试系统。系统中完善解决了选择、判断、程序完善和读程题型的自动评分,本文是为了解决“计算机程序设计基础(VB)考试系统”中编程题自动评分这一课题而提出的,所以具有重要的理论和现实意义。

  从上个世纪60年代开始,国内外一些专家和学者针对学生的作业和语言文字进行自动评分的研究。经过几十年的努力研究,在不同的领域都有各自的应用系统产生,它们当中有很多己经可以进行实际应用,效果也比较好。

  Ellis Page应美国大学委员会的请求研发了pEG(project Essay GradepEG)系统,系统开发的目的是为了使大规模数量的作文评分更加实际和高效。Page相信每个人的写作手法都蕴含着内在特征,只要实现对这些内在特征的量化,就可以实现测评。PEG使用代理量度标准来衡量作文的内在质量从而模拟人工对作文的评分。但内在质量,如写作的流畅性,句子结构的复杂度,文章措辞等难以用计算机直接测量。于是PEG采取了间接测量写作概念分项指标的方法,即所谓的代理量度标准。比如:作文长度代表了写作的流畅性、介词、关系代词等代表了句子结构的复杂度;词长的变化代表了文章措辞的情况。PEG完全依靠浅层语言学特征的分析而忽略语义方面的评分遭到指责,因为一些聪明的作者可以写出文理不通的长文以获取流畅性方面的高分。此外类似的系统还有LsA(Latentsemantic alysis)、Erater、ATM、AutoM叭等系统。

  英国诺丁汉大学开发的course Master系统,是较为成功的程序设计语言智能阅卷系统之一。该系统包括静态测评和动态测评两个部分,但是比较成熟的是静态测评部分。CourseMaster系统由于测试用例的选取方法不尽科学,其测试效果并不理想。

  onlin Judge系统是一个在线的编程题自动评分系统,最初被用于ACM一ICPC国际大学生程序设计竞赛和”1信息学奥林匹克竞赛中的自动评分和排名。用户只要遵守规定就可以在线提交程序源代码(程序类型如C、C++、Pascal)。

  Onhne Judge系统对程序源码进行编译和执行,根据预先给定的测试数据进行测试。

  系统捕获并保存运行结果,并把运行结果传递给一个结果判断程序。结果判断程序将运行结果和给定的结果进行比较,或者检测运行结果是否符合一定的逻辑条件,然后返回给用户一个状态:通过、答案错误、超出时间限制、超过输出限制、超出内存限制、运行时错误、格式错误、或是无法编译,并返回程序使用的内存、运行时间等信息。此外类似的系统还有TRY系统,BAGs系统,PAsS[川系统等。

  verifog Logiscone嚎统经过对学生程序提取指标数据、筛选数据、汇总所需要的数据,按照制定的反映程序质量(quality)、复杂度(eomplexity)、风格(style)等量化标准,给出一个反映学生编程能力和编程质量的指标。虽然这种量化的参数能表示程序的结构、数据流等特征,但它在分析源码结构时表现较差,不能分析程序的语义,类似系统有AssysT系统等。

  目前,国内在线考试、在线问答和网络教学系统层出不穷,比如:微软认证(MCSE、MCDBA、MCSD等考试),思科认证(Ciseo Career Certifieation),惠普认证(HP.UX)以及TOFEL、GRE等等。这类系统对客观题和操作受限的主观题的处理已经取得重大进展。

  在对主观题自动阅卷技术研究的同时,编程题的自动评分技术也有所进步。

  由于编程语言文法的限制,使得编程题的分析较自然语言容易些。编程题自动评分的方法可分为3类:动态测试方法、源程序分析方法和软件度量参数分析方法。

  动态测试方法的基本思想是:运行学生的源程序,并将运行结果与标准答案运行后产生的结果进行对比,给出学生程序的分数。源程序分析方法一般是指采用程序理解、语义分析等方法来分析学生的源代码,首先将源代码转换成一种评分系统能够理解的中间表示形式,对程序代码中间表示形式进行标准化转换和消除代码多样性,然后对处理后的学生程序与标准答案的模板程序进行匹配。软件度量参数分析方法的基本思想是:根据学生程序的复杂性度量和程序特征,如模块长度,标识符长度,代码行数以及变量个数等来评价学生程序的质量,从而给出评分的结果。

  针对VB编程题,自动评分系统有上海大学段汉周提出的VB程序设计考核自动评阅系统、北航计算机学院开发的自动评分系统、南京理工大学盛英洁提出的VB程序员考核自动阅卷系统,教育部考试中心针对全国计算机等级考试(NCRE)所研制的上机考试系统等,还有一些ACM竞赛用的程序自动评分系统。

  上海大学段汉周提出的VB程序设计考核自动评阅系统,在阅卷过程中,首先,分析用户源程序是否拥有规定的控件、是否有多余的控件、以及控件的位置是否正确;其次,针对相应的控件事件,判断源程序中是否编写了功能代码;然后,在不影响用户程序的前提下,插入测试代码及临时辅助代码,使VB程序在运行过程中能够输出反映功能的运行参数;激活VB6.0集成开发环境,运行用户程序,向已运行的用户程序发送模拟消息,使程序按照预定策略自动运行,将反映程序功能的参数输出到指定的临时文件;最后,关闭用户程序,关闭VB6.0集成开发环境,分析临时文件中记录的内容,得出评阅结果。整个评分过程所依据的思路是判断用户程序功能是否正确,而程序内部的逻辑性、程序复杂度等并不是考核的目的。在评分过程中出现的没有通过编译或者不能运行的程序属于完全错误的程序。

  南京理工大学盛英洁提出的VB程序员考核自动阅卷系统采用静态测评和动态测评相结合的方法实现对学生程序的评阅。静态测评是判断源程序是否拥有规定的控件,是否拥有规定的控件事件,以及控件的属性是否设置正确。动态测评是对学生程序的功能进行测试。该系统的评分思路是借助VB6.O对学生提交的程序进行编译和运行,用系统给出的策略文件来驱动学生程序自动运行,模拟人工阅卷的过程,向学生程序输入测试数据,依据学生程序运行结果或情况,来给出相应的分数。系统评分过程中,解决了学生程序可能出现的被零除或死循环等程序错误。但是受到考核题型的限制,VB程序员考核自动阅卷系统仅适用于培训考核的自动评阅工作。

针对VB上机考试的自动评分系统:

系统用例图
系统用例图

用户登录界面
用户登录界面

编程题界面
编程题界面

消息列表初始化界面
消息列表初始化界面

解压编译界面
解压编译界面

目录

  第1章 绪论
    1.1 课题背景
    1.2 研究意义
    1.3 国内外研究的现状
    1.4 本文的主要研究工作
      1.4.1 研究目标
      1.4.2 研究的主要内容
    1.5 本文的组织结构
  第2章 相关技术介绍
    2.1 Windows API
      2.1.1 API函数
      2.1.2 APIHook
    2.2 Windows消息机制
      2.2.1 Windows消,息
      2.2.2 Windows消息系统
      2.2.3 Windows句柄
      2.2.4 消息的发送
    2.3 WindowS进程间通信
      2.3.1 文件映射
      2.3.2 动态链接库
      2.3.3 WMCOPYDATA消息
    2.4 字符串匹配算法
      2.4.1 Brute一Force算法
      2.4.2 KMP算法
      2.4.3 Levenshtein算法
  第3章 基于WindowsAPI的vB编程题自动评分系统的解决方案
    3.1 现有的自动评分模型研究
      3.1.1 基于程序理解的编程题自动评分模型
      3.1.2 基于语义相似度的编程题自动评分模型
      3.1.3 基于语义理解的编程题自动评分模型
      3.1.4 VB程序员考核自动阅卷系统
      3.1.5 现有自动评分模型和系统的分析
    3.2 基于Windows API的VB编程题自动评分系统的解决方案
      3.2.1 基于Windows API的VB编程题自动评分思路
      3.2.2 动态评分的方法
      3.2.3 静态评分的方法
      3.2.4 错误检测
  第4章 系统的分析、设计与实现
    4.1 功能需求分析
    4.2 系统的设计
      4.2.1 系统的功能模块划分
      4.2.2 数据库设计
      4.2.3 评分模块流程图
    4.3 系统的实现
      4.3.1 用户管理模块的实现
      4.3.2 编程题网络考试模块的实现
      4.3.3 编程题自动评分的实现
  第5章 实验及结果分析
    5.1 自动评分方案的实验
    5.2 实验结果分析
  第6章 总结与展望
  参考文献
  致谢

(如您需要查看本篇毕业设计全文,请您联系客服索取)

    相关内容
    好优论文定制中心主要为您提供代做毕业设计及各专业毕业论文写作辅导服务。
    所有论文、资料均源于网上的共享资源以及一些期刊杂志,所有论文仅免费供网友间相互学习交流之用,请特别注意勿做其他非法用途。
    如有侵犯您的版权或其他有损您利益的行为,请联系指出,论文定制中心会立即进行改正或删除有关内容!