教育专题:《VB程序设计初步》课件1 (2).ppt
《教育专题:《VB程序设计初步》课件1 (2).ppt》由会员分享,可在线阅读,更多相关《教育专题:《VB程序设计初步》课件1 (2).ppt(70页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第四章 VB程序设计第四章 VB程序设计在设计一个规模较大、功能较复杂的程序时,需在设计一个规模较大、功能较复杂的程序时,需要按功能将程序分解成若干个相互独立的部件,要按功能将程序分解成若干个相互独立的部件,VB称这些部件为过程。称这些部件为过程。在程序编写时,分别对每个在程序编写时,分别对每个“过程过程”编写程序,编写程序,可以简化程序设计任务。可以简化程序设计任务。本章主要对工程、模块和过程进行介绍。本章主要对工程、模块和过程进行介绍。4.1 文件类型VB应用程序由扩展名为.vbp、.frm、.frx、.bas、.cls等几种类型的文件组成。1.窗体文件(.frm)包含窗体、控件的描述和属
2、性设置,也包含窗体级的常数、变量、外部过程的声明,以及事件过程和一般过程。如果程序没有frm窗体文件,则表示没有用户界面。2.窗体的二进制数据文件(.frx)含有窗体上控件的二进制属性数据。这些文件是在创建窗体时自动产生的。4.1 文件类型3.标准模块文件(.bas)用于存放几个窗体中都需要用的公共代码,包含常数、类型、变量和过程的声明,以及过程代码。4.类模块文件(.cls)用于建立新对象,这些新对象可以包含自定义的属性和方法。类模块即包含代码又包含数据,可被应用程序内的过程调用。4.1 文件类型5.工程文件(.vbp)工程文件包含组成应用程序的所有窗体文件(.frm)、模块文件(.bas)
3、和其它文件,也包含环境设置选项方面的信息。工程的操作:打开和保存工程:通过“文件”菜单进行打开和保存工作设置工程属性:“工程”菜单,“工程属性”对话框操作添加工程:工具栏或“文件”菜单添加已有工程或新建工程添加多个工程可组成工程组删除工程:“工程资源管理器”中通过右键快捷菜单向工程中添加和删除文件:工具栏或“工程”菜单4.2 过程将较为复杂的程序分割成较小的逻辑部件,这些部件称为过程。u每个过程为一段程序,一个过程可以被另一个过程调用。u多个过程构成一个完整、复杂的应用程序。u将应用程序分解成过程进行分别调试,可极大地简化程序设计任务。4.2 过程应用程序工程文件窗体文件多个过程标准模块文件多
4、个过程类模块文件多个过程工程文件应用程序的组成:4.2 过程过程的分类:u子程序过程(Sub Procedure)子程序过程没有返回值u函数过程(Function Procedure)函数过程具有返回值,如asin(x)u属性过程(Property Procedure)属性过程可以返回和设置窗体、标准模块和类模块,也可以设置对象的属性。VB的所有可执行代码必须属于某个过程。的所有可执行代码必须属于某个过程。过程的定义是平行的,不能在一个过程中定义其它过程。过程的定义是平行的,不能在一个过程中定义其它过程。4.2.1 Sub过程(子程序过程)Sub过程可以放在标准模块和窗体模块中。VB中有两种S
5、ub过程:u事件过程u通过过程1.事件过程VB是事件驱动的,为一个事件所编写的程序代码,称为事件过程。当VB对象中的某个事件发生时,自动调用相应的事件过程。事件过程分为窗体事件过程和控件事件过程。4.2.1 Sub过程(子程序过程)(1)窗体事件过程的语法:Private Sub Form_事件名 (参数列表)局部变量和常数声明 语句块End Sub例如:Private Sub Form_Click()frmText.Show Hide End Sub注意:p不管窗体的名称(Name)属性是什么,在事件过程中只能使用“Form_事件名”p在程序代码中对窗体的引用须要使用窗体的名称属性p在程序有
6、多个窗体时,如何对不同窗体的窗体事件编程?将要进行编程的窗体放在屏幕最前端(或在工程资源管理器中选中窗体),再点击工程资源管理器中的“查看代码”按钮;在代码窗口的标题栏中显示代码对应的窗体。4.2.1 Sub过程(子程序过程)(2)控件事件过程的语法:Private Sub 控件名_事件名 (参数列表)局部变量和常数声明 语句块End Sub例如:例如:Private Sub Command1_Click()Text2=Text1*Text1*3.14 End Sub4.2.1 Sub过程(子程序过程)(3)事件过程的创建方法:u在设计的窗体上双击窗体或控件,打开“代码编辑器”窗口,并会出现该
7、窗体或控件的默认过程代码。u单击工程资源管理器窗口的“查看代码”按钮,在对象列表框选择对象,在“过程列表框”选择事件过程。u根据语法要求,自己编写事件过程。4.2.1 Sub过程(子程序过程)1.通用过程当几个不同的事件过程需要执行同样的动作时,为了不重复编写代码,可以采用通用过程来实现。u要运行通用过程中的代码,需要在事件过程对通用过程进行调用。u通用过程可以保存在窗体模块(.frm)和标准模块(.bas)两种模块中。u在VB中,事件过程是必要的,但通用过程不是必要的,是为了程序员方便而单独建立的。4.2.1 Sub过程(子程序过程)(1)通用过程的语法:Private和Public:用来声
8、明该Sub过程是局部的(Private),还是全局的(Public),系统默认值为PublicStatic:表示局部静态变量。“静态”是指在过程运行结束后仍保留Sub过程的变量值。过程名:根据该通用过程的功能,程序员自己定义的名字。与变量的命名规则相同,在同一模块中过程名不能重名。Private|Public Static Sub 过程名过程名(参数列表参数列表)局部变量和常数声明局部变量和常数声明 语句块语句块Exit Sub语句块语句块End Sub4.2.1 Sub过程(子程序过程)(1)通用过程的语法:局部变量和常数声明:用来声明过程中定义的变量和常数,可用Dim等语句声明。Exit
9、Sub:使程序立即从一个Sub过程中退出,一般放在分支结构代码中。语句块:过程中执行的操作,称为子程序或过程体。End Sub:用于结束本Sub过程。注意:Exit Sub与End Sub是结束本Sub过程,不是结束应用程序的运行Private|Public Static Sub 过程名过程名(参数列表参数列表)局部变量和常数声明局部变量和常数声明 语句块语句块Exit Sub语句块语句块End Sub4.2.1 Sub过程(子程序过程)参数列表:类似于变量的声明,列出从调用过程传递来的函数值,称为形式参数(简称形参),多个形参间用“,”隔开。形参语法:ByVal|ByRef 变量名 ()As
10、 数据类型ByVal:表示该参数按值传递ByRef:表示该参数按地址传递(默认值)Private|Public Static Sub 过程名过程名(参数列表参数列表)局部变量和常数声明局部变量和常数声明 语句块语句块Exit Sub语句块语句块End Sub注意:即使Sub过程中的参数列表为空,过程名后的括号也不能省略【例例Ex_Telephone】Private Sub Form_Load()Dim i As Integer For i=1 To 9 Load Command1(i)Command1(i).Visible=True Command1(i).Caption=i Command1
11、(i).Left=Command1(0).Left+800*i If i 4 Then Command1(i).Top=Command1(0).Top+800 Command1(i).Left=Command1(0).Left+800*(i-5)End If Next iEnd SubPrivate Sub Command1_Click(Index As Integer)Text1.Text=Text1.Text&Command1(Index).CaptionEnd Sub4.2.1 Sub过程(子程序过程)Public Sub Warning (Byval f As integer)End
12、Sub Private|Public Static Sub 过程名过程名(参数列表参数列表)局部变量和常数声明局部变量和常数声明 语句块语句块Exit Sub语句块语句块End SubPrivate Sub Warning (f As integer)End Sub 例如:例如:注意:注意:Sub过程不能嵌套定义过程不能嵌套定义Public Sub Warning (Byval f As integer)Private Sub Welcome()End Sub End Sub 4.2.1 Sub过程(子程序过程)(2)通用过程的创建方法:方法一:打开“代码编辑器”窗口后,点击“工具”菜单的“添
13、加过程”命令方法二:在“代码编辑器”窗口中手动创建4.2.2 Function过程VB系统提供了诸多内部函数,如sin()、Date()、Left()等等。用户可以利用Function过程编写自己的函数过程。Private|Public Static Function 函数名函数名(参数列表参数列表)As 数据类型数据类型 局部变量和常数声明局部变量和常数声明 语句块语句块函数名表达式函数名表达式Exit Function语句块语句块函数名表达式函数名表达式End Function注意:与Sub过程一样,Function过程也是一个独立的过程;与Sub过程不同的是,Function过程可以返回
14、一个值到调用的过程Private|Public Static Sub 过程名过程名(参数列表参数列表)局部变量和常数声明局部变量和常数声明 语句块语句块Exit Sub语句块语句块End Sub4.2.2 Function过程Private|Public Static Function 函数名函数名(参数列表参数列表)As 数据类型数据类型 局部变量和常数声明局部变量和常数声明 语句块语句块函数名表达式函数名表达式Exit Function语句块语句块函数名表达式函数名表达式End FunctionAs 数据类型:函数返回值的数据类型,例如sin()函数的返回值为Double型。若省略“As子
15、句”,默认类型为Variant型。语句块:描述过程的操作,称为子函数体或函数体。函数名表达式:在函数体中用该语句给函数赋值。如果在Function过程中省略该语句,则返回值为数据类型的默认值。例如,数值函数返回0;字符函数返回空字符串。4.2.2 Function过程Private|Public Static Function 函数名函数名(参数列表参数列表)As 数据类型数据类型 局部变量和常数声明局部变量和常数声明 语句块语句块函数名表达式函数名表达式Exit Function语句块语句块函数名表达式函数名表达式End FunctionExit Function语句:提前退出Functio
16、n过程。在退出函数过程之前,必须保证为函数赋值,否则出错。4.2.2 Function过程Function过程实例:计算直角三角形的斜边长度过程实例:计算直角三角形的斜边长度 Function Hypotenuse (A As Integer,B As Integer)As IntegerHypotenuse=Sqr(A2+B2)End Function实例中:lA、B为两个整型的形式参数lHypotenuse函数的返回值为一个整型数l函数体为赋值语句,计算两个形参平方和的平方根4.3过程的调用Private Sub Command1_Click()Dim Y As Double,F As D
17、ouble F=Sin(10)Y=Sin(Val(Text1.Text)Text2.Text=YEnd Sub语句1语句2过程1调用语句语句3语句4语句1语句2过程2调用语句语句3End 过程1语句1语句2语句3End 过程2事件过程事件过程过程过程1代码代码过程过程2代码代码过程调用的程序执行顺序:过程调用的程序执行顺序:4.3.1 调用Sub事件过程调用Sub过程是一个独立的语句。Sub事件过程可由事件自动调用,或在同一模块中的其它过程中使用调用语句调用。调用Sub过程的方法:1.使用Call语句语法:Call 过程名 (参数列表)2.直接使用过程名语法:过程名 参数列表l参数列表:在调用
18、语句中的参数称为实在参数(简称实参)。实参可以是变量、常数、数据和表达式。l使用Call语句调用时,参数必须在括号内;没有参数时,括号可省略。用过程名调用,没有参数时必须省略参数两边的括号l执行调用语句时,VB将控制传递给被调用的Sub过程。4.3.1 调用Sub事件过程Private Sub txtInput_LostFocus()If IsNumeric(txtInput)=True Then MsgBox 输入的是数值输入的是数值,vbOKOnly,输入输入 Else MsgBox 输入的是文字输入的是文字,vbOKOnly,输入输入 End IfEnd SubPrivate Sub c
19、mdCheck_Click()Call txtInput_LostFocusEnd SubPrivate Sub cmdEnd_Click()EndEnd Sub【例Ex_CheckN1】4.3.2 调用Sub通用过程Sub Warning()If IsNumeric(txtInput)=True Then MsgBox 输入的是数值,vbOKOnly,输入 Else MsgBox 输入的是文字,vbOKOnly,输入 End IfEnd SubPrivate Sub cmdCheck_Click()Call WarningEnd SubPrivate Sub txtInput_LostFoc
20、us()WarningEnd Sub【例Ex_CheckN2】注意:VB程序是事件驱动的,Sub通用过程只有在被其它事件过程直接或间接调用时才会被执行,否则不会被执行。4.3.3调用Function过程调用函数Function过程的方法与调用VB内部函数方法一样,在语句中直接使用函数名,Function过程可以返回一个值到调用的过程。例如:Function Hypotenuse (A As Integer,B As Integer)As Integer Hypotenuse=Sqr(A2+B2)End Function Private Sub Form_Click()Print 10*Hypo
21、tenuse(3,4)X=Hypotenuse(3,4)If Hypotenuse(3,4)=10 Then Print“Error”End Sub4.3.3调用Function过程采用调用Sub过程的语法也能调用Function过程,当用这种方法调用过程时,放弃Function过程的返回值。调用Sub过程的方法:1.使用Call语句语法:Call 过程名 (参数列表)2.直接使用过程名语法:过程名 参数列表例如:P=MsgBox(“输入的是数值”,vbOKOnly,“输入)MsgBox“输入的是数值”,vbOKOnly,“输入”Function Hypotenuse (A As Intege
22、r,B As Integer)As Integer Hypotenuse=Sqr(A2+B2)End Function Private Sub Form_Click()Print 10*Hypotenuse(3,4)X=Hypotenuse(3,4)If Hypotenuse(3,4)=10 Then Print“Error”End Sub4.4 参数的传递在调用一个有参数的过程时,参数是在本过程有效的局部变量,通过“形参和实参结合”传递信息。u实现调用过程的实参与被调用过程的形参之间的数据传递。u数据有按值传递和按地址传递两种方式。1.形参:在被调用过程中的参数是形参。2.实参:是在主调过程
23、中的参数。4.4.1 形参和实参语句1语句2过程1调用语句语句3语句4语句1语句2语句3End 过程14.4.1 形参和实参l在过程定义语句中的参数列表为形参列表,在过程被调用之前,形参未被分配内存,只是说明形参的类型和在过程中的作用l在过程调用语句中的参数列表为实参列表,在过程调用时实参将数据传递给形参例如:Function Hypotenuse (A As Integer,B As Integer)As Integer Hypotenuse=Sqr(A2+B2)End Function Private Sub Form_Click()Dim x As Integer,y As Intege
24、r,C As integer x=Val(Text1):y=Val(Text2)C=Hypotenuse(x,y)End Sub4.4.1 形参和实参l形参列表和实参列表的对应变量名可以不同。l实参与形参的个数、顺序和数据类型必须相同。l形参与实参的数据传递是按位置结合的,即第1个实参与第1个形参结合,第2个实参与第2个形参结合,依此类推。l形参与实参必须是一一对应的关系,否则编译出错。例如:Function Hypotenuse (A As Integer,B As Integer)As Integer Hypotenuse=Sqr(A2+B2)End Function Private Su
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB程序设计初步 教育专题:VB程序设计初步课件1 2 教育 专题 VB 程序设计 初步 课件
限制150内