《Visual Basic.NET程序设计》-潘晓文-电子教案 第5章

上传人:E**** 文档编号:89401372 上传时间:2019-05-24 格式:PPT 页数:79 大小:388KB
返回 下载 相关 举报
《Visual Basic.NET程序设计》-潘晓文-电子教案 第5章_第1页
第1页 / 共79页
《Visual Basic.NET程序设计》-潘晓文-电子教案 第5章_第2页
第2页 / 共79页
《Visual Basic.NET程序设计》-潘晓文-电子教案 第5章_第3页
第3页 / 共79页
《Visual Basic.NET程序设计》-潘晓文-电子教案 第5章_第4页
第4页 / 共79页
《Visual Basic.NET程序设计》-潘晓文-电子教案 第5章_第5页
第5页 / 共79页
点击查看更多>>
资源描述

《《Visual Basic.NET程序设计》-潘晓文-电子教案 第5章》由会员分享,可在线阅读,更多相关《《Visual Basic.NET程序设计》-潘晓文-电子教案 第5章(79页珍藏版)》请在金锄头文库上搜索。

1、第5章 过程,New!,通过本章的学习,读者学会使用过程来组织程序,使得所设计的程序符合结构化程序设计的要求,应用程序的可读性强,容易调试和修改。本章的主要内容包括:通用过程、函数的定义和使用;传值和传址参数的使用;用模块组织程序;递归调用。,New!,本章学习目标,Visual Basic.NET的程序代码是按过程组织的。在用Visual Basic.NET设计应用程序时,除了定义常量、变量及函数说明等工作外,大部分工作是编写过程。Visual Basic.NET中的过程是程序的基本单元,用于实现某个特定的功能。例如,前面章节所编写的程序,主要的工作在于编写一个个事件过程。过程构成了Visu

2、al Basic.NET程序代码的主体。 1)过程类型 Visual Basic.NET的过程包括:Sub 过程(包括通用过程和事件过程)、Function 过程以及Property 过程(将在第7章“面向对象程序设计”中介绍)。 2)过程与结构化程序设计,用过程构造代码有以下优点: (1)过程允许将程序分为不连续的逻辑单元。调试单独的单元要比调试不包含过程的整个程序相比要容易。 (2)实现代码重用。过程一旦调试成功,可以重复调用,提高了编程效率。,New!,5.1 Sub过程,5.1.1 通用过程的定义,5.1.2 通用过程的创建,5.1.3 Sub子过程的调用,4.1 结构,5.1 sub

3、 过程, sub 过程定义,VB.NET中的Sub过程包括:通用过程和事件过程。本节主要介绍通用过程。 通用过程是一个必须被另一个过程显式调用的程序段,通用过程有助于将复杂的应用程序分解成多个易于管理的逻辑单元,使应用程序更简洁、更易于维护。通用过程还可以包含应用程序中重复执行的代码段,供应用程序重复调用,提高了编程效率。,引入,通用过程的定义语法如下: Sub过程格式如下: Private | Public Sub 过程名(参数列表) 局部变量和常数声明 用Dim 或Static声明 语句块 Exit Sub 语句块 End Sub,5.1.1 通用过程的定义,(1)Private,私有的。

4、由它限定所声明的过程只限于在本窗体或模块中被调用;Public,公有的。由它限定声明该过程可以被其他窗体、模块调用。 (2)过程名的命名规则与变量命名规则相同,在同一个模块中,不但过程名与过程名不能相同,过程名与函数名也不能相同。 (3)参数列表中的参数称为形式参数(形参),它是过程和主程序之间进行数据传递的介质。定义过程所需要的形参并不是真正的参数,仅仅是为了说明主程序在调用它时,必须使用的数据个数以及数据类型。 若有多个参数时,各参数之间用逗号分隔,形参没有具体的值。Visual Basic.NET的过程可以没有参数,但圆括号不能省略。没有参数的过程为无参过程。,使用说明:,ByVal/B

5、yRef 参数名() As 数据类型 说明: 参数名():参数名为合法的VB变量名或数组名,无括号表示变量,有括号表示数组。 ByVal:表明其后的形参是按值传递参数(传值参数)。值传递时,参数值在过程中的变化不返回主程序。 ByRef:表明以传地址的方式传递数据,即参数值在过程中的变化均返回主程序。Visual Basic.NET中若省略ByVal和ByRef时,默认为按值传递。 As数据类型:必须项,指明参数的数据类型。 Sub 过程不能嵌套定义,但可以嵌套调用。,参数表中的格式如下:, End Sub 标志该过程的结束,系统返回调用该过程语句的下一条语句。 过程中可以用Exit Sub提

6、前结束过程,并返回到调用该过程语句的下一条语句。,5.1.2 通用过程的创建,通用过程由程序设计者在窗体或模块中创建,在窗体中的过程可以在该窗体范围内所有过程中调用,在模块中的过程可以被程序中的任何模块或窗体的事件过程调用。 (1)在窗体中建立通用过程的一般步骤如下: 打开需要创建过程的模块的代码编辑器窗口。 找到“Windows窗体设计器生成的代码”; 直接在“Windows窗体设计器生成的代码”下方输入通用过程。,Private Sub CompArea(ByVal L As Single, ByVal W As Single) 求矩形面积 Dim Area As Double Area

7、= L * W Label1.Text = Area End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles Button1.Click Dim x As Single, y As Single x = Val(TextBox1.Text),例5-1:利用通用过程编写求矩形面积的程序。:,过程一旦创建完毕,就可以在其它的过程中调用。调用方式有两种: 方法1:用Call语句调用Sub过程 语法:Call Sub过程名(实参列表) 方法2:把过程名

8、作为一个语句来用 语法:Sub过程名 (实参列表) 方法1的优点是增强了程序的可读性,可以使读者清楚的知道在哪个地方调用一个过程。,5.1.3 Sub子过程的调用,y = Val(TextBox2.Text) Call CompArea(x, y) End Sub,过程调用时的参数称为实参。实参的个数、类型以及前后次序必须和形参一致。实参可以是变量、常量、表达式等,如果实参为数组,则不必写数组的维数。多个实参之间要用逗号隔开。程序运行时,实参按次序将值传递给形参。 下面编写事件过程调用例5-1的CompArae过程,完整的程序如下: Private Sub CompArea(ByVal L A

9、s Single, ByVal W As Single) Area = L * W MessageBox.show(“矩形面积=”+Conversion.Str(Area) End Sub Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Dim x As Single, y As Single, s As Double,x = Val(TextBox1.Text) y = Val(TextBox2.Text) Call Co

10、mpArea(x, y) End Sub 运行结果如图5-6所示:,图5-1 例5-1程序界面,图 5-6,使用了通用过程后,该例子把程序设计的工作分为两部分,界面设计和功能实现。界面设计的工作主要包括:窗体属性设置、控件的选用和属性设置以及编写必要的事件过程。界面设计的主要目的是让用户能很容易地使用本程序;而功能实现的工作主要是编写实现一定功能的代码,如本例子中的CompArae过程,实现了计算矩形面积的功能。这两部分工作目的不一样,如何划分它们的工作呢?按结构化程序设计原则,各个逻辑单元之间联系较少为好。例5-1的程序如下编写,通过比较两个程序来理解单元划分的原则。,Private Sub

11、 CompArea(ByVal L As Single, ByVal W As _ Single) Area = L * W Label1.Text = Area End Sub Private Sub Button1_Click(ByVal sender As ystem.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Dim x As Single, y As Single, s As Double x = Val(TextBox1.Text) y = Val(TextBox2.Text) Call CompArea

12、(x, y) End Sub,例5-2:对通用过程功能的划分,例5-2与例5-1实现了相同的功能。但是在例5-2中,所计算矩形面积是在窗体上通过标签显示。这就意味着,CompArae通用过程与界面有很大的关联。在编写通用过程时必须知道界面设计,在界面设计时也必须考虑通用过程的信息显示。这给程序设计带来很大的麻烦,尤其是进行大型软件设计时,许多功能单元都是由不同程序设计员编写,程序员之间必须交换大量信息,若程序中某个过程发生变动,程序的其它部分也必须做相应的调整,给程序设计带来很多的问题,程序设计也容易出错,程序调试也不方便。,5.2.3模块(module),New!,5.2函数(Functio

13、n)过程,5.2.1 Function过程的定义,5.2.2Function过程的调用,虽然Visual Basic.NET中提供了许多内部函数,如Asc( )、mid( )、sqr( )等,但在实际编程中,这些函数往往难以满足应用中的特殊要求。为此程序设计者常常要使用Function语句自己定义函数,这类函数为自定义函数。自定义函数和过程一样,也是子程序,主要区别在于函数具有返回值,可以作为独立的基本语句调用,也可以在表达式中使用;而通用过程没有返回值,只能作为独立的基本语句调用。,5.2 函数(Function)过程,Function过程的创建与Sub过程一样,既可以在窗体中创建,也可以在

14、模块中创建。Function过程的格式如下: Private | Public Function 函数名(参数列表)As 数据类型 局部变量和常数声明 用Dim 或Static声明 语句块 函数名=表达式 |Return 表达式 Exit Function 语句块 函数名=表达式 End Function,5.2.1 Function过程的定义,使用说明: (1)Private 、 Public 对函数的影响和对Sub过程的影响相同。 (2)函数名的命名规则与变量命名规则相同;函数过程必须由函数名返回一个值,函数名在函数体中不能与形参和过程变量重名。 (3)参数表后的选择项As类型是Funct

15、ion函数返回值的数据类型,如果缺省,则Object类型。 (4)函数过程的返回值可以通过以下方式返回: Return 表达式 如果函数过程没有使用Renturn语句,则返回对应类型的缺省值。,(5)函数过程可以用Exit Function提前结束过程,也可以用Renturn退出,两者的区别是Exit Function语句使函数过程立即退出但没有返回值,Renturn语句使函数过程带有返回值退出,程序返回到调用过程的调用语句的下一条语句执行。 Return语句可以放置在函数过程的任何地方,可以有一个Return语句,也可以有任意多个,但是只要执行了一个Return语句,就会退出函数过程,后面的

16、语句就不再执行了。 (6)函数参数表格式与Sub过程参数表格式相同。不论有无参数,括号均不能省略。 (7)函数过程内部不得再定义Sub过程或Function过程。,例5-3:例3中,通用过程使用两个形参来计算圆面积,现在我们使用函数过程实现圆面积的计算,程序如下: Private Function Area(x As Single) As Single Const p As Single = 3.14 Return 2 * p * x 2 End Function 与Sub过程相比,Function过程将表达式2 * p * x 2的运算结果,由函数的返回值返回到调用该函数的过程中。,调用Function过程与调用Visual Basic.NET内部函数的方法一样。对于没有参数的函数过程,也可以省略括号。另外,还可以通过Call语句来调用Function过程,但是这个时候返回值就被忽略了。 现在我们编写一

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

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

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