《vb程序设计第06章数组与结构》由会员分享,可在线阅读,更多相关《vb程序设计第06章数组与结构(32页珍藏版)》请在金锄头文库上搜索。
1、第 6 章 数 组 与 结 构,6.1 数 组 6.2 数 组 与 循 环 6.3 结 构 与 枚 举,6.1 数 组,6.1.1 数组基本概念 在Visual Basic 6.0中把一组具有同一名字、不同下标的下标变量称之为数组。一个数组可以包含若干个下标变量,而下标则指明了下标变量在数组中的位置。,6.1.2 使用数组的必要性 数组的引入是为了处理同一性质的成批数据,当需要处理的数据量比较大时,此时就体现了数组的优越性,因为它用一个数组名代表了逻辑上相关的一批数据,用下标表示该数组中的各个元素,在程序设计的过程中,结合使用循环语句,将使得程序的书写变得简洁,操作也更为便利。,6.1.3 数
2、组的声明与使用 数组应当先声明后使用,对于固定大小的一维数组,定义语法格式如下: 说明符 数组名(下标)As 类型 或 说明符 数组名(下标下界 To 下标上界)As 类型,二维数组的定义语法格式如下: 说明符 数组名(第1维下标上界,第2维下标上界)As类型 或 说明符 数组名(第1维下标下界To上界,第2维下标下界To上界)As 类型,在数组的声明过程中有以下几个问题需要注意。 (1)命名“数组名”时必须遵守标识符规则。 (2)“说明符”为保留字,可以为Dim,Public,Private,Static中的任意一个。 (3)数组的下标形式一般为“下界To上界”,上下界都为不超过Long数据
3、类型范围的整数,并且下界应该小于上界。在不指定下界的情况下,下界默认为0。,(4)数组元素的数据类型是在As后说明的,可以为Integer,Long,Double,Single,String(变长字符串),String*length(定长字符串)等基本类型,也可以是用户自定义的类型。 (5) 在同一个过程中,不能使用相同的数组名和变量名 。 (6)在定义数组时,每一维的元素个数必须是常数,不能是变量和表达式。,(7)数组下标的下界都必须小于上界,上界值和下界值可以通过UBound和LBound函数来测试。它的语法格式为: LBound(数组,维) UBound(数组,维),这两个函数分别用来返
4、回数组中指定维的下界和上界。其中“数组”指的是被测试的数组名,“维”指的是数组中要被测试的维。这两个函数一起使用就可以确定数组的大小。当被测数组为一维数组时,参数“维”可以省略。,对数组的引用通常是对数组元素的引用,它的引用形式为:数组名(下标),此处的下标可以是整型常量或整型表达式。利用下标来引用数组中的元素时,一定要注意下标的值没有超出数组的声明范围。,1默认数组 所谓的默认数组,其实就是数据类型为Variant的数组。数据类型为Variant的数组的最大特点是:在同一个数组中可以存放各种不同类型的数据。而一般的数组在定义时需要给出其数据类型,并且数组中只能存放这一类型的数据。因此,形象地
5、把默认数组称之为“混合数组”。,2数组的初始化 所谓的初始化就是给数组中的各元素赋予初值。在Visual Basic 6.0中提供了Array函数,利用该函数可以使数组在程序运行之前得到初值。它的格式为: 数组变量名=Array(数组元素值),在使用Array函数给数组赋初值时,应该注意以下几个方面的问题。 (1)被Array函数赋值的数组变量不能是具体的数据类型,只能是Variant类型。 (2)一般情况下,数组变量可以通过以下3种方式来定义。 定义为Variant变量。 定义时不指明类型。 不定义而直接使用。,(3)由于“数组变量名”是预先定义的数组名,在“数组变量名”之后没有括号。给数组
6、变量赋值的过程也就是给数组中各元素赋值的过程。使用Array函数时,各值之间应该以逗号隔开。 (4)使用Array函数创建的数组的下界默认为0,如果想使下标的下界从1开始,可以使用Option Base 1语句。此外,Array函数只适用于一维数组,不能对二维或多维数组赋值。,6.2 数 组 与 循 环,6.2.1 用ForNext循环处理数组 前面讲到了用Array函数给一维数组赋值的方法,对于二维或二维以上的数组的数组元素一般通过For循环语句配合InputBox函数输入。,在Visual Basic中,数组是按行来存储的,即在内存中先顺序存放第1行中的数组元素,再存放第2行的元素,以此类
7、推。因此,在设计程序的时候应当把控制数组第1维的循环变量作为最外层循环变量,而把控制数组第2维的循环变量作为次外层循环变量,以次类推。,6.2.2 用For EachNext循环处理数组 For EachNext语句专门用于数组或对象集合中的每个元素,循环重复次数为数组元素的个数。语法如下: For Each变量In数组名 语句 Exit For Next变量,其中,变量是一个为循环提供的Variant变量,并在For EachNext语句中重复使用,它代表数组中的每个元素。 用For EachNext语句可以对数组中的各个元素进行处理,包括查询、显示或读取。循环次数由数组中元素的个数确定,即
8、数组中有多少个元素,循环就会自动重复执行多少次。,6.2.3 用DoLoop循环处理数组 正如上一节用ForNext循环为二维数组进行初始化一样,在数组的某些处理问题上也可以采用DoLoop的循环方法。,6.3 结 构 与 枚 举,6.3.1 结构的声明与使用 在Visual Basic 6.0中,用户自己定义的数据类型就称之为结构(或自定义类型,见第3.1.2小节),它由若干个标准类型组成,类似于Pascal中的记录类型。结构类型通过Type语句定义。,如果一个数组中元素的数据类型为结构类型,则称该数组为结构数组或记录数组。存取结构数组元素的某个字段数据的语法形式为: 结构数组元素.字段名,
9、6.3.2 枚举的声明与使用 所谓的枚举就是指将变量的值一一列举出来,变量的值只限于列举出来的值的范围内。枚举类型放在窗体模块、标准模块或公用类模块中的声明部分,通过Enum语句来定义。它的格式为:,Public| Private Enum 类型名称 成员名=常数表达式 成员名=常数表达式 End Enum 在上述格式中,常数表达式可以省略。在默认情况下,枚举中的第一个常数表达式被初始化为0,其后的常数表达式则在前一个常数表达式的基础上加1。,6.3.3 使用结构与枚举的必要性 在实际的生活和工作中,常常接触的数据并不是孤立的数据项,而是由几个基本项组成的组合项。用这些组合项来描述相应对象的若
10、干属性,是非常合理的。所以在Visual Basic 6.0中,可以根据自己的需要,灵活地把一些孤立的数据项组合起来构成自定义的结构,从而在很大程度上提高数据处理的效率。,6.4 集 合 型 控 件,6.4.1 ListBox控件 提供用户选择其中一项,从而达到与用户沟通的目的,这就是所谓的选择框(ListBox)。如果在选择框中有较多的项目而不能被一次选择时,Visual Basic将自动加上滚动条以实现全部显示的效果。,在通常情况下,列表框只显示一行,但是通过设置列表框的MultiSelect属性(为1或2时)值,就可以实现多选功能。列表框主要特点是只能选择而不能对其中的内容进行修改。它具
11、有如下的一些属性。,(1)基本属性 (2)List (3)ListIndex (4)ListCount (5)Seleted (6)Sorted (7)Text属性,主要方法。 (1)AddItem方法 AddItem方法用于把一个项目加入列表框。其语法形式如下: 对象.AddItemIndex 对象:指的是列表框或者组合框,也就是说AddItem方法对于列表框和组合框都适用。,Intem:必须是字符表达式,指的是加入列表框中的项目。 Index:表示新增项目所放的位置,默认为0,即默认时,新增项目将放在列表框中的第一个位置。,(2)RemoveItem方法 当需要从列表框中删除某个项目时就需要使用这个方法。其语法形式为: 对象. RemoveItem.Index 对象:对象可以是列表框也可以是组合框。 Index:表示要删除项目在列表框中的位置。,(3)Clear方法 Clear方法将删除列表框中的所有内容。它的语法形式如下: 对象.Clear,6.4.2 ComboBox控件 组合框(ComboBox)是一种兼有列表框和文本框功能的控件。它既可以像文本框控件那样允许用户键入新内容,又可以像列表框控件那样允许用户对列表中的项目进行选择。 组合框控件的属性、方法和事件与列表框大致相同。,