当前位置: > 论文中心 > 计算机论文 >

基于Java的考试系统对C语言程序题的考核及自动判卷功能的设计与实现(3)

时间:2016-04-08 08:38 点击:
3.1 功能要求 为严格保证自动判卷的实现,同时满足学生方便答题需求,学生端答题界面须满足如下功能要求: (1)无需启动客户端编译器,学生直接在答题界面的可编辑区域编写代码,其他区域的代码无法修改;(2)具

  3.1 功能要求
  为严格保证自动判卷的实现,同时满足学生方便答题需求,学生端答题界面须满足如下功能要求:
  (1)无需启动客户端编译器,学生直接在答题界面的可编辑区域编写代码,其他区域的代码无法修改;(2)具有便捷的编译运行程序的功能,并提示编译或运行错误;(3)学生编写的函数体和填写的代码段可准确无误上传至服务端。
  3.2 实现方法要点
  3.2.1 答题界面
  (1)将题意说明和不可修改的源代码部分显示为只读;(2)识别考试源代码中的“//添加函数实现代码”字段,以及填空标记下划线 “_________________”,将对应区域设置为可编辑;(3)在可编辑区域对应的控制程序中添加键盘监听:实现对括号、引号的自动配对,以及 换行时提供自动缩进,为学生快速编写格式规范的代码提供方便。
  3.2.2 编译运行
  通过java.lang.Runtime实例的exec(String command)方法,启动独立进程调用编译和链接命令,并获取该进程的输入流,提取编译链接过程中的错误信息,实现编译错误提示;若编译正确,则运行程序。
  3.2.3 上传代码
  由于仅提取学生编写的函数题代码和学生填空代码段,只需提取可编译区域的文本记录即可,而且信息量小,因此可采用一般socket通信的形式(不用文件上传等形式)将代码段上传至服务端。
  3.3 例子与图解
  (1)将2中得到的考试模板和题意说明文件用于学生考试端程序题考试(如图8);
  (2)在函数编写区域编写代码,将填空横线删除并填写代码,然后直接点击编译运行(图9)。
  (3)根据错误提示修改代码,重新编译运行(图10)。
  (4)点击交卷后,学生编写的函数体和填空代码行上传至服务器(图11)。
  4 服务端自动判卷逻辑业务
  4.1 自动判卷业务设计
  基于模板生成工具、学生答题客户端的设计和实现,自动判卷逻辑业务设计如下:
  (1)一般情况下:只需把学生上传的答题信息写入相应的判卷模板中,然后生成临时判卷源文件,针对这个临时文件编译运行即可得到判卷结果。
  (2)异常情况:如果学生提交的程序没来得及调试正常而存在死循环,需要在A的基础上进行如下改进:
  通过倒计时线程启动判卷程序,倒计时线程结束后,若判卷程序还在运行,则杀死,并将异常记录写入数据库。

   论文榜(www.zglwb.com),是一个专门从事期刊推广、投稿辅导的网站。
本站提供如何投稿辅导,寻求投稿辅导代理,快速投稿辅导,投稿辅导格式指导等解决方案:省级投稿辅导/国家级投稿辅导/核心期刊投稿辅导//职称投稿辅导。


栏目列表
联系方式
推荐内容
 
QQ在线咨询
投稿辅导热线:
189-6119-6312
微信号咨询:
18961196312