项目7排序法演示系统_第1页
项目7排序法演示系统_第2页
项目7排序法演示系统_第3页
项目7排序法演示系统_第4页
项目7排序法演示系统_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、VBVB程序设计项目化教程程序设计项目化教程主编主编 管小清管小清 郭贺彬郭贺彬VBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社项目七项目七 排序法演示系统排序法演示系统 n项目目标:项目目标:n本项目要制作一个排序自动演示系统,该系统是随机本项目要制作一个排序自动演示系统,该系统是随机产生一组数据,当单击排序时将产生的一组数据按从产生一组数据,当单击排序时将产生的一组数据按从小到大的顺序排列。熟练掌握循环语句的使用方法;小到大的顺序排列。熟练掌握循环语句的使用方法;熟练掌握数组的定义、赋值、输出方法以及数组的应熟练掌握数组的定义、赋值、输出方法以及数组的应用。

2、了解过程的定义、调用及函数的定义、调用定义。用。了解过程的定义、调用及函数的定义、调用定义。VBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社项目七项目七 排序法演示系统排序法演示系统n项目主要知识点:项目主要知识点:n 1、一维数组的声明和使用方法、一维数组的声明和使用方法n2、RGB函数的使用函数的使用n 3、循环程序结构、循环程序结构nFor 循环循环nDo 循环(四种)循环(四种)n4、控件颜色属性、控件颜色属性n5、控件数组的使用、控件数组的使用n6、过程的使用方法、过程的使用方法n过程的定义过程的定义n过程的调用过程的调用n退出过程退出过程n VBVB

3、程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社项目七项目七 排序法演示系统排序法演示系统n7、函数的使用方法、函数的使用方法n函数的定义函数的定义n函数的调用函数的调用n退出函数语句退出函数语句n8、MsgBox函数的使用函数的使用n7、插入法排序的原理、插入法排序的原理n8、程序调试能力培养、程序调试能力培养VBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社项目七项目七 排序法演示系统排序法演示系统n项目实施步骤:项目实施步骤:n掌握相关基础知识掌握相关基础知识n界面设计界面设计o 窗体设计窗体设计o 控件属性设置控件属性设置n程序设计

4、程序设计n编程初步编程初步n程序代码程序代码n运行程序,优化程序运行程序,优化程序n保存项目工程保存项目工程VBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社7.1 第第1步:基础知识步:基础知识 n7.1.1 数组数组n 1、数组的定义、数组的定义n S(0) S(1) S(2) S(3) S(4)n在在VB中如果没有特别的说明,数组元素的下标是从中如果没有特别的说明,数组元素的下标是从0开始的,即第一元开始的,即第一元素的下标为素的下标为0。n数组是一组具有相同名字、不同下标的变量的集合。需要注意它并不是数组是一组具有相同名字、不同下标的变量的集合。需要注意它

5、并不是一种数据类型,它是用来存放或表示一组相关数据的。一种数据类型,它是用来存放或表示一组相关数据的。n数组必须先声明后使用,主要声明数组名、类型、维数、数组大小。按数组必须先声明后使用,主要声明数组名、类型、维数、数组大小。按声明时下标的个数确定数组的维数,声明时下标的个数确定数组的维数,VB中的数组有一维数组、二维数中的数组有一维数组、二维数组组最多最多60维;按声明时数组的大小确定与否分为定长(静态)数组维;按声明时数组的大小确定与否分为定长(静态)数组和可调(动态)数组两类数组。和可调(动态)数组两类数组。n数组分静态数和动态数组。在定义数组时已确定了数组的大小,称为静数组分静态数和动

6、态数组。在定义数组时已确定了数组的大小,称为静态数组。在定义数组时未给出数组的大小,省略了括号中的下标,称动态数组。在定义数组时未给出数组的大小,省略了括号中的下标,称动态数组。态数组。 VBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社7.1 第第1步:基础知识步:基础知识 n2、一维数组的声明、一维数组的声明n 声明一维数组形式如下:声明一维数组形式如下:n Dim 数组名(下标)数组名(下标)【As类型类型】n其中:其中:n下标:必须为常数,不可以为表达式或变量下标:必须为常数,不可以为表达式或变量n在在VB中,可以用中,可以用4个语句来定义数组。个语句来定

7、义数组。4个语句格式相同,但适应个语句格式相同,但适应范围不一样。范围不一样。nDim 用在窗体模块或标准模块中,定义窗体或标准模块数组,也用在窗体模块或标准模块中,定义窗体或标准模块数组,也可在过程中用。可在过程中用。nReDim 用在过程中,用来重定义数组。用在过程中,用来重定义数组。nStatic 用在过程中,用来定义静态数组。用在过程中,用来定义静态数组。nPublic 用在标准模块中,定义全局数组。用在标准模块中,定义全局数组。VBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社7.1 第第1步:基础知识步:基础知识 n下标是数组的维数,可以用来定义多维数

8、组,在一般情况下,若下标是数组的维数,可以用来定义多维数组,在一般情况下,若缺省上界,则数组元素下标的下界为缺省上界,则数组元素下标的下界为0;当使用下界;当使用下界 To 上上界界时,下标的范围可以为时,下标的范围可以为-32 76832767。一维数组的大小。一维数组的大小为:为:(上界上界-下界下界+1)。n下界都必须小于上界。如果希望下标从下界都必须小于上界。如果希望下标从1开始,可以通过开始,可以通过Option Base语句来实现。语句来实现。n格式:格式: Option Base Nn功能:指定数组下标的缺省下界为功能:指定数组下标的缺省下界为1。n说明:如果不使用该语句,程序默

9、认数组的下标下界为说明:如果不使用该语句,程序默认数组的下标下界为0。Option Base语句在程序中只能使用一次;使用时必须把它放在语句在程序中只能使用一次;使用时必须把它放在数组定义之前才起作用。数组定义之前才起作用。VBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社7.1 第第1步:基础知识步:基础知识 n As 数据类型项,用来说明数组的类型,类型可以是:数据类型项,用来说明数组的类型,类型可以是:n 整型整型 Integern 长整型长整型 Longn 单精度单精度 Singlen 双精度双精度 Doublen 字符串型字符串型 Stringn 用户定

10、义型用户定义型nDIM语句中的下标可以是常数,变量或表达式。下标全为常数称为静语句中的下标可以是常数,变量或表达式。下标全为常数称为静态数组,即数组大小在编译时是确定的。下标中有变量则称为动态数组,态数组,即数组大小在编译时是确定的。下标中有变量则称为动态数组,数组的大小是可变的,只有在程序运行时,变量有确定的值后,数组的数组的大小是可变的,只有在程序运行时,变量有确定的值后,数组的大小才确定。大小才确定。n数组必须先定义,后使用。数组必须先定义,后使用。n当用当用Dim语句定义数组时,该语句把数值数组中的全部数组元素都初语句定义数组时,该语句把数值数组中的全部数组元素都初始化为始化为0,而把

11、字符串数组中的全部元素都初始化为空字符串。,而把字符串数组中的全部元素都初始化为空字符串。VBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社7.1 第第1步:基础知识步:基础知识n例如:例如:n Dim A(4) As Stringn定义了类型为字符型的一维数组定义了类型为字符型的一维数组A,共有,共有5个元素:个元素:A(0)、A(1)、A(2)、A(3)、A(4)。nDim B(1,3 To 5) As Integern定义了一个整型的二维数组,共有定义了一个整型的二维数组,共有6个元素:个元素:B(0,3)、B(0,4)、B(0,5)、B(1,3)、B(1,

12、4)和和B(1,5)。nDim S(5 To 5, 2 To 10 ) As String*20n定义定义S是一个定长字符串组成的二维数组,下标范围是是一个定长字符串组成的二维数组,下标范围是55,210。每。每个数组元素的字符串长度是个数组元素的字符串长度是20。n Dim X(10) As Integer n定义了数组定义了数组X,有,有11个元素个元素n X(10)=10 n对对X(10)这个数组元素赋值为这个数组元素赋值为10VBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社7.1 第第1步:基础知识步:基础知识n3、数组下标界的测试函数、数组下标界的测试

13、函数n有时需要知道数组的上界值和下界值,这可以通过有时需要知道数组的上界值和下界值,这可以通过LBound和和UBound函数来测试。函数来测试。n格式:格式: LBound(数组名,维数组名,维)n格式:格式: UBound(数组名,维数组名,维)n功能:功能: LBound函数返回一个数组中指定维的下界。函数返回一个数组中指定维的下界。UBound函数返回一个数组中指定维的上界。函数返回一个数组中指定维的上界。VBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社7.1 第第1步:基础知识步:基础知识n4、动态数组的定义、动态数组的定义n格式:格式:ReDim 数

14、组名数组名(下标下标)As类型类型n功能:改变动态数组的大小和存储空间。功能:改变动态数组的大小和存储空间。n说明:说明:n例如:例如:n Dim A(20,20,20)n n ReDim A(10,10,10) 重新定义动态数组重新定义动态数组A的空间的空间n n ReDim A(5,5,5) 再重新定义动态数组再重新定义动态数组A的空间的空间n此程序是采用动态数组,能根据应用的情况确定数组的大小,因此程序是采用动态数组,能根据应用的情况确定数组的大小,因此编写的程序有更强的实用性和通用性。此编写的程序有更强的实用性和通用性。VBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国

15、水利水电出版社7.1 第第1步:基础知识步:基础知识n5、数组的基本操作、数组的基本操作n数组的基本操作包括输入、输出及复制,这些操作都是对数组元素进行的。数组的基本操作包括输入、输出及复制,这些操作都是对数组元素进行的。n给数组元素赋初值给数组元素赋初值n利用利用For循环语句循环语句nDim A(5) As IntegernFor I=1 To 5nA(I)=0 数组的每个元素值为数组的每个元素值为0nNextn利用利用Array函数函数n在在VB中可以使用中可以使用Array函数为数组元素赋值,即把一个数据集赋值给某个数组。函数为数组元素赋值,即把一个数据集赋值给某个数组。n利用利用Ar

16、ray函数函数n格式:格式:数组变量名数组变量名=Array(数组元素值数组元素值)n功能:将数组元素值赋给数组各元素的值,各值之间用逗号分隔。功能:将数组元素值赋给数组各元素的值,各值之间用逗号分隔。VBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社7.1 第第1步:基础知识步:基础知识n说明:数组变量名是预先定义的数组名说明:数组变量名是预先定义的数组名(定义时没有指定维数和上下界,定义时没有指定维数和上下界,并且类型必须为变量体类型并且类型必须为变量体类型Variant),在数组变量名之后没有括号。,在数组变量名之后没有括号。n说明:说明:n利用利用Arra

17、y函数对数组各元素赋值,定义数组时圆括号可以省略,其类型函数对数组各元素赋值,定义数组时圆括号可以省略,其类型只能是只能是Variant。n数组的下界为零,上界由数组的下界为零,上界由Array函数括号内的参数个数决定,也可通过函函数括号内的参数个数决定,也可通过函数数UBound获得。获得。n数组的输入数组的输入n数组的输入可以用数组的输入可以用For循环语句及文本框控件输入,也可以通过循环语句及文本框控件输入,也可以通过InputBox函数输入。函数输入。nInputBox函数给数组赋值函数给数组赋值n用赋值语句给数组赋值用赋值语句给数组赋值VBVB程序设计项目化教程程序设计项目化教程中国

18、水利水电出版社中国水利水电出版社7.1 第第1步:基础知识步:基础知识n数组元素的输出数组元素的输出n多维数组元素的输出和输入都可以通过多重循环来实多维数组元素的输出和输入都可以通过多重循环来实现。由于现。由于VB中的数组是按行存储的,因此把控制数组中的数组是按行存储的,因此把控制数组第一维的循环变量放在最外层循环中。第一维的循环变量放在最外层循环中。n数组元素的复制数组元素的复制n控件数组控件数组n前面我们介绍了数值数组和字符数组。在前面我们介绍了数值数组和字符数组。在VB中,还提中,还提供了控件数组,它为处理一组功能相近的控件提供有供了控件数组,它为处理一组功能相近的控件提供有力的方法。力

19、的方法。VBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社7.1 第第1步:基础知识步:基础知识n7.1.2 控件数组控件数组n控件数组是由一组相同类型的控件组成。他们共用一个控件名,控件数组是由一组相同类型的控件组成。他们共用一个控件名,具有相同的属性,但通常有不同的属性值。当建立控件数组时,具有相同的属性,但通常有不同的属性值。当建立控件数组时,系统给每个元素赋一个惟一的索引号系统给每个元素赋一个惟一的索引号(Index),即下标,下标值由即下标,下标值由Index属性指定。通过属性窗口的属性指定。通过属性窗口的Index属性,可以知道该控件的属性,可以知道该

20、控件的下标是多少,第下标是多少,第1个元素下标是个元素下标是0,第,第2个元素下标是个元素下标是1,以此类推。,以此类推。其所有的元素的其所有的元素的Name属性必须相同。控件数组共享同样的事件属性必须相同。控件数组共享同样的事件过程。例如,控件数组过程。例如,控件数组Command有有3个命令按钮,不论单击哪个个命令按钮,不论单击哪个命令按钮,都会调用同一个事件过程。命令按钮,都会调用同一个事件过程。VBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社7.1 第第1步:基础知识步:基础知识n为了区分控件数组中的各个元素,为了区分控件数组中的各个元素,VB会把下标值

21、传送会把下标值传送给一个过程。例如,单击上述控件数组中的任意一个给一个过程。例如,单击上述控件数组中的任意一个命令按钮时,调用的事件过程如下:命令按钮时,调用的事件过程如下:n Private Sub Command_Click(Index As Integer)n n End Subn1、控件数组的建立、控件数组的建立n控件数组是针对控件建立的,因此与普通数组的定义控件数组是针对控件建立的,因此与普通数组的定义方法不一样。可以通过以下三种方法来建立控件数组。方法不一样。可以通过以下三种方法来建立控件数组。VBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社7.1

22、第第1步:基础知识步:基础知识n在设计时建立控件数组方法一:在设计时建立控件数组方法一:n在窗体上画出作为数组元素的各个控件。在窗体上画出作为数组元素的各个控件。n单击要包含到数组中的某个控件,将其激活。单击要包含到数组中的某个控件,将其激活。n在属性窗口中,选择在属性窗口中,选择Name属性,并输入控件的名称。属性,并输入控件的名称。当对第二个控件输入与第一个控件相同的名称后,当对第二个控件输入与第一个控件相同的名称后,VB将显示一个对话框,询问是否确实要建立控件数组。将显示一个对话框,询问是否确实要建立控件数组。单击单击“是是”按钮,将建立控件数组,单击按钮,将建立控件数组,单击“否否”按

23、钮,按钮,则放弃建立操作。则放弃建立操作。VBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社7.1 第第1步:基础知识步:基础知识n方法二:方法二:n在窗体上画出一个控件,将其激活。在窗体上画出一个控件,将其激活。n执行执行“编辑编辑”菜单中的菜单中的“复制复制”命令命令(或者按或者按Ctrl+C命令命令),将,将该控件放入剪贴板中。该控件放入剪贴板中。n执行执行“编辑编辑”菜单中的菜单中的“粘贴粘贴”命令命令(或者按或者按Ctrl+V命令命令),将,将显示一个对话框,询问是否建立控件数组。显示一个对话框,询问是否建立控件数组。n单击对话框中的单击对话框中的“是是

24、”按钮,窗体的左上角将出现一个控件,按钮,窗体的左上角将出现一个控件,它就是控件数组的第二个元素。它就是控件数组的第二个元素。n重复执行重复执行“编辑编辑”菜单中的菜单中的“粘贴粘贴”命令命令(或者按或者按Ctrl+V命令命令),可以建立控件数组的其他元素。可以建立控件数组的其他元素。n删除控件数组,只要改变一个控件的删除控件数组,只要改变一个控件的Name属性,并把属性,并把Index属性属性置为空置为空(不是不是0),就把该控件从控件数组中删除。,就把该控件从控件数组中删除。VBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社7.1 第第1步:基础知识步:基础知

25、识n方法三:在运行时添加控件数组方法三:在运行时添加控件数组n在在VB中可以在程序运行时,通过中可以在程序运行时,通过load方法添加或建立控件数组,方法添加或建立控件数组,通过通过unload方法删除数组中的某个控件。方法删除数组中的某个控件。n在窗体上画出某个控件,设置该控件的在窗体上画出某个控件,设置该控件的index属性值为,表属性值为,表示该控件为数组;也可以进行控件名的属性设置,这是建立的第示该控件为数组;也可以进行控件名的属性设置,这是建立的第一个元素。一个元素。n在编程时通过在编程时通过load方法,添加其余若干个元素,也可以通过方法,添加其余若干个元素,也可以通过unload

26、方法,删除某个添加的元素。方法,删除某个添加的元素。n每个新添加的控件,通过每个新添加的控件,通过left 和和top属性确定其在窗体的位置,属性确定其在窗体的位置,并将并将Visible属性设置为属性设置为true.VBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社7.1 第第1步:基础知识步:基础知识n7.1.3 过过 程程nVB的通用过程包括两大类:它们是的通用过程包括两大类:它们是Sub过程过程(即子程序即子程序)和和Function过程过程(即函数即函数)。n1、过程的定义、过程的定义n自定义子过程有两种方法:在自定义子过程有两种方法:在“工具工具”菜单

27、中定义和在代码窗口中定义。菜单中定义和在代码窗口中定义。n(1)在)在“工具工具”菜单中定义菜单中定义n为想要编写函数和过程的窗体为想要编写函数和过程的窗体/标准模块打开代码窗口。标准模块打开代码窗口。n在在“工具工具”菜单下,选择菜单下,选择“添加过程添加过程”命令,屏幕显示命令,屏幕显示“添加过程对添加过程对话框话框”,如图,如图7-1所示。所示。n在在“名称名称”框中,输入过程名(过程名中不允许空格),例如输入过框中,输入过程名(过程名中不允许空格),例如输入过程名:程名:ADD。n在在“类型类型”组中,如果选择组中,如果选择“子程序子程序”,来定义过程,如果选择函数,来定义过程,如果选

28、择函数,则定义函数过程。则定义函数过程。n在在“范围范围”组中,选择组中,选择“公有的公有的”,定义一个公共级的全局过程;选,定义一个公共级的全局过程;选择择“私有的私有的”,定义一个标准模块级,定义一个标准模块级/窗体级的局部过程。窗体级的局部过程。VBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社7.1 第第1步:基础知识步:基础知识n定义完成后,按定义完成后,按“确定确定”按钮,退出按钮,退出“添加过程添加过程”对话框,系统自动对话框,系统自动给了程序的头和尾的定义过程窗口,如图给了程序的头和尾的定义过程窗口,如图7-2所示,此时可以输入过程的所示,此时可以

29、输入过程的具体代码了。具体代码了。图图7-1 “添加过程”对话框 图图7-2 定义过程窗口 VBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社7.1 第第1步:基础知识步:基础知识n(2)在代码窗口中定义)在代码窗口中定义n在窗体在窗体/标准模块的代码窗口中,把插入点放在所有现有过程之外。标准模块的代码窗口中,把插入点放在所有现有过程之外。n在左侧显示对象名的下拉列表框中,选择在左侧显示对象名的下拉列表框中,选择“通用通用”,在右侧显示过程,在右侧显示过程的下列表框中,选择的下列表框中,选择“声明声明”。n按格式输入按格式输入sub及过程名,按回车后,及过程名,按

30、回车后,VB系统会自动加上系统会自动加上end sub与与过程名后的一对括号,此时就可以输入过程语句了。过程名后的一对括号,此时就可以输入过程语句了。n自定义子过程的格式如下:自定义子过程的格式如下:n Public|PrivateStaticSub子过程名子过程名(形参表列形参表列)n 语句块语句块n Exit Subn 语句块语句块n End Sub VBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社7.1 第第1步:基础知识步:基础知识n功能:定义一个功能:定义一个Sub过程。过程。n说明:说明:nPublic:表示:表示Sub过程是过程是“公用公用”过程,

31、可在整个程序范围被过程,可在整个程序范围被调用调用(但需要指明该子程序所在的对象名,如果在窗体但需要指明该子程序所在的对象名,如果在窗体 Form1中中定义了一个程序定义了一个程序Sub1,在窗体,在窗体From2中调用它,应该用:中调用它,应该用:Call Form1.Sub1。nPrivate:表示:表示Sub过程是过程是“私用私用”过程,只能被本窗体中的其过程,只能被本窗体中的其他过程访问,不能被其他模块的过程访问。他过程访问,不能被其他模块的过程访问。nStatic:表示该过程中的局部变量是静态变量,在过程被调用:表示该过程中的局部变量是静态变量,在过程被调用后其值仍然保留;如果省略后

32、其值仍然保留;如果省略“Static”,则局部变量就默认为,则局部变量就默认为“自自动动”的,即在每次调用过程时,局部变量被初始化为的,即在每次调用过程时,局部变量被初始化为0或空字符或空字符串。串。Static对在过程之外的变量没有影响,即使这些变量在过程对在过程之外的变量没有影响,即使这些变量在过程中使用。中使用。VBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社7.1 第第1步:基础知识步:基础知识n形参表列:是含在调用时传给该过程的简单变量名或数组名,各名字形参表列:是含在调用时传给该过程的简单变量名或数组名,各名字之间用逗号隔开。之间用逗号隔开。 “形参

33、表列形参表列”指明了调用时传送给过程的参数的类型指明了调用时传送给过程的参数的类型和个数,每个参数的形式:和个数,每个参数的形式:n ByVal(变量名变量名()As 类型,类型,)n参数也称形参或哑元,在定义时没有值。参数也称形参或哑元,在定义时没有值。ByVal表示该过程被调用时,表示该过程被调用时,参数是值传递,否则引用传递。定义子过程或子函数时,都可以无参数,参数是值传递,否则引用传递。定义子过程或子函数时,都可以无参数,但函数过程无参数时,函数过程名后的括号不能省略。这是函数过程与但函数过程无参数时,函数过程名后的括号不能省略。这是函数过程与子过程的区别。子过程的区别。n过程名:是长

34、度不超过过程名:是长度不超过255个字符的变量名。其命名规则与变量命名个字符的变量名。其命名规则与变量命名规则相同。不要与规则相同。不要与VB中的关键字重名,也不要与中的关键字重名,也不要与Windows API函数重名,函数重名,也不能与同一级别的变量同名。在同一个模块中,同一个名称,不能既也不能与同一级别的变量同名。在同一个模块中,同一个名称,不能既用作用作Sub过程名,又用作过程名,又用作Function过程名。过程名。nExit Sub:表示退出子过程。:表示退出子过程。nStatic:表示静态,:表示静态,Public:表示全局,:表示全局,Private:表示局部。:表示局部。VB

35、VB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社7.1 第第1步:基础知识步:基础知识n2、 过程的调用过程的调用n在在VB中可以用两种方法调用中可以用两种方法调用Sub过程。过程。n(1) 使用使用Call语句调用语句调用Sub过程。过程。n格式:格式: Call 过程名过程名(实参表列实参表列)n功能:调用过程。功能:调用过程。n说明:实参的个数、数据类型都要与被调用过程的参数一一对应。说明:实参的个数、数据类型都要与被调用过程的参数一一对应。n例如下面是调用例如下面是调用Compute过程的语句:过程的语句:n a1=10.5n b1=10.5n Call C

36、ompute(a1,b1)n如果过程不带参数,如果过程不带参数,Call语句中过程后的一对括号可以省去,例如有一语句中过程后的一对括号可以省去,例如有一过程过程Sum不带参数,调用语句只是一行:不带参数,调用语句只是一行:n Call Sumn这是合法的。这是合法的。VBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社7.1 第第1步:基础知识步:基础知识n(2) 直接使用过程名调用直接使用过程名调用Sub过程,而不必有过程,而不必有Call。n格式:格式: 过程名实参实参过程名实参实参n功能:调用过程。功能:调用过程。n说明:不用括号把实参括起来。例如,也可以这样

37、调说明:不用括号把实参括起来。例如,也可以这样调用上面的过程:用上面的过程:n Compute a1,b1n不带参数的过程可以直接写过程名即可,假如不带参数的过程可以直接写过程名即可,假如Compute过程没有参数,以下调用是符合过程没有参数,以下调用是符合VB语法的:语法的:n ComputeVBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社7.1 第第1步:基础知识步:基础知识n3、 退出过程退出过程n在过程中可以对给出的条件测试,并根据测试的结果在过程中可以对给出的条件测试,并根据测试的结果确定是否退出过程,如果要退出过程,则使用确定是否退出过程,如果要退出

38、过程,则使用Exit Sub语句。语句。n一进入过程,首先测试变量一进入过程,首先测试变量b的值是否等于的值是否等于0,如果,如果b的的值为值为0,立即退出,立即退出Compute过程。避免在执行过程中过程。避免在执行过程中出现错误出现错误(被零除被零除)。VBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社7.1 第第1步:基础知识步:基础知识n4、Sub Main过程过程n如果一应用程序只包含一个窗体,则程序从执行窗体如果一应用程序只包含一个窗体,则程序从执行窗体Form的的Load过程开始。如果有多个窗体,则从设计阶段建立的第一个窗过程开始。如果有多个窗体,则

39、从设计阶段建立的第一个窗体开始执行。有时,希望在运行窗体程序之前先执行一些操作,体开始执行。有时,希望在运行窗体程序之前先执行一些操作,此时,可以将这些操作写在此时,可以将这些操作写在Sub Main过程中。过程中。nSub Main是在模块中定义的,如果一个程序中包含有多个模块,是在模块中定义的,如果一个程序中包含有多个模块,只能允许有一个只能允许有一个Sub Main过程。过程。Sub Main过程中可以包含若干过程中可以包含若干语句。但它与其他语言中的主程序不同,程序启动时不会自动执语句。但它与其他语言中的主程序不同,程序启动时不会自动执行。人们可以指定程序从哪一个窗体或是行。人们可以指

40、定程序从哪一个窗体或是Sub Main开始执行。方开始执行。方法如下:法如下:VBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社7.1 第第1步:基础知识步:基础知识n(1)选择选择VB主窗口中的主窗口中的“工程工程”菜单中的菜单中的“属性属性”命令,命令,打开打开“工程属性工程属性”对话框,单击对话框,单击“通用通用”选项,如图选项,如图5.17所示。所示。n(2)单击对话框中的单击对话框中的“启动对象启动对象”框右端的箭头,显示框右端的箭头,显示出当前工程中各窗体的名字和出当前工程中各窗体的名字和Sub Main,可以定义启,可以定义启动工程时先启动的窗体或动

41、工程时先启动的窗体或Sub Main。如果选择了。如果选择了Sub Main,则程序运行时从模块的,则程序运行时从模块的Sub Main过程开始。常过程开始。常常用常用Sub Main来完成一些初始处理。来完成一些初始处理。nSub Main也可以被其他过程调用,如:也可以被其他过程调用,如:n Call MainVBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社7.1 第第1步:基础知识步:基础知识n1、函数的定义、函数的定义n函数与过程相似,也是用来完成特定功能的独立程序代码,它由一组符函数与过程相似,也是用来完成特定功能的独立程序代码,它由一组符合合VB语法

42、的语句组成,它与过程不同的是,函数可以返回一个值给调用语法的语句组成,它与过程不同的是,函数可以返回一个值给调用程序。自定义函数过程的格式如下:程序。自定义函数过程的格式如下:n Public|PrivateStaticFunction函数过程名函数过程名(形参表列形参表列)As 类型类型n 局部变量常量定义局部变量常量定义n 语句块语句块n 函数名函数名=返回值返回值n Exit Functionn 函数名函数名=返回值返回值n 语句块语句块n End FunctionVBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社7.1 第第1步:基础知识步:基础知识n功能

43、:定义一个函数过程。功能:定义一个函数过程。n说明:说明:n(1)Function与与End Function是一个函数的开始与结束标志。是一个函数的开始与结束标志。n(2)Public:表示函数是:表示函数是“公用的公用的”,Private:表示函数是:表示函数是“私私用的用的”。n(3)形参表列:变量名形参表列:变量名As类型,变量名类型,变量名As类型类型As类型用来表示函数返回值的类型。类型用来表示函数返回值的类型。n(4)Exit Function:表示退出函数过程。:表示退出函数过程。n(5)建立一个函数的方法与建立过程是相同的。建立一个函数的方法与建立过程是相同的。 VBVB程序

44、设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社7.1 第第1步:基础知识步:基础知识n【例例7.1】定义一个函数来完成加法功能。定义一个函数来完成加法功能。n Private Function Add(a As Integer,b As Integer)As Integern Add=a+bn End Functionn表示函数表示函数Add是是“私用的私用的”,形参,形参a和和b为整型,函数返回值也是为整型,函数返回值也是整型。整型。n2、函数的调用、函数的调用n如果要想在过程中调用一个函数,只需写出函数名和相应的参数如果要想在过程中调用一个函数,只需写出函数名和相应的

45、参数即可。即可。VBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社7.1 第第1步:基础知识步:基础知识n【例例7.2】用一个过程调用上述用一个过程调用上述Add函数。函数。n Private Sub Command1_Click()n Dim x(1 To 2) As Singlen For I=1 To 2n x(I)=InputBox(Enter a value,INPUT BOX)n Next In Sum=Add(x(1),x(2)n Print Sum=;Sumn End Subn先定义一个数组先定义一个数组x,有两个元素,有两个元素x(1),x(2)

46、。从输入框中用户输入的数赋给。从输入框中用户输入的数赋给x(1)和和x(2),调用,调用Add函数,以函数,以x(1),x(2)作为实参,调用作为实参,调用Add函数将此二数相加,其和函数将此二数相加,其和由函数名由函数名Add返回,调用过程返回,调用过程Command1的的Click事件,赋给变量,最后输出事件,赋给变量,最后输出Sum的值。的值。n3、 退出函数语句退出函数语句n使用使用Exit Function语句可以从当前调用的函数中直接退出。语句可以从当前调用的函数中直接退出。VBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社7.2 第第2步:原理介绍步

47、:原理介绍 n 插入法排序是将插入法排序是将N个数放在一个数组中个数放在一个数组中A中,先将中,先将A(1)与)与A(2)比较,若)比较,若A(1) A(2),则交换两),则交换两者。然后再将者。然后再将A(3)与)与A(1)、)、A(2)比较,以确)比较,以确定定A(3)应放的位置;依次类推可以将后面的数一个)应放的位置;依次类推可以将后面的数一个一个地拿来插入到排好序地数列中,直到所有的数按一个地拿来插入到排好序地数列中,直到所有的数按顺序排好。顺序排好。VBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社7.3 第第3步:界面设计步:界面设计n1、任务一:建立

48、应用程序用户界面、任务一:建立应用程序用户界面n选择选择“新建新建”工程,进入窗体设计器,首先增加一个工程,进入窗体设计器,首先增加一个用作容器的框架(用作容器的框架(Frame1),选中),选中Frame1,在其中,在其中增加一个文本框控件数组增加一个文本框控件数组Text1(0)Text(10),),一个标签控件数组一个标签控件数组Label1(0)Label1(9)和一个)和一个标签标签Label2,然后在窗体上增加一个命令按钮组,然后在窗体上增加一个命令按钮组Command1(0)Command1(1)。)。n2、任务二:选中、任务二:选中Frame1,将其,将其Height属性改小,

49、再属性改小,再在窗体中增加一个标签在窗体中增加一个标签Label3VBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社7.3 第第3步:界面设计步:界面设计n各控件排列如下图各控件排列如下图7-3所示:所示:图图73控件排列图VBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社7.3 第第3步:界面设计步:界面设计n3、任务三:设置对象属性、任务三:设置对象属性n修改窗体属性:修改窗体属性:n Caption改为:插入法排序演示系统改为:插入法排序演示系统n MaxButton改为:改为:Falsen修改修改Frame1的属性:的属性:n

50、 Caption改为:(无)改为:(无)n修改修改Label1(0)Label1(9)的属性:)的属性:n AutoSize改为:改为:Truen Caption分别改为:分别改为:1、2、3、4、5、6、7、8、9、10n修改修改Label2的属性:的属性:n Caption改为:(无)改为:(无)VBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社7.3 第第3步:界面设计步:界面设计n修改修改Text1(0)Text1(10)的属性)的属性n Text改为:(无)改为:(无)n Alignment改为:改为:2Centern 其中其中Text1(0)的)的Vi

51、sible属性改为:属性改为:Falsen修改修改Label3的属性:的属性:n AutoSize改为:改为:Truen Caption改为:排序成功改为:排序成功n Font:(由学生自己设定):(由学生自己设定)n Visible:Falsen修改修改Command1(0)Command1(1)的属性)的属性n Caption分别改为:开始、重置分别改为:开始、重置VBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社7.3 第第3步:界面设计步:界面设计n设置完属性后界面如图设置完属性后界面如图74所示:所示:图图74设置完属性后的界面VBVB程序设计项目化教程

52、程序设计项目化教程中国水利水电出版社中国水利水电出版社7.4 第第4步:设计代码步:设计代码n 1、在窗体的通用过程中声明数组变量、在窗体的通用过程中声明数组变量n Dim a(1 To 10) As Integer 存放数据的数组存放数据的数组nDim b(10) As TextBox 现实数据的对象数组现实数据的对象数组 n2、编写窗体的、编写窗体的Load事件事件n Private Sub Form_Load() 该事件主要用于产生十个该事件主要用于产生十个待比较的随机数待比较的随机数n Randomizen For i = 1 To 10n DoVBVB程序设计项目化教程程序设计项目化

53、教程中国水利水电出版社中国水利水电出版社7.4 第第4步:设计代码步:设计代码n x = Int(Rnd * 90) + 1n yes = 0n For j = 1 To i - 1n If x = a(j) Thenn yes = 1n Exit Forn End Ifn Next jn Loop While yes = 1n a(i) = xn Next inEnd SubVBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社7.4 第第4步:设计代码步:设计代码n 3、编写命令窗体的、编写命令窗体的Activate事件代码:事件代码:n Private Sub

54、Form_Activate() 该事件是把在该事件是把在Load事件中随事件中随机产生的数字装入文本框中机产生的数字装入文本框中nFor i = 0 To 10n Set b(i) = Text1(i)n b(i).BackColor = RGB(255, 255, 255)nNext inFor i = 1 To 10n b(i).Text = a(i)nNext inEnd SubVBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社7.4 第第4步:设计代码步:设计代码n注:(注:(1)、前一个)、前一个For循环是用来把文本框数组与数循环是用来把文本框数组与数

55、组组b建立相应的联系,后一个建立相应的联系,后一个For循环是把循环是把a数组中的数数组中的数赋给赋给b数组,两个循环不能统一,因为两个数组的下标数组,两个循环不能统一,因为两个数组的下标不一样。不一样。n(2)、)、RGB函数是采用计算机中的三基色原理,函数是采用计算机中的三基色原理,R红色红色 G绿色绿色 B蓝色,从理论上来说,三种基本色蓝色,从理论上来说,三种基本色混合可产生混合可产生256256256种颜色,但是实际使用时种颜色,但是实际使用时受到显示硬件的限制,普通显示卡只能显示受到显示硬件的限制,普通显示卡只能显示16种颜色。种颜色。VBVB程序设计项目化教程程序设计项目化教程中国

56、水利水电出版社中国水利水电出版社7.4 第第4步:设计代码步:设计代码n具体使用方法如下:具体使用方法如下:n RGB(红色值,绿色值,蓝色值),每种颜色值的范围为:(红色值,绿色值,蓝色值),每种颜色值的范围为:0255n 例:例:b(i).BackColor = RGB(255, 255, 255)表表7-1 RGB颜色函数颜色函数 RGB函数函数 颜颜 色色RGB(0,0,0)黑色RGB(255,0,0)红色RGB(0,255,0)绿色RGB(0,0,255)蓝色RGB(0,255,255)青蓝色RGB(255,0,255)紫红色RGB(255,255,0) 黄色RGB(255,255,

57、255)白色VBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社7.4 第第4步:设计代码步:设计代码n 4、 编写命令按钮组编写命令按钮组Command1的的Click事件事件n Private Sub Command1_Click(Index As Integer)nSelect Case Indexn Case 0n b(1).BackColor = RGB(0, 255, 0)n For i = 2 To 10n b(i).BackColor = RGB(0, 255, 0)n x = b(i).Textn j = i - 1VBVB程序设计项目化教程程序设

58、计项目化教程中国水利水电出版社中国水利水电出版社7.4 第第4步:设计代码步:设计代码n Label2.Caption = 现在取现在取A( & Trim(i) & ),依次依次与前面的元素与前面的元素 &作比较,以确定作比较,以确定 & Trim(i) & 的位的位置置n With Text1(0)n .Left = b(i).Leftn .Text = xn .Visible = Truen .BackColor = RGB(255, 0, 128)n End WithVBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社7

59、.4 第第4步:设计代码步:设计代码n Do While (j 0 And (Val(x) j + 1 ThenVBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社7.4 第第4步:设计代码步:设计代码n MsgBox 将将A( & Trim(i) & ) 放入放入 A( & Trim(j + 1) & )n b(j + 1).Text = xn End Ifn Next in Text1(0).Visible = Falsen Label2.Caption = n Label3.Visible = TrueVBVB程序设计项目化教程

60、程序设计项目化教程中国水利水电出版社中国水利水电出版社7.4 第第4步:设计代码步:设计代码n Case 1n Form_Activaten Label3.Visible = Falsen Case 2n EndnEnd SelectnEnd Subn程序执行效果如图程序执行效果如图7-4所示:所示:n程序运行时首先产生程序运行时首先产生10个随机数如图个随机数如图7-5所示:所示:图图7-5程序执行效果 VBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电出版社7.4 第第4步:设计代码步:设计代码n7.4 第第4步:设计代码步:设计代码图图7-6单击排序后效果VBVB程序设计项目化教程程序设计项目化教程中国水利水电出版社中国水利水电

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论