一个基于VBA编程控制的组卷系统的设计

2024-04-06 12:49赵舜
电脑知识与技术 2024年3期
关键词:设计

赵舜

关键词:VBA编程控制;组卷系统;设计

中图分类号:G642.474 文献标识码:A

文章编号:1009-3044(2024)03-0056-04

0 引言

VBA(Visual Basic for Applications) 是Visual Basic 的一种宏语言,这种编程语言有着广泛的应用空间。与传统宏语言不同,VBA提供了面向使用对象的程序设计方法,提供了相当完整的程序设计语言。用户可以将日常工作转换为VBA程序代码,使工作自动化,提高工作效率。

在教学中,教师对学生知识掌握情况的了解通常是通过测验考试来完成的。以数学学科为例,目前职业院校的数学考试通常是以线下模式纸质试卷进行测验,较少使用线上考试系统。要了解学生的真实学习效果,需要一份符合教学要求、试题难度适当、考前保密性好的优质试卷。

要获得一份优质试卷,需要一位或多位有经验的教师从选择考查知识点,到编写试题,再到试题和答案的输入,每一个步骤都要耗费大量的时间[1]。有时一场考试需要多份试卷,如期末试卷的AB卷、教学平行班使用的随堂单元测验卷。这些试卷都要求试题不同,但试题类型和试卷难度要相同。这样出卷的工作量就更大了。

针对这种情况,有必要采用一定的方法,能快速组卷,并能根据要求生成的多份题量、题型、难度相当的试卷。为了有效地解决组卷出卷的问题,很多研究者以组卷系统为对象进行研究。

1 组卷系统的研究现状

在知网中,以“组卷系统”搜索,近5年有4 000多篇文章。方向偏重于选题的智能性上,将遗传算法应用于智能选题上的研究占据了三分之一。研究对象也主要针对在线考试系统。为了生成笔试试卷的组卷系统较少。在以生成卷为目的的组卷系统研究中,都是通过编程语言控制,结合数据库技术,最终实现组卷的[2]。这样的组卷系统都包含了题库管理和组卷功能。

1.1 题库管理的研究现状

有的组卷系统无法输入和显示标准的数学符号、公式,有的生成试卷版式固定,无法二次修改排版。部分现有的组卷系统需要特定的系统环境,需要安装新的软件,还需要花费一定的时间去调试系统和学习操作方法。

为了解决这些问题,有研究者选择了以Word软件作为题库管理软件。如选择通过VisualBasic操作Word进行编组数学试卷[3],运用VBA操作Word搭建了通用试题库管理系统[4-5]。Word软件具备出色的公式和图片再编辑功能。Word文档形式的试卷具备可编辑性。在日常工作中,教师们已经习惯了以Word 软件为文字处理工具。通过Word软件管理题库能降低系统操作的学习成本,同时也方便现有电子试卷试题的导入。

但是,在试题存储的模式上存在着不妥之处:试题与试题之间、试题与答案之间分隔不明。现有系统借助段落或空行或其他特殊标记进行分界。这些方法虽能通过程序进行识别,但不便于人工管理试题。若要在此类题库中进行人工组卷,也是比较困难的。

1.2 组卷功能的研究现状

现有的组卷系统能通过算法按照试题属性如章节、难度系数等进行智能选题组卷。如基于改进的自适应遗传算法开发了智能组卷系统[6]。此类系统能较好地组合出一份知识点覆盖面广且难度适中的试卷。

但是,在常规教学中,总是会遇到“一试多卷”的需求,即一次考试需要多份题量、类型、难度相同而试题不同的试卷,又或者要生成专项练习卷,以实现对某一知识点进行强化训练的情况,而现有的智能组卷系统不能满足这些要求。

综上所述,目前的组卷系统还不够完善,因此有必要进一步改善题库管理和组卷功能,设计一个新的组卷系统以便满足更多的需求。

2 组卷系统需求分析

组卷系统是为简化教师组卷工作,能快速生成满足考试要求的试卷,要操作方便,学习成本低。通过对目前类似系统的研究,这样的组卷系统要满足如下需要:

1) 组卷系统要包含题库管

理模块。题库能完整地存储试题,包括题目涉及的各种公式、图片等。题库对能对试题进行增、删、改、查,且操作便捷。

2) 组卷系统要包含组卷控制模块,能根据考试试卷的需求,设置参数后自动从题库中抽取试题进行组卷,也能由人工从题库中抽题后进行组卷。

2.1 题库管理模块需求分析

1) 试题结构分析

题库中的每一道试题都包含内容和屬性。

①内容是指题目、答案,备注信息等。数学等理工科类试题有别于其他文科类试题,其表现形式中除了文字,还包含公式、图片、表格等。这些内容需要能在题库中完整呈现,排版清晰,既方便程序控制,又能让人轻松浏览。

②属性是指试题形式、试题所属章节以及试题类型。试题形式主要有三种:选择题,填空题,解答题。试题所属章节即指该试题所考查的知识内容的所属章节。如果某试题考查多个知识,涉及多个章节,那么就按照教材章节顺序,归类于涉及的最后一个章节中。试题类型也是试题一个分类属性。涉及同一章节的试题,有的考查不同的小知识点,有的会结合其他章节知识进行考查,有的在解题方法上有特殊性。无法单用难度系数来作区分,需要设置属性:试题类型。当试题类型相同时,它的难度也相同。这也是为组卷构建难度相同的试卷做准备。

2) 题库管理功能需求分析

题库管理功能主要涉及试题的增加、删除、查询、修改。

①增加试题。要提供试题模板,能根据用户所选添加位置,自动添加试题属性,帮助用户快速创建试题。要方便现有电子试卷上的试题录入,并兼容旧试卷格式。

②删除试题。要能彻底清除试题,且对其他试题和题库结构不造成影响。

③查询试题。能快速地根据内容或属性进行查询和浏览试题。

④修改试题。对试题的所有内容都能修改。

2.2 组卷控制模块需求分析

1) 试卷需求分析

试卷的需求可以分为:

①普通试卷,针对一个或几个章节的知识进行测验的试卷,要求考查内容分布合理。

②一试多卷,即同一场考试需要多份试卷,如期末考试需要的AB卷,或是因不能同时考试的单元测验卷。这多份试卷在各章节的分布上一致,且类型难度相当。

③专项练习卷,为了对某一章节知识进行强化训练而组合的练习卷。

④自定义试卷,为了一些特殊需求,而将指定的试题组成试卷进行练习。例如将某一阶段的错题,整合成的错题练习卷,或是将与某一知识点相关的真题组成的练习卷。

另外每一份试卷都需要一份配套的答案。

2) 组卷功能分析

根据教学对试卷的需求,组卷功能需要包含自动组卷和辅助人工组卷。

①自动组卷要能按照参数设置,能在题库中自动抽取满足条件的试题,自动生成试题卷和答案卷。主要用于生成普通试卷和满足一试多卷的需求,以及专项练习卷。在生成普通试卷过程中,通过设置章节和试题形式下的抽题数量,在题库中进行抽选,并尽可能让试题考查的知识不同。在满足一试多卷生成试卷时,试题的类型都相同,进而保证难度一样。在生成专项练习卷时,要尽可能涵盖一个章节内的所有试题类型。

②辅助人工组卷,能满足自定义组卷需求,在题库选定试题后,自动将试题组合生成试题卷和答案卷,能简化人工组卷过程中的重复操作。

3 VBA 编程控制组卷系统设计

根据数学组卷系统的需求分析,下面就系统结构、题库管理、组卷功能进行设计。

3.1 VBA 编程控制组卷系统结构设计

本组卷系统选择了以选择Word文档为题库数据载体,Word软件为题库管理软件,以Excel为组卷数据设置记录的载体,并通过VBA编程控制题库管理和组卷。

Word软件作为在教学活动中最常被使用的办公软件,教师们使用得非常熟练,无须额外进行培训,不增加学习成本。Word软件呈现试题的形式良好,排版便利。而VBA是内嵌于Word和Excel中的编程软件。系统在开发后可以直接运行于安装有Microsoft Office办公软件的电脑上,无须额外的软件安装过程。

3.2 题库模块设计

1) 题库试题分类设计

为了满足题库管理的需求,首先根据试题所属章节、试题形式、试题类型对试题进行分类并编号。

①章节编号使用4位数字表示。中职数学共24 章,每个章内最多12个小节,故设置4位数字表示章节。如“0203”表示“第2章第3节”。

②试题形式用字母编号:选择题A,填空题B,解答题C,可以方便识别区分。

③每个试题形式下有若干个试题类型,用三位数字来记录:001~999。

④同试题类型下的试题序号用2 位数字记录:01~99。

所有编号串联起来就是试题的唯一编号exid,共10位。如编号为“0101A00201”就表示“第1章第1节的选择题中第2个类型下的第1道题”。

2) 题库试题存储设计

试题按照:章节、形式、类型分类存放,利用Word 自带的导航栏功能,可以方便快捷地查看试题。

题库文档内以表格形式存放试题。文档中每一个表格就是一道试题。表格内存放试题编号、试题内容、试题答案、试题备注信息。这样既能清晰地划分试题和答案,让使用者一目了然,也方便对试题进行管理。

这样的存储形式,也给题库的管理带来便利。

①添加试题。在指定分类位置下,添加试题模板,即表格。然后在相应位置填入内容即可完成试题的添加。为了省去反复创建试题模板的过程,通过编写VBA宏命令,实现一键完成试题模板的插入。

②删除试题。由于试题是以表格形式保存,所以删除表格即可完整删除试题。为了省略表格选择过程,通过编写VBA宏命令,实现一键删除试题。

③查看试题。可以通过导航栏根据章节和形式进行查找,也可以利用Word软件自带的查找功能,依据内容查找试题。

④修改试题。试题存放在Word文档内,修改试题和平时修改Word文档是一样的。文字、公式、表格都可以修改。

3.3 组卷模块设计

根据组卷模块的需求分析,要能滿足4类组卷要求,需要通过自动组卷和辅助人工组卷两种功能来实现。

1) 自动组卷功能设计

自动组卷是只需设置测试模式以及要抽取的试题数,由系统自动完成抽题组卷。参数设置部分存放在Excel电子表格内,从题库Word文档内获取所有试题信息后,在Excel内完成试题选取,然后再进入题库文档进行抽题组卷。

①生成普通试卷的自动组卷功能设计

首先,由于题库文档是会有变更,在每一次自动组卷之前必须先获取当前题库信息。获取试题编号、试题形式等信息,汇总出题库的基本参数,如某章节的单选题有多少种试题类型,以便用户来决定抽取试题类型的数目。

然后,用户根据考试需求,输入各章节各形式下的试题数目。试题数目有上限,如果某小节的某形式下有m个试题类型,那么用户最多只能在这个分类下抽取m道题

接下来就进行自动组卷。组卷要经历“抽题—成卷—存储组卷信息”三个步骤。

系统首先根据在用户设置的参数,进行自动抽题。为了使试卷能覆盖更多的试题类型,所以采用一个试题类型选一题的抽取算法。同时为了防止近期的试卷内尽量不出现重复试题,所以要选择最近1次或多次组卷中未使用过的试题,次数可以进行设置。如果某类型下的试题都使用过了,那么就尽可能选择使用次数较少的试题。

在完成抽题后,组卷程序在每种试题形式下打乱试题编号的顺序,然后再根据试题编号,依次从题库文档中提取试题和答案,生成试题卷和答案卷。

最后将抽取的试题编号等信息发送到历史组卷记录的电子表格内保存。

②满足“一试多卷”要求的自动组卷功能设计一试多卷,要求每份试卷的试题数量相同,查考知识内容相同,难度相同。所以,先要根据考试考察要求生成一份普通试卷。然后进入到历史组卷记录电子表格内,找到這份试卷的数据信息,然后选择“再次生成”。

根据已有试卷抽取新试卷试题的算法如下:

遍历已有试卷的试题。在试题所属的试题类型下,另抽取一题,记录下编号,除非该试题类型下只有一题,那就记录下原试题编号。

然后和生成普通试卷的“成卷”“存储信息”两个步骤一样,完成新的试卷的完成。

③生成专项练习卷的自动组卷功能设计

在生成专项练习卷页面,选择相关小节,设定好各形式(选择、填空、解答)的试题数量,程序就自动组卷完成。其中抽取试题的算法如下:

根据题库信息,计算各形式(选择、填空、解答)下的试题类型个数的比例。接着按照比例分配抽题数量。然后在各试题类型下按抽题数量抽屉,记录下编号。由于专项练习卷总把类型相同的试题放在一起以便强化记忆,所以在最后“成卷”步骤前省去了混乱试题的步骤,直接生成试卷。

2) 辅助人工组卷功能设计

当需要自定义试卷时,需要人工组卷。手动组卷需要通过“人工选题—生成试卷”两步完成。辅助人工组卷功能在这两个步骤中为教师省去重复操作。

①人工选题题

库已经整合了所有试题,并按章节等特征排序,添加多级标题,借助Word的导航栏,可以快速定位试题位置,节省了教师在多个电子文档之间切换查看的时间。

Word 原有的选择功能是通过点击并拖动完成的,但这操作在精准度上有一定的缺陷,容易发生误操作。所以本系统在Word题库文档内,编写VBA宏,实现“标记试题”和“取消标记”的功能,并在工具栏内添加宏按钮。这样用户只要在点击试题所在表格内的任意位置,再点击按钮,就可以快速地标记试题或取消标记。比起原有的拖动操作更简洁更精准。

标记试题是对试题所在的整个表格背景上色。颜色选择一个颜色数值,定义为常量MarkColor。取消标记就是把试题背景色恢复为文档默认色。

为了能了解选择的试题,本功能还设计有信息显示窗口,窗口中显示每种形式的试题数量,以及已选试题的题号,也能从窗口快速跳转到已选择的某一试题。

②生成试卷

在确定了选题后,首先会打乱每种形式中试题的顺序。其次,将所选试题及其答案按混乱后的顺序,按试题形式的分类,生成试题卷和答卷。然后,将试题编号、试题类型等信息发送到历史组卷记录的电子表格内保存,完成组卷。

以上生成试卷的功能免去了教师在题库、试卷、答案三个文档之间切换、复制、粘贴的重复性的操作,从而节省了时间和精力。

4 结论

1) 根据现状分析,现有的组卷系统并不能完全满足各类组卷的要求。有必要设计一个基于VBA编程控制的组卷系统。

2) 通过对组卷需求的分析,认为题库中试题需要按“章节-形式-类型”进行分类;而组卷功能要有自动组卷功能和辅助人工组卷功能,来满足不同的试卷需求。

3) 选择以Word软件为题库管理软件,通过编写VBA宏程序,进行试题的管理。选择用Excel文档来存储组卷信息,通过VBA编程控制,进行自动组卷,以满足生成普通试卷、一试多卷、专项练习卷的需求。通过VBA编程控制,进行辅助人工组卷,减少了传统组卷过程中的重复性操作,提高工作效率。

【通联编辑:谢媛媛】

猜你喜欢
设计
二十四节气在平面广告设计中的应用
何为设计的守护之道?
《丰收的喜悦展示设计》
基于PWM的伺服控制系统设计
基于89C52的32只三色LED摇摇棒设计
基于ICL8038的波形发生器仿真设计
瞒天过海——仿生设计萌到家
设计秀
有种设计叫而专
从平面设计到“设计健康”