




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于Java的考试系统对C语言程序题的考核及自动判卷功能的设计与实现邵新慧李响等【论文摘要】在考试系统中,实现自动判卷是程序题考核设计的核心。围绕该核心,开发设计“教师端程序题模板生成工具”、“学生端答题界面”、“服务端自动判卷逻辑业务”三个子模块,以确保每一个程序题都有一个全面而准确的判卷模板与之对应,学生可以方便快捷地在可编辑区域编写代码并进行测试和提交,判卷模板和学生代码自动组合并编译成一个可执行程序,从而得到判卷得分临时数据文件,考试系统通过读取该临时数据得到判卷结果。【论文关键词】考试系统程序题自动判卷 C语言 Java语言随着计算机技术的发展,越来越多的考试采用上机考试的形式。对选
2、择题、判断题这类有固定答案的考试题型的判卷是很简单的;然而,对程序题这种表述形式多样化的题型,很难通过自动判卷给出合理的分数,多数是针对某一个运行结果进行判断,未能满足根据得分点进行判卷的需求。本文通过详细介绍“教师端程序题模板生成工具”、“学生端答题界面”、“服务端自动判卷逻辑业务”三个模块的设计,阐述了程序题自动判卷、以及合理评分的解决方案,在一定程度上提升了程序题考试的可行性、以及程序题判卷的合理性。1 自动判卷功能的设计方案1.1 设计思路由于考试系统的开发语言是面向对象语言Java;程序题考核所用的语言为是C语言。所以很难通过代理模式实现对C语言程序的处理。因此,可将程序题判卷从系统
3、整体设计中独立出来,两者之间通过某个简单的数据存储建立联系。其中,judgeMain.cpp文件是可以实现自动判卷、并将得分纪录写入记事本的源代码文件。因此,只要获得judgeMain.cpp文件,自动判卷问题就可以得到解决。1.2 设计方案获取judgeMain.cpp文件,使考试系统整体设计和程序题自动判卷业务逻辑相对独立,通过exec(String command方法编译、链接、运行判卷程序。假设A:每个用于学生考试的考试模板都有一个与之对应的判卷模板,该判卷模板通过输出流生成一个记事本文件,并且学生在考试模板里填写的内容可以自动而正确地填写到判卷模板里。假设B、有一个简单可用的程序题模
4、板生成工具,通过该工具,结合某个欲要考核算法或知识点的源代码文件,能够简单快速的生成一一对应的考试模板和判卷模板。假设C、有一个严格规范而且灵活简洁的程序题答题编译界面,既方便学生填写、编译、运行程序,而且可以准确地将学生填写区域的代码上传到服务器。可见,假设B和C成立时,A成立,从而可获得judgeMain.cpp文件。(1教师端程序题模板生成工具;(2严格而便捷的学生断答题界面。2 教师端程序题模板生成工具2.1 功能实现为实现程序题自动判卷功能,设计程序题模板生成工具,并让其实现以下功能:导入一个源文件,生成一一对应的考试模板、判卷模板,并为生成的考试、判卷模板提供浏览、测试功能,以便及
5、时修改和调整。2.2 设计方法对源文件以注释的形式添加一些特殊标记,通过识别这些特殊标记对源代码自动修改或增添。例如:/code_fosOpen 开文件流标记,在判卷模板中自动增加定义记事本文件的输出流代码;/code_fosClose 关文件流标记,在判卷模板中自动增加关闭文件流和释放内存代码;/code_judge 判卷变量标记,设置得分点;/code_delete 挖空行标记,所设置行变为下划线;/edit_function 编辑函数标记,设置函数,由学生编写函数体;/code_resetInstance 修改用例标记,为判卷模板和考试模板设置不同的测试用例。功能:在判卷模板中将考生答案
6、和正确答案进行对比。文件描述:(1头文件(compare.h,文件内容如右图。(2静态库文件(compare.lib,为compare.h中声明的方法提供具体实现。文件引用:#include"compare.h"#pragma comment(lib,"compare.lib"针对1中的不同标记,该工具会自动生成相应的按钮,通过点击按钮和简单的设置生成判卷、考试模板:(1判卷模板。点击按钮实现函数体编写、代码段填空、判卷变量的选择,通过对判卷变量正确值的设置、以及判卷代码插入位置的设置,可预览、测试、生成判卷模板。(2考试模板。在判卷模板设置的基础上,通
7、过对测试用例进行修改,可预览、测试、生成考试模板,并具有相应题目说明文件的编写功能。2.3 原理解释与图解现结合一个简单的例子对模板生成工具的原理进行解释,并用图解展示:第一步:选择载入用于生成考试、判卷模板的.cpp源文件,然后根据按钮提示,选择挖空行、编辑函数、判卷变量等,并根据提示进行必要的设置(见图3。附:为便于说明问题,此处以一个求取平方数的简单程序为例,本例中只有一个判卷变量(对应一个得分点的设置,对于较复杂的程序,可以设置多个得分点。第二步:点击“预览”菜单对将要生成的判卷模板进行预览,初步查看是否正确,然后点击“测试”菜单选择对判模板进行自动编译运行,若正常运行,转步骤三;若失
8、败,根据编译运行的错误提示,返回步骤一进行修改设置。第三步:点击“生成”菜单,选择保存位置,即可生成判卷模板(见图4。第四步:进行用例修改,修改后的用例用于生成学生考试模板(见图5。第五步:预览、测试运行,最终生成考试模板,并根据运行结果编写题意说明文件(见图6,图7。3 学生端答题界面3.1 功能要求为严格保证自动判卷的实现,同时满足学生方便答题需求,学生端答题界面须满足如下功能要求:(1无需启动客户端编译器,学生直接在答题界面的可编辑区域编写代码,其他区域的代码无法修改;(2具有便捷的编译运行程序的功能,并提示编译或运行错误;(3学生编写的函数体和填写的代码段可准确无误上传至服务端。3.2
9、 实现方法要点(1将题意说明和不可修改的源代码部分显示为只读;(2识别考试源代码中的“/添加函数实现代码”字段,以及填空标记下划线“_”,将对应区域设置为可编辑;(3在可编辑区域对应的控制程序中添加键盘监听:实现对括号、引号的自动配对,以及换行时提供自动缩进,为学生快速编写格式规范的代码提供方便。由于仅提取学生编写的函数题代码和学生填空代码段,只需提取可编译区域的文本记录即可,而且信息量小,因此可采用一般socket通信的形式(不用文件上传等形式将代码段上传至服务端。3.3 例子与图解(1将2中得到的考试模板和题意说明文件用于学生考试端程序题考试(如图8;(2在函数编写区域编写代码,将填空横线
10、删除并填写代码,然后直接点击编译运行(图9。(3根据错误提示修改代码,重新编译运行(图10。(4点击交卷后,学生编写的函数体和填空代码行上传至服务器(图11。4 服务端自动判卷逻辑业务4.1 自动判卷业务设计基于模板生成工具、学生答题客户端的设计和实现,自动判卷逻辑业务设计如下:(1一般情况下:只需把学生上传的答题信息写入相应的判卷模板中,然后生成临时判卷源文件,针对这个临时文件编译运行即可得到判卷结果。(2异常情况:如果学生提交的程序没来得及调试正常而存在死循环,需要在A的基础上进行如下改进:通过倒计时线程启动判卷程序,倒计时线程结束后,若判卷程序还在运行,则杀死,并将异常记录写入数据库。逻
11、辑图如下(图12。4.2 评分过程在考试、判卷模板制作过程中,可以根据每个题目的实际情况设计判卷(得分变量,并针对每一个判卷变量考核知识点难度设置得分权重(学生不知道具体的得分变量和权重。然后,将学生上传的代码插入到判卷模板中,生成judgeMain.cpp,针对每个得分点都会调用compare函数比较学生答案和标准答案,得到一个布尔型返回值,然后根据这个返回值在记事本文件(grade.txt里写入1(得分或0(不得分。该自动判卷程序可满足对一个程序题进行细节得分点的判断,而不是笼统的仅仅判断最终答案,在一定程度上保证了给分的合理性。中国论文榜-中国权威论文发表平台,我们为您提供专业的论文发表咨询和论文发表辅导! 5 结语 通过上述方案设计的程序题考核与判卷模块, 是东北大学数值分析考试系统 (可通过程序题考核学生对数值算法的理解与应用能力)的重要组成部分, 该 考试系统的测试结果和初期使用情况证明:对于程序题考核和自动判卷,这样的 设计方案是可行的、对判卷过程中的常处理是可行的,最终判卷结
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 绿化养护合同模板
- 木片加工中的产品质量提升方法考核试卷
- 漳州秘书培训课件
- 装修工程合同范本照片
- 团队展示培训课件
- 环保科技项目投资合同
- 生物科技领域新产品研发推广合作协议
- 单项工程劳务分包合同
- 木方板材购销合同
- 员工培训方案与实施细则
- 2023年高中生物新教材人教版(2023年)必修二全册教案
- 小学美术 四年级 人教版《造型•表现-色彩表现与创作》“色彩”单元美术作业设计《色彩的明与暗》《色彩的渐变》《色彩的情感》
- 中国心脏重症镇静镇痛专家共识专家讲座
- 川教版七年级生命生态安全下册第1课《森林草原火灾的危害》教案
- 护理人员心理健康
- 安全技术说明书粗苯
- 六年级上册心理健康教育课件-健康上网快乐多 北师大版
- 单招面试技巧范文
- 情报信息收集报知
- 简约国潮行业通用中国风鎏金PPT模板
- 伴肺部损害的自身免疫病-王国春
评论
0/150
提交评论