VB工程(精选7篇)
VB工程 篇1
1 引言
测量工作包括外业和内业两个过程。外业即测量人员通过使用测量仪器对布置在现场的观测点进行实时观测, 并获取当次观测数据的过程, 其观测结果的好坏, 决定了后期内业数据处理结果对实际情况的反映程度。内业则是通过以外业的观测结果为输入, 经过一定的中间计算, 得到可以用以反映或说明一定事实的数据结果。同时, 在内业计算的过程中, 还要注意对输入数据的有效性进行检查, 从而消除外业观测中因人为失误而形成的记录。
在内业计算过程中, 常常要面对大量的数据和繁杂的中间过程, 任何一个环节的错误, 都会导致最后结果的不准确。目前通过使用Excel的公式编辑、引用以及自动填充等功能, 将计算模式固定下来, 减少了公式计算失误带来的错误, 但由于观测输入的数据量通常较大, 在数据与数据之间因操作的不当也会带来结果的错误, 而这通常是目前在使用Excel时主要会遇到的问题, 而发现错误后再反查, 也费时费力。因此, 若将一系列单步的Excel操作继续整合成为一套自动完成的完整过程, 则对于提高内业的效率和准确性, 都大有帮助。
Excel中有自带的宏过程, 可以实现一些固定的重复性操作, 从而减少误操作, 但其要求对象单一, 难以通用化。而宏的实质是一系列的单步操作的代码集合, 可以通过Excel内置的VBA来创建和修改, 但此方法不适合于推广和使用的便利性, 若能直接由一个按钮就直接完成中间过程得到结果, 应该是最喜闻乐见的。
VBA实际是VB的一个子集, 所有VBA能完成的指令, 都可以通过VB来完成, 但由于VB是独立于Excel之外的编程语言, 需要通过一定的方法来对这两者产生关联, 才能使编写的代码指令能作用于Excel中。下面以导线测量为例说明。
2 方法阐述
导线测量是沉降测量的一种方法, 是通过将观测路线设定为一个首尾相接的闭合环, 并由此计算闭合差来校验观测数据的准确性的过程。对于外业观测得到的数据, 通常的做法是:先将其输入Excel的列中, 再通过对每一对前后视读数分别编辑计算公式, 同一站的数据则可以使用自动填充功能。这保证了同一站中计算公式的一致性, 但在不同站之间没有这种一致性, 只能依靠操作人员细心操作来避免, 而且在不同站之间重复编辑同一类的计算公式, 也有失效率。对于同一观测路线, 虽可以套用上次的计算模版, 但一旦路线稍有改动, 则难免要重新编辑。由此可知, 使用Excel来进行导线计算, 存在的问题是:操作冗长且易出错。而这些完全可以通过整合各步骤来自动完成。
自动完成的关键在于对每个点的预判断, 具体流程为:从初始的后视点开始, 先判断最后一个点是否是同名点, 来保证此路线是闭合路线, 并检查两个读数是否符合要求;再判断下一个点, 若是前视, 则在数据检验后 (两次读数的差值是否符合要求) , 用于计算本点的高差和高程 (假设第一个后视点为初始高程0.00) ;若是后视, 则再判断本点与其上方所有点的同名点的位置, 将第一个同名点的高程作为本后视点高程, 同时检验两个后视读数是否符合要求;直至最后一个点, 其高程与初始后视点的高程的差, 即为本次测量的闭合差。流程图见图1。
以上的操作流程, 由VB语言实现。在VB中, 可以通过新建外接程序工程来实现对Excel的关联, 在设置好新建的工程与Excel的接口后, 引入对Excel对象的引用, 完成初始化, 至此便可以使用Excel的对象、方法、和属性, 来完成工作表或单元格的具体的操作指令。其中, 设置接口的目的是为了实现在Excel开启后可以加载此外接工程, 比如添加一栏菜单按钮, 再通过对按钮编写相应的代码过程实现具体功能;而对Excel对象的引用, 则由于Excel应用程序版本的不同, 分别选择, 比如对于Excel2010的版本, 其引用的对象为Microsoft Excel 14.0 Objects Library和Microsoft Office 14.0 Objects Library, 若是Excel2003的版本, 则为Microsoft Excel 11.0Objects Library和Microsoft Office 11.0 Objects Library, 引用的目的是为了使VB能够声明和实例化Excel的对象, 从而实现对Excel文件的打开保存、Excel工作表的新建删除、单元格的赋值引用等具体方法和属性的调用。
3 实例分析
现以一个简化的导线观测数据为例, 从计算结果和效率上进行对比, 分析如下:
表1为导线观测数据计算结果, 其中站点为3个站, 从A闭合回A点, 假设A点的初始高程为0.00, 由于计算结果一致, 故只用一张表表示。
在手动操作过程中, 高差的计算是通过 (本站的后视-本点的前视) 并取两次读数的平均来得到, 高程则是基于本站后视点的高程。在实际操作中, 可能出现的错误有:1.前后视读数输入有误, 使两次读数的差值超出规定的要求 (±10) , 这可能是现场测量时就发生的未及时发现的错误, 也可能是在录入至Excel时输入不当而发生的错误;2.高差、高程计算时, 对单元格引用错误, 这可能是在使用自动填充功能时, 误将本站的后视引用为上一站的后视。这些问题在路线较短时还较为容易检查出来, 一旦路线加长, 并有支线加入计算时, 检查错误的位置就需要花费一定的时间。
而程序在运行过程中, 计算具体流程为:先对点A行的后视读数进行检查, 并进入下一行;在判断1点的读数是前视读数后, 同样先检查这两个读数的有效性, 之后计算1点的高差、高程, 并进入下一行;对2点和转点1也进行同样的判断、检查和计算, 并进入下一行;这时遇到的是同名的转点1, 且读数是后视读数, 于是先往上查找同名转点1的行号 (第4行) , 再将后视重新赋值为转点1的后视 (435252和133699) , 并进入下一行;在接下来遇到的3点, 在经过判断和检查后, 计算高差、高程时, 就得使用上一步重新赋值过的后视 (435252和133699) 以及查找到的同名点所在行的高程 (第4行对应高程260.95) , 计算后进入下一行;之后过程以此类推, 直至最后一行。虽然过程中要经过判断前后视、检查数据有效性、查找同名点、计算高差高程等步骤, 但整个计算过程运行起来还是十分快速的。
同时, 由于实际的线路常会出现后视点查找到的同名点不是正好在其前一行, 或此点号成为不止一个站点的后视, 在手工操作中, 极容易出现误操作, 因此通过程序的自动判断查找, 可以省去大量的精力和时间。
4 结论
通过将VB引入到测量观测的内业计算中, 实现Excel的一键计算, 可以提高内业工作的效率和准确性。
同时, VB在测量工程中的运用范围还可以继续拓展, 有待下一步开发。
摘要:本文通过以沉降观测中的闭合导线计算过程为例, 介绍了VB (Visual Basic) 在Excel二次开发中的应用, 使计算过程的准确性和效率都得到提高。
关键词:vb,Excel二次开发,工程测量
参考文献
[1]龙马工作室教传艳, 王果.Visual Basic 6.0程序设计完全自学手册.北京:人民邮电出版社, 2009.
VB2生产废水治理工程试验研究 篇2
VB2生产废水的水质水量见表1。
2 废水的水质特点及试验方案
2.1 废水的水质特点
根据对该厂产品生产工艺的调查及所取废水水样的分析, VB2生产废水有以下几个特点:
(1) 废水的水量大, COD有机负荷高;
(2) VB2生产废水的有机负荷高, 废水中含有一定量的硝基化合物, 该类化合物具有较大的生物毒性;
(3) 有较大水量的地面冲洗水及生活污水。
2.2 试验方案
根据VB2生产废水的特点, 我们确定如下试验方案:
(1) 根据废水总有机负荷高的特点, 确定分流削减高浓度废水的有机负荷, 尽可能降低后续处理压力, 降低处理成本及基建费用;
(2) VB2生产废水的COD浓度高, 废水中含有硝基化合物, 因此, 必须采用适当的预处理手段, 降低废水的COD浓度, 同时降低废水的生物毒性;
(3) 生化处理使目前国内外对大水量生产废水进行污染治理最常用、最成熟的处理工艺, 而较大水量的轻污染废水的存在, 对高浓度生产废水的生化处理提供了可行的条件。
3 试验原理
3.1 VB2生产废水的预处理
参阅了国内外对该类废水的多种预处理方法, 如化学氧化法:将含有4%~6%的臭氧的空气通入废水中, (废水为240L, 臭氧加入量为16g/h) , 再加入10g氯, 15min后水即可澄清[1]。考虑到实际工程应用的可操作性, 采用亚铁还原氧化法 (Fe2+/Fe3+系统) 是比较实际可行的方法。
FeSO4在碱性条件下形成墨绿色Fe (OH) 2絮状沉淀物具有强烈的选择还原性, 在常温下, 可以快速有效地还原有机含氮化合物, 如VB2生产废水中含有的硝基甲苯、偶氮物及羟基苯胺等。而Fe3+可作为氧化剂进一步将苯胺类有机物氧化成溶解度很小的醌式结构化合物。反应结束后, 再加入的石灰乳中和, 生成的Fe (OH) 3胶体絮状物, 其对有机物的絮凝吸附能力远高于一般药剂水解法得到的Fe (OH) 3的吸附凝聚能力。通过吸附作用, 废水的COD的浓度将大大降低。同时废水的生物毒性也大大降低。
3.2 生化处理
生化处理是利用人工培养和驯化的微生物群体去分解氧化污水中可生物降解的有机物, 通过生物化学反应, 必改变这些有机物的性质, 再把它们从污水中分离出来, 从而使污水得到净化的方法。微生物以细菌为主:包括真菌、藻类、原生动物及后生动物等。细菌是净化功能的主体。污水中的溶解性有机物, 是透过细胞膜而被细菌吸收的;固体和胶体状态的有机物是先由细菌分泌的酶分解为可溶性物质, 再渗入细胞而被细菌利用的。
有机物在有氧条件下, 通过好氧微生物的代谢作用被分解氧化, 一部分被吸附的有机物最终被氧化分解为简单稳定的CO2、H2O及NH3等无机物, 并放出生物生命活动所需的能量;另一部分有机物则由微生物合成新细胞, 这些新细胞可以从废水中分离出来。与此同时, 一部分微生物细胞物质自身也在分解供应能量, 叫做微生物的内源呼吸作用, 它在有机物接近耗尽时, 成为微生物取能量的主要方式。通过上述两个方面的微生物生命活动, 废水中的有机物得以去除。在整个好氧过程中, 必须连续供氧, 要保证废水处理的效果, 还必须有足够量的微生物和营养物质。
4 废水处理的试验流程
根据废水处理方案结合工程的实际情况, 及国内外的相关文献资料, 确定如下实验流程, 如图1所示。
5 实验结果
5.1 VB2生产废水预处理实验结果 (见表2, 图2)
5.2 VB2生产废水生化实验结果
VB2生产废水微生物驯化时间为一周, 生化采用兼氧、好氧二段生化法。生化数据见表3, 生物降解曲线如图3所示。
6 结论
1) VB2生产废水经硫酸亚铁预处理后COD浓度降低了40%, 硝基苯浓度降低73%, 苯胺浓度降低6.7%, B/C值提高0.1。数据表明该预处理方法适合处理VB2生产废水。
2) VB2生化实验数据表明, 该废水经生化处理后可以达到排放要求, 但COD生物降解曲线表明, 该废水生物降解比较缓慢, 生化停留时间较长。
3) VB2生化需较大水量的其他废水, 以满足生化进水COD浓度的需要, 为节约水资源, 降低基建投资, 可考虑采用三级生化法进行处理。
4) 预处理结合生化法处理VB2、咪唑二酸生产废水, 达到接管排放标准, 实际工程完全可行。
摘要:利用硫酸亚铁的还原性对含有硝基苯类化合物的工业生产废水进行了预处理, 能将废水中硝基苯类化合物转化为苯胺类化合物, 有利于后续的生化处理, 同时废水中的COD、硝基化合物、苯胺均能达到GB8978-1996中规定的二级排放标准。
关键词:VB2,预处理,生化
参考文献
VB工程 篇3
关键词:拉力检测,数据采集,VB,组织工程
1 前言
组织工程是20世纪80年代崛起的一门生命科学, 而构造组织工程化心肌组织则是组织工程领域中重要的一个方面。目前已经可以将胶原与心肌细胞混合培养后获得一致的跳动, 该跳动在频率上和自然生长的心肌组织吻合, 但是心肌的跳动产生的收缩力也是检验组织工程化心肌性能的一个重要指标, 然而对收缩力的精确检测的手段仍然不够成熟。
有关计算机对模拟信号的实时采集, 已经有比较成熟的技术, 主要有A/D数据采集卡以及利用已有的通讯协议 (例如RS232/485等) 进行数据的采集和传输。因此如何利用现有的高级语言设计具有多种功能的数据操作和处理平台就成了一个关键的问题。
本文从设计收缩力检测装置出发, 设计出悬臂式拉伸检测结构。因为VB的MSCOMM通信控件具有完善的串口数据发送和接受功能, 利用它就可以屏蔽对硬件的操作, 简易快捷地进行串行通信编程, 所以我们利用VB语言实现传感器与PC计算机的通讯, 并且在实现数据采集的基础上, 设计了便于操作的数据采集与处理功能的操作平台。
2 硬件介绍
2.1 拉伸装置简介
简单机械收缩力拉伸机械应该具有结构简单, 拉伸同轴性好, 试件装拆方便, 预紧调整方法可靠, 以及实验重复性好等特点。根据以上要求, 我们设计了如图1所示的悬臂式收缩拉力检测装置。
如图1所示, 收缩力检测装置包括底座/支架、力传感器、于今螺母和支撑悬臂梁等几部分组成。其中带有温度补偿的拉力传感器是该装置的核心部件, 并且应变片包埋在硅胶粘合剂中而与空气隔绝, 避免了受外界的腐蚀作用, 又由于其他所有的零部件都是不锈钢制成, 因此整个装置可以放在水中测量, 这对于测量心肌条带的收缩力是必要的, 因为组织工程化心肌条带如果离开培养液而暴露在空气中, 心肌细胞很快就会死亡。支架在靠近底部的某处可以折成90°从而使心肌条带处于水平的位置, 这就可以使心肌在检测时放入培养皿等盛有培养液的容器里。
利用同轴定位原理将传感器和支撑悬臂梁保持在同一平面内, 上面各装有一个钩子, 钩子通过特殊的结构而保持严格的同轴心, 这就保证了拉伸的严格同轴性, 减小了测试的原理性误差。通过预紧螺母将待测心肌条带预紧于装置上, 那么心肌条带的微弱跳动都能被传感器检测到。
2.2 数据采集硬件及流程框图
力传感器检测到的收缩力信号经过传感器转化为微弱的电信号, 我们再通过放大器将微弱信号放大到数据采集卡能够识别的电压信号, 经过数据采集卡转变成数字信号后进入到计算机, 通过数据采集处理平台进行存储、打印、修改和分析等处理。整个过程的基本框图如图2所示。
3 数据采集及处理系统的的主要功能和程序基本结构
3.1 系统的主要功能
基于VB语言开发的检测平台希望实现以下几个主要功能:
(1) 文件读写, 包括读入以前采集的数据进行分析和存储当前采集的数据, 数据格式合理;
(2) 数据采集的控制及初步处理, 包括采集时间和采样频率的预设和控制, 数据采集过程中的实时中断和抗干扰处理等;
(3) 采集拉力数值在平面坐标系里的实时变化曲线的绘制, 附带有图像的存储、调入以及粗细颜色变化的处理等;
(4) 图像重绘功能, 对于得到不合适的图像进行坐标轴大小的变换, 得到便于分析的图像。
3.2 程序基本结构
该平台的程序设计按照以上几个功能模块作结构化设计, 其简单流程图如图3所示, 整个程序包括4个功能模块:数据采集模块、曲线实时绘制模块、坐标变换及重绘图形模块和菜单功能模块。
(1) 数据采集模块程序
数据采集卡将经过放大器放大的传感器信号调制成数字信号, 数据采集模块程序将数字信号依次读出来, 在读信号之前, 需要对采集通道进行初始化, 为了在采集的过程中消除一些干扰信号带来的误差, 采用了滤波程序。
(2) 曲线实时绘制模块
曲线实时绘制模块是该平台的主要功能, 包括曲线和采集数据的实时显示, 最值的跟踪计算, 波峰之间的时间间隔的窗口显示和鼠标点击时坐标值的即时显示等功能。
(3) 坐标变换及重绘图形模块
坐标的变换是为了适应不同大小拉力测量值的绘制, 在测量组织工程化心肌条带这种拉里很小的试样时, 就需要坐标刻度相对密集, 因此我们采用了分段方法绘制或者重绘曲线。传感器的测力范围为0~5N, 那么我们就将坐标轴的类型分成3种, 一种是测力范围大于2N, 它的坐标最小刻度为0.5, 一种是测力范围在0.2N~2N之间, 它的最小刻度为0.1, 还有一种是测力范围小于0.2N, 相应的坐标最小刻度为0.01。开始是系统默认第一种坐标方式, 为了让使用者注意坐标系的选择, 我们系统开始时并不绘制出坐标系, 而是在需要绘制图形的时候才提示使用者选择坐标系, 下面几幅图代表了该功能的具体效果。由图4~图6的比较我们可以看出, 图5更为清楚地表达了数据的峰值间隔和熟知的变化趋势, 所以我们采用这种方法解决了图形的合适显示问题。
当然, 对图形的处理并不只有这些功能, 还包括对过去曲线的显示、放大、修改等等, 因此图形操作的模块其实还具有图像浏览软件所具有的一些功能。
4 菜单功能模块
图7就是运行中的数据采集平台, 它包括一个很醒目的数据曲线实时绘制区域, 而其他的区域是下拉菜单和与之对应的图标菜单, 这些菜单可以实现一些过程控制和数据处理的功能。
(1) 文件菜单。文件菜单里含有对测量过程的控制, 主要包括测量的开始、暂停中断、结束和退出测量等有用的控制功能;还包括对测量的初始化, 包括采样时间和采样频率的设定。
(2) 处理菜单。该菜单包括对数据的最大值和最小值的计算和显示, 以及重绘图形时坐标数值的输入接口等。
(3) 曲线菜单。曲线菜单主要是对曲线的一些处理, 包括显示实时曲线、保存当前曲线、放大当前曲线、打印当前曲线、显示过去曲线以及曲线本身和背景颜色的设定等。
(4) 帮助菜单。帮助菜单链接一个对系统使用方法和注意事项的说明文本, 可以提供给使用者必要的提示和帮助。
结语
本文介绍了应用VB开发应用于组织工程心肌组织收缩力测量的系统。经过测试实验证明, 该系统具有稳定性好, 测量范围广, 数据处理和图形绘制功能强的特点。本系统程序具有很好的可移植性, 可以应用于很多类似的系统中。为组织工程中一些实验数据的检测提供了一条比较方便的方法。
参考文献
[1]李淑华.vb程序设计及应用 (第二版) [M].北京:高等教育出版社, 2006.
[2]王化祥.传感器原理及应用 (第三版) [M].天津:天津大学出版社, 2007.
[3]房庆华, 葛剑鸿.卷取机关键零件力学分析程序设计[J].山西冶金, 2014 (04) .
VB工程 篇4
应用MATLAB进行数值分析、图像处理等工作,可以大大节省编写底层算法的时间,避免重复性劳动,提高工作效率[1]。缺点是界面开发能力较差,功能模块分散,灵活性较差。
Visual Basic 6.0集成了功能强大的编辑、编译、链接、测试等许多可视化编程工具。VB相对其他高级语言有很高的编程效率,尤为突出的是可视化图形界面与数据库应用方面,编程速度比其他编程语言快几倍甚至几十倍,但VB的数值计算能力很弱,不易于处理数据运算。
因此,本文采用基于COM组件的MATLAB和VB接口混合编程方法来开发数值计算比较复杂的应用程序。用VB开发界面,MATLAB处理数据分析和仿真,不仅可以得到友好的用户界面,提高计算精度,加快程序运行速度,随时变参,而且极大地减少了程序设计的工作量,避免了重复繁杂的算法,充分发挥MATLAB和VB各自的优点,从而简化运算并高效地完成计算、分析、绘图、数据提取等任务[2,3]。本文主要探讨如何运用二者优势对圆柱形弹簧变形量进行蒙特卡洛模拟,将其内部代码进行封装,用户只需要即时改变参量数值,便可以得出相应的结果与图形,避免了重复累赘的运算过程,提高了工作效率和准确度。
1 MATLAB和VB接口混合编程的方法概述
为实现混合编程,MATLAB 5.0以后版本自带C语言编译器,可以把M文件转换成DLL程序,方便VB调用。两者互相调用的接口混合编程方法,目前一般有以下几种方法:
(1)Active X技术(即Automation Server技术)。MATLAB引擎采用C/S方式,通过Active X通道和MATLAB相结合。这种方法最大的缺点是不能脱离MATLAB工作环境。
(2)利用Matrix VB库。Matrix VB是一个包含MATLAB函数功能的COM库[4],可以在VB中直接使用[5]。该方法的最大缺点是要先安装Matrix VB包,并且Matrix VB包提供的函数也有限。
(3)COM组件技术。Mideva是Math Tools公司推出的一种MATLAB集成编译开发平台,提供M文件的解释执行和开发环境支持。运用Mideva组件的途径有两种:
(1)经过简单设置,可以把M文件转换成C/C++代码,添加到MSVC、C++Builder等的工程中。
(2)利用Mideva直接生成EXE文件,在VB中通过Shell调用。
(4)借用C++编译器把M文件转换成DLL,VB可以直接调用。
(5)在MATLAB 6.0以后,可通过Add-in实现混合编程。
而在本文中,将运用COM组件来实现MATLAB和VB接口的混合编程,从而可以脱离MATLAB环境运行,并且移植性好。
2 基于COM实现MATLAB和VB接口的混合编程
2.1 将M文件编绎成DLL
第一次使用COM组件将M文件转化成DLL文件前,需要配置编译环境。接着创建新工程文件。如图1所示。
在新的窗口中为新建工程添加M文件,然后生成DLL文件。如果要在脱离MATLAB的环境中调用所生成的DLL文档,在打包之前需为MATLAB安装配置文件MCRIstaller.exe,最后打包。
2.2 在VB中调用DLL
首先在VB中创建一个新工程,在工程中引用DLL文件,实现MATLAB和VB接口的信息链接。在菜单“工程”下选择“引用”选项,从而进入了引用对话框设置窗口。如图2所示。
通过“浏览”,将所生成的DLL文件添加到可用的引用框中,并将其勾选。添加成功后,需要对组件进行声明。即在通用声明栏中对COM组件进行声明,其语法结构为:
Private DE As mtkl.mtklclass
然后需要在窗口载入时进行组件的初始化,其语法结构为:
Set DE=New mtkl.mtklclass
由于工程实际中对数值计算的要求,在调用DLL时,要将各个参数的精度转换成双精度型,从而提高计算精度。
2.3 VB程序的打包
可利用VB程序自带的打包工具便可实现程序的打包。打包完的程序可以随意进行移植执行,有利于程序的推广[6]。
3 应用实例
在工程实际中,运用MATLAB和VB混合编程方法进行编程已产生了很多有效的应用。如西安石油大学王江萍、鲍泽富将VB和MATLAB结合,用于钻井事故诊断系统开发,通过钻井现场所得到的数据样本,用曲线拟合与人工神经网络技术,设计实现钻井数据异常诊断系统。经实践证明,该方法切实可行,并对钻井生产具有指导意义[7]。西安空军工程大学蒋静芝等将VB调用MATLAB的方法应用到基于神经网络的网络故障诊断系统的软件中基于MATLAB/VB的网络故障诊断软件设计中。该软件具有良好人机交互界面,便于网管人员的学习和掌握,且实例验证表明利用VB调用MATLAB方法开发的网络故障诊断系统,其诊断结果可靠,能够满足网络实时故障诊断的要求[8]。
本文将运用MATLAB和VB混合编程方法对圆柱形螺旋弹簧进行可靠性设计。已知,圆柱形螺旋弹簧变形量的计算公式为:
根据试验数据可知,轴的压力F~N(700,35),材料G~N(8×104,0.224),弹簧中径D~N(35,0.23),弹簧直径d~N(5,0.1),有效圈数n~N(10.5,0.2),采用蒙特卡洛模拟法来确定圆柱形螺旋弹簧变形量的特征参数。
3.1 蒙特卡洛模拟法的原理与计算流程图
应用蒙特卡洛法模拟应力和强度的分布来计算可靠度,是一种行之有效的方法。文献[9,10]中详细介绍了蒙特卡洛模拟法的原理以及计算程序流程。
3.2 编写M文件
借助MATLAB强大又方便的数值计算,编写mtkl.M文件来实现蒙特卡洛模拟算法。M文件部分代码如下:
这个M文件便是执行计算模块,接着按照前面所介绍的方法将此M文件生成可供VB程序调用的DLL文件。
3.3 VB程序的调用
按照前面所介绍的VB调用MATLAB所编译的DLL文件的方法,依次在VB新建工程中的引用DLL文件,并且对COM组件进行声明和赋值初始化。
在VB程序调用接口函数,语法结构为:
Call DE.FUNm(c F,m F,c D,m D,cn,mn,c G,m G,cd1,md1,n)
通过此接口函数,VB程序便可以调用在MATLAB中所编制的M文件,即计算执行模块,从而实现混合编程。工作界面如图3所示。
在此工作界面中,任意参数的值均可以随时动态也进行改变。
点击第一、第二个按钮结果如图4、图5所示。
4 结语
本文详细讨论了基于COM组件的MATLAB和VB混合编程方法。在使用由VB开发的运算软件系统时,通过把MAT-LAB开发的COM组件作为VB的一个动态链接库,可以轻松地在VB中使用MATLAB所提供的各种数据计算、分析,图像生成、处理工具,并且可以随时改变参数值,从而得出相应结果和图形,实现动态反应,这样能充分发挥这两种软件各自的优点,从而大大提高了软件的计算分析功能和开发效率,然后进行封装打包,使软件保密性更高。可见基于COM组件的MATLAB和VB混合编程方法在机械可靠性设计,乃至机械工程上将是一种很有应用前景的技术。
参考文献
[1]苏炜,杨敏.用VB和Matlab混合编程方法的讨论[J].现代电子技术,2004(12):66-67.
[2]宋广东,刘统玉,王昌,等.基于COM组件的VB和MATLAB混合编程实现振动信号处理[J].山东科学,2010,23(1):32-35.
[3]于洋,周学伟,赵亚威.COM组件在实现VB调用MATLAB中的应用[J].计算机工程与科学,2008,30(5):110-112.
[4]沈小燕,王乘.COM/DCOM接口技术及其在MATLAB中的应用[J].计算机工程与设计,2002(8).
[5]王富昌,曹慧荣.VB与MATLAB的完美结合——MatrixVB[J].电脑学习,2002(2).
[6]楼玉萍.Visual Basic程序设计[M].杭州:浙江大学出版社,2006:310-312.
[7]王江萍,鲍泽富.MATLAB与VB混合编程及其在钻井事故诊断中的应用[J].石油工业计算机应用,2009(4):37-43.
[8]蒋静芝,孟相如,等.基于MATLAB/VB的网络故障诊断软件设计[J].计算机测量与控制,2010,18(6):1440-1442,1461.
[9]龙东平,冯进,张慢来.蒙特卡洛法在机械零件可靠性设计中的应用[J].石油机械,2004,32(4):22-25.
高职VB教学初探 篇5
一、认真研究教学大纲,明确教学目标
教师在讲授每一门课程之前,应对系部制定的本课程的《教学大纲》、《实践教学大纲》认真研究分析,对不合理的地方可写出书面申请,陈述自己的理由,根据实际作部分的修改,明确教学目标、教学内容、教学学时及重点,摆正教学目标与教学实践的关系,在教学中以教学目标为导向,一切教学活动为教学目标服务。如何把职业的培养目标与每一堂课的具体目标结合好,并总体规划分步推进,最终完成职业课的教学要求是我们研究的重点。
二、认真选取教材,制定合理的教学计划
要上好“VB程序设计”,对教材的分析极为重要。在新教材中,教材的组织基本上是任务化的。教材的每一个知识点的学习,一般是先提出学习任务,从完成任务入手,通过知识点的展开或操作实践,使学生获取解决问题的思路和方法,进而自主或协作地完成任务。在认真研究教学大纲的基础上,根据《教学大纲》的要求选取合适的教材,根据校历制定合理的教学计划,突出重点和实践教学,体现教学大纲的要求。在教学过程始终体现职业教育的特点,不仅可让学生学会编程,更能培养技能应用型人才。
三、初步培养学生的学习本课程的兴趣
在本课程教学的第一节课上,以多媒体演示教学为主,结合学生小组讨论,主要是演示历届学生用VB所做的毕业设计,如学生档案管理系统、自动排课系统、图书馆管理系统等,强调本课程在网页页制作、程序开发等方面的重要应用;培养学生的学习兴趣,引导他们使用正确的学习方法,培养学生获取信息、分析信息的能力;激励学生大胆发言,鼓励学生大胆动手,形成对程序设计总的认识。
四、分阶段,选取教学模式、教学方法
传统的计算机类课程教学方式是“讲授法+学生上机”。一般是教师把软件的功能、软件的操作界面灌输给学生,相当于教师把软件的使用说明告诉学生。教师讲得满头大汗,学生听得糊里糊涂,对编程环境仍无法驾驭;对编程思想的教学,往往停留在理论阶段,没有很好地与实际问题相结合,对学生学习能力培养没有实质性的帮助;学生上机只是把教师上课的内容操练一遍,没有自己的想法,没能发挥学生的主动性,学生毫无兴趣。结果是教师为了教软件而教学,学生为了学软件而教学,严重脱离教学目标,无形中加重了学生的学习负担。
“VB程序设计”与“Windows基础”的教学有所不同,其涉及的问题难度跨度大、综合性越来越强,对学生职业应用能力的要求在教学过程中不断提高。因此教师要把握好教学内容所属层次的区别,选择适当的教学模式、教学方法。
1. 问题探究教学法
问题探究教学法在VB教学中是一种相当有用的教学方法。这种教学法能够充分发挥学生的思维,突出学生的主体作用,从而有效地培养学生的分析问题与解决问题的能力。以“冒泡排序”为例,我没有平铺直叙地介绍算法与程序代码,而是先跟学生讲解什么叫“冒泡”,然后让学生思考冒泡排序的算法思路,进而让学生讨论并写出算法流程图,接下来讲解如何用for与if程序结构实现算法,直至整个程序编写完整。整个讲解过程结合板书,逐步引导,层层深入,取得了很好的教学效果。
2. 归纳教学法
VB教学控件类教学过程基本相似,它们都具有相同的属性和特殊属性、方法、事件。如果能够引导学生进行归纳,将会起到事半功倍的效果。在讲解其中的某一个控件的使用后,其它控件的使用规则是一样的,对它们进行归纳之后,学生只要记住其中一个,另一个自然就会使用了。又如:数组部分的教学,由于它使用灵活,许多学生与教师都认为它很难,尤其是多维数组。但如果对它们进行归纳,就会发现无论是二维数组,还是其它维数的数组,它们都会变得与一维数组的使用一样容易。在通用对话框设计部分的教,通过归纳总结,学生就会明白它就是对Active属性取不同的值而实现的。
3. 讨论教学法
在VB教学过程中,充分发挥学生的积极性与主动性是非常重要的一环。针对这门课程的特点与学生的兴趣,我在课前给学生布置了几个专题,让学生利用课余时间去思考、收集资料,并在课堂上组织学生发言和讨论。这种教学法不仅可让学生获得了许多课外知识,而且促进了教学内容的改革,并且充分挖掘了学生的学习潜力。
4. 因材施教法
由于学生学习的动机、兴趣、能力存在较大的个体差异,因此VB课程必须因材施教。对于学习能力较强的学生,教师应鼓励他们自学,并给予方向性指导,让他们超前学习。在VB教学中,培养学生的自学能力尤为重要,如果学生的学习完全依赖教师才能掌握,而没有一定的自学能力,其所学的知识很快就会被淘汰。对于一般的学生,教师则应把精力放在最基本、最常用的内容上,让他们学好基本功,掌握程序设计的方法,为后续课程的学习打下基础。另外,教学过程中,教师应从学生的角度来考虑问题,讲解内容,加强师生的互动效果,以降低学生学习的焦虑情绪。
5. 实践教学法
学习程序设计课程的目的是掌握设计程序的思路,学会用计算机语言编写程序,以实现所需处理的任务。因此教学重点要放在解题的思路上,通过大量的实践让学生学会怎样设计一个算法,构造一个程序。一开始让学生编写简单的程序,然后逐步深入。在实验题目设置上,教师应根据课时安排和要掌握的基本知识,设置必做与选做题,以满足各个层次学生的需要。在本课程结束后,教师应安排一次综合的大实验,培养学生的综合应用能力。
6. 综合考核法
衡量这门课学习的好坏,不是看学生“知不知道”,而是“会不会做”。考核的方法不能主要用是非题和选择题,而应当把重点放在编制程序和调试程序上。所以对学生学习成绩的评定,应采用综合考核法,将平时的实践成绩与期末卷面成绩进行综合,得出本课程综合考评分。这种教学法不但能更客观地反映学生的学习情况,而且能促进学生学习,起到很好的教学效果。
五、VB教学中大作业的使用
为了达到VB教学的目的,并且在较短的时间内使学生尽可能全面地掌握教师所教授的编程知识,进而灵活运用,培养实际动手解决问题的能力,教师在教学中要讲策略,如果一味地向学生灌输知识,要求学生不断练习,这样只会使学生产生厌学的情绪,同时也无法培养学生解决问题的能力。我在VB的教学中,在最后两周的教学中使用一些比较大型的、比较适合教学的程序(学生档案管理系统、仓库管理系统)作为实例来进行教学,让学生全面地了解一个大型程序软件的制作过程,对学生的能力进行培养和锻炼。大作业的使用不仅可以培养学生学习VB编程的兴趣,而且可以锻炼学生综合运用知识的能力,让学生了解各种知识和思想的实际运用,让学生了解程序软件的开发的全过程,培养学生综合考虑问题和解决问题的能力,为培养技能应用性人才服务。
总之,高职教育是一个新事物,如何使职业教育与创新人才的培养相结合,如何使职业教育和国家的信息化相结合,如何使职业教育与其它学科的学习整合,这许许多多的如何都有待进一步解决,需要我们职业教育工作者努力实践、大胆创新,可以说职业教育任重道远。教学有法,教无定法。在VB的教学中各种教法不是孤立的,而是相辅相成的。在计算机教学过程中,教师要在教学实践中不断去探索研究,寻找新的、行之有效的教学方法。相信教师只要倾注心力,把计算机教学特点和学生实际联系起来进行教学,就一定会达到既定的教学目标。
摘要:Visual Basic 6.0是计算机及相关专业的专业课程, 它还包含了很多技术实践课程的成分, 是一种易学实用、适用面广的面向对象的软件开发平台。本文作者结合教学实践, 对高职VB教学过程中大纲、教学目标的制定和研究, 学生学习兴趣的培养及教学手段、方法和教学各环节的安排进行了论述。
VB错误处理浅析 篇6
1 错误概述
在使用VB开发程序软件的过程中, 随着程序代码的增长, 在程序中不可避免地会产生一些错误, 这些错误一般可以分为三类:语法错误、逻辑错误和运行时错误。
1.1 语法错误
这类错误最容易发现, VB会把包含错误的代码用红色字体标志, 提示程序员语法错误发生的地点, 并给出错误原因的相关信息。
1.2 逻辑错误
这类错误是指程序运行正常但产生的结果却和预期的不一样。这类错误往往是由于程序员的逻辑思维混淆所导致的。
1.3 运行时错误
这类错误往往是程序试图执行的操作由于某些原因不可能被执行, 例如当用户试图去打开一个不存在的文件, 或者试图去将一个字符类型的数据输入到数据库中一个非字符类型的字段中, 或者需要更多的内存空间, 或者是遇到64K段边界限制。
上述错误为在程序执行代码过程中发生的事件, 错误的产生将中断程序代码的正常流程, 并创建一个错误对象来表示这个错误。当错误中断程序流程时, 该程序将尝试寻找错误处理程序 (一段告诉程序如何对错误做出响应的代码) , 以帮助程序恢复流程。在错误产生时, 错误处理程序能捕获错误并进行相应的操作, 以增加程序运行的稳定性和可靠性。
2 错误处理语句和对象
如果不使用错误处理, 应用程序将崩溃。那么, 当存在错误时我们该怎么办呢?首先, 应当确定是什么导致了错误。然后, 应复现错误并监视代码来找出错误的位置和原因。最后, 应当编制一段代码来处理错误以便防止问题的发生。或者, 如果错误发生了, 能够有一个行之有效的办法来处理, 如返回一个错误信息给调用者, 或其他一些可接受的方法。这就是所谓的错误处理。
错误处理程序的作用是, 对程序运行期发生的错误操作进行响应和处理。Visual Basic提供了一系列内置的语句、方法和对象用来处理错误, 其中包括:Err对象、Erl、Error$、On Error、On Error Resume Next、Resume, 使用这些语言扩展可以控制程序错误。注意, 有了这些语句, 并不意味能编写不会产生运行时错误的代码, 它们只是用来编写那些可排除运行时错误而不至于让程序崩溃而已。
2.1 Err对象
Err对象用来维护最近所发生的错误信息。利用它也可以生成自定义错误条件, 这样就可以不用特意编写错误代码而测试错误处理程序。当某个错误发生时, Visual Basic在Err对象中填充信息。每一个错误都有相应的错误号和描述, 我们可以使用错误号来判断错误类型, 并基于应用程序的需求来处理错误。Err对象的属性由错误的生成者来设置, 这个生成者或者是Visual Basic, 或者是对象, 或者是程序设计者。Err对象的Number属性能够标识错误并让程序对错误做出反应。例如, 当软驱产生一个错误时, 错误处理程序会在屏幕上显示一个用户出错信息, 通知用户排除故障, 故障排除前, 软盘操作一直被禁止。Err对象的另一些属性和方法也很重要, 如:Clear、Description、Help Context、Help File、LastDLLError、Raise、Source等。
2.2 Erl
行号是置于代码行之前的数字值。如果在代码中增加了行号, 内部变量Erl将被设置成发生错误所在行的行号。在很难查明错误位置的情况下, 如果某错误处理提供了行号, 则恐怕是再精确不过的了。
2.3 On Error
On Error语句可指导程序在出现错误的情况下运行到标号或行号所指的代码处。On Error指示Visual Basic在产生某个可捕获程序错误时完成某些动作。为了使用On Error, 我们需要定义错误发生时程序要继续执行的开始位置, 这也是On Error工作的方式。我们利用标号或行号来定义这一位置。标号是一个由冒号结尾的Visual Basic字符串。
下面的例子代码说明了如何使用On Error将程序流定位到错误处理程序:
这个简单的例子在发生错误时, 跳转到标号aa之后的代码继续执行。
2.4 On Error Resume Next
On Error Resume Next语句的作用是不中断程序的运行, 也不转移程序的执行流程, 而是忽略出现错误的代码, 执行导致错误的下一条语句。当错误发生时, 通过On Error语句捕获错误, 进入错误处理程序中, 当完成了对某些错误的修改后, 需要使用Resume语句退出错误处理程序。在Resume语句中, 可以单独使用Resume关键字, 也可以使用Resume Next关键字, 还可以将Resume关键字和一个标号结合起来使用, 该标签指明程序要转向的地方。Resume关键字将控制返回到曾经出错的语句那里 (这时, 错误已被排除, 不会再出现) , 当你需要提醒用户排除某个故障时, 例如, 提醒用户关上软驱的门或连上打印机时, 使用Resume语句是个好办法。Resume Next语句将控制权返回到出错语句的下一条语句。如果你想跳过出错的语句而让程序继续往下执行的话, 就可以使用该关键字。
结束语
Visual Basic的灵活性和强大功能在带来好处的同时, 也留给我们许多犯错误的空间。当然, 最好的方法是预防。例如, 在应用程序中加入错误处理结构以达到对错误的捡出、控制、恢复, 这种方法在编写程序的过程中非常有用。通过工程实践的检验, 有效的错误处理结构可以使得程序的鲁棒性、容错性、抗干扰性大大增强。
参考文献
[1]Anthony T Mann, 夏毓彦.VB5.0实用编程指南[M].北京:清华大学出版社, 1998.
[2]Rob Thayer, 曾湘宁.VB6.0揭秘——全面的解决方案[M].北京:电子工业出版社, 1999.
[3]肖红军.VB中错误处理程序的设计[J].计算机与现代化, 2001 (2) :107-111.
[4]陈波.通用错误处理代码在Vb6上的设计与实现[J].计算机应用研究, 2001, 18 (9) :77-79.
用VB编写打印程序 篇7
一、Print Form方法
它只需要一行代码, 即可打印当前窗口的可视区域。首先将要打印的内容在屏幕上显示出来, 然后执行窗体的Print Form, 窗体则自动将要打印的内容发送到Printer对象上, 其语法格式如下:[窗体.]Print Form。如果窗体中包括图形, 那么打印前应先置窗体的Auto Redraw属性为真。此方法优点是简单、易用并且功能强大, 但也存在内存消耗大、打印粗糙、速度慢等缺陷。
二、Printer对象
VB中Printer对象是一个独立于打印机设备的封装, 它可以代表不同的打印机, 初始时, Printer对象为系统缺省的打印机, 也可以使用下列语句:Set Printer=Printers (2) (其中2代表Printers集中的第二个打印机) 对打印机进行指定。
Printer对象具备例如:Color Mode、Copies、Duplex、Printquality等控制打印机特征的属性, 提供了Newpage、End Doc、Kill Doc等控制打印过程的方法, 以及大多数由窗体和图片框控件提供的图形属性和方法, 它还拥有Font的所有属性, 通过控制Printer对象的上述属性和方法即可完成打印操作。
利用Printer对象开发的打印程序主要靠其提供的New Page (打印新的一页, Current X、Current Y置为新页的左上角, 可完成多页功能。) 、End Doc (将打印任务加入打印机队列) 、Kill Doc (取消打印任务) 控制打印过程的。一般情况下, 打印程序完成多页打印时会多次执行New Page, 结束时执行一次End Doc将打印任务加入打印机队列。如果希望显示空白页, 则可在新的一页上只使用Printer.Print""打印空字符即可。如:
为了通过Printer对象实现文本和图形的打印, 获得最好的打印质量, 还需要对VB控制打印机的多种属性有更深入的理解, 例如打印机的坐标体系向屏幕坐标体系的转换、打印机字体尺寸的确定等。
VB为用户提供了Windows公用标准对话框Common Dialog控件:【打开】、【文件另存为】、【颜色】、【字体】、【打印】。利用公用标准对话框【打印】开发VB的打印程序, 将大大缩短程序的开发周期。应用程序中要使用公用对话框, 必须首先在工具箱中添加公用对话框控件。该动作通过激活【部件】对话框, 选中Microsoft Common Dialog Control6.0, 单击【确定】即可。然后再将公用控件添加到窗体上并设置相应属性, 该控件具有的属性有Color、Font、Print、Help等。这样就可利用Common Dialog控件来控制Printer的各种属性。如:
三、并口热敏打印机在商场款台中应用较广。通过以下语句可以控制并口热敏打印机进行打印
四、VB自带的报表功能
通过在工程中添加Data Report来生成并设置报表文件, 此方法适用于对数据库的报表。报表中分为五部分:报表标头 (Section4) 、页标头 (Section2) 、细节 (Section1) 、页注脚 (Section3) 、报表注脚 (Section5) 。可以其中分别添加报表控件, 然后通过属性指定内容, 或通过语句控制打印内容。
五、利用EXCEL进行打印
打印前需要把要打印的数据输出到EXCEL表格中, 然后通过VBA语法来进行打印操作。
六、利用WORD进行打印
打印前需要把要打印的数据输出到WORD文档中, 然后通过VBA语法来进行打印操作。
当然还有很多其他打印方式, 如第三方控件进行打印条形码、照片打印等, 本文仅介绍了VB中常用的打印方式, 读者可以编程时根据实际进行综合利用。
参考文献
[1]超维度工作室:Visual Basic.NET Win32API[M].北京:中国铁道出版社, 2003
[2] (美) 荷兹纳 (Steven Holzner) :Visual Basic6技术内幕[M].北京:机械工业出版社, 1999
[3]林永张乐强:Visual Basic6.0用户编程手册[M].北京:人民邮电出版社, 2002
[4]崔彦锋许小荣:VB网络与远程控制编程实例教程[M].北京:北京希望电子出版社, 2002
【VB工程】推荐阅读:
工程工程专业09-29
工程结算工程方案08-24
泥水工程工程教案10-01
护坡工程水利工程05-20
工程资料与工程质量08-27
浆砌石工程水利工程06-05
房建工程模板安装工程论文08-22
公共工程施工工程质量08-26
建筑工程:电气工程09-02
工务工程与工程技术09-16