操作考试评卷程序

 

    在中、英文录入、字表处理和数据库等操作考试中,评卷是一项繁重的工作;笔者使用QBASIC编写了如下程序,让您从繁重的评卷工作中摆脱出来。
    一、基本原理:使用QBASIC语言,将待评文本文件的内容与标准文本文件的内容,逐字进行比较,通过计算正确率得出评定结果。评定的结果(即为得分)保留了两位小数,并且即在屏幕上显示评定结果,又将结果写入PJ.DOC文件中,供查阅和打印输出。
    二、操作说明:①程序的运行──先启动汉字系统,再在QBASIC环境下运行本程序,然后根据程序提示,依次输入评定类别、标准文本文件名和待评文本文件名,即完成一次评定。②程序中的标准文本文件是指按照操作考试试题所做的标准答案文件,待评文本文件是指考生所做的答案文件;原则上都要求以文本方式存盘(在出题时事先加以考虑),对于WPS文书文件,可使用WPS的文件服务功能将其转换成文本文件。
    三、程序清单:
SCREEN 12:CLS:num = 1
KEY OFF:KEY(6) ON:KEY(7) ON
ON ERROR GOTO anyerror
ON KEY(6) GOSUB begin
ON KEY(7) GOSUB endd
begin:
PLAY “MBMNT150L4O3CDECCDECEFG2EFG2"
VIEW (1, 1)-(636, 476), 1, 4
VIEW (25, 9)-(615, 42), 0, 2
LINE (9, 29)-(582, 30), 8, B
LINE (581, 3)-(582, 28), 8, B
LINE (9, 3)-(581, 3), 15, B
LINE (9, 3)-(9, 28), 15, B
VIEW (25, 424)-(615, 452), 0, 7
VIEW (40, 88)-(570, 113), 0, 7
PALETTE 0, 256 * 36:PALETTE 8, 0
LOCATE 2, 22:COLOR 14
PRINT “计 算 机 操 作 考 试 评 卷 程序"
LOCATE 25, 16
PRINT “F6:重新开始 F7(N):结束评定回车或任意键:继续评定"
LOCATE 6, 8:COLOR 15
INPUT “请输入评定类别(E:英文录入或数据库回车:汉字录入或字表处理)"; e$
VIEW (100, 123)-(480, 148), 0, 7
LOCATE 8, 15
INPUT “请输入标准文本文件名"; bzname$
VIEW (100, 158)-(480, 183), 0, 7
LOCATE 10, 15
INPUT “请输入待评文本文件名"; tyname$
OPEN bzname$ FOR INPUT AS #1
OPEN tyname$ FOR INPUT AS #2
OPEN “pj.doc" FOR APPEND AS #3
k = 0:m = 0
qt1 = LOF(1):qt2 = LOF(2)
a$ = “":b$ = “"
DO WHILE NOT EOF(1)
LINE INPUT #1, a1$
a$ = a$ + a1$
LOOP
DO WHILE NOT EOF(2)
LINE INPUT #2, b1$
b$ = b$ + b1$
LOOP
l = LEN(a$)
IF qt1 < qt2 THEN b$ = MID$(b$, 1, l)
IF e$ = “e" OR e$ =“E" THEN
FOR k = 1 TO l
aa$ = MID$(a$, k, 1)
bb$ = MID$(b$, k, 1)
IF bb$ <> aa$ THEN m = m + 1
NEXT k
f = INT((qt1 - m) / qt1 * 100 * 100) / 100
ELSE
FOR k = 1 TO l STEP 2
aa$ = MID$(a$, k, 2)
bb$ = MID$(b$, k, 2)
IF bb$ <> aa$ THEN m = m + 1
NEXT k
f = INT((qt1 / 2 - m) / (qt1 / 2) * 100 * 100) / 100
END IF
PRINT #3,“第"; num; “个考生", “错误数为="; m, “分数(正确率)="; f; “(%)"
VIEW (100, 193)-(480, 218), 0, 7
VIEW (100, 231)-(480, 255), 0, 7
VIEW (100, 265)-(480, 290), 0, 7
VIEW (100, 300)-(480, 325), 0, 7
LOCATE 12, 15:COLOR 14
IF e$ = “e" OR e$ = “E" THEN
PRINT “错误数和两文件相差字数为:", m; “,"; ABS(qt1 - qt2)
ELSE
PRINT “错误数和两文件相差字数为:", m; “,"; INT(ABS(qt1 - qt2) / 2)
END IF
LOCATE 14, 15
IF e$ = “e" OR e$ = “E" THEN
PRINT“标准文件和待阅文件长度为:"; qt1;“,"; qt2
ELSE
PRINT “标准文件和待阅文件长度为:"; INT(qt1 / 2); “,"; INT(qt2 / 2)
END IF
LOCATE 16, 15
PRINT “分 数 ?正 确 率 ) 为 :"; f; “分(%)"
num = num + 1
CLOSE #1, #2, #3
LOCATE 18, 15
COLOR 15
INPUT “是 否 继 续 评 卷 (Y/N) "; m$
IF m$ = “n" OR m$ = “N" THEN
END
ELSE
GOTO begin
END IF
endd:
END
anyerror:
VIEW (102, 342)-(479, 409), 0, 4
LOCATE 21, 18
INPUT “ 文件名出错或没有找到!回车继续"; n$
CLOSE #1, #2, #3
RESUME begin
                                  (湖南省邵东县委党校 黄小成 422800)

(上一页)---(下一页)