《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 中学化学教学辅助系统设计
中学化学教学辅助系统设计
来源:微型机与应用2013年第5期
顾和明,杨 涵
(长江师范学院 数学与计算机学院,重庆 408100)
摘要: 针对现有化学教学辅助软件存在的不足,提出了化学辅助教学系统的研究和设计思路,规划了实用的功能。提出了一种复杂化学方程式配平算法,阐述了根据分子式计算分子量的计算方法,介绍了使用公式变换实现分子球棍模型制作的方法。
Abstract:
Key words :

摘  要: 针对现有化学教学辅助软件存在的不足,提出了化学辅助教学系统的研究和设计思路,规划了实用的功能。提出了一种复杂化学方程式配平算法,阐述了根据分子式计算分子量的计算方法,介绍了使用公式变换实现分子球棍模型制作的方法。
关键词: 化学辅助教学;元素周期表分子量计算;方程式配平;3D球棍模型

 在化学课堂教学中运用信息技术,可以激发学生学习兴趣,活跃思维,提高学习效率,增强求知欲,有利于培养学生的创新精神和科学探究能力。运用信息技术还可以降低教育工作者的劳动强度,提高工作效率。因此,近十年来编制了不少化学辅助教学类软件,在化学教学中发挥了不小的作用。这些软件大多数是由中学化学教师编写的,分析这些软件,主要存在如下不足:(1)大多数软件功能比较单一,少数软件虽然集成了多个功能,但各功能都比较简单,比如方程式配平程序只能配平简单的方程式;(2)许多软件界面不太美观,交互性不强,可操作性比较差,专业性不足;(3)软件设计专业性不足,比如元素周期表功能大多使用了ODBC连接ACCESS数据库的方法,体积过大而且需要手工配置数据库驱动才能使用,这给安装使用带来了不便,尤其是计算机应用水平不高的中学生使用起来更加困难,因此在课外学习中不能充分发挥作用。针对软件存在的上述问题,设计开发了功能比较全面、易用性强、兼容性好、对系统配置要求不高的化学教学辅助软件系统。
1 设计思想
 该软件的主要用户群是中学化学教育工作者和中学生,考虑到此类用户计算机操作水平相对不高,以及此类单位的计算机软硬件配置参差不齐,尤其是经济落后地区电脑配置比较差,针对上述情况要求:(1)软件不需要安装,保存在电脑里能直接使用,软件界面美观,直观明了,易学易用易掌握,在不阅读软件帮助文档的前提下能够使用软件的大部分功能;(2)对计算机系统配置要求不高,普通电脑即便是比较老旧的电脑均能正常运行;(3)软件尽量小,大小控制在3 MB以内,这样在网络上保存和下载均比较方便,同时应考虑到广大农村中学网络普及率比较低,体积小便于使用容量不大的存储器保存。
 鉴于此系统是图形用户界面,又需要在配置比较差的电脑上正常运行,优先选用了VB6.0语言进行开发。没有选用最新的VB.NET版本,是因为需要安装.NET框架,框架程序大小为22.4 MB,体积过大,只有Windows 7及以上版本才带有VB.NET程序运行需要的.NET框架,比较老的版本则没有,但Win ME以上操作系统均自带VB6.0运行库,国内中学普通使用的各个Windows操作系统基本均带有VB6.0运行库,这就为VB6.0开发的软件提供了广泛的支持。
2 化学教学辅助系统结构
 分析化学教学中重要的知识点,以及从方便教学和学生自学角度出发,选取了4个主要功能:元素周期表、方程式配平、分子量计算以及3D分子球棍模型编辑器等。以这4个功能为核心设计了4个子系统:
 (1)化学元素周期表子系统:可以显示各个元素的化学性质等信息,并能进行修改,突出显示周期/主族,可以根据个人需要单独对某个元素进行重新配色,为了寓教于乐,设计了周期表元素游戏,教师可以在娱乐中进行元素内容教学。
 (2)方程式配平子系统:根据用户输入的化学方程式或离子方程式直接计算出配平结果。能够对用户输入的化学方程式的非逻辑错误进行自动更正,自动判别用户输入的化学方程式的类型并调用不同的计算模块进行计算,可以配平复杂化学方程式。
 (3)分子量计算子系统:根据用户输入的化学分子式直接计算出分子量,根据用户输入的数学表达式直接计算出结果。
 (4)3D分子球棍模型编辑子系统:用户能够较方便、直观地制作、编辑3D分子球棍模型并以文件的方式进行保存、读取。编辑完成的3D分子球棍模型能够以定向旋转、鼠标跟随、鼠标拖拽等三种动态方式进行演示。
 此外,系统设计了截取图像功能,可将其截取图像保存为BMP或JPG格式的图像文件。教师备课和学生学习过程中经常需要使用此功能,将重要的内容截图保存,便于教学、学习和复习。
3 高性能中学化学教学辅助系统设计
3.1元素与化合物相关信息存储方式

 众多的元素和化合物以及它们相关信息的存储是软件是否方便使用的关键,同类软件大多采取内置数据或使用ODBC连接ACCESS数据库的方法存储数据。使用内置数据的缺点是数据分散,编程不方便,修改困难,查询困难,尤其不适合数据量比较大的情况。使用ACCESS数据库虽然功能强大但需要数据库驱动,安装软件后需要进行系统配置,这样不仅会大大增加软件体积同时也降低了软件的易用性。此外可以采用随机文件保存数据,但随机文件内部数据结构性不强,关联性差,因此不便于数据查询,尤其是复杂查询。最终软件采用了XML格式文件保存数据,这种格式数据不仅结构性强,易于读取,而且可以方便地根据需要进行增加、修改或删除。
 每一个元素和化合物都作为一个节点,每一个元素有二十多项化学性质,均作为它的子节点,每一个化合物的相关信息也作为它们的子节点,包括与化合物相关化学方程式。当查询某个元素或化合物时,可以将其全部信息查询出来,也可以根据某个元素查询相关的化合物及其相关信息。使用XML格式存储数据的缺点是不方便对数据进行格式化设置,化合物中元素如果有下标,在查询时不能直接显示,需要进行格式设置。
3.2 化学元素周期表子系统
 元素周期表仿照门捷列夫周期表的形式用图形整体显示,点击任一元素,均可马上查询到相关化学性质,包括元素常见的化合物,点击化合物可以查询相关的化学性质。同一周期或主族的元素使用同一种颜色显示,这样直观明了。
3.3 方程式配平子系统

 


 分析现有的配平化学方程式的程序,第一类是纯粹搜索预先设定的数据,这种软件能配平的方程式很有限且软件体积大;第二类是纯粹枚举各物质系数,但这样速度太慢;第三类是通过计算得到。这三类方式均不能配平所有的化学方程式。分析发现,不能配平的方程式的特征是:生成物的种数+反应物的种数-参加反应的元素的种数≥2。
 对于生成物的种数+反应物的种数-参加反应的元素的种数<2的化学方程式可以为每种元素列一个一次方程,将问题转化为多元一次线性方程组,再将此多元一次线性方程求解即可得到各项配平系数。对于生成物的种数+反应物的种数-参加反应的元素的种数≥2的化学方程式的情况,其无法配平的根本原因在于:未知的系数数目超过方程所能求出的解的数目,例如:HClO3O2+Cl2+HClO4+H2O,其中生成物和反应物共有五种,而元素只有H、Cl、O三种,这种情况在有机化学中很常见。目前针对该类化学方程式的人工代数解法是对部分未知系数逐一进行假设,然后计算出其它未知系数,这样获得若干个解之后再筛选出符合条件的解(实际上这类化学反应方程式的配平系数有无穷多,这种情况下必须依据实验数据选择恰当的配平系数),但此方法人工笔算工作量较大,也难以通过简单的编程实现。为了解决这个问题,本程序采用的方法是:直接对方程组进行假设而不是假设未知系数。具体做法是在原方程组上再加上一条方程,如果不行再加一条,直到满足:生成物的种数+反应物的种数-参加反应的元素的种数<2,就可以用普通方法进行计算了。方程求解如下所示(虚线框内为假设的方程):


    对新添加的方程进行枚举,其中m为枚举系数的最小值,n为枚举系数的最大值,m和n可由软件自动产生,也可由用户设定。枚举的方程数量的上限也可由用户设定。计算后再对解进行筛选,把出现0和负数的解去掉,合并相同的解,将符合条件的解输出。
3.4 分子量计算子系统
 计算分子量的问题可以简化为将分子式转换为数学表达式。分子式的关键是正确分离出每一个元素,为了正确计算,分子式中的化学元素第一字母必须大写,根据字母大写和数字,使用字符串方法分离出每一个元素和元素的下标,分离出的元素和一个数组对应起来,每一个元素查询出它们的原子量存储在对应数组单元中,然后根据分子式中元素的位置和下标构建出一个数学表达式,从而计算出分子量。
 输入分子式时,系统会自动查询内部存储的分子式,当输入错误时,系统会显示可能的正确分子式供选择,这样大大降低了错误计算的可能性,如果输入的分子式系统内部没有存储,则不做任何提示。
 在设计中发现,使用系统函数Round控制相对原子量小数位数时会出现一些问题。VB6中文版的MSDN上说这个函数实现的是四舍五入,而实际上这个函数采用的四舍六入五留双,也就是当五之前是奇数时五入,而是偶数时五舍,比如:1.25保留一位小数,则Round(1.25)=1.2如果是1.35,则Round(1.35)=1.4即奇进偶不进。这样在大量需要四舍五入的数相加相减相乘的时候误差要更小一点。Round函数符合国际标准,该函数是正确的,但不符合国人的习惯,所以在本程序中采用了自定义的符合国人习惯的四舍五入函数。
3.5 3D分子球棍模型子系统
 3D分子球棍模型用于直观显示分子结构。设计目标是用户可以用鼠标方便增、减表示原子的球和表示原子位置关系的棍,用户能够自如地调整球和棍的位置,能旋转分子模型以便从不同角度观察分子结构。此模块可以使用开源的3D游戏引擎实现,但由于该3D游戏引擎还不太完善,运行时容易导致死机。另一种方法是在Flash中使用矩阵变换法实现模型的制作和编辑,但存在计算效率过低从而导致速度比较慢等一系列问题。分析Flash实现3D动画制作和编辑的过程,发现球棍模型空间运动相对简单,使用矩阵变换的方式计算坐标,算法复杂,计算量比较大,导致速度较慢。经过认真研究发现,可以通过更简单的公式变换来计算球和棍转动与移动坐标。当转动球棍模型时,根据转动的角度,可以十分简单地计算出各个球新的坐标,这种方式计算速度明显加快,动画速度获得了大幅提高,在此基础上也实现了预期的各种编辑功能。
 出于安全角度考虑,Macromedia公司没有在Flash中设计写文件的功能,所以要将球棍模型数据以文件的形式进行保存就必须将数据传递给其他程序,让其他程序帮忙进行写文件的操作。具体做法是先在Flash里的“保存数据”按钮里写入“fscommand("other",make_data("\r\n"));”,其中第一个值为必选参数,第二个值为传递的数据(该值为可选参数可省略,如“关闭”按钮为“fscommand(“quit”);”)。然后在VB中先使用ShockwaveFlash控件将目标Flash嵌入到程序中,再通过ShockwaveFlash控件获取Flash的FSCommand中第一个参数的值来识别Flash中哪一个按钮被按下了,同时获得第二个值的数据。采用这种方法可以方便实现分子球棍模型的保存。
3.6 截图功能模块
 使用BitBlt函数可方便地将指定区域的屏幕图像复制到PICTURE控件中。VB的SavePicture方法可将图形保存为BMP格式文件。BMP格式质量很好但体积过大,所以采用压缩率高的JPEG格式来保存图形文件的功能是图形类软件必不可少的。虽然该功能可以通过第三方控件或GDI+来实现,但这类控件体积较大,对于不需要批量保存图形的小型软件来说是不值得的。如果采用GDI+,其所需要的gdiplus.dll文件只有Windows XP以上操作系统才自带,而且gdiplus.dll文件同样也很大,带上数MB的gdiplus.dll文件显然也是不值得的。本软件使用的是汇编语言编写的JPEG图片压缩模块,程序相对比较小,该模块表现稳定,但速度较慢,使用1.1 GHz的CPU的电脑保存1 024×768大小32位色的图片约需要5 s。VB不适合编写高速JPEG压缩程序的主要原因在于JPEG压缩需要大量的位运算,而VB中只能靠乘除来移位,效率太低;其次,在高级语言中确定一个整数占用的位数需要一大堆if,而在汇编中一条位扫描指令就行了。不过本软件不需要大批量保存图形,用数秒的时间换取数MB的空间还是值得的。本文中的程序界面截图均为本程序制作。
4 软件实现与试用
 为了更好地满足用户需求,本系统先发行了V1.0和V1.5两个版本,将主要功能模块发到网上任由用户下载试用,通过网上留言和投票的方法收集到了大量的用户需求信息以及系统改进建议,并据此开发了V2.1版。鉴于篇幅,主要介绍方程式配平工具和分子球棍模型编辑器。
 方程式配平工具能够配平复杂的方程,目前还没有发现不能配平的化学方程式,这是目前其他同类软件(包括国外收费软件)均不具备的。举一个复杂方程配平的例子。

 这个方程式配平极其复杂,用手工来配平工作量很大,而且十分容易出错,用现有的配平软件也均不能正确配平,使用我们编写的软件,只需要把方程式复制到输入栏,点击配平后立刻出现正确的结果,配平速度极快(图1)。


 本系统具有良好的兼容性、交互性以及数据的准确性,界面友好,简单易用,较好地解决了目前此类软件的不足之处。除了中学化学教学常用的功能之外,软件加入了一些专业功能,使其既可作为供教师使用的化学教学工具及学生课后进行自主探究式学习的工具,同时也可作为化学数据查询、计算工具供化学类相关专业人员使用。
参考文献
[1] 刘志广,高占先.化学多媒体系列教学软件的研制与应用[J].化工高等教育,2003(1):96-98.
[2] 徐顺,张勇,赵晓洋,等.常用化学软件多媒体教学软件的开发研究[J].计算机与应用化学,2005,22(12):1142-1145.
[3] 孙会霞,职桂珍.线性方程组的基本理论在配平化学方程式中的应用[J].郑州轻工业学院学报(自然科学版),2001,12(4):68-71.
[4] 刘树利.化学反应方程式配平的数学模型及求解[J].潍坊学院学报,2005,5(2):81-83.
[5] 王荣浩.用矩阵代数运算解决复杂化学方程式配平问题[J].卫生职业教育,2004,22(12):75-76.
[6] 胡龙桥.配平化学反应方程式的矩阵方法[J].天津师大学报(自然科学版),1997,17(2):63-66.

此内容为AET网站原创,未经授权禁止转载。