- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Java的考试系统对C语言程序题的考核和自动判卷功能的设计与实现
中国论文榜--中国权威论文发表平台,我们为您提供专业的论文发表咨询和论文发表辅导!
基于Java的考试系统对C语言程序题的考核及自动判卷功能的设计与实现
邵新慧 李响等
【论文摘要】在考试系统中,实现自动判卷是程序题考核设计的核心。围绕该核心,开发设计“教师端程序题模板生成工具”、“学生端答题界面”、“服务端 自动判卷逻辑 业务”三个子模块,以确保每一个程序题都有一个全面而准确的判卷模板与之对应,学生可以方便快捷地在可编辑区域编写代码并进行测试和提交,判卷模板和学生 代码自动组合并编译成一个可执行程序,从而得到判卷得分临时数据文件,考试系统通过读取该临时数据得到判卷结果。 【论文关键词】考试系统 程序题 自动判卷 C语言 Java语言 随着计算机技术的发展,越来越多的考试采用上机考试的形式。对选择题、判断题这类有固定答案的??试题型的判卷是很简单的;然而,对程序题这种 表述形式多样化的题型,很难通过自动判卷给出合理的分数,多数是针对某一个运行结果进行判断,未能满足根据得分点进行判卷的需求。本文通过详细介绍“教师 端程序题模板生成工具”、“学生端答题界面”、“服务端自动判卷逻辑业务”三个模块的设计,阐述了程序题自动判卷、以及合理评分的解决方案,在一定程度上 提升了程序题考试的可行性、以及程序题判卷的合理性。 1 自动判卷功能的设计方案 1.1 设计思路 由于考试系统的开发语言是面向对象语言Java;程序题考核所用的语言为是C语言。所以很难通过代理模式实现对C语言程序的处理。因此,可将程序题判卷从系统整体设计中独立出来,两者之间通过某个简单的数据存储建立联系。 记事本文件(设为grade.txt)可作为上述的中介数据存储,其主要用于存储学生得分记录。一方面:系统可以读取文件信息将得分记录存入 数据库;另一方面:grade.txt可以通过调用java.lang.Runtime实例的exec(String command)方法运行某个可执行文件(设为judgeMain.exe)来得到。而judgeMain.exe文件、也可以通过调用 exec(String command)方法对某个源文件(设为judgeMain.cpp)进行编译和链接而生成。 其中,judgeMain.cpp文件是可以实现自动判卷、并将得分纪录写入记事本的源代码文件。因此,只要获得judgeMain.cpp文件,自动判卷问题就可以得到解决。 1.2 设计方案 1.2.1 核心方案 获取judgeMain.cpp文件,使考试系统整体设计和程序题自动判卷业务逻辑相对独立,通过exec(String command)方法编译、链接、运行判卷程序。 1.2.2 judgeMain.cpp文件的获取 假设A:每个用于学生考试的考试模板都有一个与之对应的判卷模板,该判卷模板通过输出流生成一个记事本文件,并且学生在考试模板里填写的内容可以自动而正确地填写到判卷模板里。 假设B、有一个简单可用的程序题模板生成工具,通过该工具,结合某个欲要考核算法或知识点的源代码文件,能够简单快速的生成一一对应的考试模板和判卷模板。 假设C、有一个严格规范而且灵活简洁的程序题答题编译界面,既方便学生填写、编译、运行程序,而且可以准确地将学生填写区域的代码上传到服务器。 可见,假设B和C成立时,A成立,从而可获得judgeMain.cpp文件。 1.2.3 结论:开发以下两个模块支撑自动判卷实现 (1)教师端程序题模板生成工具;(2)严格而便捷的学生断答题界面。
1.2.4 根据以上分析,自动判卷模板的原理可用图1来描述 2 教师端程序题模板生成工具 2.1 功能实现 为实现程序题自动判卷功能,设计程序题模板生成工具,并让其实现以下功能:导入一个源文件, 生成一一对应的考试模板、判卷模板,并为生成的考试、判卷模板提供浏览、测试功能,以便及时修改和调整。 2.2 设计方法 2.2.1 对导入源文件预处理 对源文件以注释的形式添加一些特殊标记,通过识别这些特殊标记对源代码自动修改或增添。例如: //code_fosOpen 开文件流标记,在判卷模板中自动增加定义记事本文件的输出流代码; //code_fosClose 关文件流标记,在判卷模板中自动增加关闭文件流和释放内存代码; //code_judge 判卷变量标记,设置得分点; //code_delete 挖空行标记,所设置行变为下划线; //edit_function 编辑函数标记,设置函数,由学生编写函数体; //code_resetInstance 修改用例标记,为判卷模板和考试模板设置不同的测试用例。 2.2.2 判卷函
原创力文档


文档评论(0)