已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
利用MatrixVB实现的混合编程VB是Microsoft 公司推出的应用广泛的可视化编程工具,简单易学、功能丰富,而且能够设计出界面优美的应用程序;可视化的用户界面设计功能使程序设计人员摆脱繁琐复杂的界面设计,因而很快就风靡全球。Visual Basic是一种十分强大和有生命力的Windows 编程语言。但是VB语言也有它的缺点,即数值计算方面能力欠佳,因此将其与计算能力强大的MATLAB混合编程将能体现各自的优势,一般的集成方法我们在前面的章节中已有介绍,本章将详细讨论基于MatrixVB的MATLAB与Visual Basic语言的混合编程技术。主要内容如下: VB调用MatrixVB的方法 VB与MatrixVB的数据传递机制 混合编程应用实例3.1 MATLAB与Visual Basic语言的混合编程方式MATLAB提供了与C/C+、Fortran语言的接口,但没有与Vsiual Basic语言的接口,要想实现MATLAB与Visual Basic的混合编程可以通过以下途径来实现。1通过ActiveX方式一是用Visual Basic开发服务器ActiveX组件,MATLAB作为客户端程序使用,事实上无论是用VB还是VC或者其他语言环境开发的ActiveX组件,对于MATLAB来说集成与调用方式是一样的,一般情况下很容易地将不同环境下开发的用途各异的ActiveX对象集成到一个MATLAB应用中来。其使用方法见第5章关于MATLAB作为ActiveX的客户端使用方法。二是在VB环境下可以通过ActiveX自动化接口将MATLAB作为Visual Basic语言的一个ActiveX部件调用。MATLAB ActiveX自动化服务的功能主要包括在MATLAB工作空间执行MATLAB命令,以及直接从工作空间存取矩阵等,我们在第5章中关于MATLAB作为服务器组件的部分的例子就是以Visual Basic应用程序,以MATLAB作为服务器客户端的。2通过动态链接库方式该种方式是一种间接调用MATLAB命令的方式,借助于C+与MATLAB的接口,将MATLAB的程序文件(.M文件)编译为动态链接库(.DLL),VB在代码中与调用其他语言编写的DLL文件一样调用MATLAB中.M 文件生成的动态链接库。这种方法可以脱离具体的MATLAB环境,运行效率较高。3通过嵌入VB的矩阵函数库MatrixVB的方法MatrixVB是由第三方(mathtools公司)提供的COM组件,包含了大量与MATLAB相似的函数与调用语法,可以加强VB内建数学运算与图形展示功能,在VB程序代码中可以像使用VB自己的函数一样使用MatrixVB的函数,而且可以不依赖于MATLAB的环境在Visual Basic中完成矩阵运算与图形绘制显示等功能,这种方法使用起来简单,编程效率较高。MatrixVB函数库的功能大致可分为8大类(矩阵运算、运算符重载、图形图像处理、最优化运算、多项式、信号处理、随机与统计分析、控制系统)。除以上3种方式外,我们还可以通过DDE的方式实现VB与MATLAB的数据通信。3.2 MatrixVB 环境设置3.2.1 在VB应用中引入MatrixVB1安装MatrixVB(1) 系统要求为: 硬盘空间8.8M以上; 操作系统要求Windows 95及其以上版本,或者Windows NT 4.0及其以上版本。(2) 在安装盘上找到Matrixvb4510.exe,双击后启动安装程序,并按照安装向导安装。(3) 然后在“开始运行”菜单中用命令regsvr32 mMatrix.dll注册,如图7-1所示。图7-1 注册 MatrixVb2建立EXE项目(1) 启动VB开发环境并建立“标准 EXE”项目,如图7-2所示。图7-2 选择标准EXE工程模板(2) 单击“打开”按钮,所建立的项目及开发界面如图7-3所示。图7-3 VB项目及开发界面3. 为项目引入MatrixVB在project下拉菜单中单击References,在弹出的对话框中选中MMatrix项目,系统将加载MatrixVB的动态链接库MMatrix.DLL,如图7-4所示。图7-4 引入MatrixVB的动态链接库3.2.2 在VB中使用MatrixVB的命令与函数1采用立即窗口的形式在项目中引入MatrixVB库后,在VB中可以直接在开发环境的“立即窗口”中输入MATLAB命令,让VB编译器立即执行,如在MATLAB主窗口中一样。在View下拉菜单的中选择Immediate Windows选项在开发环境中得到“立即窗口”,如图7-5所示。图7-5 VB中的立即窗口例如,在“立即窗口”中输入如下命令: A=eye(4,4)A.show命令将产生一个4行4列的单位矩阵,并在MatrixVB的观察窗口Matrix Viewer中显示结果,如图7-6所示。图7-6 在VB立即窗口中产生矩阵或者,在“立即窗口”中输入命令: mesh(peaks(3)将在MatrixVB的图形窗口Figure1中绘制并显示一个曲面网线图,如图7-7所示。图7-7 通过立即窗口绘制曲面图2在VB程序代码中使用可以将MatrixVB的函数与命令调用嵌入到VB程序代码中实现相应的功能,其函数与命令的使用方式类似于在MATLAB环境中的使用方式。例如,我们可以将上例中的功能在VB代码中实现,步骤为:(1) 在上例的主窗口中增加一个按钮,如图7-8所示。图7-8 为窗口Form1增加按钮(2) 在按钮的Click事件处理过程中产生一个4行4列单位矩阵并显示,代码如下:Private Sub Command1_Click()A = eye(4, 4)A.ShowEnd Sub单击命令按钮运行程序,运行结果如图7-9所示。图7-9 VB代码中用MatrixVB产生矩阵同样,在代码中也可以嵌入MatrixVB绘制图形的函数与命令,将该例按钮的Click事件处理过程中的代码进行如下修改。 Private Sub Command1_Click() mesh(peaks(30)End Sub运行结果如图7-10所示。图7-10 通过嵌入MatrixVB命令绘图在发布基于MatrixVB的VB应用程序时,应将相应的库文件随系统一起发布。这些文件包括:v4510v.dll、c4510v.dll、ago4510.dll、msvcrt.dll、msvcirt.dll和MMatrix.dll。由于MMatrix.dll是COM 服务器,所以必须在操作系统中注册后方可使用,注册时可使用如下命令行语句:regsvr32 mMatrix.dll如果目标操作系统是Windows 95,还必须发布另外两个OpenGL文件即opengl32.dll与glu32.dll,但在其他操作系统如Windows 98/Me/NT 4/2000等环境下,则不需要安装这些文件。2.3 MatrixVB 的矩阵操作矩阵是表示一组数据关系的组合,在MatrixVB中包含了许多矩阵分析函数,为了在VB中直接应用MatrixVB这些高效的计算方法,一般将VB中的数组当成矩阵进行处理,需要说明的是与matricVB矩阵元素相关的运算在VB中对应的数据类型一般为double类型。2.3.1 在VB中生成MatrixVB矩阵可以像在MATLAB命令窗口中那样,直接在VB中定义MATLAB矩阵变量;也可以使用VB的VARIANT通用型变量表示矩阵,其定义的方法如下:Dim x As Variant一般在VB中产生MatrixVB的方法主要有以下几种:1通过函数mabs转化为MatrixVB的矩阵将VB中定义的数组通过函数mabs转化为MatrixVB的矩阵,格式为:MATRIXVB_MATRIX=mabs(VB_ARRAY)MATRIXVB_MATRIX为MatrixVB的矩阵名称,如同在MATLAB窗口中那样,不需要事先定义,VB_ARRAY是VB程序中定义的数组,也可以是单独的VB常量与变量。修改图7-8中command按钮的Click事件的处理过程代码为:Private Sub Command1_Click()Dim A(1to 3,1to 3) As doubleDim i,j As integerfor i=1 To 3for j=1 To 3A(i,j)=CDbl(i+j)NextNextB=mabs(A)A. showEnd Sub该段代码首先定义了一个二维VB数组A,然后将其赋值,通过mabs函数转化为MatrixVB矩阵B并将其显示出来。运行程序并单击该按钮,运行的结果如图7-11所示。图7-11 通过函数mabs产生的MatrixVB矩阵2通过MatrixVB函数生成矩阵可以使用MatrixVB中的特殊函数(如zeros()、ones()、magic()等)直接生成矩阵。如在VB程序代码中直接嵌入语句:A=zeros(3,4)A.show结果将产生一个3行4列元素都为0的矩阵并将其显示出来。在应用程序中我们也可以先定义变量,然后再赋值产生矩阵。产生矩阵VB支持的两种类型为Matrix与Variant的如下语句,都将产生一个34的0矩阵。Dim mat As MatrixDim x As VariantSet mat=zeros(3,4) 赋值为34的0矩阵Set x=zeros(3,4) 赋值为34的0矩阵3通过函数 CreateMatrix通过函数CreateMatrix创建的矩阵可以在创建过程中直接赋值,格式为: CreateMatrix(p1 , p2 , pn ,) p1 , p2 , pn 为矩阵的值。函数Reshape用来设置由函数CreateMatrix所创建的函数的维数,格式为: Reshap(X,rows,cols)X为由CreateMatrix创建的矩阵,rows为指定的行数,cols为指定的列数,如下例所示: A=CreateMatrix(1,2,3,4,5,6,7,8,9) Reshap(A,3,3) A.Show创建一个矩阵,并将其指定为3行3列,结果如图7-12所示。图7-12 由CreateMatrix 产生的MatrixVB矩阵2.3.2 对矩阵元素进行操作1矩阵元素的存取及与VB的数据转换(1) 通过圆括号方式访问MatrixVB矩阵,但是这种方式只能对矩阵元素进行写操作,其格式如同访问VB的数组元素一样,例如:A是一个二维矩阵则下列代码:A(i,j)=2.0可以将矩阵的第i行第j列赋值为1。(2) MatrixVB矩阵属性rN、iN可以以读写的形式访问矩阵X中的每个元素的实部和虚部,其中N表示矩阵的维数,例如,对于一维MatrixVB矩阵AA.r1(i)=12写操作a=A.r1(i+1) 读操作将矩阵A的第i个元素赋值为12,将第i+1个元素赋值给VB中的变量a。再如,对于二维矩阵BB.r2(i,j)=12 a=B.r2(i,j)将矩阵B的第i行j列元素赋值为12,将矩阵B的第i行第j列元素赋值给VB中的变量a,要通过iN的方式来访问。(3) X.simple可以将MatrixVB矩阵X转换为VB中的数据类型。在X为只有一个元素的矩阵情况下,若X为一个实数则将值转换为VB中的Double类型,如:Dim S As DoubleA=CreateMatrix(1.0)S=A.simple若X为一个字符的单元素矩阵,则X.simple返回一个VB中的字符串类型;若X为由多个元素的一维或者多维矩阵,则该表达式将返回一个矩阵,但不能自动转换为VB中相应的一维或者多维数组。2矩阵的显示属性show具有打开Matrix viwer窗口显示矩阵内容的功能,格式为:X.Show3获得矩阵的行、列、维数利用函数rows()、cols()、dims()、dimension(n)返回矩阵的行数、列数、维数及第n维数的个数属性,与这些属性相关的VB中的数据类型一般为integer类型,如,对于二维矩阵A,下面的代码将得到矩阵的函数与列数,并将其赋值给VB中的变量。 a=A.rows() 获得矩阵的行数 b=A.cols() 获得矩阵的列数 c=dims() 获得矩阵的维数 d=dimension(1) 第一维的个数例如,在VB程序中产生一个MatrixVB矩阵并修改其元素的值,获得其属性并输出,修改图7-8中command按钮的Click事件的处理过程。代码为:Private Sub Command1_Click()定义变量用于接收MatrixVB中矩阵元素的值或属性值Dim xr As doubleDim xi As doubleDim i As integerDim row As integerDim col As integerDim dims As integerA=zeros(3) 产生一个3行3列的零矩阵给矩阵赋值for i=1 To 3for j=1 To 3A(i,j)=CDbl(i+j)NextNextA.show显示矩阵xr=A.r2(2,2) 获得矩阵2行2列的值 row=A.rows()获得行数 col=A.col()获得列数dims=A.dims()获得维数输出属性Print 行数为:;Print row;Print 列数为:;Print col;Print 维数为:;Print col; End Sub运行程序并单击command1按钮,结果如图7-13和7-14所示。图7-13 显示矩阵图7-14 显示矩阵元素的值及属性2.3.3 矩阵的保存与载入使用vbsave命令将矩阵写入磁盘文件中,并将数据文件中保存的文件读到程序中。语法格式分别为:vbsave filename variablevbload(filename)例如以下代码将产生的魔方矩阵A保存到文件magic.txt中,并读到B中A=magic(3)vbsave magic.txt AB=vbload(magic.txt)也可以使用MatrixVB提供的与C语言语法格式相似的函数来对特定格式的文件进行读写,把矩阵所有的元素都输出为一列,数据文件只能用Dos方式打开,如:Dim fid As VariantDim A As VariantDim B As VariantA = magic(4)fid = fopen(one.txt, w)Call fprintf(fid, %gn, A)Call fscanf(fid, %gn, B)fclose (fid)2.3.4 应用举例我们下面考虑将第5章中的计算器用MatrixVB来实现,并增加矩阵的行列式运算,LU分解。(1) 建立一个工程,工程名为Project1,工程类型为Standard EXE,如图7-15所示。图7-15 新建VB工程(2) 按照7.2节步骤创建工程并设置环境。(3) 在主窗口上添加若干控件,如图7-16所示。图7-16 应用主界面各控件的类型、名称、标题及作用如表7-1所示:表7-1 主窗口控件控 件 类 型控 件 名 称标 题作 用LabelLabel1Label1显示正在输入的行、列TextBoxText1接受输入数据ComboBoxComb1选择运算选择运算类型CommandButtonCommand1计算执行运算命令CommandButtonCommand2下一个切换下一条数据输入CommandButtonCommand3关闭关闭主窗口CommandButtonCommand4重置清除主窗口中的打印内容(4) 声明模块级的变量。定义保存原始数据的矩阵及表示当前行列的变量Dim mat As VariantDim i As IntegerDim j As Integer(5) 为主窗口Form的Load事件编写代码。Private Sub Form_Load()Set mat = zeros(4, 4) 产生一个44的零矩阵向组合框增加计算选项字符串Combo1.AddItem 转置Combo1.AddItem 逆矩阵Combo1.AddItem 特征值Combo1.AddItem LU分解Combo1.AddItem SVD分解Combo1.AddItem 行列式i = 1j = 1End Sub(6) 为Command2的Click事件处理过程编写代码。Private Sub Command2_Click()Dim row As IntegerDim col As IntegerDim temp As DoubleLabel1.Caption = 当前行,列为 & CStr(i) & , & CStr(j)mat(i, j) = CDbl(Text1.Text) 接收文本框中输入的数据到mat中 temp = CDbl(Text1.Text) Print temp; 将当前输入的数据输出 设置输出的行,列值,当行数大于4时输出结束 If j Mod 4 = 0 Then i = i + 1 j = 1 Print Else j = j + 1 End If Text1.Text = 0 If i = 4 Then i = 1j = 1 Text1.Text = MsgBox 输入已经结束 Command2.Enabled = FalseExit Sub End IfEnd Sub(7) 为Command1的Click事件编写代码。判断计算类型然后对mat矩阵进行相应的操作并将结果输出Private Sub Command1_Click()If Combo1.Text = 转置 ThenA = transpose(mat)A.ShowElseIf Combo1.Text = 逆矩阵 ThenB = inv(mat)B.ShowElseIf Combo1.Text = 特征值 ThenC = eig(mat)v = C(1) C(1)为特征值向量,C(2)为主对角线为特征值的方阵v.ShowElseIf Combo1.Text = LU分解 ThenD = lu(mat)l = D(1) D(1)为下三角矩阵,D(2)为上三角矩阵,D(3)为交换矩阵l.ShowElseIf Combo1.Text = SVD分解 ThenE = svd(mat) E2为对角线为奇异值的矩阵,E1,E3为正交矩阵v = E(1)v.ShowElseIf Combo1.Text = 行列式 ThenF = det(mat)Print F.Simple 将行列式的值输出到窗口上End IfEnd Sub(8) 为Command 4的Click事件处理过程编写代码。i = 1j = 1Form1.ClsIf Command2.Enabled = False Then Command2.Enabled = TrueEnd If此外读者可以尝试进行编程求矩阵的范数,秩等运算。说明:(1) 与通过ActiveX自动化服务器方式相比,采用MatrixVB使得代码简练,它不需要在不同的环境中交换数据,也不必启动MATLAB的环境即可得到运算的结果。(2) 有些矩阵运算函数可以返回若干个矩阵,如LU分解等,一般可以通过X(n)方式来区分。(3) 有些针对一个二维矩阵的运算返回的是一个一维向量或单独的值,如矩阵的特征值或行列式值、范数等。3.4 MatrixVB的运算符VB不支持运算符的重载,例如“+”只能用于标量的加法运算,但在MatrixVB组件包中提供了一组函数用于扩展VB本身的运算符的适用范围,这些函数不仅能对MatrixVB矩阵进行算术运算,而且可以对VB支持的数据类型进行相同的运算,或者进行二者的混合运算。因此这些函数相当于扩展了VB运算符的范围。可以像使用MatrixVB组件包中其他函数一样对这些函数进行调用。我们可以将MatrixVB运算符函数分为算术运算符函数、关系运算符函数和逻辑运算符函数等。值得注意的是,虽然MatrixVB的这一组函数可以用于VB的某些数据类型的变量或常量,但VB的运算符却不能用于MatrixVB矩阵。3.4.1 算术运算符矩阵的算术运算符及与VB对应的运算符如表7-2所示。表 7-2 MatrixVB的算术运算符函数及与VB相关运算符的对应关系Visual BasicMatrixVBMatrixVB运算函数说明abpower(a,b)a的b次方a*btimes(a,b)a乘ba/brdivide(a,b)a右除babldivide(a,b)a左除ba Mod bmmod(a,b)a对b求余a+bplus(a,b)a加ba-bminus(a,b)a减b-auminus(a)取a的每一个元素的相反数说明:(1) a和b可以都为VB所支持的整型,浮点型变量或者常量,运算的结果为MatrixVB标量矩阵,此时与VB的运算符所起的作用是一样的,如:Dim x As DoubleDim y As integerx=4.0y = 2C = power(x, y)C.Show运算的结果为16,如图7-17所示。图7-17 4.0的2次方(2) a与b都为MatrixVB矩阵,此时二者的维数、大小均要一致,所做的运算为二个矩阵对应元素的运算,如:A = CreateMatrix(1, 2, 3, 4, 5, 6, 7, 8, 9)B = CreateMatrix(2, 2, 2, 3, 3, 3, 4, 4, 4)A = reshape(A, 3, 3)B = reshape(B, 3, 3)C = power(A, B)C.Show结果将产生一个矩阵C,其中任一元素C(i,j)的值为A矩阵对应元素A(j,i)的B(j,i)次方,计算结果如图7-18所示。图7-18 矩阵A的B次方(3) a与b中一个为MatrixVB矩阵,一个为VB中的数据类型(整型,浮点型)的标量,所做的运算为该标量对矩阵每个元素的算术运算,如:A = CreateMatrix(1, 2, 3, 4, 5, 6, 7, 8, 9)A = reshape(A, 3, 3)B = power(A, 2)B.Show结果产生一个每一个元素为矩阵A对应元素值2次方的矩阵,如图7-19所示。图7-19 矩阵的2次方3.4.2 关系运算符矩阵的关系运算符及与VB对应的运算符如表7-3所示。表7-3 MatrixVB的关系运算符函数及与VB相关运算符的对应关系Visual BasicMatrixVBMatrixVB运算函数说明ablt(a,b)a若小于b则结果为真否则为假abgt(a,b)a若大于b则结果为真否则为假a=bge(a,b)a若大于等于b则结果为真否则为假a=beq(a,b)a若等于b则结果为真否则为假abne(a,b)a若不等于b则结果为真否则为假说明:a 和b可以都为VB所支持的整型、浮点型变量或者常量,此时与VB的运算符所起的作用是一样的,如:(1) 如果a,b都为VB所支持的类型,运算的结果为MatrixVB标量矩阵,其中的值为0或1,如:Dim x As integerDim y As integerx=1y=2C = ge(x, y) C.show 结果如图7-20所示。图7-20 VB类型的比较运算(2) a与b都为MatrixVB矩阵,此时二者的维数,大小均要一致,所做的运算为两个矩阵对应元素的运算,运算结果为由1,0构成的矩阵,如:A = CreateMatrix(1, 2, 3, 4, 5, 6, 7, 8, 9)B = CreateMatrix(2, 2, 2, 3, 3, 3, 4, 4, 4)A = reshape(A, 3, 3)B = reshape(B, 3, 3)C = ge(A, B)C.Show 结果如图7-21所示。图7-21 矩阵的比较运算(3) a与b中一个为matricVB矩阵,一个为VB中的数据类型(整型,浮点型)的标量,所做的运算为该标量对矩阵每个元素的逻辑运算,如:A = CreateMatrix(1, 2, 3, 4, 5, 6, 7, 8, 9)A = reshape(A, 3, 3)B = ge(A, 5)B.Show运算结果如图7-22所示。图7-22 矩阵与标量的比较运算3.4.3 逻辑运算符矩阵的逻辑运算符及与VB对应的运算符如表7-4所示。表7-4 MatrixVB的逻辑运算符函数及与VB相关运算符的对应关系Visual BasicMatrixVBMatrixVB运算函数说明a And bmand(a,b)a与b做与运算a Eqv bmnot(mxor(a),b当a与b同时为真或假时结果为真,否则为假a Imp bmor(mnot(a),b)a为真b为假时结果为假,否则为真not amnot(a)a做非运算a Or bmor(a,b)a与b做或运算a Xor bmxor(a,b)a与b做异或运算有关矩阵逻辑运算符的数据类型说明与关系运算符相同,所得到的结果值为由0,1构成的矩阵或标量。3.4.4 一些常用的运算函数在前几节中我们介绍了矩阵的操作及与VB运算符有对应关系的运算符函数,其中包含了一些矩阵进行运算的函数。除此之外,MatrixVB还提供了大量运算函数,本节我们将介绍几个常用的运算符函数,如表7-5所示。表7-5 MatrixVB的一些其他运算符函数函 数 名函 数 说 明Colon(a,b,c)产生一个从a到c步长为b的序列Primes(n)产生小于n的素数序列Rand(n)产生一个个数为n的随机序列Logspace(a,b,n)产生一个个数为n的对数序列vbfilter(a,b,c)FIR滤波函数,a,b为滤波器系数矩阵,c为一个数据向量fft(a)快速傅立叶变换,a为一个输入序列Roots(a)用来求多项式的根,a为输入的矩阵Mldivide(a,b)解线性方程组,a为系数矩阵,b为方程组等号右边的向量Strcat(a,b)连接两个矩阵例:给定一个线性方程组: 代码为:A = CreateMatrix(2, 11, 7, 3, -4, 5, 1, 8, -8)B = CreateMatrix(2, 6, 9)A = reshape(A, 3, 3)B = reshape(B, 3, 1)C = mldivide(A, B)D=strcat(A,B)E=vertcat(C,D)D.Show运行的结果如图7-23所示。图7-23 求方程组的解最后一列为方程组的解向量。此外还有很多运算函数请参考帮助文档refguide.pdf,这里不一一介绍了。3.5 图形图像处理 MatrixVB组件包提供了一整套用于二维或三维作图的函数、颜色处理函数、图像处理函数、图像句柄处理函数及用户界面对话框等工具。mattrixVB同时支持在figuer窗口及VB窗口中绘制图形与图像处理。本节将介绍如何使用这些函数和工具来为VB程序创建和处理图形。3.5.1 在figure窗口中绘制图形在MatrixVB组件包中包含了用于生成圆饼图、直方图、频率图、等高线图、极坐标图和散点图等函数,可以基本满足图形绘制应用需求,同时也提供了能读取多种格式图像的处理函数。借助这些函数及数学运算函数、颜色处理函数,可以方便地作出各种图形。下面以一个具体的二次曲线的例子来说明MatrixVB组件包在该领域的应用方法。假设该曲线的方程为:(1) 参照7.2节建立VB工程,引入MatrixVB,在程序主窗口中添加一个按钮控件,如图7-24所示。图7-24 图形绘制程序主窗口(2) 为按钮的click事件的处理过程编写代码:Private Sub Com
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- pwc -引领未来的数字化领导力模型
- 海-气相互作用和环流异常(讲义)-2025年高考地理一轮复习
- 2024年文教体育用品项目投资申请报告代可行性研究报告
- 2023年炮塔式铣床资金筹措计划书
- 强化管理-有效教育-交通安全-常抓不懈1
- 经济数学-教学日历
- Python程序设计实践- 习题及答案汇 张银南 ch01-21 Python程序设计实验的目的与要求- 中文词云
- 关于青春无悔演讲稿范文分享(33篇)
- 设计单元教学计划
- 【沪科】第三次月考卷
- 《工作周报管理制度管理办法》
- 最新部编版语文五年级上册第六单元教案
- 消防设施设备及器材
- 胎心监护专家共识
- 二年级上册数学试题判断题专项训练苏教版
- 《月历中的数学问题》教学设计
- 好书推荐——《三毛流浪记》PPT通用课件
- 小学语文语段修改专项训练(含答案)
- DM1204-B调音台
- 沪教版七年级上英语练习题
- 腾讯公司绩效管理制度-腾讯公司绩效管理制度
评论
0/150
提交评论