试卷生成与测试系统的设计与实现
2011-04-01陈海波
陈海波 陈 虎
(1.华南理工大学计算机科学与工程学院,广东 广州 510640;2.华南理工大学软件学院,广东 广州 510640)
1.引言
利用计算机来生成试卷,按照考试要求快速、随机地选出试题,实现学生的自我测试,是现代教育技术的具体实现,充分发挥计算机辅助教学的作用,具有非常重要的意义。
2.系统设计
2.1 系统需求分析
该系统面向的是教师和学生,主要用于教师组卷和学生自测。教师和学生进入系统选定科目后,可随机或者按照知识点的难度系数,输入题目数量随机生成试卷。
2.2 系统功能
(1)科目选择:进入系统后,选择相应科目。
(2)题型设置:通过对历年的考核进行归纳分析,将题目类型设定为填空题、判断题、单项选择题、多项选择题、简答题、论述题、计算题、综合分析题。
(3)考核时间设定:输入考核时间,以分钟计算,考核时间到后进行提示并锁定答题页面,学生无法继续答题。
(4)难度选择:分为1-5种难度,可不选择难度。不选择难度时随机选择试题出卷,选择难度时按照选定难度的试题随机出卷。
(5)题型数量设置:显示题库中各题型的数量,按需要输入题目数量。
(6)生成试卷:按照出题页面选择科目、输入考试时间和题目数量后生成试卷,若出题数量超过题库总数时,系统会提示输入适当的题目数量。
(7)答题:生成试卷后,学生可直接在答题页面进行答题。
(8)计算正确率:计算客观题的正确率,包括填空题、判断题、单项选择题和多项选择题。
(9)显示答案:显示所生成试卷的答案。
(10)生成Word格式的试卷:实现试卷以Word格式输出。
2.3 试题库的编写
试题库由教师用Excel软件进行编写,各科目的试题参数包括科目名称、序号、题型、题目、数量、答案、分值、难易度、分值权重、知识要点等,编写完成后保存为.CSV文件(逗号分隔值文件)。各科目题库保存在lib文件夹中,系统运行时从该文件夹中读取。
3.系统实现
3.1 程序设计技术
该系统利用Visual C++编写程序。Visual C++开发的应用程序具备与W indows操作系统紧密结合、可执行代码效率高等特点[1]。Visual C++6.0不仅是一个C++,而且是一个基于W indows的可视化。
3.2 系统功能实现
(1)功能界面实现
界面是用户与应用程序交互的场所,界面是否良好,直接影响到该系统的使用。该系统利用VisualC++设计主控界面、题库读入模块、试卷及试题表示模块和试题显示模块,设置各控件的名称以及相关属性,满足界面友好、操作简单的要求。
(2)试题读入模块的实现
该模块实现系统从题库中读入试题,即从以Excel文档形式保存的题库中随机读取试题。该模块有两个类,分别为CLibrarySet,负责遍历lib目录下的文件,找到文件,将文件名交由类CLibrary加载试题;CLibrary,负责从一个CSV文件(逗号分隔值文件)读入一个科目的所有题型的试题,以及生成试卷。
(3)试卷及试题表示模块的实现
该模块实现试卷及试题表示。该模块有两个类,分别为CPaper,表示试卷;CTestQuestion,表示题目。
(4)试题显示模块的实现
该模块实现试卷生成时各种题型字体大小、选项以及输入框的显示。该模块有七个类,分别为CQuestionDisplay,为各种题目的显示提供一个一致的接口;CComplexDisplay,负责显示综合分析题、计算题、论述题;CSimpleDisplay,负责显示简答题;CSelectDisplay,负责显示选择题;CJudgementDisplay,负责显示判断题;CFillDisplay,负责显示填空题;CPaper DisplayDialog,是显示试卷的窗口。通过CQuestionDisplay类提供的接口,分别调用CComplexDisplay类,CSimpleDisplay类,CSelectDisplay类,CJudgementDisplay类,CFillDisplay类在试卷显示窗口上显示本系统生成的各种类型的题目。
(5)随机选题的实现
该系统实现选题有两种方式:不按难度随机选题和按照指定难度随机选题。
从一个CSV文件中加载题库,系统根据用户选择的题目类型type,难度level(level可以不指定)生成指定数量num的题目。系统随机抽题功能的实现,首先从题库中读取类型为type,难度为level的题目总数(total),然后用randomize函数产生num(num<total)个随机数,每个随机数是所选考试科目的题库总量范围中的一个数。如果选择的题到达试题库的末尾,系统会自动返回试题库的开头。读取题目序号检查是否重复,决定采用或者重新生成题目,防止出现相同的试题。
(6)实现Word格式的输出
利用VisualC++实现所生成试卷以Word文档的形式输出,在项目中添加Word类型库(即OFFICE中的MSWORD. OLB文件),将它们变成Visual C++的类文件,在程序中直接调用类实现对Word的操纵,生成msword.h、msword.cpp文件。生成Word文档时获取题目的字符串形式。
(7)时间控制模块的实现
系统时间控制实现当学生进入系统后,自行设定测试时间。确定开始测试后,系统开始计时,在系统上显示倒记时,如果测试时间到了,系统会自动提示并锁定答题,该模块用CsetTimer类实现,使用SetTimer计时器,设置每秒钟自动运行一次,测试时间结束时,触发lockPaper函数锁定试卷。
4.结束语
利用计算机技术实现了试卷生成和自测系统,提高了出题效率,学生通过自测可以加深对所学课程知识点的理解,充分认识自己对所学课程的掌握程度。
[1]詹红霞,侯思颖,陶永红.Visual C++程序设计教程[M].北京:清华大学出版社,2007.
[2]郑凯东.计算机基础课程试题库及成卷系统设计[J].电子科技,2010,23(5):117-118.