Visual Basic程序设计VB第7章电子讲稿
合集下载
VB程序设计电子教案第7章:数据库编程

指定或返回与Data控件对应的保存有Data控件查询结果记 录集的Recordset对象。
设置是否可对记录集进行写操作
设置当记录集的Bof属性为True时数据控件的操作。
设置当记录集的Eof属性为True时数据控件的操作。
Data控件的常用方法
方法 Refresh UpdateControls
UpdateRecord
Mode
设置等待建立连接的时间(单位为秒)。
设置RecordSource属性的取值类型。
设置或返回ADO的记录集对象,与Data控件的Recordset记 录集相似。
设置或返回对数据的访问权限(如只读、读写、不允许其 它用户打开连接等等)。
数据库程序设计综合实例7-2
【实例7-2】Data控件的综合实例。运用 Data控件编写一个学生信息管理程序, 用于实现对student.mdb数据库中的学生 信息的浏览、添加、删除、查询及更新 等操作。
功能
常用于更新Data控件的数据结构(当在程序运行时重新设置了 Data控件的某些属性后,必须使用该方法使设置有效)
将Data控件记录集中的当前记录填充到与之关联的数据绑定控 件(用这种方法可将被关联的绑定控件的内容恢复为其原 始值,相当于取消用户对绑定控件中数据的更改)
将数据绑定控件的当前内容保存到数据控件的记录集中。该方 法可以避免触发 Validate 事件。
Data控件的主要属性
属性 Connect
DatabaseName RecordSource RecordsetType Recordset
ReadOnly n EoFAction
功能 定义Data控件连接的数据库类型。缺省:Microsoft Jet数
设置是否可对记录集进行写操作
设置当记录集的Bof属性为True时数据控件的操作。
设置当记录集的Eof属性为True时数据控件的操作。
Data控件的常用方法
方法 Refresh UpdateControls
UpdateRecord
Mode
设置等待建立连接的时间(单位为秒)。
设置RecordSource属性的取值类型。
设置或返回ADO的记录集对象,与Data控件的Recordset记 录集相似。
设置或返回对数据的访问权限(如只读、读写、不允许其 它用户打开连接等等)。
数据库程序设计综合实例7-2
【实例7-2】Data控件的综合实例。运用 Data控件编写一个学生信息管理程序, 用于实现对student.mdb数据库中的学生 信息的浏览、添加、删除、查询及更新 等操作。
功能
常用于更新Data控件的数据结构(当在程序运行时重新设置了 Data控件的某些属性后,必须使用该方法使设置有效)
将Data控件记录集中的当前记录填充到与之关联的数据绑定控 件(用这种方法可将被关联的绑定控件的内容恢复为其原 始值,相当于取消用户对绑定控件中数据的更改)
将数据绑定控件的当前内容保存到数据控件的记录集中。该方 法可以避免触发 Validate 事件。
Data控件的主要属性
属性 Connect
DatabaseName RecordSource RecordsetType Recordset
ReadOnly n EoFAction
功能 定义Data控件连接的数据库类型。缺省:Microsoft Jet数
Visual Basic 程序设计教程第7章

也就是说子程序过程比函数过程适用 面更广。但当过程只有一个返回值时,函 数过程比较直观;当过程要实现某种操作 或者要返回多个值时,必须用子程序过程, 通过多个形参传递多个值到主调程序中。
(2)函数过程有返回值,则函数过 程名也就有类型,同时在函数过程 体内必须对函数名赋值。子程序过 程名没有值,则子程序过程名也没 有类型,不能在过程体内对子程序 过程名进行赋值。
二.函数过程
1.函数的定义
(1).建立函数过程(Function过 程)
建立函数过程的方法同建立子程序过 程的方法相同,只是在图7.1中的“类型” 选项组中选取“函数”,则定义一个函数 过程。
(2).函数过程(Function过程)的 定义 函数过程的定义形式如下:
[Static][Public][Private]Sub 函数过程名( [参数列 表])] [As 类型] 局部变量或常数定义 <语句块> [Exit Function] 函数过程体 <语句块> 函数名=返回值 End Function
【说明】 (1)过程以Sub开头,以End Sub结束, 在Sub和End Sub之间的部分是过程体。格 式中各参数的含义如下。 ① Static:指定过程内的局部变量是 静态变量。 ② Private:表示Sub过程是私有的, 只能被本模块中的其他过程访问,不能被 其他模块中的过程访问。
③ Public:表示Sub过程是公有的, 可以在程序的任何地方调用它。各窗体的 通用过程一般在标准模块中用Public定义。 在窗体层定义的通用过程通常在本窗体模 块中调用,如果在其他窗体模块中调用, 则应加上窗体名作为前缀,即窗体名.模块 名(参数表)。
3.子过程的调用
子程序过程的调用是一条独立的语句, 有两种调用形式:
visual basic (vb)第7章 过程

Visual Basin 程序设计
4.Visual Basic应用程序结构
VB应用程序由三种模块组成:
窗体模块(Form) (文件扩展名.frm) 标准模块(Module) (文件扩展名.bas) 类模块(Class) (文件扩展名.cls)
Visual Basin 程序设计
2-1. Function过程(过程函数)
3.Function过程的调用 (1)调用位置:表达式中调用 (2)调用格式:
变量名=函数名(实参列表)
实参列表:可以是常量、变量或表达式,各参 数用逗号隔开。
Visual Basin 程序设计
2-1. Function过程(过程函数)
Visual Basin 程序设计
2-1. Function过程(过程函数)
1.定义格式为:
[ 说明符 ] Function 函数名 (形参表)As 类型 局部变量或常量声明 语句序列 函数名=表达式 End Function
Visual Basin 程序设计
2-1. Function过程(过程函数)
Visual Basin 程序设计
过程的执行:
过程A:
子过程: Sprg1
调用Sprg1
调用Sprg1
调用Sprg2
子过程: Sprg2
Visual Basin 程序设计
2. 使用通用过程
在VB中,通用过程分为两类: ■ Function过程(函数) ■ Sub过程(子程序) 当我们在程序设计中需要重复使用一段代码时,可以 编写通用过程。那么到底是选用Function过程,还是选 用Sub过程呢? (1)若想通过过程得到一个值则选用Function过程, 并通过该过程的名字将计算的值传递给调用过程。 (2)如果该过程仅仅进行一些操作无须计算一个 值,或需要得到多个值,则需要选用Sub过程,并通过该 过程的参数将多个值传递给调用过程。
Visual Basic程序设计课件(第七章)

程序如下: Private Sub Command1_Click() Dim a(4,3)As Single,xm(4)As String * 10, i%,j%,aver! Print Tab(25);"成绩表" Print Print "姓名";Tab(15);"英语";Tab(25); "数学"; Print Tab(35);"法律";Tab(45);"平均分" Print
3.Unload语句 格式:Unload 窗体名称 该语句与Load语句的功能相反,它清除内存中指 定的窗体。
4.Hide方法
格式:[窗体名称.]Hide Hide方法使窗体隐藏起来,不在屏幕上显示,但 此时窗体仍在内存中。因此,它与Unload语句的作用 是不一样的。
从存储角度看,前面使用的变量都是相互独 立的、无关的,通常称它们为简单变量。但如果 处理将200个学生的成绩按大小顺序排序这类问 题,只使用简单变量将会非常麻烦,而利用数组
利用多窗体,重新设计此程序!如下图所示
具体程序如下:
Private Sub Command1_Click() Form2.Show Dim a!, b!, c!, p!, s! a = Text1.Text b = Text2.Text c = Text3.Text p = (a + b + c) / 2 s = Sqr(p * (p - a) * (p - b) * (p - c)) Form2.Text1.Text = s End Sub
【例7.6】设计一个简易计算器,能进行整数的加、 减、乘、除运算。其运行界面如图7-8所示。 界面设计: 一个标签用于计算器输出;
《新编Visual Basic程序设计教程》课件 第7章

该语句的作用是当表达式的值为True时,执行Then后面的语句或语句块; 当表达式的值为False时不作任何操作。
例如:比较两个变量a和b内数值的大小,如果a小于b,则将a和b的值交换。 其语句如下:
If a<b Then t=a : a=b : b=t
或
If a<b Then t=x x=y y=t
Case 2,4,6,8
③ 表达式 To 表达式,如:
Case 1 To 5
④ Is关系运算表达式,使用的运算符包括:< <= > >= = <>,如:
Case Is<12
第一种形式与某个值比较,后三种形式与设定的某个范围比较,四种 形式也可以在数据类型相同的情况下混合使用。如:
Case 1,3,5,7,Is>10
Case 1 Text1.Text="1" Case 2 Text1.Text="2" Case 3 Text1.Text="3" Case Else Text1.Text="Goodbye"
End Select End Sub
可以看出,对于多分支结构,用Select Case语句比用嵌套的If语句程序 可读性强。但是要注意,不是所有的多分支结构均可用Select Case语句代替 嵌套的If语句。
或 If 表达式 Then
语句块 End If
其中: 表达式一般为关系或逻辑表达式,也可为算术表达式。当表达式为算术表 达式时,值为非0时为True,值为0时表示False。
语句块可以是一条或多条语句。上述第一种形式中Then后面通常为一条语 句,如果要用多条语句,则必须书写在一行上,各语e>=60 Then Print “及格” ElseIf score>=70 Then Print “中” ElseIf score>=80 Then Print “良” ElseIf score>=90 Then Print “优” Else Print “不及格” End If
例如:比较两个变量a和b内数值的大小,如果a小于b,则将a和b的值交换。 其语句如下:
If a<b Then t=a : a=b : b=t
或
If a<b Then t=x x=y y=t
Case 2,4,6,8
③ 表达式 To 表达式,如:
Case 1 To 5
④ Is关系运算表达式,使用的运算符包括:< <= > >= = <>,如:
Case Is<12
第一种形式与某个值比较,后三种形式与设定的某个范围比较,四种 形式也可以在数据类型相同的情况下混合使用。如:
Case 1,3,5,7,Is>10
Case 1 Text1.Text="1" Case 2 Text1.Text="2" Case 3 Text1.Text="3" Case Else Text1.Text="Goodbye"
End Select End Sub
可以看出,对于多分支结构,用Select Case语句比用嵌套的If语句程序 可读性强。但是要注意,不是所有的多分支结构均可用Select Case语句代替 嵌套的If语句。
或 If 表达式 Then
语句块 End If
其中: 表达式一般为关系或逻辑表达式,也可为算术表达式。当表达式为算术表 达式时,值为非0时为True,值为0时表示False。
语句块可以是一条或多条语句。上述第一种形式中Then后面通常为一条语 句,如果要用多条语句,则必须书写在一行上,各语e>=60 Then Print “及格” ElseIf score>=70 Then Print “中” ElseIf score>=80 Then Print “良” ElseIf score>=90 Then Print “优” Else Print “不及格” End If
VB七章课件

Private Sub mnuEditPaste_Click()
If Len(Clipboard.GetText) > 0 Then txtT2.SelText = Clipboard.GetText End If
End Sub
使用剪贴板需要注意的一个问题是: 在使用之前,应该先用Clear方法将剪贴板Cli pboard清空,因为Clipboard是Windows的系统 资源, 允许多个程序向剪贴板粘贴数据,因此剪贴 板上可能已存放其他程序复制的信息。在程序装载 时,要先清空剪贴板的内容,相应的程序如下:
例如,用Alt+E键打开“编辑(E)”菜单。当 菜单项被打开后,再按X键,就可以执行“退出”菜 单命令(与单击“退出”菜单项的作用一样)。如 果不加符号“&”则不能采用这种方式来选择菜单项。
5. 添加分隔线 现在需要在“粘贴”和“退出”两个子菜单命令中间 加一个分隔条。操作过程与建立一个菜单项一样。 (1) 将“退出”子菜单项“点亮”。 (2) 单击“插入”项,可以看到在“退出”命令的 上面添加了一行,并自动加入了一个内缩符号。 (3) 在“标题(P)”框中输入一个减号(-)。 (4) 在“名称(M)”框中为这个减号起一个名字m enuEditBar。
“设置(S)”所包含的两个菜单项是控件数组元素。单击这两个 菜单项中的任一项,都会触发mnuSetting_Click事件过程。该 过程的代码如下:
Private Sub mnuSetting_Click(Index As Integer) ′选择字体 If Index = 0 Then CMDialog1.Flags = 1 CMDialog1.ShowFont txtT1.FontSize = CMDialog1.FontSize txtT2.FontSize = CMDialog1.FontSize End If ′选择颜色 If Index = 1 Then CMDialog1.ShowColor txtT1.ForeColor = CMDialog1.Color txtT2.ForeColor = CMDialog1.Color End If End Sub
Visual Basic程序设计VB语言第7章 过程

x=x+1 Print “已单击按钮次数:”; x Form2.Show End sub Private Sub Command1_Click() Form1.x=form1.x+1 Print “已单击按钮次数:”; x Form1.Show End sub
Form1 窗体模块
Form2 窗体模块
❖ 变量的作用域 变量的作用域是指变量的有效范围,根据变量说明方式 的不同,变量有三个作用域
使用关键字 Static定义的局部变量称为静态变量。程序 开始运行时即给静态变量分配存储空间,直到程序运行 结束,空间才被释放。如果在函数名或过程名前加上 Static,则其中的变量均为静态变量。
局部变量
❖ Sub过程的调用 Call < 过程名 > (实参) < 过程名 > 实参
1. 输入一个字符串,逆序输出。(P160) Private Sub invert(x As String, y As String) Call invert(a,b)
2. 计算S = 1! + 2! + … + N! (P161) Private Sub jc(n As Integer, t As Long) jc i,t
7.1 Sub过程
❖ Sub过程的定义格式 [ 访问权限 ] Sub < 过程名 > [(形参列表)] 变量说明
语句
[Exit Sub] 语句
// 结束过程执行,返回调用处
End Sub 访问权限:Public 或 Private 或 Static
❖ Sub过程的创建
方法一: 执行菜单命令:视图 | 代码窗口,出现代码编辑 器,再执行菜单命令:工具 | 添加过程,出现 “添加过程”对话窗口。 方法二: 打开代码编辑器, 直接在通用模块声 明段输入相应代码。
Form1 窗体模块
Form2 窗体模块
❖ 变量的作用域 变量的作用域是指变量的有效范围,根据变量说明方式 的不同,变量有三个作用域
使用关键字 Static定义的局部变量称为静态变量。程序 开始运行时即给静态变量分配存储空间,直到程序运行 结束,空间才被释放。如果在函数名或过程名前加上 Static,则其中的变量均为静态变量。
局部变量
❖ Sub过程的调用 Call < 过程名 > (实参) < 过程名 > 实参
1. 输入一个字符串,逆序输出。(P160) Private Sub invert(x As String, y As String) Call invert(a,b)
2. 计算S = 1! + 2! + … + N! (P161) Private Sub jc(n As Integer, t As Long) jc i,t
7.1 Sub过程
❖ Sub过程的定义格式 [ 访问权限 ] Sub < 过程名 > [(形参列表)] 变量说明
语句
[Exit Sub] 语句
// 结束过程执行,返回调用处
End Sub 访问权限:Public 或 Private 或 Static
❖ Sub过程的创建
方法一: 执行菜单命令:视图 | 代码窗口,出现代码编辑 器,再执行菜单命令:工具 | 添加过程,出现 “添加过程”对话窗口。 方法二: 打开代码编辑器, 直接在通用模块声 明段输入相应代码。
VB Visual Basic 程序设计第4版课件第7章

14
在预先不知道要处理的数据量有多大时,如果使 用静态数组,就需要在声明数组时使数组的大小尽 可能达到最大,以适应不同的数据量。因为静态数 组在整个程序的执行过程中一直占用存储空间,因 此会浪费一定的内存空间,过度使用静态数组会影 响整个系统的性能。
在解决实际问题时,所需要的数组到底应该有多 大才合适,有时可能不得而知,所以希望能够在运 行时改变数组的大小。使用动态数组就可以在任何 时候改变其大小,并且可以在不需要时清除动态数 组所占的存储空间。因此,使用动态数组更加灵活、 方便,并有助于高效管理内存。
4
➢ 数组名:一组数用一个统一的名称表示。 ➢数组元素: 数组中的每一个元素
表示成: 数组名(下标) 下标的取值可以是常量、变量、表达式
如: G(8) B(I) C(3+K) 下标还可以是下标变量
如: A(A(5)) 令A(5)=4 则 A(A(5))即A(4) ➢ 每个数组元素用来保存一个数据,其使用
6)静态数组被定义后,VB为其分配固定大 小的存储空间,在运行期大小不能改变。
12
例: Dim C(9) As Integer 一维整型数组;下界0,上界为9 元素:C(0) C(1) C(2) …… C(9)
例: Dim A(-4 TO 10) As Integer 一维整型数组;下界 -4,上界 10 元素 A(-4) A(-3) ... A(0) A(1) ... A(10)
23
例:假设用二维数组B来表示一个6行6列的 矩阵,以下代码生成包含[1,10]之间的随 机整数的矩阵,并以6行6列的形式将该矩 阵打印在窗体上。
Dim B(1 To 6, 1 To 6) As Integer ' 输入: For I = 1 To 6
在预先不知道要处理的数据量有多大时,如果使 用静态数组,就需要在声明数组时使数组的大小尽 可能达到最大,以适应不同的数据量。因为静态数 组在整个程序的执行过程中一直占用存储空间,因 此会浪费一定的内存空间,过度使用静态数组会影 响整个系统的性能。
在解决实际问题时,所需要的数组到底应该有多 大才合适,有时可能不得而知,所以希望能够在运 行时改变数组的大小。使用动态数组就可以在任何 时候改变其大小,并且可以在不需要时清除动态数 组所占的存储空间。因此,使用动态数组更加灵活、 方便,并有助于高效管理内存。
4
➢ 数组名:一组数用一个统一的名称表示。 ➢数组元素: 数组中的每一个元素
表示成: 数组名(下标) 下标的取值可以是常量、变量、表达式
如: G(8) B(I) C(3+K) 下标还可以是下标变量
如: A(A(5)) 令A(5)=4 则 A(A(5))即A(4) ➢ 每个数组元素用来保存一个数据,其使用
6)静态数组被定义后,VB为其分配固定大 小的存储空间,在运行期大小不能改变。
12
例: Dim C(9) As Integer 一维整型数组;下界0,上界为9 元素:C(0) C(1) C(2) …… C(9)
例: Dim A(-4 TO 10) As Integer 一维整型数组;下界 -4,上界 10 元素 A(-4) A(-3) ... A(0) A(1) ... A(10)
23
例:假设用二维数组B来表示一个6行6列的 矩阵,以下代码生成包含[1,10]之间的随 机整数的矩阵,并以6行6列的形式将该矩 阵打印在窗体上。
Dim B(1 To 6, 1 To 6) As Integer ' 输入: For I = 1 To 6
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7.1 通用过程和函数过程应用案例
If "A" <= upalp And upalp <= "Z" Then checha = True Else checha = False End If End Function
7.1.2 应用扩展 利用过程计算5!+10!。 本例利用窗体加载,再采用Print直接在窗体上输出结果。程序代码如下: 程序代码如下: Private Sub Form_load() Dim y As Long, s As Long Show Call jc(5, y) s = y Call jc(10, y) s = s + y
7.1 通用过程和函数过程应用案例
Show a = Val(InputBox("输入第一个数")) b = Val(InputBox("输入第二个数")) c = Val(InputBox("输入第三个数")) s = max(a, b) Print "三个数中的最大数是:"; max(s, c) End Sub Function max(m, n) As Single If m > n Then max = m Else max = n End If End Function
7.1 通用过程和函数过程应用案例
Call mysub1(30) End Sub Private Sub mysub1(n) Print String(n, "*") End Sub Private Sub mysub2() Print "*"; Tab(30); "*" End Sub
7.1 通用过程和函数过程应用案例
resp = InputBox("是否继续(y/n) ? ") If UCase(resp) = "N" Then End If UCase(resp) = "Y" Then Exit Do Loop End Sub 在 事 件 过 程 Form_Load 中 , 有 3 处 调 用 Sub 过 程 Sub_Cont 。 每 次 调 用 Sub_Cont时,都会提问“是否继续(y/n)?”。若用户回答“n”,结束程 序运行;若用户回答“y”,退出Do…Loop循环而返回调用语句(Call)的 条件下一条哦语句继续执行。 Ucase是转换为大写的函数,不管用户回答的是大写(如“Y”)还是小写 (“y”),经过Ucase处理后都变成大写(“Y”)。 3.运用【案例说明】中的第三部份: 输入三个数,求出它们的最大数,要求将求两个数中的大数编写成 Function过程,过程名为Max。 本例采用InputBox函数输入三个数,判断出最大数后采用Print直接输出 在窗体上程序代码如下: Private Sub Form_load() Dim a As Single, b As Single, c As Single Dim s As Single
7.1 通用过程和函数过程应用案例
图7.3 调用过程
7.1 通用过程和函数过程应用案例
2.运用【案例说明】中的第二部份:利用Sub过,在弹出的窗口中输入 y确定后,则在相应的窗体中输入内容,当输入n的时候,程序停止运行。 程序运行后如图7.2所示。 (1)本例直接采用Print直接在窗体上输出结果。 程序代码如下: Private Sub Form_load() Show Print "VB的基本特点是:" Call sub_cont Print "面向对象的可视化编程" Call sub_cont Print "事件驱动的编程机制" Call sub_cont Print "结构化的设计语言" End Sub Private Sub sub_cont() Dim resp As String Do While True
4.运用【案例说明】中的第四部份: 从键盘上输入一个字符,判断它是不是英文字母。
7.1 通用过程和函数过程应用案例
分析:英文字母有大小写之分,只要将该字符转换为大写,再判断是不 是处于“A”-“Z”范围内。若是,则是英文字母,否则不是。本例采用 InputBox函数来输入字符,判断后的结果直接输入到窗体上 本例采用InputBox函数来输入字符,判断后的结果直接输入到窗体上。 程序代码如下: Private Sub Form_Load() Dim s As String Show s = InputBox("请输入一个字符") If checha(s) Then Print "***输入的字符是英文字母***" Else Print "***输入的字符不是英文字母***" End If End Sub Function checha(inp As String) As Boolean Dim upalp As String upalp = UCase(inp)
程序运行结果如下: 5!+10!=3628920 在上述事件过程Form_Load中,通过CallJc(5,y)和CallJc(10,y)来分别计 算5!和10!。Sub过程Jc(n,t)设置了两个参数n和t。n表示阶数,实际值是 由调用过程赋给的。t保存计算结果(即n!的值),它通过修改调用过程的第 2个参数(即y)的值,来传送给调用过程。
【技术要点】 该应用程序设计步骤如下。 1.运用【案例说明】中的第一部份:利用Sub过程,要求程序运行后结 果如图7.1所示。 (1)本例直接采用Print直接在窗体上输出结果。 程序代码如下: Private Sub Form_Load() Show Call mysub1(30) Call mysub2 Call mysub2 Call mysub2
7.1 通用过程和函数过程应用案例
语句块 [Exit Sub] End Sub 说明: ① 如果选用Private(局部的),只有该过程所在模块(如窗体模块)中的 过程才能调用该过程;如果选用的是Public(公用的),表示在应用程序 中的任何地方都可以调用该Sub过程。系统默认为Public。 ② 如果选用Static,表示Sub过程中的局部变量是静态变量,在过程中 被调用后,其值仍然保留。如果不用Static属性,则局部变量是动态的 (或称自动的),即每次调用Sub过程时,局部变量的初始值为零值(或空 字符)。 ③ 参数表用来指明从调用过程传递给Sub过程的参数个数及类型。参数 表内的参数又称为形式参数(简称形参),其定义格式如下: [ByVal | ByRef]变量名[()MAs数据类型]… 其中,ByVal表示该参数按值传递,ByRef表示该参数按地址传递。默认 为BvRef和ByRef的含义将在后面介绍。 ④ Sub过程可以获取调用过程传送的参数,也能通过参数表的参数,把 计算结果传回给调用过程。
图7.1 运行结果 1. 2.利用Sub过,在弹出的窗口中输入y确定后,则在相应的窗体中输入内 容,当输入n的时候,程序停止运行。程序运行后如图7.2所示。
图7.2 运行结果
7.1 通用过程和函数过程应用案例
7.1.1 案例实现过程 【案例说明】 1.利用Sub过程,要求程序运行后结果如图7.1所示。
图7.1 运行结果 1. 2.利用Sub过,在弹出的窗口中输入y确定后,则在相应的窗体中输入内 容,当输入n的时候,程序停止运行。程序运行后如图7.2所示。
图7.2例
3.输入三个数,求出它们的最大数,要求将求两个数中的大数编写成 Function过程,过程名为Max。 4.从键盘上输入一个字符,判断它是不是英文字母。 分析:英语字母有大小写之分,只要将该字符转换为大写,再判断是 不是处于“A”-“Z”范围内。若是,则是英文字母,否则不是。
第七章 过程
理解通用过程和函数过程的工作原理和区别 熟练掌握参数传递的两种方式:按地址传递和按值传递 熟练掌握多窗体与Sub Main过程 教学重点与难点: 对通用过程和函数过程的运用;理解掌握按地址传递和按值 传递
7.1 通用过程和函数过程应用案例
7.1.1 案例实现过程 【案例说明】 1.利用Sub过程,要求程序运行后结果如图7.1所示。
7.1 通用过程和函数过程应用案例
(2)Sub过程的建立 Sub过程可以在窗体模块(.Frm)中建立,也可以在标准模块(.Bas)中建 立。 ① 在窗体模块中建立Sub过程,可以在代码窗口中完成。打开代码窗口 后 , 在 对 象 框 中 选 择 “ 通 用 ” 项 , 然 后 输 入 Sub 过 程 头 , 例 如 输 入 SubMysubl(n),按回车键后,窗口内显示: Sub Mysubi(n) End Sub 此时即可在Sub和EndSub之间键入程序代码了。 用户也可以在代码窗口中直接键人代码来创建Sub过程。 ② 在标准模块中建立Sub过程,操作方法是:选择“工程”菜单中的 “添加模块”命令,打开“添加模块”对话框;再选择“新建”或“现 存”选项卡,新建一个标准模块或打开已有的一个标准模块。选择好后 即可在模块代码窗口中编辑Sub过程了。 ③ 在编辑Sub过程之前,还可以采用以下方法来创建Sub过程模板:选择 “工具” 菜单中的“添加过程”命令,打开如图7.4所示的对话框;再 输入过程名称,从“类型”组中选择“子程序”类别(若要创建Function 过程,应选“函数”),从“范围”组中选择“公有的”(相当于Public) 或“私有的”(相当于Private);最后确认,即可创建Sub过程模块和进 行代码编辑。