版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、VB 程序设计,主编:沈祥玖,高等教育出版社,第8章 设计和使用子过程,学习目标: (1)掌握定义、调用子过程和函数的方法。 (2)理解参数传递中传值和传址的不同含义。了解数组参数的传递。 (3)知道过程与变量的作用域。 (4)了解键盘和鼠标的各种事件。 (5)能够灵活运用本章所学知识进行程序设计。,第8章 设计和使用子过程,第八章 过程,过程是用来执行一个特定任务的一段程序代码。 VB中有两类过程: (1)由系统提供的内部函数过程和事件过程。 事件过程是构成VB应用程序的主体。在前面的学习中,我们已经接触到很多事件过程,如窗体和按钮的Click事件过程,文本框的Change事件过程等。 (2
2、)用户根据自己的需要定义、供事件过程多次调用的自定义过程。 在程序设计过程中,可以将一些常用的功能编写成自定义过程,供多个不同的事件过程多次调用;从而减少重复编写代码的工作量,实现代码重用,使程序简练、便于调试和维护。 自定义过程又分为以下几类: 以“Sub”保留字开始的子过程。 以“Function”保留字开始的函数过程。 以“Property”保留字开始的属性过程。 以“Event”保留字开始的事件过程。 本章主要介绍比较常用的子过程和函数过程。,8.1 过程概述,第八章 过程,子过程是用特定格式组织起来的一组代码,通常用来完成一个特定的功能,可以被其它过程作为一个整体来调用。,8.2 子
3、过程的定义与调用,第八章 过程,在形式上,子过程与事件过程相类似,但又有所区别: 事件过程的过程名由对象名和事件名连接而成。 子过程的过程名可以是一个任意合法的标识符。 子过程的形式如下: StaticPublic|PrivateSub 子过程名(形参列表) 局部变量或常数定义 语句序列 Exit Sub 语句序列 End Sub,8.2 8.2 子过程的定义与调用,8.2.1 子过程的形式,形式说明: (1)“子过程名”要遵守标识符的命名规则。 (2)(形参列表) 类似于变量声明,是用“,”分隔开的若干个变量,格式如下: 变量名1 As 类型 ,变量名2 As 类型, 或:变量名1 类型符
4、,变量名2 类型符, (3)语句序列 是VB的程序段,在此编写语句,实现相应功能。 (4)Exit Sub 表示中途退出子过程。 (5)StaticPublic|Private 的意义在8.5节中介绍。,实例说明: Sub sum(x%, y%, s%) s = x + y End Sub 上面子过程的名称为sum,其有三个整型的形参x、y、s,语句序列为“s = x + y”,调用该过程可以实现求两数之和。 (形参列表)为可选项,即此项可有可无。没有参数的过程称为无参过程。 例如: Sub printhello Print hello End Sub 上面的过程不带参数,当调用该过程时,打印
5、输出“hello”。,第八章 过程,定义子过程有两种方法: (1)利用代码窗口直接定义 在代码窗口把插入点放在所有过程之外,按照子过程的形式,直接输入即可。 (2)使用“添加过程”对话框进行定义,8.2 子过程,8.2.2 定义子过程,第八章 过程,步骤如下: (1)切换到代码窗口。 (2)选择“工具”菜单下的“添加过程”命令,弹出“添加过程”对话框,见图8-1。 (3)在“名称”框中输入过程名。例如图8-1中显示输入的过程名为“sum”。 (4)在“类型”组中选取“子程序”。 (5)在“范围”组中选取“公有的”定义一个公共级的全局过程,或选取“私有的”定义一个局部过程。,8.2 子过程,8.
6、2.2 定义子过程,第八章 过程,8.2.3 子过程的调用 要执行一个子过程,必须先调用该子过程。 每次调用子过程都会执行Sub和End Sub之间的语句。子过程以Sub开始,以End Sub结束。当程序遇到End Sub时,将退出子过程,并返回到调用语句之后的语句继续执行。 子过程的调用有两种方式: (1)使用Call语句: 格式:Call 过程名(实参列表) 举例:Call sum(a, b, c),8.2 子过程,8.2.3 子过程的调用,(2)直接使用过程名: 格式:过程名实参列表 举例:sum a, b, c 调用方式的说明: (1)“实参列表”中的实参必须与形参保持个数相同,位置与
7、类型一一对应。 (2)实参可以是常量、变量、表达式。 (3)参数与过程名之间用空格隔开,参数与参数之间用逗号分隔。 (4)调用子过程时,会把实参的值传递给形参,称为参数传递,有传址和传值两种方式。默认为传址方式,此时实参和形参共用一个内存单元,对形参的操作等同于对实参操作。传值时实参和形参使用不同内存单元,对形参的操作不会对实参产生影响。8.4节中有详述。 (5)若直接使用过程名调用过程,则过程名后不能加括号,参数直接跟在过程名之后。 (6)用Call 语句调用过程时,过程名后必须加括号,参数放在括号之内。,第八章 过程,【例8.1】编写求矩形面积的子过程,通过调用此子过程来求窗体上不同按钮的
8、面积。 编写:新建工程,建立二个大小不同的按钮,依次双击这二个按钮,输入代码如下。 Sub SArea(sw!, sh!)求矩形面积的子过程,被事件过程调用时执行 Dim area! area = sw * sh 形参通过实参获得某按钮的宽和高,用来计算面积 Print 面积为:; area End Sub 退出子过程,并返回到调用语句之后的语句继续执行,8.2 子过程,8.2.4 应用举例,Private Sub Command1_Click() 事件过程,当按钮Command1被单击时执行 Dim w!, h! w = Command1.Width按钮宽度可由Width属性获得,单位为Tw
9、ip h = Command1.Height按钮高度可由Height属性获得,单位为Twip Print Command1.Caption; SArea w, h调用子过程SArea,实参把宽和高传递给形参 End Sub Private Sub Command2_Click()事件过程,当按钮Command1被单击时执行 Dim w!, h! w = Command2.Width将要作为实参的w通过Width属性获得宽度 h = Command2.Height将要作为实参的h通过Height属性获得高度 Print Command2.Caption; SArea w, h调用时实参w、h把宽
10、和高传递给形参sw、sh End Sub,运行程序,分别单击大小不同的两个按钮,窗体显示相应按钮的面积,如图8-2所示。,第八章 过程,【例8.2】编写求N!的子过程,通过调用此子过程来计算5 ! + 8 ! 6 ! 。 编写:新建工程,双击窗体,在Form的事件列表中选择Click项,输入代码如下。 Sub JCh(N%, p d End Sub,8.2 子过程,8.2.4 应用举例,输入完成后,运行程序。单击窗体,会显示5 ! + 8 ! 6 ! 的计算结果,如图8-3所示。,第八章 过程,函数过程与子过程最主要的区别在于:函数过程有返回值,而子过程没有返回值。 函数过程是自定义过程的另一
11、种形式。当过程的执行需要返回一个值时,使用函数过程比用子过程更加简单方便。VB提供了许多内部函数,如Sin( ),Sqr( )等,在编写程序时,只需写出函数名和相应的参数,就可得到函数值。在编程时,可以像调用内部函数一样来使用函数过程,不同之处在于函数过程所实现的功能是我们自己编写的。,8.3 函数过程,第八章 过程,函数的形式如下: StaticPublic|Private Function 函数名(形参列表) As类型 局部变量或常数定义 语句序列 Exit Function 语句序列 函数名=表达式 End Function 形式说明: (1)As类型:指明函数过程返回值的类型。 (2)
12、在函数过程中至少对函数名赋值一次。从函数过程返回时函数名的值就是返回值。 (3)无论函数有无参数,函数名后的括号都不能省略。 (4)Exit Function表示中途退出函数过程。,8.3 函数过程,8.3.1 函数的形式,实例说明: Function sum(x%, y%) As Integer sum = x + y End Function Private Sub Form_Click() d = sum(2, 3) Print d End Sub 在上述函数过程中,“As Integer ”定义名为sum的函数过程返回值为整型,通过语句“sum = x + y”对函数名赋值。执行上述语
13、句段,会在窗体上输出数字5。,第八章 过程,同子过程一样,函数过程的定义方法也有两种: (1)利用代码窗口直接定义 在代码窗口把插入点放在所有过程之外,按照函数过程的形式,直接输入即可。 (2)使用“添加过程”对话框进行定义 步骤与定义子过程相同,只是第4步更改为在“类型”组中选取“函数”即可。 函数的调用: 调用函数过程可以由函数名带回一个值给调用程序,被调用的函数必须作为表达式或表达式中的一部分,再与其他的语法成分一起配合使用。因此,与子过程的调用方式不同,函数不能作为单独的语句加以调用。最简单的情况就是在赋值语句中调用函数过程,其形式为: 变量名 = 函数过程名(实参列表),8.3 函数
14、过程,8.3.2 函数的定义与调用,第八章 过程,【例8.3】修改例8.2程序,,使用函数过程实现对5 ! + 8 ! 6 ! 的计算。 编写:新建工程,双击窗体,在Form的事件列表中选择Click项,输入代码如下。 Function jch2(N%) As Long求N!的函数过程,返回值的类型为长整型 Dim i% jch2 = 1 For i = 1 To N jch2 = jch2 * i 在循环体中对函数名赋值,实现累乘求N! Next i循环结束后jch2 = N! End Function 返回调用语句,并把函数名中的值作为函数的返回值 Private Sub Form_Cli
15、ck() Dim d d End Sub 输入完成后,运行程序。单击窗体,会显示5 ! + 8 ! 6 ! 的计算结果,如图8-3所示。,8.3 函数过程,第八章 过程,【例8.4】编写程序,要求调用函数过程求出两个自然数的最大公约数。 分析:求最大公约数可以用“辗转相除法”,其算法思想如下: (1)x除以y得到余数r; (2)若r = 0,则y为要求的最大公约数,算法结束;否则执行(3); (3)y x,r y,再转到(1)执行。,8.3 函数过程,编写:新建工程,双击窗体,在Form的事件列表中选择Click项,输入代码如下。 Function gcd%(x%, y%)求最大公约数的函数过
16、程,返回值的类型为整型 Dim r% r = x Mod yx除以y得到余数r While r 0若r不等于0,不断循环 x = y y = ry x,r y r = x Mod y Wend gcd = y若r = 0,则y为要求的最大公约数,赋值给函数名 End Function返回调用语句,并把函数名中的值作为函数的返回值,Private Sub Form_Click() Dim m%, n% m = InputBox(请输入第一个自然数:) n = InputBox(请输入第二个自然数:) Print m; 和; n; 的最大公约数是:; Print gcd(m, n)调用函数过程,执
17、行完后返回最大公约数,用Print 输出 End Sub 运行程序,单击窗体,在弹出的输入框中分别输入6和9,结果如图8-4所示。,第八章 过程,在上述实例调用过程时,往往需要通过参数传递数据。 参数传递的方式有两种:传址和传值。 在通过传址方式进行参数传递时,数组也可以作为过程的参数。,8.4 参数传递,第八章 过程,(1)传址 在调用一个过程时,如果是用传址方式进行参数传递,则会将实参的内存地址传递给形参,即让形参和实参使用相同的内存单元。因此,在被调用的过程中对形参的任何操作都变成了对相应实参的操作,实参的值就会随形参的改变而改变。 传址是默认的参数传递方式,本章前面的实例均为传址。 当
18、参数是数组时,或要将子过程中的结果返回给主调程序时,只能用传址方式。 当参数是字符串或数组时,使用传址传递直接将实参的地址传递给过程,会使程序的效率提高。,8.4 参数传递,8.4.1 传址与传值,(2)传值 按传值方式传递参数时,系统将实参的值复制给形参,形参与实参使用不同的内存单元。因此,被调过程对形参的操作是在形参自己的存储单元中进行的,实参的值不会随形参的改变而改变。当过程调用结束时,这些形参所占用的存储单元也同时被释放。因此在过程中对形参的任何操作都不会影响到实参。 传值不是默认的参数传递方式。要使用传值方式时,必须在形参前加“ByVal”关键字。 使用传值方式,可以减少过程间的关联
19、;从而增加了程序的可靠性,减少了程序的调试难度。,(3)传址与传值的区别 最主要的区别是:对形参的操作是否会对实参产生影响。 传址时,实参和形参共用一个内存单元,对形参的操作等同于对实参操作。 传值时,实参和形参使用不同内存单元,对形参的操作不会对实参产生影响。 形式上的区别是:在形参前是否有关键字“ByVal”。 使用传址时,无需在形参前加任何关键字 使用传值时,需要在形参前加关键字“ByVal”。,第八章 过程,(4)应用举例 【例8.5】修改例8.4程序,利用求出的最大公约数计算两数的最小公倍数。在调用函数过程时,要求分别用传址和传值的参数传递方式,从显示结果中判断哪种方式适用于本例。
20、(1)分析:将原两数相乘除以最大公约数,即可求出最小公倍数。编写两个求最大公约数的函数过程,分别采用传址和传值的方式。通过两个单选钮来选择使用那种方式。 (2)界面设计:新建工程,在窗体上建立两个单选钮,分别设置单选钮的Caption属性为“传址”和“传值”,并将“传址”单选钮的Value属性设为True。,8.4 参数传递,(3)编写代码:双击窗体,输入代码如下。 Function gcd%(x%, y%)使用传址时,无需在形参前加任何关键字 Dim r%本例中,形参x、y与实参m、n共用一个内存单元 r = x Mod y While r 0 x = y 本例中,对形参x、y的操作等同于对
21、相应实参m、n的操作 y = r 实参m、n的值就会随形参x、y的改变而改变 r = x Mod y Wend gcd = y End Function Function gcd2%(ByVal x%, ByVal y%) 传值时,需在形参前加关键字ByVal Dim r% 形参x、y与实参m、n用不同内存单元 r = x Mod y While r 0 x = y本例中,对形参x、y的操作不会对实参m、n产生影响 y = r实参m、n的值就不会随形参x、y的改变而改变 r = x Mod y Wend gcd2 = y End Function,Private Sub Form_Click(
22、) Dim m%, n%, a%, b% m = InputBox(输入第一个自然数:, , 6) n = InputBox(输入第二个自然数:, , 9) Print 您输入数字为:; m; 和; n If Option1.Value Then a = gcd(m, n)“传址”单选钮处于选中状态,则调用函数过程gcd Else a = gcd2(m, n)“传值”单选钮处于选中状态,则调用函数过程gcd2 End If b = m * n / a求最小公倍数 Print m; 和; n; 的最大公约数是:; a Print m; 和; n; 的最小公倍数是:; b End Sub,输入完成
23、后,运行程序。 点选“传址”单选钮,单击窗体,在输入框中分别输入6和9,结果如图8-5(a)所示。 点选“传值”单选钮,单击窗体,在输入框中分别输入6和9,结果如图8-5(b)所示。 显而易见,传值方式适用于本例。,第八章 过程,【例8.6】分别使用传址和传值的传递方式编写“实现两数交换”的子过程,要求分别显示在这两种方式下实参与形参的前后变化。 (1)界面设计:新建工程,在窗体上建立两个单选钮,分别设置单选钮的Caption属性为“传址”和“传值”,并将“传址”单选钮的Value属性设为True。 (2)编写代码:双击窗体,输入代码如下。 Sub swap(x%, y%)传址 Dim t%
24、Print 交换前:; x =; x; y =; y t = x: x = y: y = t Print 交换后:; x =; x; y =; y End Sub,8.4 参数传递,Sub swap2(ByVal x%, ByVal y%)传值 Dim t% Print 交换前:; x =; x; y =; y t = x: x = y: y = t Print 交换后:; x =; x; y =; y End Sub Private Sub Form_Click() Dim a%, b% a = 5: b = 8 Print 调用前:; a =; a; b =; b If Option1.V
25、alue Then swap a, b Else swap2 a, b End If Print 调用后:; a =; a; b =; b End Sub,运行程序,分别在“传址”和“传值”单选钮处于选中状态时单击窗体,如图8-6所示。,第八章 过程,8.4 参数传递,在使用传址方式进行参数传递时,数组也可以作为过程的参数。 因此,当用数组作为过程的参数时,进行的不是“值”的传递,而是“址”的传递。即将数组的起始地址传给被调过程的形参数组,使得被调过程在执行中,实参数组与形参数组共享一组存储单元。此时对形参数组操作,就等同于对实参数组操作,所以被调过程中对形参数组的任何改变都将带回给实参数组。
26、 在定义过程时,形参列表中的数组参数用数组名后跟一对空的圆括号表示。 在调用过程时,实参列表中的数组参数可以只用数组名表示,省略圆括号。 如果被调过程不知道实参数组的上下界,可在被调过程中用LBound和 Ubound求得。,8.4.2 数组参数的传递,第八章 过程,8.4 参数传递,【例8.7】用随机数产生一个一维数组,用此数组作参数,求数组中所有偶数元素之和。 编写:新建工程,双击窗体,输入代码如下。 Function sum%(b%()形参中的数组参数用数组名后跟一对空的圆括号表示 Dim i% For i = LBound(b) To UBound(b)用LBound和 Ubound求
27、得上下界 If b(i) Mod 2 = 0 Then sum = sum + b(i) End If Next i End Function Private Sub Form_Click() Dim a%(10), s%, i% For i = 1 To 5用循环和Rnd函数产一个一维数组 a(i) = Int(Rnd * 100) Print a(i); Next i Print s = sum(a() Print 数组中偶数元素之和为:; s End Sub,行程序,单击窗体,输出一维数组中的所有元素以及偶数元素之和,如图8-7所示。,第八章 过程,8.5 过程与变量的作用域,8.5.1
28、 代码模块的概念,VB中可以存储代码的模块有三种:窗体模块、标准模块和类模块。在窗体模块、标准模块和类模块这三种模块中,都可以包含声明(常量、变量声明)和过程(子过程、函数过程)。他们形成了工程的一种模块层次结构,可以较好的组织工程,同时也便于代码的维护。三种模块在工程资源管理器中的状态如图8-9所示。,(1)窗体模块:窗体模块保存在扩展名为 .frm的文件中。每个窗体对应一个窗体模块。窗体模块包含窗体变量的说明、窗体及窗体上控件的属性设置、事件过程、窗体内的通用过程、外部过程的窗体级声明。 (2)标准模块:标准模块保存在扩展名为 .bas的文件中。在多窗体程序中,可以在标准模块中编写子过程和
29、函数过程,以便多个不同的窗体调用。标准模块包含公有或模块级的变量、常量、类型、外部过程和全局过程的全局声明或模块级声明。 (3)类模块:类模块保存在扩展名为 .cls的文件中。可以在.类模块中编写代码建立新对象,这些新对象可以包含自定义的属性和方法,可以在应用程序内的过程中使用。类模块与标准模块的不同之外在于标准模块仅仅含有代码,而类模块即含有代码又含有数据。类模块可以视为没有物理表示的对象。,第八章 过程,8.5 过程与变量的作用域,8.5.2 过程的作用域,这里只讨论窗体模块和标准模块内过程的作用域。 过程的作用域是指过程在VB应用程序(工程)中能被识别的范围。 过程的作用域分为模块级(或
30、称文件级)和全局级(或称工程级)。 (1)模块级:指在某个窗体模块或标准模块内用Private定义的子过程或函数过程,这些过程只能被本窗体模块或本标准模块中的过程调用。其作用域为本模块。 (2)全局级:指在窗体模块或标准模块中定义的过程,其默认是全局的,也可加Public进行说明。其作用域为本应用程序。 全局级过程可供该应用程序内的所有窗体模块和标准模块中的过程调用,但根据过程所处的位置不同,其调用方式有所区别: 在窗体定义的过程,外部过程要调用时,必须在过程名前加定义该过程的窗体名。 在标准模块定义的过程,外部过程均可调用,但必须保证该过程名是唯一的,否则要加定义该过程的标准模块名。,第八章
31、 过程,8.5 过程与变量的作用域,8.5.3 变量的作用域,变量的作用域是指变量能被某一过程识别的范围。 变量的作用域决定了哪些过程可访问该变量。 变量的作用域分为局部级(过程级)、模块级和全局级。 按照作用域的大小,变量可分为:局部变量、模块级变量和全局变量。,(1)局部变量:指在过程内用Dim语句声明的变量(或不加声明直接使用的变量),只能在本过程中使用,别的过程不可访问。当该过程被调用时,系统给局部变量分配存储单元并进行变量的初始化,执行该过程时对局部变量可进行存取操作。但是,一旦该过程体执行结束,则局部变量的内容就会自动消失,所占用的存储单元也被释放。 (2)模块级变量:指在一个窗体
32、模块或标准模块的任何过程外,即在“通用声明”段中用Dim语句或用Private语句声明的变量,可被本模块的任何过程访问。 (3)全局变量:指在窗体模块或标准模块的任何过程之外,即在“通用声明”段中用Public语句声明的变量,可被应用程序的任何过程或函数访问。全局变量的值在整个应用程序中始终不会消失和重新初始化,只有当整个应用程序执行结束时,才会消失。,第八章 过程,8.5 过程与变量的作用域,【例8.8】编写程序,演示不同作用域变量的使用。 (1)分析:可以使用求三数之和的实例进行演示。定义三个不同作用域的数值型变量,并赋于数值;在主窗体中引用三个变量进行求和,并显示三个变量的值和计算结果。
33、,编写:新建工程,双击窗体,输入代码如下: Private b%模块级变量 Private Sub Form_Click() Dim a%, s%局部变量 a = 5 s = a + b + Form2.c引用各级变量 Print 局部变量: a =; a Print 模块级变量:b =; b Print 全局变量:Form2.c =; Form2.c Print a + b + Form2.c =; s End Sub Private Sub Form_Load() b = 8给模块级变量赋值 Form2.Show End Sub,在实际编程时,还可能出现不同级声明相同的变量名的情况。一般来
34、说,在同一模块中定义了不同级但有相同名的变量时,系统优先访问作用域小的变量名。如执行下列程序段: Public a As Integer全局变量 Private Sub Form_Click() Dim a As Integer局部变量 a = 10给局部变量赋值 Form1.a = 20给全局变量赋值时,必须加窗体名 Print a; Form1.a输出局部变量和全局变量的值 End Sub 执行完成后,会在窗体上显示“10 20”。 上述程序段定义了全局变量和局部变量都为a,在定义局部变量的过程Form_Click内访问a,则局部变量优先级更高,会把全局变量“屏蔽”掉;要访问全局变量时,则
35、必须在全局变量名a前加模块名。,第八章 过程,8.5 过程与变量的作用域,由表8-2可知,局部变量除了用Dim语句声明外,还可用Static语句将变量声明为静态变量。静态变量在程序运行过程中可保留变量的值。也就是说,每次调用过程后,用Static说明的变量会保留运行后的结果;而在过程内用Dim说明的变量,每次调用过程结束,都会将这些局部变量释放掉。 形式如下: Static 变量名 As类型 Static Function 函数名(形参列表)As 类型 Static Sub 过程名 (形参列表),8.5.4 静态变量,第八章 过程,8.5 过程与变量的作用域,【例8.9】编写程序,用来演示静态
36、变量与过程内其他变量的不同。 (1)分析:可以通过循环语句来多次调用一个子过程,在子过程中分别用Static和Dim语句来定义变量,并将变量进行累加和输出,以进行演示。,8.5.4 静态变量,(2)编写:新建工程,双击窗体,输入代码如下: Sub test() Dim x As Integer, m As String定义动态变量 Static y As Integer, n As String定义静态变量 x = x + 1 y = y + 1 m = m n End Sub Private Sub Form_Click() Dim i% For i = 1 To 5 test Next i
37、 End Sub,行程序,单击窗体,结果如图8-11所示。,第八章 过程,8.5 过程与变量的作用域,上例中,x、y、m、n都是过程test中的局部变量,y、n被说明为静态变量,每次调用时保持上一次的值,所以使用y、n可以实现累加;x、m是动态变量,每次调用都被重新初始化为0或空字符串,因此他们在窗体上输出的值总保持不变。 在过程头的起始处加上Static关键字,会使过程中的所有局部变量都成为静态变量,无论它们是用Static、Dim或Private声明的还是隐式声明的。可以将Static放在任何Sub或Funtion过程头的前面,包括事件过程和声明为Private的过程。 例如将上列中过程首语句改为: Static Sub test() 则此过程中所有的局部变量都成为静态变量;即无论是Dim声明的x、m,还是用Static声明的y、n,均为静态变量。,8.5.4 静态变量,第八章 过程,8.6 鼠标事件,鼠标事件是指由用户操作鼠标而引发的能被VB中各种对象所识别的事件。 鼠标事件是鼠标应用的基础。而鼠标对于Windows应用程序设计来说几乎是必需的,尤其是在图形图像处理的程序设计中,显得更为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年拜泉县教师招聘笔试参考题库及答案解析
- 2026年夏县教师招聘考试备考试题及答案解析
- 2026年肇州县教师招聘考试备考试题及答案解析
- 2026年马关县教师招聘笔试备考题库及答案解析
- 中国建设银行苏州分行2027届校园招聘200人考试模拟试题及答案解析
- 中国电子科技集团公司第二十七研究所2026-2027届校园招聘笔试备考试题及答案解析
- 2026广西水利电力职业技术学院银龄教师招募笔试备考试题及答案解析
- 2026年崇仁县教师招聘考试参考题库及答案解析
- 2026年乾安县教师招聘考试参考题库及答案解析
- 2026-福建统计局成本管控专员招聘考试参考题库-含答案
- 网约出租车驾驶员资格证(人证)考试题库及参考答案
- 武汉市2027届高中毕业生九月调研考试地理试卷(含答案)
- 华为光芯片机考题库(完整版含答案解析)
- 2026年资料员岗位练习题与答案
- 安徽省江南十校2026-2027学年高三上学期9月综合素质检测 数学试题+答案
- 2026年高职编辑出版学(版权贸易)试题及答案
- 2026考研全国统考英语二冲刺试卷(详细解析)
- 麻醉科重点专科建设工作汇报
- 2024年《广西壮族自治区建筑装饰装修工程消耗量定额》(上册)
- 《重大火灾隐患判定方法》解读与培训
- 临床护理文书书写规范(2024版)
评论
0/150
提交评论