CN101692316A - C/c++语言程序设计无纸化考试评分的自动化方法 - Google Patents
C/c++语言程序设计无纸化考试评分的自动化方法 Download PDFInfo
- Publication number
- CN101692316A CN101692316A CN200910309212A CN200910309212A CN101692316A CN 101692316 A CN101692316 A CN 101692316A CN 200910309212 A CN200910309212 A CN 200910309212A CN 200910309212 A CN200910309212 A CN 200910309212A CN 101692316 A CN101692316 A CN 101692316A
- Authority
- CN
- China
- Prior art keywords
- program
- source program
- evaluation
- examination
- scoring
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种C/C++语言程序设计无纸化考试评分的自动化方法,其是通过在试题对应的源程序中以成对出现的注释开始和结束符/**/标记评测点;然后对评测点的程序自动编译、执行和跟踪,根据执行的结果累计得分,本发明能将知识点的考核、基本操作技能的考核、基本应用和初步开发能力的考核集中融合在计算机上,实现真正意义上的C/C++语言程序设计的无纸化考试。
Description
技术领域
本发明涉及一种C/C++语言程序设计无纸化考试评分的自动化方法。
背景技术
无纸化考试是在考试软件系统的辅助和监控下实施的考试方式。它具有监控考生登录、自动随机抽题组卷、监控考试过程、评分自动化、辅助和方便考务、考试运行成本低等诸多优点。C/C++作为一种流行的计算机程序设计语言,其教学和应用面广泛。而目前已有的针对C/C++语言程序设计的无纸化考试,多数仅实现了选择题型(标准化考试)的自动测评,因评分自动化技术落后,实现的程序设计题型单一,仅能对数值计算问题的最后运行结果进行比对评分,评分结果两极分化,或满分或0分,且由于在试题源程序中直接呈现记录计算结果的代码,致使无法避免考生直接在源程序中写出计算值而欺骗评分程序的作弊可能。
发明内容
鉴于上述技术的不足,本发明的目的是提供一种C/C++语言程序设计无纸化考试评分的自动化方法,其实现了C/C++语言程序填空题、程序改错题、程序设计题等题型的无纸化考试及评分的自动化。
为实现上述目的,本发明采用以下技术方案:一种C/C++语言程序设计无纸化考试评分的自动化方法,其特征在于按以下步骤实现:
(1)、在试题对应的源程序中以成对出现的注释开始和结束符/**/标记评测点;
(2)、对每道试题设计试题源程序和评分辅助源程序,所述试题源程序是完全依照题意编写的提供给考生答题的源程序,所述评分辅助源程序是包含步骤(1)所述标记、正解程序代码、运行结果跟踪收集和评分代码的源程序,该评分辅助源程序在考生考试时隐藏;
(3)、在考生交卷后,打开试题源程序和评分辅助源程序,并确定评测点数N;
(4)、以试题源程序和评分辅助源程序为蓝本,合成作为对评测点进行评分的评测点源程序;
(5)、编译评测点源程序,若编译失败,该评测点得分为0,转为执行步骤(7);
(6)、若编译成功,则链接生成测评点执行程序,运行该测评点执行程序,若程序运行超时,则终止评测点程序执行,该评测点得分为0,否则评测点程序正常执行结束;
(7)、累计得分,并确定下一个评测点,转入步骤(2);
(8)、若已检测所有评测点,则关闭考生试题源程序和评分辅助源程序,记录该试题的得分。
本发明有如下优点:
1、实现C/C++程序设计无纸化考试的题型多样,包括程序填空题、程序改错题、程序设计题等,且试题内容不局限于数值计算问题。
2、考生答卷时可以选用任意一种在Windows操作系统下运行的支持C/C++程序设计的开发平台,也可以在无需调试程序的情况下直接用纯文本编辑器进行答题。
3、评分点的个数、位置和范围可由命题者自由选择,并且只需提供一种参考答案(正解)。
4、以程序执行的中间结果和最后结果作为评分依据,评分机制合理,评分客观而准确,并且考生考试时不必编译和运行试题程序,即便个别评测点有误,本发明独特的评分机制也能准确评定成绩。
5、评分代码隐藏,评分过程隐蔽,在技术上确保了考试的公平和公正原则。
附图说明
图1是本发明的设计流程示意图。
具体实施方式
下面结合附图及实施例子对本发明做进一步描述。
本发明为准确收集每个评测点对应的数据,试题对应的源程序中以成对出现的注释开始和结束符/**/标记每个评测点。每个成对的/**/标记可以出现在整个函数范围、或多条语句的前后、或一条语句的前后、或一条语句之中、或包含错误(语法错误或逻辑错误)语句的程序块前后,而注释开始结束标记/**/不参与编译,不影响目标代码的生成,由此可以实现C/C++程序填空题、程序改错题、程序设计题等题型。同时,为隐藏采集程序运行结果的代码和评分代码,对每道试题分别准备2个相互关联的源程序,其中一个是完全依照题意编写的提供给考生答题的源程序,称为试题源程序,另一个是包含对应标记、正解程序代码(仅需提供任意一个参考解)、运行结果跟踪收集和评分代码的源程序,称为评分辅助源程序。评分辅助源程序在考试期间处于加密状态,在考试交卷时实施评分的处理过程中临时生成解密副本。
考生在计算机上通过考试程序登录后,考试程序以随机方式抽题组卷,并记录试题相关信息。考生主动交卷或考试到时强制交卷时,启动评分处理程序,对每一道C/C++试题源程序按以下步骤和方法实现评分。
①依据抽题时记录的试题信息,分别打开考生试题源程序文件和对应的评分辅助源程序的解密文本;确定评测点数N;针对每个评测点作步骤②~⑤的N次重复操作;
②以打开的考生试题源程序文件和对应的评分辅助源程序为蓝本,合成第三个相关的源程序文件,作为对评测点进行评分的源程序,称为评测点源程序;在评测点源程序中,除了某评测点(第i个评测点,即第i对/**/标记之间)的源代码是考生试题源程序中的代码外,其余代码以评分辅助源程序为准;
③将评测点源程序编译成目标文件(*.OBJ);若编译成功(产生目标文件),则进一步链接为可执行文件(*.EXE),转入步骤④;否则,编译失败,表明对应评测点的考生源代码存在语法错误,该评测点得0分,转入步骤⑤;
④隐藏并跟踪执行评测点程序,若程序正常执行并结束,期间比对运行的中间和最后结果,酌情得分;若程序运行超时(可设定阈值为500~3000ms)而未结束,表明进程已死锁(因考生源程序的逻辑错误导致的死循环),强制终止死锁进程,并记该评测点得0分;
⑤累计得分,并确定下一个评测点,转入步骤②;若已检测所有评测点,则转入步骤⑥;
⑥关闭考生试题源程序文件和对应的评分辅助源程序,记录该试题的得分。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (3)
1.一种C/C++语言程序设计无纸化考试评分的自动化方法,其特征在于按以下步骤实现:
(1)、在试题对应的源程序中以成对出现的注释开始和结束符/**/标记评测点;
(2)、对每道试题设计试题源程序和评分辅助源程序,所述试题源程序是完全依照题意编写的提供给考生答题的源程序,所述评分辅助源程序是包含步骤(1)所述标记、正解程序代码、运行结果跟踪收集和评分代码的源程序,该评分辅助源程序在考生考试时隐藏;
(3)、在考生交卷后,打开试题源程序和评分辅助源程序,并确定评测点数N;
(4)、以试题源程序和评分辅助源程序为蓝本,合成作为对评测点进行评分的评测点源程序;
(5)、编译评测点源程序,若编译失败,该评测点得分为0,转为执行步骤(7);
(6)、若编译成功,则链接生成测评点执行程序,运行该测评点执行程序,若程序运行超时,则终止评测点程序执行,该评测点得分为0,否则评测点程序正常执行结束;
(7)、累计得分,并确定下一个评测点,转入步骤(2);
(8)、若已检测所有评测点,则关闭考生试题源程序和评分辅助源程序,记录该试题的得分。
2.根据权利要求1所述的C/C++语言程序设计无纸化考试评分的自动化方法,其特征在于所述注释开始和结束符/**/标记的范围包括:整个函数范围、多条语句的前后、一条语句的前后、一条语句之中或包含错误语句的程序块前后;根据所述标记的范围特点构造C/C++程序设计无纸化考试的程序填空、代码修改或算法设计题型。
3.根据权利要求1所述的C/C++语言程序设计无纸化考试评分的自动化方法,其特征在于:所述步骤(6)中程序运行时间的阀值范围是500~3000ms。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910309212A CN101692316A (zh) | 2009-11-02 | 2009-11-02 | C/c++语言程序设计无纸化考试评分的自动化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910309212A CN101692316A (zh) | 2009-11-02 | 2009-11-02 | C/c++语言程序设计无纸化考试评分的自动化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101692316A true CN101692316A (zh) | 2010-04-07 |
Family
ID=42080999
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910309212A Pending CN101692316A (zh) | 2009-11-02 | 2009-11-02 | C/c++语言程序设计无纸化考试评分的自动化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101692316A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103164629A (zh) * | 2013-04-07 | 2013-06-19 | 深圳市卓帆科技有限公司 | 一种Flash软件操作技能的自动评分方法 |
CN103413470A (zh) * | 2013-07-24 | 2013-11-27 | 西南大学 | C语言编程教学考试综合系统及方法 |
CN103606313A (zh) * | 2013-11-18 | 2014-02-26 | 罗森 | 一种独立式机考系统 |
CN103886780A (zh) * | 2013-11-26 | 2014-06-25 | 天津思博科科技发展有限公司 | 一种c语言程序题自动评分系统 |
CN104008000A (zh) * | 2014-05-09 | 2014-08-27 | 启秀科技(北京)有限公司 | 实操题测评软件仿真系统 |
CN104111888A (zh) * | 2014-07-03 | 2014-10-22 | 曹建楠 | 一种面向教学的代码评测方法、装置和系统 |
CN104200711A (zh) * | 2014-05-19 | 2014-12-10 | 南京康尼科技实业有限公司 | 一种考试系统以及实际操作考题的设置以及判断方法 |
CN104216716A (zh) * | 2014-09-06 | 2014-12-17 | 合肥中科瀚云信息科技有限公司 | 在线程序评判系统 |
CN104850455A (zh) * | 2015-05-15 | 2015-08-19 | 广州视源电子科技股份有限公司 | 一种在线判题系统的前台处理方法及系统 |
CN106293654A (zh) * | 2015-05-19 | 2017-01-04 | 广州数度软件有限公司 | Java编程题目自动评判方法及系统 |
CN110457665A (zh) * | 2019-08-14 | 2019-11-15 | 杭州豫毅信息科技有限公司 | 一种基于Excel VBA的无纸化考试系统 |
CN111459841A (zh) * | 2020-04-30 | 2020-07-28 | 成都海纳智博科技有限公司 | 一种通用程序语言自动评测方法及系统 |
CN111968434A (zh) * | 2020-08-12 | 2020-11-20 | 福建师范大学协和学院 | 一种线上无纸化语言训练与评测的方法和存储介质 |
-
2009
- 2009-11-02 CN CN200910309212A patent/CN101692316A/zh active Pending
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103164629A (zh) * | 2013-04-07 | 2013-06-19 | 深圳市卓帆科技有限公司 | 一种Flash软件操作技能的自动评分方法 |
CN103164629B (zh) * | 2013-04-07 | 2015-11-04 | 深圳市卓帆科技有限公司 | 一种Flash软件操作技能的自动评分方法 |
CN103413470A (zh) * | 2013-07-24 | 2013-11-27 | 西南大学 | C语言编程教学考试综合系统及方法 |
CN103413470B (zh) * | 2013-07-24 | 2016-02-03 | 西南大学 | C语言编程教学考试综合系统及方法 |
CN103606313A (zh) * | 2013-11-18 | 2014-02-26 | 罗森 | 一种独立式机考系统 |
CN103886780A (zh) * | 2013-11-26 | 2014-06-25 | 天津思博科科技发展有限公司 | 一种c语言程序题自动评分系统 |
CN104008000A (zh) * | 2014-05-09 | 2014-08-27 | 启秀科技(北京)有限公司 | 实操题测评软件仿真系统 |
CN104200711B (zh) * | 2014-05-19 | 2016-08-31 | 南京康尼科技实业有限公司 | 一种考试系统以及实际操作考题的设置以及判断方法 |
CN104200711A (zh) * | 2014-05-19 | 2014-12-10 | 南京康尼科技实业有限公司 | 一种考试系统以及实际操作考题的设置以及判断方法 |
CN104111888A (zh) * | 2014-07-03 | 2014-10-22 | 曹建楠 | 一种面向教学的代码评测方法、装置和系统 |
CN104216716A (zh) * | 2014-09-06 | 2014-12-17 | 合肥中科瀚云信息科技有限公司 | 在线程序评判系统 |
CN104850455A (zh) * | 2015-05-15 | 2015-08-19 | 广州视源电子科技股份有限公司 | 一种在线判题系统的前台处理方法及系统 |
CN106293654A (zh) * | 2015-05-19 | 2017-01-04 | 广州数度软件有限公司 | Java编程题目自动评判方法及系统 |
CN110457665A (zh) * | 2019-08-14 | 2019-11-15 | 杭州豫毅信息科技有限公司 | 一种基于Excel VBA的无纸化考试系统 |
CN111459841A (zh) * | 2020-04-30 | 2020-07-28 | 成都海纳智博科技有限公司 | 一种通用程序语言自动评测方法及系统 |
CN111968434A (zh) * | 2020-08-12 | 2020-11-20 | 福建师范大学协和学院 | 一种线上无纸化语言训练与评测的方法和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101692316A (zh) | C/c++语言程序设计无纸化考试评分的自动化方法 | |
Liu et al. | Understanding problem solving behavior of 6–8 graders in a debugging game | |
Spohrer et al. | A goal/plan analysis of buggy Pascal programs | |
Murphy et al. | Debugging: the good, the bad, and the quirky--a qualitative analysis of novices' strategies | |
Marceau et al. | Mind your language: on novices' interactions with error messages | |
Li et al. | Towards a framework for teaching debugging | |
Luxton-Reilly et al. | Ladebug: an online tool to help novice programmers improve their debugging skills | |
CN106528420B (zh) | 一种软件界面的自动化测试方法及装置 | |
McCartney et al. | Can first-year students program yet? A study revisited | |
Paquette et al. | Cross-system transfer of machine learned and knowledge engineered models of gaming the system | |
Werner et al. | A first step in learning analytics: Pre-processing low-level Alice logging data of middle school students | |
US11900494B2 (en) | Method and apparatus for adaptive security guidance | |
Fisler et al. | Sometimes, rainfall accumulates: Talk-alouds with novice functional programmers | |
Caton et al. | What fails once, fails again: Common repeated errors in introductory programming automated assessments | |
Obermüller et al. | Common Patterns in Block-Based Robot Programs | |
Rodrigo et al. | An analysis of java programming behaviors, affect, perceptions, and syntax errors among low-achieving, average, and high-achieving novice programmers | |
Mansoor et al. | An empirical study assessing software modeling in alloy | |
Keuning | Automated feedback for learning code refactoring | |
Oezbek et al. | Jtourbus: Simplifying program understanding by documentation that provides tours through the source code | |
Chou et al. | An educational tool for visualizing students' program tracing processes | |
Farrow et al. | Experiences with online programming examinations | |
McCall | Novice Programmer Errors-Analysis and Diagnostics | |
Prasad et al. | Verisim: a learning environment for comprehending class and sequence diagrams using design tracing | |
Harker | Examining the effects of enhanced compilers on student productivity | |
Tenorio Melenje María et al. | Debugging Block-Based Programs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20100407 |