visualbasic程序设计案例第7章过程

上传人:tian****1990 文档编号:81537262 上传时间:2019-02-21 格式:PPT 页数:113 大小:1.21MB
返回 下载 相关 举报
visualbasic程序设计案例第7章过程_第1页
第1页 / 共113页
visualbasic程序设计案例第7章过程_第2页
第2页 / 共113页
visualbasic程序设计案例第7章过程_第3页
第3页 / 共113页
visualbasic程序设计案例第7章过程_第4页
第4页 / 共113页
visualbasic程序设计案例第7章过程_第5页
第5页 / 共113页
点击查看更多>>
资源描述

《visualbasic程序设计案例第7章过程》由会员分享,可在线阅读,更多相关《visualbasic程序设计案例第7章过程(113页珍藏版)》请在金锄头文库上搜索。

1、第7章 过程,7.1 Sub 过程 7.2 Function过程 7.3 参数的传递 7.4 过程的作用域 习题,我们都有这样的感受:如果把一个大的问题划分成一系列较小的问题,然后对每个小问题分别加以解决,这样做起来既简单,又不易出错。编程也是这样。编写Visual Basic 6.0程序时,一般要把大的程序划分成较小的程序模块,每个模块用来实现一个单一而完整的功能,这样的模块就称为过程。过程是模块化程序设计的基础,大型程序通常都是由众多过程组成的。在用Visual Basic设计应用程序时,除了定义常量和变量的工作外,全部工作就是编写过程,也就是说,Visual Basic应用程序是由过程组

2、成的。 使用过程编程有两个好处:其一,过程可以使程序划分成离散的逻辑单元,每个单元都比无过程的整个程序容易调试;其二,一个程序中的过程,往往不必修改或只需稍作改动,便可以在其他程序中使用。,Visual Basic 6.0的过程有下述四种形式: Sub过程,又称为子过程,这种过程完成一定的操作和功能,但没有返回值。Sub过程又分为两类:事件过程和通用过程。事件过程与对象的事件相关联,当发生事件时,执行事件过程;通用过程不与事件相关联,程序中通过过程调用的方式使用通用过程。 Function过程,又称为函数过程,这种过程除了完成一定的功能外,还产生一个返回值。函数可以像变量那样在表达式中使用。

3、Property过程,又称为属性过程,用于为对象添加属性。, Event过程,又称为事件过程。 在应用程序使用过程之前,必须首先定义过程,然后再根据需要调用该过程。定义过程时,可以根据需要指定一个或多个形式参数,同时使用Public或Private关键字指明过程的作用域。Static关键字用于声明过程中局部变量的生命周期。形式参数可以是简单变量、数组及数组元素、记录和对象等,且它可以定义为可选参数。调用过程时,参数传递的方式有按地址传递参数和按传值方式传递参数两种。按地址传递参数时,过程中形式参数的修改将影响实际参数的值;按传值方式传递参数时,过程中形式参数的修改不影响实际参数的值。 本章着重

4、讨论Sub过程和Function过程的定义和使用方法。,7.1 Sub 过 程 案例1 计算三角形的面积 1学习目标 已知三角形的三条边长,编写一个计算三角形面积的通用过程,然后调用该过程。 通过本案例的学习,理解事件过程和通用过程的区别,掌握通用过程的定义方法与调用方法。,2相关知识 Sub过程有两类,即事件过程和通用过程。 1) 事件过程和通用过程的区别 事件过程与对象的事件相关联,是当发生某个事件(如Click、Load、Change)时,对该事件作出响应的程序段,这种事件过程构成了VB应用程序的主体。 有时可能多个不同的事件过程需要使用一段相同的程序代码,这时就可以把这一段代码独立出来

5、,作为一个共用的过程,即“通用过程”。该过程独立于这些事件过程,可以单独建立,供这些事件过程调用。,事件过程和通用过程有如下几方面的区别: (1) 事件过程与对象有关,总是与对象的某个事件相关联,当发生某事件时,执行相应的事件过程。事件过程由VB自行声明,用户不能增删。 通用过程与具体对象无关,不与任何特定的事件相关联。它可以存储在窗体模块和标准模块中,供程序中其他过程来调用。 (2) 事件过程的命名规则为: 对象名_事件名,比如,命令按钮Command1的Click事件的事件子过程名为Command1_Click,单选框Option1的Click事件的事件子过程名为Option1_Click

6、。但窗体事件过程的命名与此规则略有不同,其事件过程的名称总是Form_事件名,而无论该窗体的名称是什么。例如,窗体Form1的Load事件的事件子过程名为Form_Load。,控件事件过程的语法为: Private Sub _ ( ) 语句块 End Sub 窗体事件过程的语法为: Private Sub Form_ ( ) 语句块 End Sub 通用子过程的名称可以根据需要任意给定。,(3) 事件过程在对象发生相应事件时执行。当程序明确调用通用过程时,程序才执行该过程。 (4) 事件子过程的参数个数和类型都是在设计对象时确定的。当使用系统提供的已经定义好的对象时,它的事件子过程的参数个数和

7、类型不能更改。通用过程的参数个数和类型都是开发人员根据需要自己指定的。,2) 通用过程的定义 通用过程的一般格式定义如下: Static Private Public Sub 过程名 (参数表列) 语句块 Exit Sub 语句块 End Sub 例如: Private Sub Subtest() Print “This is a Sub procedure“ End Sub,说明: 通用过程的定义以Sub开头,以End Sub结束。在Sub和 End Sub之间是描述过程操作的语句块,称为“过程体”或“子程序体”。 End Sub标志着通用过程的结束。为了使程序能正确运行,每个通用过程必须有

8、一个End Sub子句。当程序执行到End Sub时,将退出该过程,并立即返回到调用语句下面的语句。 在过程体内可以用一个或多个Exit Sub语句从过程中退出。, 各参量的含义如下。 Static:指定过程中的局部变量在内存中的缺省存储方式。如果使用了Static,则过程中的局部变量就是“Static”型的,即在每次调用过程时,局部变量的值保持不变;如果省略了“Static”,则局部变量就缺省为“自动”的,即在每次调用过程时,局部变量被初始化为或空字符串。Static对过程之外定义的变量没有影响,即使在过程中使用了这些变量。 Private:表示通用过程是私有过程,只能被本模块中的其他过程访

9、问,不能被其他模块中的过程访问。, Public:表示通用过程是公有过程,可以在程序的任何地方调用它。按照缺省规定,所有模块中的子过程为Public。各窗体通用的过程必须在标准模块中用Public定义,在窗体层定义的通用过程只能在本窗体模块中使用,不能在其他窗体模块中使用。 过程名:是一个长度不超过255个字符的变量名,在同一个模块中,同一个变量名不能既用作通用过程名又用作Function过程名。 参数表列:含有在调用时传送给该过程的简单变量或数组名,各名字之间用逗号隔开。“参数表列”指明了调用时传送给过程的参数的个数和类型,每个参数的格式为:,ByVal | ByRef 变量名 () As

10、数据类型 其中,“ByVal”是可选的,ByRef是VB的缺省选项。如果加上“ByVal”,则表明该参数是“传值”参数;如果加上“ByRef”,则表明该参数是“传址”参数(或称为“引用”参数)。“变量名”是一个合法的Visual Basic变量名或数组名,如果是数组,则要在数组名后加上一对括号。“数据类型”是指变量的类型,可以是Integer、Long、Single、Double、String、Currency、Variant或用户定义的类型。如果省略“As数据类型”,则缺省为Variant。有关参数的传送问题将在本章7.3节中介绍。,在定义通用过程时,“参数表列”中的参数称为“形式参数”,简

11、称“形参”,不能用定长字符串变量或定长字符串数组作为形式参数。在调用语句中可用简单定长字符串变量作为“实际参数”,简称“实参”,在调用Sub过程之前,Visual Basic即把它转换为变长字符串变量。 通用过程不能嵌套。在通用过程中,不能定义通用过程或Function过程,不能用GoSub、GoTo或Return语句进入或退出一个通用过程,只能通过调用来执行通用过程,而且可以嵌套调用。,【例7.1】 编写过程,计算1+2+3+n,并将结果显示在屏幕上。 程序代码如下: Sub addn(n As Integer) Dim i, s As Integer s = 0 For i = 1 To

12、n s = s + i Next i MsgBox “前“ & CStr(n) & “个自然数之和为:“ & CStr(s) End Sub 过程可以有参数,也可以不带任何参数。没有参数的过程称为无参过程。对于无参过程,调用时只写过程名即可。,【例7.2】 编写无参过程,当调用该过程时,询问用户是否继续某种操作,回答“Y”则继续,回答“N”则结束程序。 程序代码如下: Private Sub ContinueQuery() Dim Response As String Do Response = InputBox(“Continue(Y or N)? “) If Response = “N“

13、Or Response = “n“ Then End If Response = “Y“ Or Response = “y“ Then Exit Do Loop End Sub,【例7.3】 编写通用过程,使其有两个形式参数,其中第二个形参是一个传值参数。 程序代码如下: Private Sub tryout(x As Integer, ByVal y As Integer) x=x+100 y=y6 Print x,y End Sub,3) 建立通用过程 通用过程不属于任何一个事件过程,因此不能放在事件过程中。通用过程与事件过程的建立方法略有不同,通用过程可以在标准模块、类模块和窗体模块中建

14、立。 (1) 在标准模块中建立通用过程可以使用以下两种方法。 第一种方法的操作步骤如下: 执行“工程”菜单中的“添加模块”命令,打开“添加模块”对话框,在该对话框中选择“新建”选项卡,然后双击“模块”图标,打开模块代码窗口,如图7.1所示。 执行“工具”菜单中的“添加过程”命令,打开“添加过程”对话框,如图7.2所示。,图7.1 模块代码窗口,图7.2 “添加过程”对话框, 在该对话框的“名称”框内输入要建立的过程的名字(如Tryout)。 在该对话框的“类型”栏内选择要建立的过程的类型,如果要建立子程序过程,则应选择“子程序”;如果要建立函数过程,则应选择“函数”。 在该对话框的“范围”栏内

15、选择过程的适用范围,可以选择“公有的”或“私有的”。如果选择“公有的”,则所建立的过程可用于本过程内的所有窗口模块;如果选择“私有的”,则所建立的过程只能用于本标准模块。 单击“确定”按钮,回到如图7.3所示模块代码窗口。此时可以在Sub和End Sub之间键入程序代码(与事件过程的代码输入相同)。,图7.3 添加过程后的模块代码窗口,第二种方法的操作步骤为:执行“工程”菜单中的“添加模块”命令,打开模块代码窗口(与图7.1相同),键入过程的名字。按回车键后系统将自动给出末行代码,然后可在Sub和End Sub之间键入程序代码。 (2) 在窗体模块中建立通用过程可以使用以下方法: 双击窗体,进

16、入代码窗口,在“对象”框中选择“通用”,在“过程”框中选择“声明”,再直接在窗口内键入“Sub Tryout()”,然后按回车键,窗口内显示: Sub Tryout() End Sub 此时即可键入代码。,4) 查看通用过程 如果要在当前模块中查看现有的通用过程,可在“代码”窗口的“对象”框中选择“通用”,然后在“过程”框中选择“过程”。 如果要查看其他模块中的过程,可在“视图”菜单中选取“对象浏览器”,然后在“工程/库”框中选择“工程”,在“类/模块”列表中选择“模块”,并在“成员”列表中选择“过程”,最后再选取“查看定义”。,5) 调用通用过程 要执行一个过程,就必须调用该过程。Sub过程调用可以看作为独立的基本语句。Sub过程的调用有两种方式,一种是把过程的名字放在Call语句中,另一种是把过程名作为一个语句来使用。 (1) 用Call语句调用Sub过程。语句格式为: Call 过程名 (实际参数表) Call语句把程序控制传

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号