1、LabVIEW常用工具包Intelligent Electronics InstituteHuazhong University of Science&Technology2目录LabVIEW常用工具包简介LabVIEW Office报表生成工具包LabVIEW数据库连接工具包OpenG工具包MGI工具包JKI状态机工具包3LabVIEW常用工具包简介工具包:具有专用功能的LabVIEW插件NI官方工具包:LabVIEW OFFICE报表生成工具包LabVIEW 数据库连接工具包第三方工具包:VI Package ManagerMGI工具包4LabVIEW Office报表生成工具包函数编程报
2、表生成5EXCEL报表生成要准确迅速的进行报表生成工作需要进行两个主要两个步骤“Where”和”What”,即告诉报表生成工具包,在Office文档的“哪个位置”,放置上“什么内容”。6该例程的编写步骤如下:(1)使用新建报表.vi进行报表建立,报表类型选择为“Excel”,同时为了使程序运行时不会弹出Excel软件窗口,窗口状态选项要选择为“minimized”;(2)放入Excel Easy Title.vi,该VI可以在Excel Specific目录下找到,使用本VI可以给当前报表设置标题。在本例中,将报表标题设置为“IEI系统测试报告”,标题位置为A1单元格,则需要设定“name”值
3、为“A1”,“title”值为“IEI系统测试报告”。另外,使用本VI还可以设置标题的字体等等;(3)放入Excel Easy Text.vi,该VI可以在Excel Specific目录下找到,使用本VI即可以告诉报表工具包在Excel的哪个位置放置上什么内容。在本例中,假设要在Excel文件的A2单元格内放入“报告时间”这个字符串,则需要设定“name”值为“A2”,“text”值为“报告时间”。另外,使用本VI还可以设置报表的字体以及边框等等;(4)使用报表保存至文件.vi将报表保存为.xls格式。本例中将报表命名为IEI Report.xls保存在C盘根目录下;(5)使用处置报表.VI
4、关闭报表文件,释放资源。EXCEL报表生成7Word报表的生成方式和Excel报表类似。该例程的编写步骤如下:(1)使用新建报表.vi进行报表建立,报表类型选择为“Word”,同时为了使程序运行时不会弹出Excel软件窗口,窗口状态选项要选择为“minimized”;(2)放入Word Easy Title.vi,该VI可以在Word Specific目录下找到,使用本VI可以给给当前Word报表设置标题。在本例中,将报表标题设置为“IEI系统测试报告”,另外,使用本VI还可以设置标题的字体等等;(3)放入Word Easy Text.vi,该VI可以在Word Specific目录下找到,使
5、用本VI即可以将所需内容添加至Word报表中。在本例中,需要将报表日期插入当前报表,则需要将报表日期字符串连接至“text”端。另外,使用本VI还可以设置报表的字体、背景颜色以及对齐方式等等;(4)使用报表保存至文件.vi将报表保存为.doc格式。本例中将报表命名为IEI Report.doc保存在C盘根目录下;(5)使用处置报表.vi关闭报表文件,释放资源。Word报表生成 8基于模板的报表生成方式1.建立模板(1)打开Microsoft Excel程序,新建空白工作簿;(2)将 A 1 单 元 格 的 名 称 改 为“ReportTitle”;(3)将 A 2 单 元 格 的 名 称 改
6、为“ReportTime”;(4)将该工作簿保存为Excel97-2003模版的格式保存。本例中命名为Excel template.xlt保存在C盘根目录下。9基于模板的报表生成方式2.使用交互式VI编程 MS Office Report.vi就会自动添加两个变体数据类型的输入端,名字分别为“ReportTitle”和“ReportTime”,即为创建Excel模版时定义好的名字。之后可以通过分别为这两个输入端赋值来生成所需要的报表。10报表生成例程 11报表生成例程该例程遵循“打开操作保存关闭”的文件编程模式。首先使用新建报表.vi建立Excel报表;后使用Excel Easy Title.
7、vi设置报表标题为“IEI测试报告”,同时将标题字体设置为“微软雅黑”,字号设置为24号;接下来使用Excel Easy Text.vi插入报告概述,同时将报告概述的字体设置为“宋体”,字号设置为12号;下一步使用Excel Easy Table.vi将表格插入到Excel报表中,字体和字号依前设置;接下来使用Excel Easy Graph.vi将波形图插入到Excel报表中;最后设置好报表的保存路径,保存完毕后使用处置报表.vi关闭报表,释放资源。12LabVIEW数据库连接工具包数据库分类:关系型数据库;非关系型数据库著名的商业用数据库管理系统有MS SQL Server、Orace、D
8、B2、Visual Foxpro、Microsoft Access等等。另外,开源的数据库管理系统有MySQL、Apache Derby、PostgreSQL、Ingres等等。MS SQL Server是Microsoft公司开发的商用数据库管理系统,在工业测试应用中非常流行,安装和使用都非常方便,并且支持SQL语言,所以本节基于MS SQL Server 2005为例介绍数据库连接工具包的操作方式。13LabVIEW数据库连接工具包数据库是以表格的形式来记录数据的。数据表的每一行,表示一条记录(Record);数据表的每一列,表示记录中的字段(Field),通俗的说就是记录的一项内容,比如
9、仪器名称等等;能够唯一标识表中某一行的属性或属性组,叫主键(Primary Key),一个表只能有一个主键,但可以有多个候选索引。因为主键可以唯一标识某一行记录,所以可以确保执行数据更新、删除的时候不会出现张冠李戴的错误。14LabVIEW数据库连接工具包在使用LabVIEW数据库连接工具包操作数据库之前,需要先连接数据库,这就像操作文件之前,先要打开文件一样。连接数据库主要有以下两种方式,分别为使用DSN连接数据库和使用udl文件连接数据库。15使用DSN连接数据库LabVIEW数据库连接工具包基于ODBC(Open Database Connectivity)技术。在使用该工具包的时候,需
10、要提供数据源名DSN(Data Source Names)才能连接到数据库,所以需要先创建DSN。在Windows控制面板管理工具数据源(ODBC)中打开数据源管理器,在“用户DSN”选项卡中单击“添加”按钮,选择“SQL Server”驱动,输入用户名和密码后,点击“测试数据源”,如果配置正确的话,就会弹出“测试成功的提示”,本例中的DSN配置如图所示。完成以上步骤后,就可以在“用户DSN”中看到新建立的DSN了。16使用udl文件连接数据库Microsoft公司设计的ODBC标准只能访问关系型数据库,对非关系型数据库则无能 为 力。为 了 解 决 这 个 问 题,Microsoft公司另外
11、提供了一种技术:Active数据对象ADO(Active Data Objects)技术。ADO使用通用数据连接UDL(Universal Data Link)来获得数据库信息以实线数据库连接。udl文件的创建方法非常简单,可以在任意文件夹下建立一个文本文件,然后将其后缀名改为udl即可,本例中将此文件命名为IEI_Measurements.udl,双击打开udl文件进行配置,在“提供程序”选项卡中选择“Microsfot OLE DB Provider for SQL Server”,然后在“连接”选项卡中设置好数据库服务器的相关信息,点击“测试连接”按钮,如果配置没有问题,则会提示“测试连
12、接成功”,至此udl文件配置完成。17LabVIEW数据库基本操作建立好数据源之后,使用LabVIEW数据库连接工具包就可以非常方便的对数据库进行操作了。LabVIEW数据库连接工具包安装完成后,可以在背面板的函数互联接口Database面板下找到所有的相关VI。18LabVIEW数据库基本操作数据库操作遵循“打开数据库操作数据库关闭数据库”的基本流程。其中,使用DB Tools Open Connection.vi来打开数据库连接,使用DB Tools Close Connection.vi关闭数据库连接。在“操作数据库”步骤中可以对数据库进行所需的操作。19创建数据表创建数据表是由LabV
13、IEW数据库连接工具包中的DB Tools Create Table.vi来实现的。首先使用DB Tools Open Connection.vi来打开数据库连接,连接文件使用前面创建的IEI_Measurements.udl文件;之后使用DB Tools Create Table.vi来建立新的数据表格,表格的名称设定为“Device”,其中包含4个字段,分别为“DeviceName”、“DeviceType”、“DeviceID”和“Company”。20删除数据表删除数据表格的过程与创建表格的过程类似,使用DB Tools Drop Table.vi实现。假设要删除前面建立好的表格,只需
14、要在DB Tools Drop Table.vi中指明要删除的表格名称即可。另外,创建表格和删除表格的参数非常类似,在实际工程应用中,一般将二者编写为同一个VI,在其中实现表格的创建和删除操作。21添加数据记录添加数据记录可以由LabVIEW数据库连接工具包中的DB Tools Insert Data.vi实现。DB Tools Insert Data.vi需要3个主要的参数:“table”参数确定将要插入的表格名称;“data”参数确定将要插入的数据;“columns”参数对应插入列的名称,可以先使用DB Tools List Columns.vi列出表格中列的名称,可以省去手动输入列名的麻
15、烦,以方便下一步的数据插入。22查询数据记录查询数据记录(读出数据记录)也是数据库中经常使用的操作步骤。在LabVIEW数据库连接工具包中,查询数据记录使用DB Tools Select Data.vi来实现。只需要在DB Tools Select Data.vi的“table”输入端指明需要查询记录的表格名称,该VI会把表中的所有数据读出来。使用“columns”参数可以选择性的读出所需要的列。23数据库高级操作数据库操作除了创建表格、删除表格、添加记录、查询记录这些基本操作之外,常用的还有删除记录、更新现有数据等高级操作。这些高级操作在LabVIEW数据库连接工具包中并没有对应的现成VI,
16、所以需要接触SQL语句来实现。LabVIEW数据库连接工具包执行S Q L 语 句 是 通 过 D B T o o l s Execute Query.vi实现的,该VI可 以 在 函 数 互 联 接 口DatabaseAdvanced面板下找到。24数据库高级操作Delete通过查询SQL参考手册,可知删除一条记录的SQL关键字为“DELETE”,其语法为:DELETE FROM table_nameWHERE column_name=some_value假设要删除DeviceName为“ELVIS”的数据记录,则使用SQL语句删除记录的程序框图如图所示。25数据库高级操作Update在SQ
17、L语言中,修改数据记录的关键字为“UPDATE”,其语法为:UPDATE table_name SET column_name=new_valueWHERE column_name=some_value假设要修改DeviceName为“ELVIS”的数据记录,将其“DeviceID”修改为“6”,程序框图如图所示。26OpenG工具包“G”代表图形化编程语言,“OpenG”则代表源代码公开的图形化编程语言,即“开源”语言。所谓“开源”,包含两层含义:其一,对于用户来讲它是免费软件;其二,它允许用户自由地查看、修改和传播源代码。OpenG就是这么一种可运行在LabVIEW开发环境下,免费的、源代
18、码公开的图形化编程语言软件包(实质是使用LabVIEW开发的)。由于开源的LabVIEW工具包多而且杂,不便于用户的查询、下载和安装,因此JKI Software社团开发了一种方便于用户下载和管理LabVIEW工具包的软件VIPM(VI Package Manager)。下面首先介绍VIPM的安装和使用方法,之后在此基础上介绍OpenG工具包中各种VI的使用方法。27VIPM安装和使用VIPM安装包可在VIPM主页(http:/ 2010。VIPM分三种版本,其中Community Edition是免费版,另外两种Professional Edition和Enterprise Edition需
19、要付费才能使用。28配置VIPM和LabVIEW的连接点击菜单栏中的ToolsOptions,进入软件配置界面,点击“LabVIEW”选项卡,在左边的列表中会自动列出当前系统中已经安装的LabVIEW版本。点击左下角的“Edit Selected Item”按钮,进入连接配置界面。在此界面配置好TCP/IP端口(默认为3363),点击“Test”按钮,如果配置正确,则会提示测试成功,至此,VIPM与LabVIEW之间的连接配置完成。29安装OpenG工具包配置好VIPM与LabVIEW的连接之后,就可以使用VIPM安装所需要的工具包了。以安装OpenG工具包为例,首先点击主界面上方的按钮“Ch
20、eck All Package Repositories for Available Packages”,程序会列出所有可以下载安装的工具包。在列出的工具包中找到OpenG Toolkit,右键点击“Install”,VIPM会自动把全部的OpenG工具包安装完毕。OpenG工具包也包含前面板控件和背面板函数两部分。前面板控件主要包含一些常用的按钮,背面板空间是OpenG工具包的核心,包含了丰富的函数。30OpenG函数 31指定范围随机数产生工具LabVIEW自带的随机数发生器只能产生0,1)范围内的随机数,而在实际应用中,需要的随机数往往是其他范围的,此时,使用Random Number-
21、Within Range.vi就可以很方便的产生任意范围的随机数。双击此vi可以查看它的源代码,如图所示。从一次函数的角度看就是线性化处理,该vi高极限和低极限默认分别为1和0,也就是说如果不给定任何输入参数,等价于LabVIEW自带的的0,1)随机数发生器。32数值转换枚举工具OpenG数值工具提供的另一个函数Coerce to Enum.vi可以将数值转换为枚举数据类型,这是一个非常有用的工具函数,NI公司的状态机工具包就使用了这种方法。从程序框图上看,该函数通过变体数据,将数值数据转换成枚举数据,在LabVIEW中数值类型是可以直接转换成枚举的数据类型的,之所以采用这种转换方式,主要的目
22、的是为了便于实现状态机或者条件分支结构,33布尔触发工具OpenG布尔工具只包含一个函数,即Boolean Trigger.vi。该vi可以用来检测输入布尔变量的上升沿或者下降沿。在PLC编程中,上升沿和下降沿的概念非常重要,在数据采集中也同样很常用。当布尔量前一个装状态为FALSE,当前状态为TRUE,我们称之为上升沿,当布尔量前一个状态为TRUE,当前状态为FALSE,称之为下降沿。Boolean Trigger.vi使用了未初始化的移位寄存器来保存上一次循环的布尔值,并与当前值进行比较,进而判断出上升沿或是下降沿。34检测数据改变工具O p e n G 的 比 较 工 具 同 样 仅 包
23、 含 一 个 函 数,即 D a t a Changed.vi。该函数可以判断输入值是否发生了变化,如果当前值与上次值不同则为TRUE,相同为FALSE,这实际上也是一个“沿”的变化,该函数类似于事件结构,当一个控件的值发生变化时触发一个事件,不过是在轮询结构中使用的。35过滤数组工具在实际编程中,经常需要对数组进行过滤操作,也就是将数组中某些特定值剔除。使用OpenG数组工具中的Filter 1D Array.vi可以方便的实现数组过滤功能,36数组搜索工具OpenG数组工具里包含一个常用数组搜索工具Search Array.vi。它是对LabVIEW数组工具中的搜索一维数组.vi的扩展。搜
24、索函数的目的是查找数组是否存在给定的元素并返回其所在位置,即索引,由于找到后立即返回,因此该函数无法直接返回所有满足条件的元素的索引,必须通过循环给定另外的开始位置,重新寻找。很多情况下,我们需要找到所有满足条件的索引,这就是OpenG数组搜索工具Search Array.vi完成的功能。37删除数组元素工具在LabVIEW自带的数组工具中,有一个删除数组元素.vi,但是使用此vi具有很多局限性。首先它每次只能删除一个或者一段元素;其次,删除一段元素的时候,这段元素必须是连续的。而OpenG工具包中的删除数组元素工具Delete Elements From Array.vi是对LabVIEW自
25、带vi的扩展,使用Delete Elements From Array.vi可以非常方便的删除数组中任意位置的任意数量的元素。38索引数组元素工具OpenG的索引数组元素工具Index 1D Array Elements.vi也是对LabVIEW自带数组索引工具的扩展。LabVIEW自带的数组索引工具每次可以索引出一个元素、连续多个元素、整行或者整列,而使用OpenG的索引数组元素工具可以指定索引数组,从而索引出任意数量的元素。39获取VI引用工具Current VIs Reference.vi可以返回当前vi的引用,而Current VIs Parents Reference.vi可以返回当
26、前vi的父函数的引用,这两个工具在实际应用中是经常需要用到的。尤其是获得当前vi的父函数的引用,可以省去编程人员查阅函数调用链的麻烦。40创建VI克隆引用工具Open VI Clone Reference.vi也是经常用到的工具,该工具是对LabVIEW自带函数打开VI引用.vi的扩展。当用户使用OpenG中的Open VI Clone Reference.vi的时候,首先给指定的VI创建一个模版,之后再创建这个模版的引用,在使用完此引用之后,会自动销毁之前创建的模版,释放资源。使用这种方式的好处是使新创建的引用和原VI完全隔离,对新创建引用的任何操作将不会影响原VI的运行。41MGI工具包M
27、GI是Moore Good Ideas,INC.的缩写。MGI是一个以LabVIEW软件和NI公司的硬件产品为主体的自动化系统专业技术开发公司,该公司由David A Moores在1999年创办。几年来,这个团队的业务能力得到不断发展和壮大,同时根据客户的实际需求和他们自身多年来的工作需要,总结、设计、开 发 了 一 套 特 有 的 V I s 库(M G I Freeware Vis),也就是下文将要介绍的MGI工具包,自由的提供给其他的LabVIEW爱好者参考使用。42数组移位工具在MGI的1维数组工具中包含一个数组移位函数MGI Shift Array.vi。使用该函数可以非常方便的对
28、数组元素进行任意位数的移位操作,移位之后的空元素将使用NaN填充。使用数组移位函数的典型例程如图所示,原数组经过位数为“-2”的移位操作之后,原数组所有元素均向左移动2位,同时用NaN填充最右边空出的两个元素。43以阈值插值1维数组扩展工具MGI的1维数组工具包含一个以阈值插值1维数组扩展函数MGI Threshold 1D Array Extended.vi,它是LabVIEW自带以阈值插值1维数组函数的扩展,该函数扩展了LabVIEW自带以阈值插值1维数组函数的使用范围,它可以产生数组限制之外的指数索引。当阈值在输入数组的范围之内时,MGI Threshold 1D Array Exten
29、ded.vi和LabVIEW自带的以阈值插值1维数组.vi返回的指数索引值完全相同;但是当输入的阈值超出数组范围(大于数组最大值或者小于数组最小值)时,LabVIEW自带的以阈值插值1维数组.vi只会返回数组内和阈值最相近的指数索引,而MGI Threshold 1D Array Extended.vi则会返回精确的指数索引,而不受数组范围的影响。441维数组滑动平均工具MGI的1维数组工具包包含一个1维数组滑动平均函数MGI Centered Weighted Moving Average.vi,使用该函数可以根据输入的权值参数(Weighting)和大小参数(Size)对输入数组进行滑动平
30、均计算,经过滑动平均操作后的数组会比原数组更为平滑,从而有利于其后的运算或观察。45计算2维数组大小工具MGI 的2维数组工具包包含一个计算2维数组大小函数MGI XY Sizes.vi,该函数可以计算出2维数组X维度和Y维度的大小。46求一元二次方程实根工具MGI数值工具包中包含一个求一元二次方程实根函数MGI Get Real Quadratic Roots.vi,使用该函数可以解出一元二次方程Ax2+Bx+C=0的实数根。如果方程没有实数根,则函数返回NaN。使用该函数解一元二次方程实根的典型例程如图所示。47数值转换为数字数组工具MGI数值工具包中包含一个将数值转换为数字数组函数MGI
31、 Number to Digits.vi,使用该函数可以将一个I32型数值转换为任意进制的数字数组。该函数默认将输入数值转换为10进制数字数组,而用户可以根据具体需求任意指定进制类型,如2进制、8进制等。转换完毕后,可以使用N=Digits0*Base0+Digits1*Base1+Digits2*Base2+.+Digitsn*Basen重建原始数值。48强制转换工具MGI数值工具包中包含一些强制转换函数,如将角度转换为弧度函数MGI Degrees to Radians.vi、将弧度转换为角度函数MGI Radians to Degrees.vi、将角度限制在0,360范围函数MGI Co
32、erce Degrees.vi、将弧度限制在-,+范围函数MGI Coerce Radians.vi等等。49浮点数“”比较工具MGI数值工具包中包含一个比较浮点数的函数MGI Approximately Equal.vi,专门用来比较浮点型数值是否相等。浮点型数值因为精度的关系,在程序设计中不能直接使用“=”来判断是否相等,必须使用“”的比较方式。MGI Approximately Equal.vi函数判断两个浮点型数值的比值是否在99%至101%范围内,从而判断两个浮点型数值是否相等。50展宽字符串工具MGI字符串工具包中包含一个用来展宽字符串的函数MGI Pad String.vi,使用
33、该函数可以将输入字符串展宽为用户需求的长度(End Length),用户可以自由输入展宽所用的字符,默认的展宽字符为s。当待展宽的字符串的长度大于End Length时,函数返回原字符串;当待展宽的字符串的长度小于End Length时,函数将使用用户指定的展宽字符(默认为s)将字符串展宽为End Length长度。51安全文件名字符串工具MGI字符串工具包中包含一个将字符串转换为安全文件名字符串的函数MGI Make String Filesafe.vi,使用该函数可以删除文件名或者文件夹名中不允许使用的字符,从而得到安全的文件名字符串,该函数在文件保存操作中应用广泛。在任何操作系统中,总有
34、一些字符是不允许作为文件名或者文件夹名的,比如在Windows操作系统中,“”、“/”、“:”、“?”等等字符不允许在文件或者文件夹名中出现。MGI Make String Filesafe.vi使用一个搜索替换字符串的内置函数对这些字符进行搜索,从而删除掉这些字符,返回安全的文件名字符串。52字符串匹配工具MGI字符串工具包中包含一个字符串匹配函数MGI String Pattern Match Exists.vi,该函数和LabVIEW自带的字符串匹配函数的区别是:LabVIEW字符串匹配函数每次只能匹配一个字符串,而使用MGI String Pattern Match Exists.vi
35、一次可以匹配多个字符串,函数将返回第一个匹配成功的字符串索引。53JKI状态机工具包JKI Software社团不仅开发出了VIPM工具包管理软件,还开发出了一套实用的LabVIEW程序结构。其中的JKI状态机工具包因为其应用的广泛性以及开发的简单性,逐渐成为大型工业程序开发的必选结构之一。JKI状态机具有如下特点:(1)基于字符串型的状态机结构;(2)单线程的生产者、消费者模式;(3)基于事件结构,便于捕捉各类事件;JKI状态机工具包同样需要借助于VIPM软件来安装,安装完毕之后,在LabVIEW函数选板JKI ToolkitsJKI State Machine中可以找到JKI状态机的相关函
36、数,54JKI状态机工具包 55JKI状态机工具包将String-Based Queued State Machine图标拖动到背面板上。JKI状态机工具在帮助用户构建状态机结构的同时,还对每个状态均进行了详细的注释说明。JKI状态机基于字符串型的状态队列结构以及单线程的生产者、消费者模式。程序会创建一个空的字符串队列作为状态队列,在程序运行过程中,“生产者”会不断的将新的状态加入状态队列中,同时“消费者”会不断从状态队列中取出状态字符串,并执行这些状态。在JKI状态机结构中,主要包含以下几类状态:(1)“空闲”。当状态队列为空时,状态机处于空闲状态,此时程序可以响应前面板上的用户事件。(2)
37、“核心代码”。包含核心代码的初始化、错误处理以及程序退出等功能。(3)“数据”。JKI状态机结构将程序中用到的数据通过移位寄存器的方式来进行传递。在“数据”状态中,可以对程序中要用到的数据进行初始化以及数据清除。(4)“用户界面”。包含用户界面的初始化、鼠标的设置以及前面板状态设置等功能。(5)“宏”。包含整个状态机的初始化以及退出等功能。(6)“新类型”。用户可以根据自己的需求自定义新状态,并将自定义状态的代码写在此处。56JKI状态机工具包在JKI状态机工具包中,还包含一些对编写JKI状态机具有辅助功能的函数,这些函数在LabVIEW函数选板JKI ToolkitsJKI State Ma
38、chineSupport for State Machine选板中。其中包含有取出状态队列中第一个状态的函数Parse State Queue.vi,将新的状态绑入状态队列的函数Add State(s)to Queue.vi以及为某个状态绑定参数的函数Build State String with Arguments.vi。57提示与建议工具包作为LabVIEW图形化系统设计软件的补充和增强,大大节省了程序员进行一些特定工作的时间,提高了编程效率。本章主要介绍了常用的LabVIEW工具包,并在介绍函数的同时附带给出了相应的例程。其中的Office报表工具包在实际的工业应用中应用非常广泛,一个成
39、熟的工业测试系统几乎都包含高级的报表生成模块。而在面对大量测量数据同时又需要对数据进行有效回溯的时候,使用LabVIEW数据库连接工具包无疑是最好的选择。本章的最后两节介绍了两种常用的开源工具包,它们对LabVIEW编程中常用的函数或者固定的模型进行了封装,使用这些封装好的函数可以简化编程流程,是程序框图更加美观,程序运行效率更高。“熟能生巧”,想要熟练的使用这些工具包,首先要对工具包里的所有函数要有全面的了解,工具包自带的例程是很好的学习资料和信息资源。同时,对于开源工具包而言,其官方网站上的帮助文档十分详细,推荐学习者多加参考。58习题1.研究Word报表生成工具,参考Excel报表生成工具包讲解部分,制作如图所示的报表。59习题2.使用数据库连接工具包配合任意关系型数据库,编写一个波形存储及回溯系统,该系统的要求如下:(1)可以生成正弦波、方波、三角波和高斯白噪声;(2)可以将波形保存在数据库内;(3)可以在任意时间点进行任意长度的波形回溯;60习题3.使 用OpenG字典工具 编 写 如 图所 示 的 用 户管 理 系 统,该 系 统 具 备添 加 用 户、删 除 用 户、修 改 用 户 信息的功能。
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。