当前位置:文档之家› VB函数与过程

VB函数与过程

VB函数与过程教学目的:1、熟悉VB中函数的含义及函数的分类。

2、掌握VB中用户函数的定义及应用。

3、掌握VB中通用过程的含义及使用方法。

教学重点:1、VB中函数基本概念的理解。

2、VB中用户函数定义方法。

3、VB中变量的作用范围。

4、VB中通用过程的应用。

课时安排:理论教学安排6课时,上机练习8课时一、VB通用过程1、重复使用的程序段独立定义为过程。

2、过程的分类(1)事件过程(例如click,dblclick,……)(2)通用过程(由用户定义,可供VB过程来调用;用户定义的过程称为“子过程”)3、通用调用流程:程序过程:(1)调用过程可以事件过程或者用户定义过程。

调用过程按顺序执行时,遇到CALL命令则转向指定的子过程。

(2)子过程按顺序执行,遇到子过程的结束语句时,返回到调用过程的断点后一条语句(CALL的下一条语句)。

(3)调用过程接着执行,遇CALL命令重复(2);否则执行到程序结束。

4、VB中的通用过程:(1)SUB(过程)------无返值(2)FUNCTION(函数)-------有返值二、SUB过程上机练习:P165例7.1Private Sub Form_Load()ShowCall sub1(30)Call sub2Call sub2Call sub2Call sub2Call sub2Call sub2Call sub1(30)End SubPrivate Sub sub1(n)Print String(n, "*") 'string函数用来重复出现n次"*"End SubPrivate Sub sub2()Print "*"; T ab(30); "*"End Sub1、Sub过程的定义Private|public|static sub 过程名(形式参数列表)过程语句块(可以含有Exit sub)End sub(1)Private表示过程只在当前模块有效,public则表示在整个程序范围都有效。

(2)Static表示过程的局部变量静态分配空间(局部变量保持到整个程序结束才释放,而动态变量则是过程退出就释放变量。

)2、Sub过程的建立(1)窗体中打开代码窗口(.frm),选择通用过程,直接编写sub过程。

(2)在标准模块(.bas)中来创建sub过程。

第一步,在“工程”菜单或工程面板的快捷菜单中选择“添加模块”。

第二步,在“工具”菜单中选择“添加过程”,弹出“过程对话框”,输入过程名,录入过程代码;也可以直接在通用代码框中录入过程。

注意:在标准模块书写通用过程时,单独保存.bas的模块文件。

如果过程中使用窗体等对象,不能省缺对象名。

3、Sub过程的调用Call 过程名(实参数表)过程名实参表上机练习:1、P168例7.22、P169例7.33、P195上机调试1Private Sub ifnum(str1 As S tring, n As Integer)Dim k As IntegerFor k = 1 T o Len(str1) ‘逐个字符判断是否为数字If Asc(Mid(str1, k, 1)) < 48 Or Asc(Mid(str1, k, 1)) > 57 Thenn = 0: Exit SubEnd IfNext kn = 1End SubPrivate Sub Command1_Click()Dim a As String, b As String, c As StringDim y1 As Integer, y2 As Integer, y3 As Integera = T ext1.T ext ‘a,b,c用来取得三个文本框的字符串b = T ext2.T extc = T ext3.T extCall ifnum(a, y1) '用来判断a,b,c是否为数字串,为数字串时y1,y2,y3都为1 Call ifnum(b, y2)Call ifnum(c, y3)If y1 = 1 And y2 = 1 And y3 = 1 ThenT ext4.T ext = Val(a) + Val(b) + Val(c)ElseT ext4.T ext = "三个文本框内有非数字串"End IfEnd Sub4、P186例7.145、P186例7.15(变化可以产生变幻线的效果。

)作业:1、什么是通用过程?它是否依赖于对象?试简述通用过程的调用执行过程。

2、在VB中如何加入标准模块。

通用过程可以书写在标准模块中吗?3、简述VB通用过程定义中private,public与static的区别。

三、Function过程(直接返回主调用程序一个值)1、function的定义[Private|public|static] function 函数名(参数表)[as 数据类型]语句块函数名=表达式(需要向外传送的结果)[Exit function]End function2、fuction的编辑同sub的编辑上机练习:P170例7.43、函数调用(与系统函数相同)(1)用表达式调用,与系统函数一样。

(2)可以使用call调用,但此时返值无效。

上机练习:(1)P170例7.5(2)P196 上机调试题2Private Sub Command1_Click()Dim a1 As Single, a2 As Single, a3 As SingleDim a4 As Single, a5 As Single, a6 As SingleDim s1 As Single, s2 As Singlea1 = Val(T ext1.T ext) ‘取得6个数a2 = Val(T ext2.T ext)a3 = Val(T ext3.T ext)a4 = Val(T ext4.T ext)a5 = Val(T ext5.T ext)a6 = Val(T ext6.T ext)s1 = max(a1, a2, a3) ‘调用max函数求最大值s2 = max(a4, a5, a6)If s1 > s2 ThenT ext7.T ext = "最大数为" & s1ElseT ext7.T ext = "最大数为" & s2End IfEnd Sub公共模块:Public Function max(m As Single, n As Single, k As Single) As SingleDim max1 As SingleIf m > n Thenmax1 = mElsemax1 = nEnd IfIf max1 < k Then max1 = kmax = max1 ‘将要传出的结果送给函数名End Function(3)P196 上机调试题3Private Sub Command1_Click()Dim s As Strings = T rim(T ext1.T ext)n = getword(s)T ext2.T ext = nEnd SubFunction getword(s As String) As Integern = 0Do While s <> ""p = InStr(s, Space(1)) ‘求空格在串中出现的位置n = n + 1If p = 0 ThenList1.AddItem ss = ""ElseList1.AddItem Left(s, p - 1)s = T rim(Mid(s, p)) ‘剩下的s去掉左边的单词End IfLoopgetword = nEnd Function(3)P188 例7.16四、多窗体与Sub main过程一般一个VB工程文件只包含一个窗体。

工程文件包含多个窗体。

1、窗体的添加(工程管理器实现,工程菜单实现)2、窗体的删除(工程管理器中移除)3、窗体的保存(VB工程中,每个窗体都独立保存------保存工程时,最好使用独立文件夹)4、启动窗体的设置(工程菜单实现)VB程序设计中,启动窗体只能有一个,或者是由sub main过程来选择启动。

5、多窗体的应用:Load:载入窗体到内存Unload:卸载窗体,将窗体中清除(如果是正在显示的窗体,将先执行hid e方法)Show方法:用来显示窗体(如果是未载入的窗体,将先执行load载入窗体操作)Hide方法:用来隐藏窗体例:将窗体载入内存或从内存中移出:(1)Load 窗体名(2)Unload 窗体名/unload me窗体在内存中,只隐藏或者显示:(3)窗体名.show(4)窗体名.hide上机练习:P182例7.12多个窗体之间的参数传递使用公共模块。

6、Sub main过程1)添加公共模块2)编写Sub main过程3)在“工程”属性设置启动对象为“Sub main”上机练习:1、P182例7.132、P189 例7.172、P196 上机调试5窗体一界面如上,代码:Public i As Integer ‘公共代码,定义的i是一个在form1中可用的全程变量Private Sub Command1_Click()If i > 3 ThenForm1.HideForm3.ShowEnd If ‘试三次以后转向错误提示窗体form3If T ext1.T ext = "username" And T ext2.T ext = "password" ThenForm1.HideForm2.ShowEnd If ‘用户与密码均正确时转向成功登录窗体form2i = i + 1T ext1.T ext = ""T ext2.T ext = ""End SubPrivate Sub Form_Load()i = 0End Sub窗体二界面如上,代码:Private Sub Command1_Click()Unload MeForm1.Show ‘卸载自己并返回登录界面End SubPrivate Sub Form_Load()ShowT ext1.T ext = "欢迎你使用本系统!"End Sub窗体三界面如上,代码:Private Sub Command1_Click()EndEnd SubPrivate Sub Form_Load()ShowT ext1.T ext = "对不起,请向管理员查询" End Sub读P177-181,完成下列作业:1、VB中有几种模块,如何划分。

相关主题