早就想设计一个在线的网络考试系统,但是笔者的编程技术有限,暂时还无法完成一个正规的考试系统。后来经过摸索,笔者使用Excel完成了一个简单的考试系统,经过几次考试的实验与改进,完全可以在平时的教学中运用。现把实现的方法与大家分享。
服务器端设置
首先在教师机上建立一个test文件夹,并建立两个电子表格文件,分别命名为“test.xls”和“汇总.xls”,其中“test.xls”为试卷文件,“汇总.xls”是用来汇总的文件。同时在该文件夹内建立58个文件夹(假设58个学生机),可以通过批处理的方法实现:
md s1
md s2
……
md s58
然后再将test.xls文件分别复制到这58个文件夹中:我们可以首先向s1中复制一个test.xls文件,然后再执行copy.dat,copy.dat内容如下:
copy s1\test.xls s2
copy s2\test.xls s3
……
copy s56\test.xls s57
copy s57\test.xls s58
现在每个文件夹中都有一个test.xls了,下面我们编辑test.xls和汇总.xls文件。
1. 试卷test.xls的设置
test.xls如图1所示(假设以20道选择题为例)。其中C1单元格为姓名填写处,E1单元格为学号填写处,A3~A22为答案填写区(20道题),选择题的选项用数字“1、2、3、4”,不要用字母,以防止学生输入字母与空格的混合。并把答题区的颜色设置为灰色,防止学生抄袭。
2. 汇总.xls的设置
如图2所示,建立两个表,第一个为答案表,用来收集试卷的第一列的答案和学号姓名。A2单元格为“='D:\test\s1\[test.xls]选择填空题'!$E$1”(统计学号),B2单元格为“=D:\test\s1\[test.xls]选择填空题'!$C$1”(统计姓名),C2:V2分别为“='D:\test\s1\[test.xls]选择填空题'!$A$3”(统计答案)、“='D:\test\s1\[test.xls]选择填空题'!$A$4”……“='D:\test\s1\[test.xls]选择填空题'!$A$22”。
然后选中A2:V2,将鼠标移动到右下角,变成黑色十字的时候,向下拖动到第59行(假设有58台学生机),此时第3~59行与第2行是相同的,都是“='D:\test\test\s1\[test.xls]……”,这里需要改一下,第4行改为s2、第5行该为s3,依次类推。为了更快捷,也可以使用“编辑”菜单中的“替换”命令,将每行中的“s1”替换掉。
然后再设计分数表,用来判断对错并统计分数,如图2所示。c2中输入“=IF(答案表!C2=C$61,$C$62,"0")”,将标准答案写在从c61单元格开始的第61行,该公式表示:如果c2等于标准答案c61单元格的数值,则显示c62指定的分数,否则为0分。然后选中该单元格,鼠标移动到右下角横向拖动20个格,然后再选中第一行纵向拖动58个格。
在C62中输入“2”,表示每道题2分,如图3所示。如果正确给2分,如果错误给0分。然后分别横向求和,就可以得到每个学生的分数。
学生机端设置
首先在学生机上建立一个隐藏共享文件夹,笔者所在机房中的d盘都是隐藏共享的。教师机上再共享一个“test$”共享文件夹,教师把考试文件复制到其中,让学生访问教师机上的“领取试卷”共享文件夹,运行其中的“领取试卷.dat”,内容为“copy \\teacher\test$\test.xls d:\”。
这样试卷就复制到学生机的桌面上了,学生在指定的地方填好答案后单击[保存]按钮即可,考试结束时,教师运行收试卷程序:
copy \\s1\d$\ test.xls D:\test\s1
copy \\s2\d$\test.xls D:\test\s2
……
copy \\s58\d$\test.xls D:\test\s58
并把统计.xls复制到d:\test文件夹中,打开统计.xls,成绩就一目了然了。
图1 test.xls文件
图2 汇总.xls文件
图3 分数设置