翟瞳飞,王少魁,曹 添,魏薏恩,张鸣华
(三明学院 信息工程学院,福建 三明 365004)
便携式程序设计测评系统设计与开发
翟瞳飞,王少魁,曹 添,魏薏恩,张鸣华
(三明学院 信息工程学院,福建 三明 365004)
针对程序设计类课程课堂测验以及内网测验的需求,设计开发便携式程序设计测评系统。系统部署在U盘,运行于Windows平台,基于Tomcat服务器,采用Java Web和SQLite数据库技术,无需部署即可迅速进行一场测验,轻量级服务器配合轻便式数据库使得题目抽选,IP绑定,考试监控等功能即插即用,方便教师随时随处进行测验。
便携;程序设计;测评;考试监控
编程能力能力的培养过程是实践的过程。大多数的高校都使用了OJ(Online Judge程序设计在线测评系统)进行竞赛培训和教学,并取得了显著的成效。OJ系统已经成为程序设计类课程不可缺少的教学平台。但是,也正是由于OJ系统的公开性、共用性,使得教师无法随意的使用它进行小规模的课堂测试,并且完全依赖于网络的状态。有时,外网有许多不可控性,因此,教师急需一种远离外网干扰、便携式的、机房内即插即用的程序设计测评系统。
本项目设计的系统建立在局域网的体系下,U盘所在的电脑即为临时的服务器。系统由U盘、局域网教室组成,使用者为教师、学生。教师可以在U盘的系统中先建立考试,然后用U盘在教师机上部署服务,学生通过教师机提供的网址进行访问、读题、提交答题等。系统的拓扑图如图1所示。
便携式程序测评系统主要采用了 Jsp、Java web、CSS、JavaScript、JQuery,Servlet等技术实现。 系统前台用户对问题进行提交代码,系统根据用户提交的语言和代码,会解析judgeconfig目录下ServerConfig.xml文件(如图2),根据用户提交的语言去获取代码运行的时间、内存、运行文件的后缀名、代码编译的相对路径、编译的Cmd命令和运行命令,根据运行命令执行后台测试的输入数据,再将运行结果和测试数据的输出数据比较比对,返回比对的结果。达到便携测试的效果。
图1 系统拓扑图
图2 代码文件
便携式程序测评系统采用B/S(Browser/Server)的模式,遵循MVC的3层架构,即底层Model负责数据模型、中间层Control负责业务逻辑的处理、高层View负责用户界面。3个层次功能相互独立,有利于系统日常维护及功能拓展。
为了更好的实现便携性,本系统将服务器端的相关配置(如语言信息、编译器路径和后台数据路径等)以相对目录的形式写入ServerConfig.xml文件,并设计了com.smu.judge包内的单例类EntPath,以用于读取载入配置信息。以上操作减少了部署服务器端所需进行的繁琐操作,增强了系统的便携性。
在代码评测部分,本系统选择使用Process类封装调用Judge.exe的过程。Process类提供了执行从进程输入、执行输出到进程、等待进程完成、检查进程的退出状态以及销毁进程的方法,为用户选择的语言适配相应的编译、运行环境。便于管理评判过程。
本系统实现了从U盘自动部署服务 (而不是在现有的固定的大服务器上部署服务),教师可以在任意一台配置有Java环境的电脑中准备和添加考试,然后在机房的任意一台电脑中插入U盘就可以立即使用。本系统自带题库,出题方式多样灵活,提升了题目的质量同时还可以减轻教师的工作量。本系统保留了OJ的许多功能(出题、测评、排名、评分、查看权控制、账户管理等),还提供了多方位的考试监控,例如IP绑定,U盘和FTP监控、使用者动作记录、考试记录等。系统功能结构图如图3所示。
便携式程序设计测评系统包括了管理员表、用户表、题库表、考试列表、考试问题表、考试排名表、考试分数表等15张表。
其中管理员表存储着管理员的账号、密码、限权、注册时间、登录ip。如表1所示。
用户表存储着用户的账号、密码、邮箱、性别、学校等信息。如表2所示。
图3 系统功能结构图
表1 管理员表
考试表存储着考试的id、考试标题、考试的类型、考试的时间长度、考试状态、是否能提交、发布者、开始时间、结束时间、是否进行IP绑定,如表3。
U盘部署服务器。测验通过U盘中部署的服务器启动,在局域网内使用,防止外网的干扰,增强了测试的保密性,同时使用便携的SQLite数据库,保证稳定性的同时也便携易用。
引入题目数据库,并对题目进行分类,教师可以针对某一知识点进行题目编排,也可以选择多个类别的题目进行综合测试。相比无类别的题库,本系统使题目设置更为灵活。管理员在添加题目时需选择题目分组,添加完成后系统会生成带有分组的题库并存入数据库。过程如图4所示。
表2 用户表
表3 考试表
用户加入一场测验时系统会读取已抽选的题目数量,并将题目数量与当前分组数进行比较,如果已经抽选的题目数量与当前分组数一致,即添加到用户题目表中;若抽选的题目数量与当前分组数不一致,系统则会读取分组数并且从每组中随机抽取题目,再添加至用户题目表中,最后将题目呈现给用户。过程如图5所示。
图4 题库建设
图5 题目抽选流程图
测验模式多样化。教师可以选择现场出题,也可以选择从预设的题库中抽选题目;可以选择限时并且开启监控的考试模式;也可以选择较为宽松的竞赛模式。
IP监控一方面是对整场测验设备的IP进行限制,保证学生只能在指定的机房的指定设备使用;另一方面是对设备Mac地址和IP地址的绑定,避免重复登录和一机多用户的情况,从而避免部分考试作弊发生。用户登录后系统执行request.getRemoteHost();以获取用户本机ip,再将用户id与ip地址存入contestip表中。当再次登录时系统会检测用户id与ip绑定情况,如与表中记录不符用户将无法登录,并收到提示本机已有用户登录。部分代码如图6所示。
图6 用户id与ip存入数据库
开启考试监控后,操作记录程序将静默运行在学生计算机上,以记录学生考试期间的操作,将记录结果存入服务器数据库中,教师可以查看任意学生考试时使用软件或其他操作记录,从而全方位监控考试。
便携式程序设计测评系统的开发是边使用、边改进,现在已经成为教学中的一个重要工具,可以支撑100台左右的机子同时使用。便携式的软件可以在U盘上,也可以放在任意的硬盘上,它是一个绿色软件。如果U盘采用闪盘,效果会更好。
[1] 李文新,郭炜.北京大学程序在线评测系统及其应用[J].吉林大学学报(信息科学版),2005,23(Z):170-177.
[2] 刘楠,孙国道,田贤忠.ACM 在线评判系统设计与实现[J].计算机时代,2010(2):34-35.
[3] 刘持标,吴俊,张鸣华,等.智能化网络考试监控系统开发[J].网络安全技术与应用,2013(7):90-92.
[4] 赵磊.基于 ACM_ICPC 在线测评系统的设计[J].电脑知识与技术:学术交流,2013(8):5004-5006.
(责任编辑:朱联九)
Design and Development of Portable Program Design Evaluation System
ZHAI Tong-fei,WANG Shao-kui,CAO Tian,WEI Yi-en,ZHANG Ming-hua
(School of Information Engineering,Sanming University,Sanming 365004,China)
Aiming at the requirement of classroom test of programming curriculum and the requirement of network test,the portable evaluation system for programming is designed and developed in this paper.Based on Tomcat server,the system is deployed in the U disk and run on the Windows platform by using Java Web and SQLite database technology.After the USB disk is inserted into the computer,a test can be quickly taken without deploying.The lightweight server and the portable database make the functions such as topic selection,IP binding and test monitoring plug and play,which is convenient for teachers to carry out tests at any time.
portable;programming;evaluation;test monitoring
TP311.52
A
1673-4343(2017)04-0041-05
10.14098 /j.cn35-1288 /z.2017.04.007
2017-05-08
全国大学生创新项目(201611311010)
翟瞳飞,男,内蒙古包头人,大学生。通讯作者:张鸣华,女,福建建瓯人,高级讲师。主要研究方向:算法、计算机图形与图像处理。