基于Word文档的有机化学试题库系统的实现

2022-09-11

随着计算机应用的广泛普及和信息技术在教学中的广泛应用, 试题库系统早已受到广大教师们的青睐, 各类试题库系统被大量地应用在日常教学中。对于有机化学试题来说, 它的试题信息构成相对复杂, 一个有机高分子结构式可能包含很多的化学键、环、轨道等, 如何使包含这些结构式的试题显得更加科学规范呢?利用有机化学试题库系统, 结合ChemDraw工具, 采用Word编排技术就能轻松地实现试题库的科学管理与规范出卷。目前, 有机化学的任课老师们习惯使用ChemOffice软件中的ChemDraw工具来绘制这些复杂的结构式。ChemDraw工具可编辑与化学有关的图形, 是最受欢迎、最有应用价值的化学绘图工具之一。而ChemOffice与Microsoft Word具有很好的兼容性, 因此, 基于word文档的有机化学试题库系统的实现, 有机化学的任课老师们仍然可以使用自己最熟悉的ChemOffice软件来编辑试题库中的试题, 方便了他们对试题库的管理。

1 有机化学试题库系统的分析与设计

1.1 系统需求分析

设计一个基于Word文档的有机化学试题库系统, 实现对有机化学试题的增加、删除和修改等功能, 并按照有效的检索范围快速地搜索试题, 向导式地实现自动组卷并生成WORD试卷文档。通过需求调查, 要求该系统具有以下功能:具有良好的人机界面, 增加系统的可读性;支持有机化学中具有复杂分子结构图、化学反应方程式、分析谱图、设备示意图及流程图等图文混排试题的管理, 系统稳定性好;兼容ChemOffice软件中的ChemDraw工具, 可随时调用此工具来编辑有机化学中复杂的结构式等;方便对试题进行增加、删除、修改、查询及浏览等操作, 可按试题的题型、难度、知识点进行精确/模糊查询;具有WORD试卷文档生成功能。

1.2 系统功能模块分析

1.2.1 题库管理模块

利用该系统用户可以建立一个包含不同题型、不同难度、不同知识点的有机化学试题库。可以方便地对试题库进行一系列的操作:可对试题进行增加、删除、修改及浏览等操作;可方便地设置试题的题型、难度及相应的知识点;可方便地导入导出试题库中的试题。

1.2.2 题库查询模块

按试题题型、难度等级和知识点等方便地对试题库中的试题进行精确/模糊查询, 并可方便地导出查询结果。

1.2.3 自动组卷模块

采用自动组卷生成向导, 帮助老师对所生成的试卷进行简单的设置, 如设置试卷的标题、考试班级、考试时间、试卷的结构及输出格式等, 然后系统根据设置调用出卷算法即可生成符合要求的有机化学试卷。生成的试卷以WORD文档的格式保存, 卷面美观。

1.2.4 系统管理模块

该系统的用户登录需要口令验证。系统管理员可以对所有用户进行角色、权限管理, 用户登录后可进行口令维护。同时, 系统管理员可以方便地对该试题库系统的数据进行备份。

有机化学试题库系统功能结构如图1所示。

1.3 基于w o r d文档的有机化学试题库的实现

1.3.1 与数据库、数据表的连接

该系统通过Delphi中提供的ADO控件:ADOConnection、ADOTable、DataSource和ADODataSet来实现应用程序与数据库、数据表的连接。具体实现过程如下:双击ADOConnection控件, 选择Use Connection String单选框, 单击“Build..”按扭, 进入“数据链接属性”对话框, 选择“连接”选项卡, 在“选择或输入数据库名称”中找到并选择所要连接的数据库;测试是否连接成功:单击“连接”选项卡中的“测试连接”按扭;将ADOTable控件的“Connection”属性设置成“ADOConnection”, 点击它的“TableName”属性, 不难发现其下拉框中显示了已有数据库中的所有创建的数据表名。

至此, 已经完成应用程序与数据库、数据表的连接。为了使各控件更清晰化, 将所有ADO控件都放在新建的Data Module中, 并将它另存form为“DM”。

1.3.2 与W o r d应用程序的连接, 在Delphi中操纵Word

O L E技术 (O b j e c t L i n k i n g a n d Embedding) 即对象链接与嵌入技术, 使得应用程序之间可以通过特殊的接口相互操纵, 也称OLE自动化。Delphi程序提供了OLE自动化接口。

在Delphi的Severs面板上选择Word Application, Word Document, WordFont等控件加入到form中, 通过这些控件就可以方便地建立与Word应用程序的连接、创建Word文档、设置Word文档中的字体等等。此外, OleContainer是Delph中提供的一个OLE包容器控件, 使用它, 可方便地把Word功能集成到Delphi应用软件中来。这些对该系统的实现提供了强有力的支持。

1.3.3 添加、保存、浏览记录的实现

有机化学试题的构成相对复杂, 具有分子结构图、化学反应方程式等, 如果把此类数据当做二进制“流”来处理, 然后对流式数据进行读写操作, 那么复杂数据的存取就变得简单了。

TStream类可以处理任何长度、任何类型、任何格式的数据, 所以Delphi的很多构件都把它作为一个重要属性, 数据可以通过Tstream流在各种构件之间相互传送, 还可以很方便地存入磁盘文件或数据库, 或者从磁盘文件或数据库中读出。

TStream有很多继承类, 包括:Tmemory Stream, Tstring Stream, Tfile Stream, Tblob Strea m等, 其中最常用的是TfileStream类。它根据文件名建立或打开一个文件, 并建立相应的文件流对象。

该系统分别对添加新试题及浏览试题时用到的word文件建立相应的流对象。例如:

接着, 对流式数据进行读写, 需要用到两个重要的函数:Load Fr om Str eam和SaveToStream。例如:

保存试题时, 从作为添加试题的word流对象WordFileStream中读取数据到数据库中的“题目”字段中:TBlob Field (Dm.ADOTable1.Field By Name (′题目′) ) .LoadFromStream (WordFileStream) ;

浏览试题时, 将数据库中的“题目”字段数据写入到作为浏览试题的word流对象Temp File Stream中:TBlob Field (DmADOTable1.Field By Name (′题目′) ) SaveToStream (TempFileStream) , 然后通过OLE技术, 在OleContainer1中显示用来存放“题目”的temp.doc文件的内容。

1.3.4 题库查询的实现

该系统可以按题型、难度、知识点等对试题进行精确/模糊查询。

Delphi中的AdoDataSet是支持ADO访问的主要组件, 它支持用SQL语句获取数据。同时, 使用AdoDataSet控件的Filter (过滤器) 可以对查询字段QueryStr下达过滤条件。

采用精确还是模糊查询关键在于过滤条件。我们知道模糊查询中过滤条件使用“like”及通配符, 而精确查询取而代之的是“=”, 如:

1.3.5 输出生成WORD试卷文档

目前, 自动组卷常用的算法主要有遗传算法和模拟退火算法, 经算法随机抽取“题目”后, 以流文件的形式输出:

首先对输出试题时用到的word临时文件 (temp2.doc) 建立相应的流对象:

然后, 将数据库中的“题目”字段数据写入到作为输出试题的word流对象如TempFileStream2中:

最后, 将“题目”内容拷贝并粘贴到paper.doc:

反复上述操作, 直至所有“题目”全部输出。

2 结语

该系统已应用于有机化学教学中, 系统界面友好、操作方便。该系统基于word的特点, 加上与ChemOffice的兼容性, 使得老师们在使用时得心应手, 从而提高了教学效率。

摘要:本文介绍了基于Word文档的有机化学试题库系统的实现方法。以Delphi作为开发工具, 根据软件工程原理, 结合面向对象方法对该系统进行分析和设计, 实现了对有机化学中含有复杂的分子结构图、化学反应方程式等试题进行增加、删除、修改、查询及自动组卷的功能, 符合当今有机化学教育的需要, 提高了教学效率。

关键词:试题库系统,OLE技术,流文件,自动组卷

参考文献

[1] 施运梅.Delphi中格式数据的处理[J].北京机械工业学院学报, 2000, 9.

[2] 王春红.Delphi7程序设计[M].北京:清华大学出版社, 2004, 3.

上一篇:《中国科教创新导刊》办刊宗旨及投稿须知下一篇:双螺旋CT检测在糖尿病下肢动脉硬化闭塞症诊断中的应用价值