- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于WPF化学方程式配平计算系统设计与实现
基于WPF化学方程式配平计算系统设计与实现
摘 要 本文针对化学方程式自动配平问题建模,找到配平计算的一般算法,利用C#和WPF实现计算系统。通过测试发现,系统不但能够准确配平方程式,而且化学式的位置变换不会影响计算结果,从而证明系统具有稳定性。
【关键词】化学方程式 配平 线性方程组 WPF C#
1 引言
化学方程式是用等式的形式表示化学反应的式子。化学方程式遵循质量守恒定律,分子式或原子式前的反应系数也代表了反应物和生成物之间的数量关系。然而在已知反应物和生成物的情况下,虽然可以通过手工方法配平简单的方程式,但是对于大型或大量方程式,手工配平十分困难。如何能够利用程序实现自动配平计算是解决问题的关键。
WPF(Windows Presentation Foundation)基于.NET Framework,实现界面与功能的完全分离,它丰富的用户控件为配平计算系统提供了良好的展示界面。C#是当今主流的面向对象编程语言。本文根据化学与线性代数相关知识,找到配平计算的一般算法,用WPF设计了系统界面,用C#建立计算模块,实现化学方程式的自动配平计算。
2 配平方法综述
在化学中主要采用四种方法对给定的化学方程式进行配平。
2.1 最小公倍数法
(1)找出在方程式两边各出现一次,且最小公倍数较大的元素。
(2)求最小公倍数。
(3)根据该元素系数,推导出其它化学式的系数。
2.2 观察法
(1)从方程式中找到一种比较复杂的化学式,推导确定等号另一边相关元素的系数。
(2)根据已经得到的系数求出其它系数。
2.3 定一法
(1)先设定某个化学式的系数为1。
(2)根据元素守恒进而确定其它化学式的分数系数。
(3)求分母的最小公倍数并去分母。
2.4 待定系数法
(1)选取化学方程式的一边,设定各化学式的系数为{1, x1, …, xn-1 | n为项数}。
(2)根据元素守恒用代数式表示等号另一边各化学式的系数。
(3)建立方程组并求解。在这四种方法中前三种方法主要依赖人为判定,而不是计算的一般方法。本文在设计中将采用以待定系数法为主,结合最小公倍数和定一法的计算方法实现系统。
3 配平算法
待定系数法本质上是利用线性代数中求解线性方程组的方法实现配平计算。由于方程式的元素守恒和质量守恒特性,利用待定系数法产生的方程组为齐次线性方程组,系数矩阵的秩等于项数,因此方程组具有唯一解。表1给出了配平算法。
4 系统实现
本系统利用C#.NET实现系统后台计算功能,利用WPF实现系统呈现。系统不但能够显示配平之后的方程式,还展示了运算过程。下面介绍系统中所实现的主要类及其功能
4.1 化学元素类
该类是系统中最为基本的类,该类描述了方程式中出现的元素以及其出现的位置和数量系数。该类主要有两个属性即名称和系数数组。构造函数中除了对元素名称赋值外还需要记录元素在方程式中出现的位置和原始数量。并且重载ToString()方法,方便打印每个元素。
4.2 分数计算类
该类是矩阵运算的基本类,在建立系数矩阵后,要想计算得到结构就必须对矩阵中的行进行加减乘除运算,而这些运算都是以分数操作数进行的,该类描述了分数的构造、运算和打印操作。分数类包含分子和分母两个属性,构造函数分为:分子分母构造和复制构造两种。并重载了比较运算、加减乘除运算符和打印方法。还建立最大公约数和最小公倍数方法方便计算调用。该类结构见程序1。
4.3 矩阵运算类
该类主要是对分数矩阵进行运算,通过建立两行相加、行交换、行的加减乘除元素和矩阵单位化等方法,最终得到单位矩阵。矩阵运算类属于工具类,所以采用了静态类编写。
4.4 配平类
该是总体计算类,它用来调用各种运算模块和控制运算进程,计算并输出结果。方程式中的化学式必须为标准的分子式或原子式,通过预处理方法调整方程式中的等号、加号、括号的格式,把全角字符转化为半角字符。之后利用方程式拆分和元素统计方法、系数矩阵建立方法、分数矩阵运算方法完成运算,最终把结果输出到前台显示界面显示。配平类结构见程序2。
4.5 结果显示
显示界面用到了WPF的多媒体控件RichTextBox。这个控件基于四层结构,最底层是Run类用来存放行内的文本内容,上一层是Italic、Bold等的字体控制类层。再往上一层是Paragraph类层,一个Paragraph对象包含多个Run对象或字体控制对象,可以对一段进行格式控制。然后是Document层,一般在FlowDocument类中,这个类用来对文档进行整体格式控制。本系统使用RichTex
原创力文档


文档评论(0)