ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:87.78KB ,
资源ID:8531123      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8531123.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第六章 VB的过程设计.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第六章 VB的过程设计.docx

1、第六章 VB的过程设计第六章 VB的过程设计1什么是过程 在程序设计中,为各个相对独立的功能模块所编写的一段程序称之为过程。2VB中的自定义过程分类(1)以“Sub”保留字开始的子程序过程 (包括事件过程和通用过程),不返回值;(2)以“Function” 保留字开始的函数过程,返回一个值;(3)以“Property” 保留字开始的属性过程,可以返回和设置窗体、标准模块以及类模块的属性值,也可以设置对象的值。6.1 子过程(Sub)的定义与调用1 事件过程(1)窗体事件过程语法:Private Sub Form_事件名(参数列表) 局部变量和常数声明 语句块 End Sub注意: 1)窗体事件

2、过程名由Form_事件名组成,多文档窗体用MDIForm_事件名; 2)每个窗体事件过程名前都有一个Private的前缀,表示该事件过程不能在它自己的窗体模块之外被调用; 3)事件过程有无参数,完全由VB提供的具体事件本身决定,用户不可以随意添加。(2)控件事件过程语法:Private Sub 控件名_事件名(参数列表) 局部变量和常数声明 语句块 End Sub注意:其中的控件名必须与窗体中某控件相匹配,否则VB将认为它是一个通用过程。(3)建立事件过程的方法1)打开代码编辑器窗口(两种方法:双击对象或从工程管理器中单击“查看代码”按钮)2)在代码编辑器窗口中,选择所需要的“对象”和“事件过

3、程”3)在Private Sub End Sub之间键入代码4)保存工程和窗体(4)事件过程的调用事件过程由一个发生在VB中的事件来自动调用或者由同一模块中的其他过程显示调用。2通用过程通用过程是一个必须从另一个过程显示调用的程序段,通用过程有助于将复杂的应用程序分解成多个易于管理的逻辑单元,使应用程序更简洁、更易于维护。通用过程分为公有(Public)过程和私有( Private)过程两种,公有过程可以被应用程序中的任一过程调用,而私有过程只能被同一模块中的过程调用。 (1)定义方法: Private | Public Static Sub 过程名(参数列表) 局部变量和常数声明 用Dim

4、或Static声明 语句块 Exit Sub 语句块 End Sub 注意:1)缺省 Private | Public 时,系统默认为 Public ;2)Static 表示过程中的局部变量为“静态”变量;3)过程名的命名规则与变量命名规则相同,在同一个模块中,同一符号名不得既用作Sub过程名,又用作Function过程名。4)参数列表中的参数称为形式参数,它可以是变量名或数组名,只能是简单变量,不能是常量、数组元素、表达式;若有多个参数时,各参数之间用逗号分隔,形参没有具体的值。VB的过程可以没有参数,但一对圆括号不可以省略。不含参数的过程称为无参过程。 形参格式为: ByVal 变量名()

5、 As 数据类型 式中: 变量名():变量名为合法的VB变量名或数组名,无括号表示变量,有括号表示数组。 ByVal :表明其后的形参是按值传递参数(传值参数 Passed By Value),若缺省或用ByRef,则表明参数是按地址传递的(传址参数)或称“引用”(Passed By Reference)。 As: 数据类型:缺省表明该形参是变体型变量,若形参变量的类型声明为String,则只能是不定长的。而在调用该过程时,对应的实在参数可以是定长的字符串或字符串数组,若形参是数组则无限制。5)Sub 过程不能嵌套定义,但可以嵌套调用。6) End Sub 标志该过程的结束,系统返回并调用该过

6、程语句的下一条语句。7) 过程中可以用Exit Sub提前结束过程,并返回到下调用该过程语句的下一条语句。(2)建立Sub过程的方法方法一:1)打开代码编辑器窗口2)选择“工具”菜单中的“添加过程”3)从对话框中输入过程名,并选择类型和范围4)在新创建的过程中输入内容方法二: 1)在代码编辑器窗口的对象中选择“通用”,在文本编辑区输入 Private Sub 过程名 2)按回车键,即可创建一个Sub过程样板 3)在新创建的过程中输入内容3Sub子过程的调用(1) 用Call语句调用Sub过程 语法:Call 过程名(实在参数表) 实在参数的个数、类型和顺序,应该与被调用过程的形式参数相匹配,有

7、多个参数时,用逗号分隔。 例:利用过程编写求三角形面积的程序(2)把过程名作为一个语句来用语法:过程名 实参1,实参2它与(1)的不同点是:去掉了关键字和实参列表的括号 如上例中可以改成:area a,b,c,w6.2 函数过程(Function)的定义与调用1函数过程的定义有两种方法:(1) 在代码窗口中,利用“工具”菜单下的“添加过程”命令,插入一个函数过程模板来定义(2)在代码窗口中,把插入点放在所有现有过程之外,直接输入函数来定义 Private | Public Static Function 函数名(参数列表)As 数据类型 局部变量和常数声明 用Dim 或Static声明 语句块

8、 函数名=表达式 Exit Function 语句块 函数名=表达式 End Function2注意事项(1) 函数名的命名规则与变量命名规则相同;函数过程必须由函数名返回一个值。(2) 如果函数体内没有给函数名赋值,则返回对应类型的缺省值,数值型返回0,字符型返回空字符串。(3) 函数过程内部不得再定义Sub过程或Function过程。 例:编写一个计算N!的函数过程3Function过程的调用调用Function过程与调用VB内部函数的方法一样,即在表达式中写出它的名称和相应的实在参数。 语法: 过程名(实参列表) 注意:(1)必须给参数加上括号,即使没有参数也不可省略括号; (2)VB中

9、也允许象调用Sub过程一样来调用Function,但这样就没有返回值。4调用其他模块中的过程(1)调用窗体中的过程 从窗体模块的外部调用窗体中的公有过程,必须用窗体的名字作为调用前缀。如: Call Form1.Examsub(实参表)(2)调用标准模块中的过程如果在应用程序中,过程名是唯一的,则调用时不必加模块名。如果有同名的,则在同一模块内调用时可以不加模块名,而在其他模块中调用时必须加模块名。(3)类模块中的过程 调用类模块的公有过程时,要求用指向该类某一实例的变量修饰过程,即首先要声明类的实例为对象变量,并以此变量作为过程名前缀修饰词,不可直接用类名作为前缀修饰词。如:在类模块Clas

10、s1中含有过程clssub,变量Democlass是类Class1的一个实例,则调用clssub的方法是: Dim Democlass AS New Class1 Call Democlass.clasub 例:函数过程与子过程的异同,计算级数的部分和1 + x + x2/2! + xn/n! +, |xn/n!|exp 6.3 参数的传递1形参与实参的概念形参:指出现在Sub 和Function过程形参表中的变量名、数组名,过程被调用前,没有分配内存,其作用是说明自变量的类型和形态以及在过程中的角色。形参可以是:1)除定长字符串变量之外的合法变量名;2)后面跟()括号的数组名。实参:是在调用

11、Sub 和Function过程时,传送给相应过程的变量名、数组名、常数或表达式。在过程调用传递参数时,形参与实参是按位置结合的,形参表和实参表中对应的变量名可以不必相同,但位置必须对应起来。 形参与实参的关系:形参如同公式中的符号,实参就是符号具体的值;调用过程:即实现形参与实参的结合,也就是把值代入公式进行计算。2 按值传递参数(定义时加ByVal)按值传递参数(Passed By Value)时,是将实参变量的值复制一个到临时存储单元中,如果在调用过程中改变了形参的值,不会影响实参变量本身,即实参变量保持调用前的值不变。3按地址传递参数(定义时没有修饰词或带关键字ByRef)按地址传递参数

12、时,把实参变量的地址传送给被调用过程,形参和实参共用内存的同一地址。在被调用过程中,形参的值一旦改变,相应实参的值也跟着改变。如果实参是一个常数或表达式,VB会按“传值”方式来处理。4数组参数 VB允许把数组作为形参出现在形参表中,语法: 形参数组名() As 数据类型 形参数组只能按地址传递参数,对应的实参也必须是数组,且数据类型相同。调用过程时,把要传递的数组名放在实参表中,数组名后面不跟圆括号。在过程中不可以用Dim语句对形参数组进行声明,否则会产生“重复声明”的错误。但在使用动态数组时,可以用ReDim语句改变形参数组的维界,重新定义数组的大小。5 对象参数VB中可以向过程传递对象,在

13、形参表中,把形参变量的类型声明为“Control”,可以向过程传递控件;若声明为“Form”,则可向过程传递窗体。对象的传递只能按地址传递。6.4 变量、过程的作用域1 VB应用程序的组成:2 过程的作用域 作用范围模块级全局级窗体标准模块窗体标准模块定义方式过程名前加Private例:Private Sub my1(形参表)过程名前加Pubilc 或默认例: Pubilc Sub my2(形参表)能否被本模块其他过程调用能能能能能否被本应用程序其他模块调用不能不能能,但必须在过程名前加窗体名。例:Call 窗体名. My1(实参表)能,但过程名必须唯一,否则需要加标准模块名。例:Call 标

14、准模块名.My2(实参表)3.变量的作用域作用范围局部变量窗体/模块级变量全局变量 窗体标准模块声明方式Dim、StaticDim、PrivatePublic声明位置在过程中窗体/模块的“通用声明”段窗体/模块的“通用声明”段能否被本模块其他过程存取不能能能能否被其他模块存取不能不能能,但在变量名前加窗体名能4静态变量用Static声明的静态变量,在每次调用过程时保持原来的值,不重新初始化。而用Dim声明的变量,每次调用过程时,重新初始化 例:显示1到5个数。5同名变量对不同范围内出现的同名变量,可以用模块名加以区别。一般情况下,当变量名相同而作用域不同时,优先访问局限性大的变量。6.5 递归

15、过程1递归的概念通俗的讲,用自身的结构来描述自身就称为“递归”。如对阶乘运算的定义就是递归的: n!=n(n-1)! (n-1)!=(n-1)(n-2)!2递归子过程和递归函数 VB 允许一个自定义子过程或函数过程在过程体的内部调用自己,这样的子过程或函数就叫递归子过程和递归函数。递归过程包含了递推和回归两个过程。构成递归的条件是:(1)递归结束条件和结束时的值 (2)能用递归形式表示,并且递归向结束条件发展。 例:编制程序求fac(n)=n!的函数3注意事项 (1)递归算法设计简单,但消耗的上机时间和占据的内存空间比非递归大(2) 设计一个正确的递归过程或函数过程必须具备两点:1)具备递归条件;2)具备递归结束条件(3) 一般而言,递归函数过程对于计算阶乘、级数、指数运算有特殊效果。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1