对于C++语言考试编程题自动评分系统的研究

合集下载

模拟人工阅卷的C语言编程题自动评阅系统的设计与实现

模拟人工阅卷的C语言编程题自动评阅系统的设计与实现

模拟人工阅卷的C语言编程题自动评阅系统的设计与实现模拟人工阅卷的C语言编程题自动评阅系统的设计与实现夏涛1,彭巍11(北京化工大学信息科学与技术学院自动化系,北京100029)摘要:传统的C语言在线考试系统对编程题的评阅比较机械,无法反映考生的真实水平。

本文在分析人工阅卷流程的根底上,给出了计算机模拟人工阅卷的工作流程,并在此之上提出了一种模拟人工阅卷的C语言编程题自动评阅系统,讨论了系统的原理和组成,重点对其设计与实现进行了分析,阐述了该系统的特点。

该系统对当前的C语言教学与考试提供了一种新的解决方案。

以全国计算机等级二级C语言的上机考试系统为例,该系统中的程序设计题评分只依据程序运行结果给出相应分数,并不查看考生程序内容。

在这种机制下,程序中一个小小的错误就将导致一个几近正确的程序无法运行,从而考生将丧失全局部数,因此评分结果也不能反映出考生的真实水平[1]。

本文针对以上特点,提出了一种模拟人工阅卷的C语言编程题自动评阅系统,该系统能模拟人工阅卷方式按题目要求和评分点并根据源代码的语义为源代码评分,使计算机评分结果更合理,更接近人工阅卷的结果。

1 编程题的模拟人工阅卷1.1 人工阅卷在编程题的人工阅卷中,教师的阅卷过程可归纳为以下几步[2]:1、首先检查程序是否能通过编译及运行结果是否正确,假设是,那么有如下两种可能:a)代码实现符合题意,那么此题应得总分值。

b)源代码实现不符合题意,此题不应得总分值,需按评分标准中的扣分点进行扣分。

2、假设程序无法通过编译或结果错误,那么教师需按照评分点进行评阅,最后累加即可得到该题总得分。

1.2 计算机对人工阅卷的模拟通过对人工阅卷流程的分析,可知计算机对人工阅卷的模拟可按照以下流程来进行:1、语法、语义分析,错误校正并记录。

2、对第一步处理过的源代码进行编译。

3、假设源代码编译通过,那么执行编译后的可执行文件。

4、假设可执行文件输出值与标准答案相符,执行扣分流程;否那么执行加分流程。

c语言在线考试系统自动评分模块设计大学本科毕业论文

c语言在线考试系统自动评分模块设计大学本科毕业论文

摘 要C 语言是国际上广泛流行的计算机高级程序设计语言,在各类高等院校的计算机及相关专业中,关专业中,C C 语言均被列为一门必修的基础课程。

随着计算机技术的日趋成熟,该课程的考核从传统手工阅卷走向计算机自动评阅。

本文开发的C 语言在线考试系统,一方面实现了C 语言课程考试的无纸化,节约了大量能源;另一方面,实现了部分题目的自动评阅,降低阅卷的工作量,提高评阅过程中的公平性与准确性。

它为C 语言教学提供了一套完备的自我测试系统,也为学生的自主学习提供了更好的支持。

的自我测试系统,也为学生的自主学习提供了更好的支持。

本系统主要对考试系统中的自动组卷、考生考试及自动评分模块进行了研究与设计,我主要完成的是自动评分模块的功能实现。

在设计系统的过程中,我们结合平时使用软件的需求,对该项目进行了界面的优化,该系统设计成功后,经过了一定量的测试,初步证明运行稳定,自动评分准确,评分标准统一,整体效果良好,具有一定的的使用价值。

明运行稳定,自动评分准确,评分标准统一,整体效果良好,具有一定的的使用价值。

关键字:C 语言在线考试系统;自动评分模块;语言在线考试系统;自动评分模块;PHP PHP PHP;;ApacheAbstractC language is widely popular international high-level computer programming language, various institutions of higher learning in the computer and related professions, C language are classified as a compulsory basic course. As computer technology matures, the course of the assessment from the traditional manual scoring toward the computer automatically marked. This development of the C language online examination system, on the one hand to achieve a paperless examination of the C language curriculum, saving a lot of energy; the other hand, to achieve some of the subject automatically marked, reducing the workload of marking, the process of improving Review fairness and accuracy. It is a C language teaching provides a complete self-test system, but also for the students' self-learning provides better support.This system is mainly for automatic generation of test systems, and automatic scoring module exam candidates conducted research and design, I mainly to complete the automatic scoring module function implementation. In the process of designing the system, we usually use the software combines the needs of the project was carried out to optimize the interface, the system is designed successfully, after a certain amount of testing, preliminary evidence of stable operation, automatic scoring accurate, unified scoring criteria, the overall effect is good, has a certain value in use.Keywords: C language online examination system; automatic scoring module; PHP;Apache目 录1 绪论绪论.................................................................................1 1.1 课题研究的背景及意义课题研究的背景及意义...........................................................1 1.2 国内外研究概况与发展趋势国内外研究概况与发展趋势.......................................................1 1.2.1 客观性试题评测技术客观性试题评测技术.......................................................1 1.2.2 主观性试题评测技术主观性试题评测技术 .......................................................2 2 开发环境和开发技术开发环境和开发技术...................................................................2 2.1 系统介绍系统介绍.......................................................................2 2.1.1 C 语言在线考试系统简介语言在线考试系统简介....................................................2 2.1.2 自动评分系统简介自动评分系统简介.........................................................2 2.2 工具环境介绍工具环境介绍...................................................................3 2.2.1 开发环境的选择开发环境的选择 ...........................................................3 2.2.2 PHP 语言简介语言简介..............................................................3 2.2.3 Apache 简介简介...............................................................3 2.2.4 MySQL 简介简介................................................................3 3 需求分析需求分析.............................................................................4 3.1 设计思想设计思想.......................................................................4 3.2 可行性分析可行性分析 .....................................................................4 3.2.1 操作可行性操作可行性...............................................................4 3.2.2 技术可行性技术可行性...............................................................4 3.2.3 经济可行性经济可行性...............................................................5 3.3 用户需求与系统目标用户需求与系统目标.............................................................5 4 系统设计系统设计.............................................................................5 4.1 功能需求分析图功能需求分析图.................................................................5 4.2 系统结构设计系统结构设计...................................................................6 4.2.1 系统功能结构系统功能结构.............................................................6 4.2.2 系统流程图系统流程图...............................................................7 5 数据库设计数据库设计...........................................................................8 6 项目的设计实现项目的设计实现......................................................................11 6.1 自动评分流程的设计自动评分流程的设计............................................................11 6.2 模块的划分及各个模块的功能的实现方法模块的划分及各个模块的功能的实现方法 ..........................................12 (12)6.2.1 选择判断评分的实现选择判断评分的实现......................................................12 6.2.2 多项选择题判分的实现多项选择题判分的实现 ....................................................12 . (12)6.2.3 填空题判分的实现填空题判分的实现........................................................12 6.2.4 程序题判分的实现程序题判分的实现........................................................13 7 系统测试与分析系统测试与分析......................................................................13 7.1 测试概述测试概述......................................................................13 7.2 测试方法测试方法......................................................................13 7.3 测试截图测试截图......................................................................13 7.3.1 提交答案页面提交答案页面............................................................13 7.3.2 学生查看成绩页面学生查看成绩页面........................................................14 7.3.3 管理员身份查看成绩页面管理员身份查看成绩页面 ..................................................14 ..................................................14 8 结束语结束语 ..............................................................................16 8.1 总结总结..........................................................................16 8.2 心得体会心得体会......................................................................16 参考文献参考文献..............................................................................17 致谢致谢 (18)1 1 绪论绪论1.1 1.1 课题研究的背景及意义课题研究的背景及意义作为国际上广泛流行的计算机高级程序设计语言,作为国际上广泛流行的计算机高级程序设计语言,C C 语言是高校中计算机及相关专业的一门必修的基础课程。

C 语言程序题自动评分系统的研究与设计

C 语言程序题自动评分系统的研究与设计

C 语言程序题自动评分系统的研究与设计摘要:利用计算机来批改学生作业是未来的发展方向,本论文主要介绍C语言程序题自动评分系统的研究与设计。

该系统能自动分析学生C语言程序大题,并给出公正准确的分数。

关键词:自动评分系统;答案评分;程序信息表1.前言随着科学技术的发展,计算机技术走进各行各业之中。

利用计算机解决生产生活中的问题已经司空见惯。

但在相对保守的教育行业还处于原始的人工阅卷,人工打分的阶段。

目前,计算机批改作业试卷仅仅应用于选择题,这大大限制了计算机的工作范围。

本系统着眼于批改相对复杂的C语言编程大题。

这种题型代码冗长,对于人工批改来说,要求教师自己依次输入计算机,手动运行并比对结果,十分繁琐。

因此C语言程序题自动评分系统显得尤为重要。

本系统主要是针对C语言专业课程的作业及考试而设计的,具有自动分析程序源代码并打分的功能。

分析程序题目可得,题目主要考查该语言的某一知识点,即代码量不会很大。

所以本系统主要优化方向为提高打分准确率,而非打分速度。

对此,本系统采用程序动态运行打分和程序代码静态对比打分相结合的方法来对编程大题评分。

并且,由于程序代码静态对比打分能更反应学生对程序设计知识点的掌握,所以为了权衡打分重点,本系统将程序代码静态对比分数权重提高到75%,相应的程序动态运行分数权值为25%。

2.功能描述根据在评分过程中是否需要源代码被执行,可分为程序动态运行打分和程序代码静态对比打分。

程序动态运行打分指的是系统自动在沙盒中运行(防止源程序危及系统)被测程序,并且在有必要的情况下,自动输入程序所需要的输入数据,比对运行结果与标准答案,通过分析正确率,运行时间,运行所需要的空间大小,程序健壮性等来对该被测程序评估。

但是这种方法有一个明显的弊端,即无法对那些程序存在问题的,无法执行的被测程序打分,于是便需要结合程序代码静态对比打分。

程序代码静态对比打分不要求程序的完整性,可执行性,对任意代码均可打分。

对于C++语言考试编程题自动评分系统的研究

对于C++语言考试编程题自动评分系统的研究

0 引 言
见 的主 观性 题 型 的 自动 评 分 却 没 有 较 好 的解 决 方 法 。
因为 , 果仅 以考生 编写 的程序 运行结 果作 为评判 标准 如 的话 , 然技术 上很 容 易 实现 , 是 相 当 的不 客 观 。这 虽 但 种方 法忽 视 了考 生 的源代 码与编 程思 想 , 是与人 工评 这 分相 违背 的 。 要使 编程题 的评分 客 观公正 , 就必 须对试 卷 中考 生 所编 写的 源代码 进行分 析 与处理 , 如何分 析试 卷 中考 生 的源代 码 已成为解 决对 编程题 自动 评分 的关键 。
展, 但是 对于计 算机考 试完 全实 现 自动评分 却一直 未能
们 的愿 望 , 同时提 高对学 生试卷 的评 定精 度与速度 势 在 必行 。计算机 自动评 分 避 免 了 以往 人 工批 改 试 卷 的种 种 问题 , 保证 了对 试卷 评 定 的公 正 与 客 观 。当前 , 于 对 计算机 考试 中 自动 评分 技 术 的研 究 已经有 了很 大 的进
1 国 内外 编 程 题 自动 评 分 研 究 现 状
在 当今 社会计 算机 已经 成 为人 们 必 须 掌握 的一 项 基本技 能 , 大学 之 中计 算机课 程也 已经 是每个 大学 生 在 必修 的课程 。随 之而来 的便 是计 算 机 教 师 的 阅卷 工 作
量不 断增长 , 使用计 算机 自动批 改试 卷越 来越成 为教 师
s ud nt orw rtn o a s w ih C t e sf iig pr gr m t
f c i d t e m e ho o l k f rke un ton an h t d t oo o ywor fa pr gr m r n y e . Theau o a i c rn orC dso o a a e a alz d t m tcs o i g f i plm e e t e er lm e ho . m e ntd wih s v a t ds

c语言自动评分系统的设计与实现

c语言自动评分系统的设计与实现

c语言自动评分系统的设计与实现设计一个C语言的自动评分系统需要明确评分规则和评分目标。

以下是一个简单的C语言自动评分系统的设计思路和实现步骤:1. 确定评分规则:根据评分目标,确定评分规则。

例如,对于一个简单的C 语言程序,评分规则可以包括语法错误、逻辑错误、运行时间等。

2. 设计评分算法:根据评分规则,设计评分算法。

例如,可以使用静态代码分析工具或动态测试技术来检查程序中是否存在语法错误或逻辑错误。

可以使用计时器来测量程序的运行时间。

3. 编写评分代码:根据评分算法,编写评分代码。

可以使用C语言编写代码,也可以使用其他编程语言。

4. 测试评分代码:对评分代码进行测试,确保其能够正确地评估程序的性能和错误。

5. 集成评分系统:将评分代码集成到自动评分系统中,以便自动评估程序的性能和错误。

以下是一个简单的C语言自动评分系统的实现示例:```cinclude <>include <>include <>include <>define MAX_LINE_LENGTH 1000define MAX_ERRORS 10int main(int argc, char argv[]) {FILE fp;char line[MAX_LINE_LENGTH];int line_num = 1;int error_count = 0;clock_t start_time, end_time;double elapsed_time;if (argc != 2) {printf("Usage: %s <file>\n", argv[0]); exit(1);}fp = fopen(argv[1], "r");if (fp == NULL) {printf("Error: could not open file %s\n", argv[1]);exit(1);}while (fgets(line, MAX_LINE_LENGTH, fp) != NULL) { // Check for syntax errorsif (strstr(line, "error") != NULL) {error_count++;printf("Error on line %d: %s\n", line_num, line); }line_num++;}fclose(fp);if (error_count > MAX_ERRORS) {printf("Too many errors (%d > %d)\n", error_count, MAX_ERRORS);exit(1);} else if (error_count > 0) {printf("Program contains %d error%s.\n", error_count,error_count > 1 ? "s" : "");exit(0); // return 0 for success, 1 for failure} else {printf("Program is free of errors.\n");exit(0); // return 0 for success, 1 for failure}}```该程序接受一个参数,即要评估的C语言源代码文件名。

C语言在线自动评分考试系统的研究

C语言在线自动评分考试系统的研究
统; 应用于环保 的环保污水、 废气 、 噪声监测系统。 应用于 电梯 研发、 设计、 造、 制 运行与管理 的能力 ; 具备较强 的创新意 识和 的电梯状态远程监控 系统, 用于铁路系统的铁路沿 线天气环 从事物 联网领域科 学研 究的基 本能力; 应 具有 国际视野和跨文化 境监测系统等 。 () 4 销售与支付: 如基于R S M F I 的移动支付应用。 通过手机 的交流、 竞争与合作能力。 () 3 素质要求 : 具有 高度 的社会 责任 感; 具有 良好 的职 业 道德和学术 道德 ; 具有全球视 野及可持续 发展理念; 具有博爱
略。 谓按结果评 分方法 , 是只对结果进 行评判 。 所 就 程序运行 代码对 比评分。 ( ) 考生的源 程序进行编译 、 接, 1对 连 如果能正常运行并 结果与正确结果一模一样, 就按对来算分, 运行 结果与正确结果
则将其运行结果与标准 答案进行对 比。 与标 不一模一样 , 按错来算分。 是学 过C 就 但 语言 的人都知道 , 这样 能产生结果文件, 则说 明结果 正确 , 得满 分。 如果 运行 来判分是有失公平的。 经过 大量的调查和深入 的研究 , 我们提 准答案文件 内容完全相 同, 则按 比例给分, 如果得分为极端分 () 0 出了修复编译评 分、 结果对 比评 分和关 键代码对 比评 分相 结合 结果有一部分对 比正确 , 分或分数太低 , 则转入静态评阅, 进行代码对比评分。 若程 序不 的C 语言程 序设计 自动评分策略。
关键词: 语言; c 在线考试; 动评分; 自 系统
1C 语言程序设计题 自 动评阅流程设计
目 的很多 自 化评分系统仍 采 用的是按 结果评 分 的策 前 动
文件 、 使用T r o C( u b 简称T ) C 编译链接程 序、 程序运行及 控制 ( 包括死循环处理)、 序运 行结果对 比、 程 修复编译评分、 关键

C语言上机考试系统中自动评分方法的探讨

C语言上机考试系统中自动评分方法的探讨

C语言上机考试系统中自动评分方法的探讨摘要:利用计算机考核学生的C语言编程实践能力,实现编程题的自动评分,已成为计算机辅助教学的一个热点。

依据程序设计题特点,总结了目前能应用于实践的几种C语言编程题的自动评分方法,并对这几种自动评分方法进行了探讨与分析。

关键词:C语言;自动评分;辅助教学目前,计算机C语言已作为各类高校计算机专业甚至其他相关专业的必修课程。

由于学习该课程的学生人数多,为了提高教学效率,避免手工阅卷时出现的费时且易出错等问题,必须采用能确保公正、客观的计算机自动评分系统。

目前,国内在C语言的上机考试系统中选择题和填空题的自动阅卷技术已经很成熟,而对用于评价实践能力的C语言编程题,计算机自动评分技术还一直处于发展与完善中。

自20世纪60年代开始,国内外许多学者致力于研究程序设计题计算机自动评分方法。

发展至今,目前较完善的C语言编程题自动评分技术已可总结为好几种。

1基于程序理解的编程题自动评分方法程序理解是通过分析程序,对程序进行抽象、推理来获取知识。

该方法将人工阅卷的某种思维过程和程序理解的几个基本策略进行结合,通过比较模板程序与学生程序,并给学生程序p文献[3]提出的基于语义相似度比较的编程题自动评分模型对程序的一些标准化规则如布尔运算和算术运算进行了改进和完善,在原有模型上采用函数调用和数组分析等一些改进方法,根据语义相似度匹配学生程序与模板程序。

该模型主要依据如下几点进行自动评分[4]:(1)首先定义好相应的模板程序,以此为标准来判断学生程序是否正确;(2)只要标准答案的其中一个语义与学生程序的语义对等,则可判断该学生程序的语义正确;(3)程序语义也可转换并通过系统依赖图SDG这种中间表示形式来表示,如果两个系统依赖图等价,则两个程序具有等价的语义;(4)语义等价转换也就是通过系统依赖图标准化语义等价程序,那么,不管程序以何种形式进行计算,只要其结果不变,则称该转换是等价的。

基于语义相似度比较的编程题自动评分模型在分析词法和语法上比较严格,虽然也已能应用于实际需要,但仍有需要完善的地方,比如,对指针和结构体的处理就不是很理想。

C语言编程题判分系统的研究与实现探讨

C语言编程题判分系统的研究与实现探讨

C 语言编程题判分系统的研究与实现探讨摘要】C 语言是一种目前国际上应用最广泛、最流行的计算机程序设计语言,具有汇编语言与高级语言的双重特点,其具有很强的数据处理能力,能编写不依赖计算机硬件的应用程序,因此被广泛应用于编写系统软件、软件开发、维图形与动画等。

随着计算机技术和互联网的不断发展,计算机的应用越来越普及,C 语言由于实践性强,已作为计算机专业的一门基础课程被纳入计算机等级考试中 C 语言编程题判分系统是C 语言在实际工作中被广泛应用的重要体现,C语言编程题判分系统不仅大大减轻了教师的工作量,还能激发学生学习C 语言的兴趣,提升教学质量。

【关键词】C语言,C语言编程题判分系统,B/S模式在高等院校的计算机应用教学中,由于计算机课程应用性强,理论知识相对较深,技术性要求也高,因此学生需要通过反复的实际操作,才能真正掌握相关计算机的应用技能,但是目前市面上没有实用性很强,且适合软件学院使用的网络教学平台,学生日常的课后作业、上机练习、考试试卷等主要由教师负责批改,不仅增加了教师的教学负担,学生也不能立即知晓自己学习的“缺口”和“漏洞”,尤其在编程技术的学习上,更是收效缓慢,学习效率低下,而C 语言编程题判分系统的设计与应用可以很好的解决这些问题。

本文将结合C语言编程题判分系统的特点,简要叙述C语言编程题判分系统的设计与实现。

、C 语言编程题判分系统的特点、结构一)特点:C 语言编程题判分系统使用擅长数据显示的JSP技术,为避免大量使用Java程序片段进行数据处理,在基于Servlet 的基础上采用MVC 模式进行系统开发;另外该系统使用Fredorn core8作为开发环境,采用B/S模式开发,并应用具有高性能和超强网络处理能力的JDK1.6+apache-tomcat6.0+mysql6.0 搭建服务器,不仅可使学生能直接通过浏览器登陆考试系统,简化操作,还能同一时间段负担大量学生对系统应用的需求,并保持系统的可靠、稳定。

程序设计考试系统自动评分策略的研究与实践

程序设计考试系统自动评分策略的研究与实践
昆 明 学 院 学 报
2 1 , 3 6 :1 3 0 1 3 ( ) 6 —6
CN 3—1 l / I S 1 7 5 2 1 G4 S N 6 4—5 3 69
J u n lo n n ie st o r a fKu mig Un v ri y
程序 设 计 考试 系统 自动 评 分 策 略 的研 究 与 实践
随 着 高 校 学 生 人 数 的 增 加 以 及 远 程 教 育 的 发 展 , 线 考 试 系 统 的 使 用 越 来 越 普 及 . 为 考 试 系 统 在 作
同 得 0分 .
王亚 宁, 何 英, 俞锐 刚, 洪孙 焱
( 昆明学 院 信息技术学院 , 云南 昆明 60 1 ) 5 24
摘要 : C语言上机考试系统 的 自动评分模块 为例 , 以 介绍 和分 析 了各种 题型的评分 策略及此关键 技术 的解决 方
案 , 给出了部分源代码. 并 针对 传统 的编程题 自动评分方法 以结果论成 败 , 符合教师 人工 阅卷 习惯 的问题 , 不 提 出了一种基 于程序理解 的动态测试 与静态分析组合方法 的编程题评分策略 , 该方法适用于考察考生对程序算 法
和关键语义 的正确: 自动评分策略 ; 关键 字匹配 ; 动态测试 ; 静态分析 ; 抽象语 法树
中 图 分 类 号 :P 1. 2 文 献 标 识 码 : 文 章 编 号 :6 4— 69 2 1 )6—06 — 3 T 3 15 A 17 5 3 (0 1 0 0 1 0
Ab ta t a ig t e a t c rn d l o n e a l a e i t eC p o r mmi g e a n t n s se s r c :T k n h u o s o i g mo u ef ra x mp e b s d Ol h r g a n x mi ai y t m。t i p p rp r c lr n o h s a e a t u a l i — i y to u e n n lz s t e s o i gsr tg e f a h t p e tq e t n a d g v st e s l t n o ek y t c n lg ,a d te s u c o e r d e s a d a ay e h c r t e i so c y e ts u s o n ie h ou i ft e e h oo y n h o r ec d n a e i o h i gv n s i e .W h l o a n ot o e s o ig meh d n wh c h r g a r n i gr s l i e e yh n rs o i g e u o t C — i c mp r g t h s c rn t o s i i h t e p o rm u n n e u t s v r ti g f c rn ,a n w a t mai SO e i o c r g sr tg i h c mb n sd n mi e t g a d sai n l ssb s d o r g a u d rt n ig p o o e .T i me h d fc s so h i t e ywh c o i e y a c tsi n t t a ay i a e n p o r m n e sa d n r p s d h s t o u e n t e n a n c o a c r t x r s in n p o r m lo i m n e n i o n si x mi e r ga c u ae e p e so s o r g a ag r h a d s ma t p i t n e a n ep o r m,e h n e h e o ma c f h u o t c rn t c n a c ste p r r n eo ea tmai s o i g f t c s s m n th st e i e f n a c rn e tr y t a d mac e h d a o e ma u ls o i g b t . e Ke r s u o t c rn t tge ; e o ns ma c i g d n mi e t g sai n lss a sr c y tx te y wo d :a t ma i s o i g sr e is k y p i t c a t hn ; y a c tsi ; tt a ay i ; b t ts na re n c a

程序设计语言考试系统组卷、评分方法的研究与实现

程序设计语言考试系统组卷、评分方法的研究与实现

程序设计语言考试系统组卷、评分方法的研究与实现一、研究背景及意义随着时代的发展,计算机技术的应用范围越来越广泛,程序设计语言的研究和发展也逐渐成为了热门话题。

程序设计语言考试作为一种重要的评价程序设计语言能力的方式,被广泛应用于学校的教学和各种考试中。

系统地搭建一种优秀的程序设计语言考试系统,能够帮助教师和学生更好地掌握相应的知识和技能,同时也能够帮助学生更好地备考和提高自身的水平。

二、研究内容及方法1. 系统需求分析首先对程序设计语言考试系统的功能、特性和技术要求进行详细分析,明确系统的基本要求。

2. 系统框架设计确定程序设计语言考试系统的整体框架结构,包括前端展示界面、后端数据存储和管理、中间考试逻辑的实现等。

3. 程序设计题目银行建设根据需要考察的程序设计语言的特点和难度,建设一定数量的程序设计题目银行,从而提供充分的题目资源。

4. 评分方法研究研究根据编译器输出、代码可读性、正确性等因素对程序设计题目进行评分的算法和方法,制定相应的评分标准。

5. 考试过程管理实现根据考试内容和规则,实现程序设计语言考试系统的相应考试过程管理,包括考试时间控制、试卷生成、答题卡管理等。

6. 前端界面和后端数据库开发开发程序设计语言考试系统的前端展示界面和后端数据库管理系统,保证考试系统能够正常运行和管理。

三、预期成果及意义通过以上方法和步骤,构建一套高质量、高效率的程序设计语言考试系统,其主要成果包括:1. 丰富的程序设计语言题目库,提供了充分的题目资源;2. 简单、易用的前端界面,让考试操作变得简单直观;3. 快速、准确的评分算法和方法,保证了评分的公正、合理;4. 稳定、可靠的后端数据库支持,确保系统运行和管理的顺利。

通过建设程序设计语言考试系统,可以帮助学校、教师和学生更好地掌握和应用相关知识和技能,同时也可以提高学生的学习积极性和考试成绩,对促进教育教学质量提升,培养具有实际能力的计算机人才具有积极的意义。

C语言编程题智能评分系统

C语言编程题智能评分系统
国内对编程题评分系统的研究起步较晚, 2000 年后一些权威的高校陆续自行开发建立 编程语言的在线测评平台。苏小红教授利用静
态分析的方法进行代码测试,在考虑到代码风 格与软件质量度量的基础上,通过提取抽象语 法树的方式进行程序的形式转换。“李永浩研 究出了基于程序理解的自动评分策略,该策略 利用程序理解的常规过程以及基本策略作为依 据制定编程题机器评分的方案。”[4] 马培军 等人对于程序理解的评分模型做了进一步的研 究,采用系统依赖图作为程序之间的中间表示 形式。在进一步优化后将学生编写的代码与标 准代码的依赖图进行匹配,以此为依据进行编 程题的评分。
C 语言编程题智能评分系统
文/黎青霞 杨乘
• Program Design 程序设计

本文通过对 C 语言编程题智
能 评 分 系 统 的 研 究, 分 析 了 此 评 要 分系统的研究意义及评分方法,
以 及 对 程 序 进 行 分 析, 分 析 其 中
的 词 法、 语 法 并 与 标 准 程 序 模 板
进 行 相 似 度 的 匹 配, 以 期 这 样 的
评分系统可以节约教师的阅卷时
间,可以为 C 语言在线考试系统
提供很好地支撑。
【关键词】C 语言编程题 代码关键字 骨架代 码 相似度匹配 智能评分
1 系统的研究意义
对于当前纸质化的 C 语言试卷或是无纸 化的 C 语言试卷,其包含的题型可以分为以 下几个大类:单选题、判断题、填空题、程序 改错题和便编程题。选择题、判断题、填空题、 程序改错题这几类题型客观性较强,无论是人 工阅卷还是机器阅卷都几乎不存在争议。编程 题主观性较强,在人工阅卷的过程中难免会存 在争议,对于机器阅卷而言,这更是一个难题。 编程题具有很强的灵活性,有的评分系统为降 低系统实现的难度,构建系统时几乎没有考虑 人工阅卷的思维方式,在评判编程题时只考虑 结果分值而忽略过程分值。学生编写的代码运 行结果与标准答案一致,则获得满分,运行结 果与标准答案不同,则判为零分;有的评分系 统虽然考虑了人工阅卷的思维方式,但并没有 很好地与之相契合,过程分值的判断依据不是 很合理。针对当前编程题评分系统的现状,希 望能研究出一个比较合理的 C 语言编程题智 能评分系统,一方面减轻教师的工作量,将以 往用于批改试卷的大量时间节约下来;另一方 面,对于 C 语言这种实践操作性高的学科, 在线考试系统更能贴合其对操作性的要求。许 多学校因评分系统的问题还是会选择纸质化的 考试形式,一个合理的评分系统可以提升在线 考试系统的价值,以更好的达到计算机评判系 统的公平性、情理性,会促进学校对其的使用。

C语言编程题自动评分系统的若干思考

C语言编程题自动评分系统的若干思考

C语言编程题自动评分系统的若干思考随着计算机技术的发展以及互联网的普及,办公自动化已无处不在。

作为一门基础课程,C语言考试应用系统也给批阅试卷的工作人员带来了很大的工作量,自上世纪六十年代起,国内外就陆续出现了许多关于语言类课程考试的软件系统,虽然很多已具有基本的随机答卷、上机考试及自动评阅等功能,但只针对客观题,因自然语言的刻画、人工智能、模式识别等核心技术发展缓慢,制约了编程题目阅卷系统研究发展。

所以,本系统针对C语言编程题目进行整体规划,致力于做出更精确的C语言编程题自动阅卷的方法,填补自动阅卷软件开发空白,减少人工操作的资源浪费。

1.系统运行环境智能C语言考试系统、自动评分系统的运行环境是根据我校现有的教学机房的硬件环境(每个机房有70台学生机和一台教师机)规划的,教师端和学生端都采用window 7操作系统,每个机房都采用校园公共网络提供的局域网,运用Myeclipse开发环境、MySQL数据库建立一套具有在线考试、自动评分等功能的C语言编程题目自动阅卷系统,并辅以AJAX技术,确定了用FreeMarker表现层技术增强用户与系统间的交互,加快系统运行效率,同时,尽可能细化评分点,增加准确性。

2.系统运行模式的选择系统采用B/S三层架构模式,系统的用户可通过Internet网络,客户端不需要手动安装软件,只要有浏览器就可以对系统进行访问和一般操作,本次对阅卷系统主要分析了的C语言编程题目评分功能,充分考虑到系统对灵活性和准确性的要求,并保证安全性的前提下,本系统采用B/S结构以达到轻客户端需求。

3.系统研究内容通过研究C语言程序结构,从编译原理角度设计评价模型,通过内部运行编译器对比动态运行结果,并且本课题创造性提出利用关键字对比、控制结构判断和正则表达式匹配三种静态测试技术作为结果比对方案的补充,既保证了程序判断的正确性,又确保了相对公正性。

编译结果对比要实现程序内部对C语言编译器的动态调用技术,通过比对测试结果和标准答案进行评分,对于不能编译部分,研究关键字库建立、控制结构规范化和正则表达式建立的具体方案。

C语言程序设计题自动评分算法的研究

C语言程序设计题自动评分算法的研究

Computer Knowledge and Technology 电脑知识与技术第7卷第7期(2011年3月)C 语言程序设计题自动评分算法的研究李琦(四川理工学院计算机学院,四川自贡643000)摘要:目前主要的C 语言上机考试系统程序设计题主要采用的是结果比对评分法,这种方法并不查看考生的程序内容,不能反映考生的真实水平并且有失公允。

在比较结果的评分方法基础上,增加了修复编译评分与关键代码对比评分,使评分结果更加公正、准确,使评分结果更加接近于人工阅卷,具有很好的实用价值和应用前景。

关键词:C 语言程序设计题;自动阅卷;编译原理;关键代码对比中图分类号:TP312文献标识码:A 文章编号:1009-3044(2011)07-1585-04A Research on the Way of C Language Programming Automatic JudgingLI Qi(School of Computer Science,Sichuan University of Science and Engineering,Zigong 643000,China)Abstract:Most of C language automatically scoring systems are based on results compared for marking on programming problems,can't accurately and impartially mark students'real ability.In order to make the marking system more objective and justly,basing on the method of compare result,New system has been designed to combine the method of modification compiling and key codes comparing judging.A lot of testing and using in a limited scope have proved that the score approaches to the standard which artificially scoring ,the system has a good practical value and application prospects.Key words:C language programming;automatic judging examination paper;compile principle;key codes comparing1前言1.1国内外主观性试题测评技术研究现状和发展态势C 语言是国际上广泛流行的计算机高级程序设计语言,在各类高等院校的计算机及相关专业中,C 语言均被列为一门必修的基础课程。

哈尔滨工业大学科技成果——C语言编程题自动评分系统

哈尔滨工业大学科技成果——C语言编程题自动评分系统

哈尔滨工业大学科技成果——C语言编程题自动评分系统主要研究内容随着学生数目的不断增加和远程教育的发展,如何利用计算机来准确迅速地评测人的知识能力水平尤其是应用实践能力成为新的研究热点。

其中“程序设计语言”的无纸考试和自动评分是当前计算机辅助教学领域比较热门的一个研究方向。

但现有的“程序设计语言”考试系统的自动阅卷评分均采用客观题型,即单选、多选和正误判断等标准化试题,而对最能反映学生对程序设计语言掌握程度及应用技能的主观编程题却缺少有效实用的解决办法,一般的课程结业考试均为人工批改编程题。

如果能实现编程题的计算机自动评分,不但可以把教师从繁琐枯燥的批卷工作中解放出来,确保学生成绩更加公正、合理。

对于实现无纸考试,尤其是远程教学具有重要的实际应用意义和推广价值。

C语言编程题自动评分系统v1.0是一种新型的C语言在线考试和评分系统。

不同于已有的程序设计考试系统,C语言编程题自动评分系统v1.0不但可以对客观题型进行自动阅卷评分,还可以对学生C 语言程序进行自动评分。

该系统与其他机考系统的不同之处在于:不是“机上考试+程序备份+人工机上阅卷”的模式,而是“机上考试+机器阅卷自动评分”的模式。

技术特点及优势1、能够实现主观编程题的自动评分,为程序设计语言的考试提供了一种全新的模式,突破了以往网上考试系统只能进行客观题自动评分的局限性。

2、不仅能根据程序的结构和语义进行自动评分,而且还能根据程序的运行结果自动评分,对于不完整和有语法错误的程序也能根据教师指定的采分点语句进行评分。

3、实时反馈:学生在客户端进行考试时,向服务器端提交答案后,可以立即获得评分结果,促进学生的学习、提高学生的编程实践能力。

4、从实践角度来看,它将“上机实验”和考试很好的结合在一起,进一步提高了学生的实践能力,加深了学生对编程知识的掌握。

对于C++语言考试编程题自动评分系统的研究

对于C++语言考试编程题自动评分系统的研究

对于C++语言考试编程题自动评分系统的研究
张晓光;张贞;牛永洁
【期刊名称】《现代电子技术》
【年(卷),期】2010(33)18
【摘要】为了使学生适应计算机语言考试,考核学生应用C/C++编写程序的能力,
实现C++语言考试的计算机阅卷,提出了针对C++程序上机考试的自动评分系统
的构建方式与算法研究.用Windows API函数做了深入的研究与分析,对如何匹配、查找程序的关键语句进行了分析和研究.该系统对C++程序上机考试的客观题和主观题的计算机自动评分采用多种的方法,完成了对C++语言考试的自动评分.
【总页数】3页(P51-52,56)
【作者】张晓光;张贞;牛永洁
【作者单位】延安大学,计算中心,陕西,延安,716000;延安大学,计算中心,陕西,延安,716000;延安大学,计算中心,陕西,延安,716000
【正文语种】中文
【中图分类】TN911-331;G420
【相关文献】
1.C语言编程题自动评分系统的设计与实现 [J], 胡霖;李溍溍;王庆;韩晓君;马远;郭
晓龙
2.面向综合实践能力考核的C语言编程考试自动评分系统 [J], 苏小红;王宇颖;王甜甜;王宽全
3.论基于网络的编程语言考试自动评分系统 [J], 刘志勇
4.计算机考试系统中Office操作题自动评分的研究 [J], 李建敏
5.基于C++的高校编程考试自动评分系统 [J], 王利云
因版权原因,仅展示原文概要,查看原文内容请购买。

C语言程序设计题自动评分算法的研究

C语言程序设计题自动评分算法的研究
A b tac :M o tofC a g g ut m a c U c rng sse sR e bae n e ut o pae orm akig o p o r mm i g pr lm ,c n t sr t s ln ua e a o t  ̄ y s o i y tm r s d o r slsc m r d f r n n r g a i n ob e s a
Vo .,No7 1 7 .,Ma c 01 ,p 1 8 —1 8 rh 2 p .5 5 5 8 1
T h 8 — 5l 5 9 9 3 5 9 9 4 e + 6 5 60 6 6 06 一
C语言程序设计题 自ቤተ መጻሕፍቲ ባይዱ评分算法的研究
李琦
( 四川 理 工学 院 计 算机 学 院 , I 四J f自贡 6 30 ) 4 0 0
l前 言
11国 内 外主 观 性 试题 测评 技 术 研 究 现 状和 发 展 态 势 .
C语 言 是 国 际上 广 泛 流 行 的计 算 机 高 级 程 序设 计 语 言 , 各 类 高 等 院 校 的计 算 机 及 相关 专业 中 , 在 C语 言均 被 列 为 一 门必 修 的基
础 课 程 。当前 对 该 课 程 的 考评 , 常采 用 人 工 命 题笔 试 、 通 人工 改卷 评 分 。这 种 方 式 需付 出大 量 劳 动 , 率 低 下 , 客 观性 受 到 任课 教 效 且 师 水平 、 经验 、 性甚 至 道 德 水 准 的影 响 。这 种 考 试 方 式 , 然 已 经不 适 应 计 算 机 教 育发 展 的 需 要 。利 用 计算 机 实 现 无 纸化 考 试 , 个 显 已
IS 1 0 - 0 4 S N o 9 3 4
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

对于C++语言考试编程题自动评分系统的研究
作者:张晓光,张贞,牛永洁
来源:《现代电子技术》2010年第18期
摘要:为了使学生适应计算机语言考试,考核学生应用编写程序的能力,实现语言考试的计算机阅卷,提出了针对程序上机考试的自动评分系统的构建方式与算法研究。

用Windows API函数做了深入的研究与分析,对如何匹配、查找程序的关键语句进行了分析和研究。

该系统对程序上机考试的客观题和主观题的计算机自动评分采用多种的方法,完成了对语言考试的自动评分。

关键词:自动评分;主观题; 正则表达式; 可扩展标记语言
中图分类号:TN911-331; G420 文献标识码:A
文章编号:1004-373X(2010)18-0051-02
ZHANG Xiao-guang, ZHANG Zhen, NIU Yong-jie
(Computing Center, Yan’an University, Yan’an 716000, China)
Abstract: The building-up mode and algorithm for the automatic scoring system dealing with the
the
method to look for keywords of a program are analyzed. The aut
exams was implemented with several methods.Keywords: automatic scoring system; subjective question; regular expression; extensible markup language
0 引言
在当今社会计算机已经成为人们必须掌握的一项基本技能,在大学之中计算机课程也已经是每个大学生必修的课程。

随之而来的便是计算机教师的阅卷工作量不断增长,使用计算机自动批改试卷越来越成为教师们的愿望,同时提高对学生试卷的评定精度与速度势在必行。

计算机自动评分避免了以往人工批改试卷的种种问题,保证了对试卷评定的公正与客观。

当前,对于计算机考试中自动评分技术的研究已经有了很大的进展,但是对于计算机考试完全实现自动评分却一直未能解决。

造成这一问题的重要原因是自动评分中一些关键技术尚不成熟,所以完全解决计算机考试自动评分问题在当前的技术条件下尚不可能。

但是,对于计算机程序语言来说,
因为相对自然语言,其所受到的约束和限制相当严格,所以实现对计算机考试中计算机程序语言考试的自动评分在技术上是可以实现的。

在当前的计算机程序语言考试中主要分为客观题(比如填空题和改错题)和主观题(比如编程题)。

客观题的自动评分在技术上比较容易实现,而编程题这一常见的主观性题型的自动评分却没有较好的解决方法。

因为,如果仅以考生编写的程序运行结果作为评判标准的话,虽然技术上很容易实现,但是相当的不客观。

这种方法忽视了考生的源代码与编程思想,这是与人工评分相违背的。

要使编程题的评分客观公正,就必须对试卷中考生所编写的源代码进行分析与处理,如何分析试卷中考生的源代码已成为解决对编程题自动评分的关键。

1 国内外编程题自动评分研究现状
1.1 国内编程题自动评分研究情况
在国内,上海大学段汉周[1]等人提出的程序设计考核自动评阅系统在进行评分时,需要教师事先根据试题做好一个正确的VB工程文件,然后自动评分系统提取考生所做工程文件中的内容与教师事先提供的工程文件内容进行比较判断,统计出考生的各种错误,然后根据考生所犯的错误,依据评分标准进行评分,从而得出考生的成绩。

但是这套系统的评分是建立在无法通过编译或者不能运行的程序都是完全错误的基础之上的,只有没有出现上述情况的程序才可以进行评分,否则就自动给零。

此外,对于系统的可靠性,防止使用用户程序时出现的各种问题与系统崩溃、死机等情况做出了专门的设计,取得了良好的效果。

乔善平等人提出了从人工智能可信度的角度引入[2]:执行可信度、程序的最大相似性与代码可信度和指数曲线衡量标准与输出可信度几个新的概念, 然后分析了实现的过程,并且将整个程序设计分为几个部分执行、代码、输出和其他因素,使之存在偏序和制约关系, 以实现自动评分。

1.2 国外编程题自动评分研究情况
由英国诺丁汉大学所研发的CourseMaster系统,其功能是比较完善的,可以自动对提交给它的计算机程序进行测试,同时给出测试结果和分析结果,包括了静态测试和动态测试两部分。

但是在动态测试方面,由于诺丁汉大学的CourseMaster系统所用的算法设计有缺陷,因此造成了动态测试效果与实际偏差较大[3]。

2 设计思想
对于程序来说,判断其是否正确,最直观的办法就是判断它是否能够完成规定的功能,也就是其运行结果与实际应有的结果比较是否一致。

通过使用数据文件,可以将语言的运行结
果保存起来,所以能够很容易地将其结果文件与标准答案进行比较,从而判定考生所编写程序的错对,以给其应得的分数。

对于那些有结果但不正确,或者无法编译运行的考生代码,检查其算法思想是否准确合理编程为工作目标,虽然在语言中对于一个问题可以用多种方法完成代码的编写,但是其算法思想是基本一致的。

例如一个排序程序应该如下程序设计结构
for(i=0;i
for(j=i+1;j
if(a>b)
{

}
根据语言的关键字,可以抽取骨架为for()for()if(){}或者for(){for()if(){}}等,从考生文件抽取的骨架与标准的骨架相对比,根据异同给予一定的分数。

在对考生程序进行评分时,由于考生编写程序时常常出现死循环问题,而有死循环的程序如果被Shell函数调用启动后将因无法结束而使系统崩溃。

但通过Visual Basic调用Windows提供的控制应用程序API函数则可防止这种情况的出现。

为了避免考生互相抄袭,该系统采用了两种预防措施。

第一种措施,不同考生在考试期间随即抽取试题库中不同的试题,但是还可能出现相近考生试题相同的情况。

从实际出发,该系统采用“记录解答过程”的方法,利用Windows内部功能[4-7],或考核软件提供的“宏”功能,跟踪记录考生操作的每一步骤,形成独立的日志文件,并通过特殊方法“固化”在当前位置,或者直接传送到服务器上,作为评分的必需内容。

评分时,如搜索不到指定日志文件,就可认定为“抄袭”[5]。

3 系统设计
在系统中对编程题的实现,使用其运行结果与标准答案之间的比较来判定分数设计也相当容易。

但是,要实现当程序运行结果与标准答案比较不匹配或程序无法编译运行的情况,则如何检测其程序的编程思想是自动评分系统的要点。

该系统设计的总体思路如图1所示。

图1 系统流程图
4 结语
该系统经过多次实际使用,有效地避免了上述问题的出现,能够准确定位问题的位置,并且对于一题多解的问题也运行良好,在程序编程问题中,能够基本体现公平、客观地评价一个学生的编程思想,特别是操作日志的使用,有效地监督了学生的“抄袭”现象。

对程序编程时,不能通过编译的,但是已经编写了一部分程序的考生,使用提取骨架的方法,基本能够给考生一个公平的评价,改善了过去很多系统给学生打零分的情况[8-9]。

参考文献
[1]段汉周,凌捷,郑衍衡.Visual Basci程序设计考核自动评阅系统中若干问题的研究[J].计算机工程,2001,27(4):167-168.
[2]REDMIL Felix. Exploring risk-based testing and its implications[J]. Software
Testing,Verfication and Reliability,2004,14(1):3-15.
[3]乔善平.基于智能移动Agent的C语言考试系统[J].计算机工程与科学,2004(4):29-31.
[4]朱友芹.WindowsAPI 参考大全[M].北京:电子工业出版社,2000.
[5]尉宏波.Windows API编程范例入门与提高[M].北京:清华大学出版社,2003.
[6]林仓.Windows API编程[M].北京:清华大学出版社,2005.
[7]求是科技.Windows API程序设计参考大全[M].北京:人民邮电出版社,2006.
[8]高思丹,袁春风.主观试题的计算机自动批改技术研究[J].计算机应用研究,2004,21(2):181-185.
[9]程华.计算机语言类课程主观试题的自动评分方案设计[J].电脑学习,2006(1):16-17.
[10]李旻,陈和平.正则表达式在数据库查询中的应用[J].计算机工程与设计,2006,27(12):3-5.
[11]田绪安,郭华磊,刘瑞光,等.基于模糊匹配的主观题评分在线考试系统[J].现代电子技
术,2007,30(12):96-98.
[12]司存瑞,周岩,孙米.网络考试系统平台的设计与实现[J].现代电子技术,2006,29(20):44-46.。

相关文档
最新文档