预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

《VB程序设计》第四章第六节变量和过程的作用范围 第六节变量和过程的作用范围 一、变量的作用范围变量的作用范围是指变量有效的范围。根据定义变量的位置和定义变量的语句的不同,在VB中变量可以分为过程级变量、模块级变量和全局变量。1.过程级变量过程级变量只有在声明它们的过程中才有效,也称为局部变量。用户无法在其他过程中访问或改变该变量的值。用Dim或者Static关键字来声明它们。语法:Dim变量名As数据类型Static变量名As数据类型对任何临时的计算;采用局部变量是最佳选择。例如,有十来个不同的过程,每个过程都包含变量名为i的变量。只要每个i都被声明为局部变量,那么每个过程只识别它自己的变量i,改变它自己的变量i的值,而不会影响别的过程中的变量i。在Sub过程中显式定义的变量(使用Dim语句)都是局部变量,而没有在过程中显式定义的变量,除非其在该过程外更高级别的位置显式定义过,否则也是局部变量。可以使用OptionExplicit语句来强制显式定义变量。2.模块级变量按照默认规定,模块级变量对该模块的所有过程都有效,在模块中的任何过程都可以访问该变量,但其他模块的过程则不可用。可在窗体模块和标准模块顶部用Dim或者Private关键字声明模块级变量。语法:Dim变量名As数据类型Private变量名As数据类型通过在代码窗口单击过程列表框的“通用”后,在窗体模块(Form1)中声明模块级变量Temp。 3.全局变量全局变量的作用范围可以是应用程序的所有过程,也称为公用变量。全局变量可以在模块顶部的声明段用Public关键字声明模块级变量。语法:Public变量名As数据类型通过菜单“工程”来添加模块,然后在添加的标准模块(Modulel)的顶部声明全局变量Max。[例Ex_FormArgu2]在[例ExFormArgu1]人员管理系统中在进入窗体frmSecond后分别计算正式员工或临时员工的平均工资,计算平均工资与[例Ex_AverScore]中相同。Frmsecond窗体的运行界面如图4-6-1(b)所示。 (a) (b) 图4-6-1 标准模块文件Modulel.bas程序代码如下:OptionExplicitPublicsalary1(5)AsSingle,salary2(8)AsSingle PrivateSubfrmselect(fAsForm,cmdcapAsString)'传递窗体参数f.Caption=cmdcap&"人员管理"EndSub PrivateSublabselect(lAsControl,cmdcapAsString)'传递窗体参数l.Caption="欢迎进入"&Chr(13)&cmdcap&"人员管理"l.FontSize=16l.FontBold=Truel.Visible=Truefrmsecond.Showfrmfirst.HideEndSub PrivateSubcmdemployee_click(indexAsInteger)'单击不同按钮'将按钮的文本传递给frmsecond窗体标题Callfrmselect(frmsecond,cmdemployee(index).Caption)Calllabselect(frmsecond.Label1,cmdemployee(index).Caption)frmsecond.Showfrmfirst.HideEndSub PrivateSubForm_Load()salary1(0)=1900:salary1(1)=1970:salary1(2)=1915'设置初始值salary1(3)=1600:salary1(4)=1655salary2(0)=2675:salary2(1)=2780:salary2(2)=2715salary2(3)=2540:salary2(4)=2990:salary2(5)=2770salary2(6)=2895:salary2(7)=2765EndSub PrivateFunctionaverage(stuarray()AsSingle,nAsInteger)AsSingle'求平均值DimiAsIntegerDimaverAsSingle,sumAsSingleFori=1Ton-1sum=sum+stuarray(i)Nextaver=sum/naverage=averEndFunctionPrivateSubcmdstart_Click()If"正式"=Mid(frmsecond.Caption,1,2)Thentxts1.Text=Int(average(salary2(),8)*100)/100'求正式员工的平均工资ElseIf"临时"=Mid(frmsecond.Caption,1,2)T