基于VFP的有机化学自动组卷系统的开发*
2010-09-12李丹杨宝华刘春华董建鑫
李丹,杨宝华,刘春华,董建鑫
(首都医科大学燕京医学院,北京101300)
基于VFP的有机化学自动组卷系统的开发*
李丹,杨宝华,刘春华,董建鑫
(首都医科大学燕京医学院,北京101300)
针对医学院校有机化学学科的特点,以及考试组卷过程带有很大的主观随意性和不规范因素等问题,在分析和探讨实现标准化考试试卷的设计和分析的基础上,本文提出基于VFP数据库的适合医学专业的自动组卷系统。文中主要介绍了组卷系统的总体设计思路,各个模块的设计方法,以及随机抽题的具体算法等。
VFP;自动组卷系统;随机抽题;标准化题库
一、建立自动组卷系统的必要性
考试是衡量学生能力水平的重要手段,试卷质量的好坏直接影响着最终教学结果的评价。一份科学的试卷可以真实、合理地体现出教学的效果,为后续教学提供有益的参考。
1.传统组卷方法的弊端
第一,试卷由任课教师从试题集中手工抽取题目,增大了试卷的主观因素。这样往往造成试题难度和知识覆盖面难以把握,不能达到对学生的科学全面考核。
第二,每道试题的难度系数及以往的使用信息都要靠人工统计,很多重复信息也要一次次的重新统计,其难度与劳动强度可想而知。教师每出一份试卷都需要参考各种相关书籍,斟酌试卷的难易程度,再进行复制粘贴等重复性劳动,给教师带来极大的负担。这不能满足标准化考试和教考分离的需求,进而严重影响教育质量。所以建立健全试题库及自动组卷系统是非常必要的。
2.医学院校有机化学学科的特点
(1)在医学院校,有机化学是药学、检验、临床等专业学生的一门重要的专业基础课,是后续课程生物化学、生理学、药物化学、药理学等专业课学习的基础。但由于各专业性质和培养目标的不同,教学的要求也不完全一致,各专业考试的重点也是不相同的,因此试卷不能雷同。
(2)有机化学试题往往涉及大量的结构式、图形及特殊符号,传统的试题库管理系统往往不能得心应手,再加上许多题库对考题的排版格式没有灵活处理,因而不能满足不同教师对考卷格式的不同要求。
3.自动组卷系统建设思路
(1)组卷系统的基本要求
具有友好的用户登录界面;可以任意对试题进行添加、删除、修改、浏览等操作;可以实现手动及自动组卷;试题类型应包括选择题(单选题和多选题)、填空题、鉴别题、合成题和推断题五类,难度分容易、一般和较难三级;用户可根据章节、题型、难度几个方面来组卷,实现重点内容重点考察的功能。
(2)试题库数据结构设计
试题库中包含六种试题类型的数据表,每个表中的字段分别有题号、题目内容、答案、题型、难度系数、章节、所属专业等参数,这些参数反映了试题的基本信息。
另外由于有机化学试题包含化学符号和图形的特点,题目内容字段和答案字段选择了通用型数据类型,可以存放图形和化学公式。所属专业分为临床、检验、药学三个专业字段,分别使用逻辑型字段。其他的字段都采用字符型。分别录入题目内容后,将这些数据表都放到统一的数据库中,以备将来使用。
(3)试题库系统开发工具
利用计算机编程技术(VFP数据库软件)、SQL语言等实现组卷系统的开发。VFP(Visual Foxpro)是目前应用最广泛、易学易用的面向对象的数据库设计工具,它提供了大量的ACTIVE控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效地提高了应用程序的运行效率和可靠性。
二、自动组卷系统开发过程
1.系统结构设计
系统功能结构如图1所示。
2.系统模块介绍
(1)开始界面
开始界面如图2所示。为了系统的安全,此界面利用VFP的独立表单功能设置了用户名和密码登录功能,只有输入正确的用户名和密码才可以登录主界面进行自动组卷。
图1 系统功能结构
图2 开始界面
主程序代码:[1][2]
set talk off
set safety off
_screen.Visible=.F.
do form……
read events
set talk on
set safety on
&&登录代码
if thisform.text1.value="…".and.thisform.text2.value="…"
do form……
else
=messagebox("输入的密码或用户名错误,请输入正确的密码")
return
end if
(2)试题库模块
在此模块中主要存放六种题型的全部试题内容,在主菜单的试题库选项中可以调出试题库界面,通过选项卡对每类题型进行选择,如图3所示。选项卡的设置使用VFP的页框控件,每个页面中存放一类题型。在查看试题的同时,用户可以通过编辑按钮随时自行添加试题,设置试题各参数;按内容、类型、题目编号浏览试题内容,修改和删除题库中的试题。使试题库根据需要随时更新。
图3 选项卡界面
(3)组卷模块
此模块是系统的核心部分,主要用于自动抽取试卷。主菜单中的组卷选项可进入组卷界面,如图4所示。
图4 组卷界面
第一,输入试卷名称,试卷名称输入时不可以和试卷库中已有的名称重复;
第二,选择组卷的章节,按照设计需要抽题时按章节进行题目的抽取;
第四,分别选取每类题型的个数,其中分为简单、一般、较难三个选项,通过选项的控件选择组合框的类型,这样可避免手工录入的时间,只要点击下拉菜单即可;
第五,所有题型选择完成后,点击开始组卷按钮,系统可根据刚才选择的参数自动选取相应的试题内容,进行自动组卷。
主要代码为:[3][4](以单选题为例)
dime tihao_m(100)&&存放抽取出的记录的题号字段
n1=0&&用于存放难度系数为简单即t1的试题
n2=0&&用于存放难度系数为简单即t2的试题
n3=0&&用于存放难度系数为简单即t3的试题
应用ARCHITECTURE PLUS i2000 SR 全自动化学发光免疫分析仪,采用化学发光免疫分析法严格按照试剂盒说明书分别进行血清CA19-9、CA15-3、CEA、NES的检测,检测研究组患者在术前、术后3个月的空腹血清CA19-9、CA15-3、CEA、NES水平,并与对照组各血清肿瘤标志物检测结果作对比。
i=1
m=0
&&记录单选题中每种难度系数的试题总个数
use单选题
select*from单选题into table nandu_px where单选题.zhangjie=zj_hao order by单选题.nandu asc
go top
do while.not.eof()
do case
case nandu="t1"
n1=n1+1
………
case nandu="t3"
n3=n3+1
endcase
……
enddo
dime a(400),b(400),c(400)&&定义一个数组存放要抽取的题目号
&&抽取难度为t1的试题
do while i<=400
a(i)=int(n1*rand()+1)&&产生一个[1--n1]的随机数
for j=1to i-1&&此循环则用于使随机抽取的题号不重复
if a(i)=a(j)
exit
end if
end for
if j>=i
n=n+1
m=a(i)
go top
for k=1to m-1&&此循环则用于定位与抽取的题号相同的记录
skip
end for
tihao_m(n)=tihao&&将所有抽取到的题号赋值给数组
end if
if n>=dan1&&当抽取的个数达到要求时就停止此类难度系数的选取
exit
end if
i=i+1
enddo
…
自动组卷结束后,点击组卷结果按钮,如果试题的内容满足我们的要求,就可以将此次的内容写入试卷初稿了,否则我们可以在此界面进行题目的修改或者返回组卷界面重新组卷。
重复上述步骤进行其他章节的自动组卷。所有章节都完成后即可写入试卷成稿,并通过报表的形式进行预览。最后将此次的试卷存入试卷库即可。
(4)试卷库模块
此模块主要用于存放已经生成的试卷,可以通过试卷名称选择相应的试卷,并查看试卷的题目内容,如图5所示。此模块实现对系统曾生成过的试卷(历史试卷)管理,浏览与删除历史试卷,自动检测试卷文件是否存在。
图5 生成试卷题目内容
三、结束语
组卷系统的建立需要覆盖面广、结构合理、题型多样、难度适宜的标准化试题库,这就要求教师集体讨论,既要避免个人的主观随意性,又要保持命题的灵活性和先进性,这样,试题库的建设才有意义。同时,我们也要深刻地认识到试题库以及组卷系统的建设不是一朝一夕的事情,是一项繁琐且责任重大的工作。科学合理的组卷系统不但需要大量的学术资料,而且要有坚持不懈的钻研精神。现阶段的组卷系统还存在很多的不足,需要对其进行不断的完善。☉
[1]周永恒.Visual Foxpro基础教程(第3版)[M].北京:高等教育出版社,2006(6):302.
[2]李鼎.Viesual Foxpro3.0命令手册[M].北京:清华大学出版社,1997(9):15-185.
[3]郑砚,周青,李华杰.Viseual Foxpro8.0基础教程[M].北京:清华大学出版社,2004(5):261-283.
[4]刘瑞新,汪远征.Visual Foxpro6.0中文版教程[M].北京:电子工业出版社,2002(8):250-270.
(编辑:隗爽)
book=67,ebook=93
G642
B
1673-8454(2010)15-0067-03
首都医科大学校长研究基金资助项目(项目编号:JYY-090)。