Visual Basic程序设计教程 教学课件 ppt 作者 何瑞麟 佘学文 主编 方士杰 李巍 副主编 第9章

上传人:E**** 文档编号:89189197 上传时间:2019-05-21 格式:PPT 页数:63 大小:349KB
返回 下载 相关 举报
Visual Basic程序设计教程 教学课件 ppt 作者 何瑞麟 佘学文 主编 方士杰 李巍 副主编 第9章_第1页
第1页 / 共63页
Visual Basic程序设计教程 教学课件 ppt 作者 何瑞麟 佘学文 主编 方士杰 李巍 副主编 第9章_第2页
第2页 / 共63页
Visual Basic程序设计教程 教学课件 ppt 作者 何瑞麟 佘学文 主编 方士杰 李巍 副主编 第9章_第3页
第3页 / 共63页
Visual Basic程序设计教程 教学课件 ppt 作者 何瑞麟 佘学文 主编 方士杰 李巍 副主编 第9章_第4页
第4页 / 共63页
Visual Basic程序设计教程 教学课件 ppt 作者 何瑞麟 佘学文 主编 方士杰 李巍 副主编 第9章_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《Visual Basic程序设计教程 教学课件 ppt 作者 何瑞麟 佘学文 主编 方士杰 李巍 副主编 第9章》由会员分享,可在线阅读,更多相关《Visual Basic程序设计教程 教学课件 ppt 作者 何瑞麟 佘学文 主编 方士杰 李巍 副主编 第9章(63页珍藏版)》请在金锄头文库上搜索。

1、第9章 过程与模块,9.1 过程,9.2 参数传递,9.3 作用域,9.4 嵌套与递归调用,9.1 过程,在开发在一个复杂的应用程序过程中,应按照结构化、模块化程序设计的原则,将任务进行细分,划分为若干个相对独立的小任务,使之构成功能单一的模块。,在Visual Basic中,就是通过自定义过程与函数,实现结构化、模块化程序设计思想。,过程的重要作用在于实现对复杂任务“分而治之”。它的优点是: 它可以将一个复杂任务分解为若干简单的、易于理解和实现的小任务,并分别运用过程来对其进行描述,这样有利于程序的实现,容易维护。 可以实现代码重用,提高编程效率。,9.1.1 自定义过程,自定义过程:是实现

2、某个特定功能按照一定格式书写的一组程序代码,这组程序代码有其自身的标识符,可以通过这个名字在其它地方使用它,或被其他过程所调用。,自定义过程与事件过程区别: 过程名上的区别。事件过程名是由对象名和事件名连接而成,而自定义过程的名字是任意一个合法的标识符。 启动机制的不同。虽然事件过程也可以被其他过程所调用,但通常都是在某个对象的特定事件发生时自动启动的。而自定义过程只能被另一个过程调用时才启动。,自定义过程定义的格式如下: Private | Public Static Sub 语句序列 Exit Sub 语句序列 End Sub,说明: 过程的定义应以Sub开头,以End Sub结束。其间可

3、以包含由0个或多个Exit Sub分隔开的语句序列,当子过程执行到End Sub或Exit Sub语句时,系统结束执行Sub过程中代码,退出过程调用。系统将接着从调用该Sub过程的语句下一条语句执行。在Sub过程的任何位置都可以有Exit Sub语句(Exit Sub通常是与If语句配合使用)。, 所有的可执行代码都必须、也只能属于某个过程。不能在Sub或Function过程中定义其它Sub过程。, 过程名的命名规则与变量名相同。过程名不允许与Visual Basic的保留字相同,不能与其它的自定义过程、函数以及同一级的变量有相同的名字。 关键字Public为可选项。表示所有模块与所有其它过程

4、都可访问这个Sub过程。如果在包含Option Private的模块中使用,则这个过程在该工程之外是不可使用的。 关键字Private为可选项。表示只有过程所在模块的其它过程可以使用该Sub过程。, 关键字Static为可选项。表示在调用之间保留Sub过程的局部变量的值。Static属性对在Sub外声明的变量不会产生影响,即使过程中也使用了这些变量。 所有程序都遵循I-P-O周期,过程是一种特殊的程序。我们定义过程、函数的过程其实就是我们处理假定数据的过程。其假定的数据称为形式参数,属于临时变量,仅在本子过程内有意义,多个假定数据(形式参数)之间用逗号分隔。,Visual Basic也允许定义

5、形式参数的过程。形式参数的一般格式为: ByVal | ByRef ( ) As 其中: ByVal、ByRef为可选项,表示过程调用时,实际要处理的数据传递给过程处理时的传递特征,ByRef是Visual Basic的缺省选项。 ( )对数组变量是必需的。用来指明变量名是一个数组。,如果在程序的某个位置需要用到过程的功能,我们就可调用此过程来完成相应的功能,其调用的语法格式有: Call () ,建立自定义过程的方法:,打开代码设计窗体, 选择工具菜单添加过程后,弹出添加过程对话框(如下左图); 在(名称)文本框中输入过程名,选择相应类型与范围后,单击确定按钮后,进入代码设计窗体(如下右图)

6、 。,过程调用的语法格式说明: 使用格式时,实际参数不能用圆括号括起来,且过程调用语句中实际参数表中的参数数目、类型以及排列顺序必须与过程定义语句中的形式参数表保持一致。,例题1:自定义无形式参数过程的调用与事件过程的调用计算1+2+3+100,界面如下图所示。,程序代码设计:,Private Sub Command1_Click() Call sum 调用自定义无形式参数过程 End Sub Public Sub sum() 自定义无形式参数过程 Dim i As Integer, sum As Integer sum = 0 For i = 1 To 100 sum = sum + i N

7、ext i Label2.Caption = sum End Sub,Private Sub Command2_Click() 单击事件过程 Dim i As Integer, sum As Integer sum = 0 For i = 1 To 100 sum = sum + i Next i Label2.Caption = sum End Sub Private Sub Command3_Click() Call Command2_Click 调用单击事件过程 End Sub Private Sub Command4_Click() Label2.Caption = “ 清除运算结果

8、End Sub,例题2:使用模块化思想设计一个有参数过程,实现在窗体上输出倒一个三角形形状的图形的程序。用户界面如图所示。,Private Sub PrintImage(ByVal n As Integer, ByVal s As String) 过程中包含n和 s两个参数,其中n是要显示的行数, s是字符 Dim i%, j% For i = 1 To n Print Space(i - 1); 每行前部分的空格 Print String(2 * (n - i) + 1, s) 每行后部分的符号 Next i End Sub Private Sub CmdCls_Click() Cls 清屏

9、命令 End Sub,程序代码设计:,Private Sub CmdEnd_Click() End 终止程序的运行 End Sub Private Sub CmdOutput_Click() Dim str As String * 1, n As Integer str = Trim(TxtChar.Text) 实际要显示的字符 n = Val(TxtNum.Text) 实际要显示的行数 Call PrintImage(n, str) 输出一个特定的图形 End Sub,说明: 由于空格属于字符的范围,若在输入显示字符时无意在字符前加入了空格字符,执行结果将不会显示所要的图形,因此,在str

10、= Trim(TxtChar.Text)语句中使用Trim()函数,把前置、后随空格过滤掉,防止可能产生的显示错误。,消去文本框中字符的前后空格, 过程设计时,使用形式参数,过程调用时需要将实际要处理的数据,以参数形式传递给过程,传递的过程如图所示。,9.1.2 自定义函数的定义与调用,自定义函数书写格式、使用方法等与自定义过程非常类似,都是能实现某种特定功能的一组程序代码。,自定义函数定义的语法格式为: Private|PublicStaticFunction _ As = Exit Function = End Function,说明: 与自定义过程一样,函数也是一个独立的程序模块,可读取

11、参数、执行一系列语句并改变其参数的值。但与过程不同的是,Function过程可返回一个值到调用它的程序。 一个函数有且只有一个处理结果,这就是函数值,它与变量完全一样,有数据类型,能作为表达式来使用。在函数定义时用As子句设置;如果没有As子句,缺省的数据类型为通用类型。 在定义中,给函数名自身赋值的语句,即是指定函数返回值的过程。 不能在函数中嵌套定义其它函数或过程,但可以使用其它已经设计好函数与过程。, Exit Function语句使系统立即结束Function函数的执行,接着从调用该Function函数的语句之后的语句继续执行。函数体中可以有零个或多个Exit Function语句(通

12、常与If语句配合使用)。 一个函数设计好以后,在有效范围之内,与系统提供函数如Sqr()、Cos()等的使用、作用完成相同。 函数定义过程中如果没有对函数名赋值,即没有指定函数的返回值,则函数将返回一个缺省值:数值函数返回0,字符串函数返回一个零长度字符串(“),可变类型函数则返回Empty。,如果程序中需要用到函数来完成任务,可以把函数作为 一个表达式来使用,调用此函数,其使用的语法格式为: 函数过程名(实际参数表) 说明: 实际参数表中的参数数目、类型以及排列顺序必须与函数定义语句中的形式参数表保持一致。函数不能作为单独的语句使用,函数过程必须作为表达式中的一部分,与其他的语法成分配合构成

13、语句。,函数调用的方法:,例题3:设计一个计算圆柱体体积的函数,计算圆柱体体积。界面如图所示。,程序代码设计:,Private Function Cal(ByVal r!, ByVal h!) As Double Cal = 3.1416 * r * r * h 体积计算函数 End Function Private Sub CmdCal_Click() Dim x!, y! x = Val(TxtR.Text) y = Val(TxtH.Text) TxtV.Text = Cal(x, y) 调用自定义函数 End Sub Private Sub CmdClsData_Click() 清除数

14、据 TxtR.Text = “: TxtH.Text = “ TxtV.Text = “ End Sub,例题4:设计一个计算1+2+3+k的函数,并利用它计算数列1+(1+2)+(1+2+3)+(1+2+3+n)前指定项的和。界面如图所示。,程序代码设计:,计算“(1+2+3+.+k)” 函数SM的代码为: Private Function SM(ByVal k%) As Long 计算表达式(1+2+3+.+k)的值 Dim s&, i% s = 0 For i = 1 To k s = s + i Next i SM = s End Function,Private Sub CmdCal

15、_Click() Dim t&, n%, i% t = 0 n = Val(TxtN.Text) For i = 1 To n t = t + SM(i) 调用自定义函数 Next i TxtT.Text = t End Sub Private Sub CmdEnd_Click() End End Sub,9.1.3 几个系统函数,、Shell()函数 :,功能:执行一个可执行文件,返回一个Double数据。如果成功启动可执行文件,则返回值为这个程序的任务ID;若不成功,则会返回0。 使用的语法格式为: Shell(命令字符串,窗口类型), 命令字符串,为必选参数,指出要执行的程序名,以及任何必需的参数或命令行变量,可能还包括目录或文件夹,以及驱动器。,说明:,在缺省情况下,Shell()函数是以异步方式来执行其它程序的。也就是说,用Shell()启动的程序可能还没有完成执行过程,就已经执行到Shell()函数之后的语句。,窗口类型,为可选参数。表示相应可执行程序启动后窗口的样式。如果窗口类型省略,则程序是以具

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

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

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