吴为民
(福建船政交通职业学院信息与智慧交通学院,福州350007)
目前大多数的试卷系统,都把题库导入到数据库中,然后生成试卷时从题库中抽题形成试卷。这样的作法一是试卷的保密程度不够高,而且对于大量用图形图像的试题的支持不好,大部分只能支持文字类的试题。以Word文件直接作为题库的数据库,避免了按照常规的做法,题目需要导入到数据库中过程的繁琐和存在泄密的风险;而且实现题库的本地化,利用Word直接维护题库,可操作性和可视化程度高,以及对有图像的理工类的题目支持非常好[1-2]
较早的Word格式doc被称为“二进制”格式。从2007 Microsoft Office System开始,Microsoft Office使用基于Open XML的文件格式,例如.docx、.xlsx和.pptx。这些格式和文件扩展名适用于Microsoft Word、Micro⁃soft Excel和Microsoft PowerPoint。利用Word文档的XML结构,我们通过程序对Word文档进行增删改查的处理,实现类似数据库的功能,为将Word文档直接作为数据库奠定基础。
Docx文件是XML文件的Zip存档。最简单的Word文档的主要文档结构包含以下XML元素[3-4]:
其中:document:文档部分的根元素,它定义了主要文档的结构。Body:主体—用于收集构成文本的块级结构的容器。P:段。R:段落中的分句。T:文本。
存在几个可用于在Python中读写MS Word文件的库。但是,由于其易用性,我们将使用python-docx模块。python-docx是用于创建和更新Microsoft Word(.docx)文件的Python库。在终端中执行以下pip命令,以加载python-docx模块,如下所示:
$pip install python-docx
使用python-docx模块,我们有3种不同的数据类型:
document:整个文档的Document对象。
Paragraph:文档对象内段落的段落对象。
Run:每个“段落”对象包含一个“运行”对象列表。
图1 Word基本数据结构
python-docx允许Python程序对Word文档进行读、写、修改、字符串比较等操作。因此为将Word文档作为数据库奠定了基础[5]
试卷智能处理系统利用python-docx库以及Word文档的XML结构,将题库的题目都存放在Word文档中,对Word文档实现数据库的增删改查的功能,在此基础上构建试卷智能处理系统,其功能模块如图2所示。
图2 系统主要功能模块图
图3 主界面图
在题库的预处理模块,对题库的Word文件进行扫描,发现题库中存在的格式错误。
图4 题库预处理结果
对试卷进行出卷配置。
图5 试卷配置界面
根据试卷配置表和Word题库,生成考试试卷。
图6 生成试卷结果界面
通过该系统的使用,增强了题库的可视化程度和本地化,为题库的维护提供了方便,增强了题库的安全性,同时也大大地减轻了出题工作人员的负担,提高了试卷出卷的效率和卷面的质量。