VB数组、结构与枚举VB编程

VB数组、结构与枚举VB编程

ID:37393126

大小:288.81 KB

页数:23页

时间:2019-05-12

上传者:U-145848
VB数组、结构与枚举VB编程_第1页
VB数组、结构与枚举VB编程_第2页
VB数组、结构与枚举VB编程_第3页
VB数组、结构与枚举VB编程_第4页
VB数组、结构与枚举VB编程_第5页
资源描述:

《VB数组、结构与枚举VB编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

前面已经介绍了VisualBasic2005的基本数据类型,但在实际的编程过程中,会发现仅仅使用这些数据类型是远远不够的。例如要处理100个同学的姓名、学号以及成绩,不难看出,使用基本变量是难以解决的。为此,VisualBasic2005引入了数组、结构和枚举等复合数据类型。第4章数组、结构与枚举 本章学习目标(1)掌握数组的概念、数组初始化的方法。(2)熟练掌握静态数组和动态数组的概念和应用。(3)掌握结构类型的定义方法以及如何声明和使用结构变量。(4)理解枚举类型的定义方法。 数组计算机处理的数据各种各样,这些数据根据是否有序可以分为两类:(1)无序性数据:仅与取值有关,与其所在的位置无关。(2)有序性数据:不仅与取值有关,而且与其所在的位置有关。在程序设计中,利用简单变量可解决很多处理无序性数据的问题,但对于有序性数据,使用简单变量处理将是一件十分复杂的事。为此,需要引入功能更强的数据类型——数组。 数组将一组有序的、个数有限的、数据类型相同的数据组合作为一个整体,用一个统一的名字(数组名)来表示,这些有序数据的全体则称为一个数组。下面列举了几组可以与不可以构成数组的数据:1,2,3,4,5,6,7,8'可以构成数组,整型数组"A","B","C","D","E"'可以构成数组,字符串型数组12,"abc",True'不可以构成数组,数据类型不一致 数组元素、下标在同一数组中,构成该数组的数据称为数组元素。如在上面列举的几组数据中:1是第一个数组的元素,"B"是第二个数组的元素。前面说过,VisualBasic2005中用一个统一的名字(数组名)来表示数组,如果要访问数组中的数组元素,就需要将数组名与下标结合起来。所谓“下标”,就是指数组元素在该数组中的索引值,在VisualBasic2005中,数组元素的索引值是从0开始的,如:0,1,2,3,4,5,……。 数组的类型数组的类型是指构成数组的元素的数据类型(构成同一数组的所有数组元素的数据类型必须一致),它可以是任何的基本数据类型,如:整型、字符串型等;也可以是用户自定义类型,如结构、枚举等。 数组的维数数组中下标的个数称为数组的维数。如果数组中的所有元素,都能按行(或列)顺序排成一行(或一列),则只需要用一个下标便能标识其所在的位置,这样的数组称为一维数组。如:"A","B","C","D","E"如果数组中的所有元素,能按行、列顺序排成一个矩阵,那就必须用两个下标来标识它们的位置,这样的数组称为二维数组。依次类推,需要3个下标的数组,称为三维数组;数组有多少个下标,就称为多少维数组,二维或以上维数的数组称为多维数组。但通常超过三维的数组就很少使用了。 数组的形式在VisualBasic2005中,根据数组元素的个数是否有限,分为两种形式的数组:(1)静态数组:数组元素的个数固定不变,声明时指定元素的个数。静态数组通常用于处理那些元素个数相对稳定的数据,例如:对100个整型数据的排序,因为其元素个数固定为100,所以应当使用静态数组来解决。(2)动态数组:数组元素的个数可以在运行时改变,声明时不指定元素的个数。动态数组通常用于处理那些元素个数需要改变的数据,例如:输入项数,对数列1、2、3、5、8、……求和,因为其元素个数是随着用户的输入而改变的,所以应当使用动态数组来解决。 数组的声明声明一个数组的语法格式为:Dim<数组名>([<维数定义>])[As<数据类型>]说明:①<数组名>为必选项,它跟普通变量一样,必须遵循VisualBasic2005标识符规则;②[<维数定义>]是可选项,表示数组的维数,如定义二维或二维以上的数组,下标与下标之间用逗号隔开,声明时下标值为数组元素下标的最大值,例如:声明一个10个元素的数组,其下标值应该为9(因为数组元素的下标从0开始)。③[As<数据类型>]为可选项,表示数组的类型,如省略则为Object型。 数组的初始化给数组中的各个数组元素赋初值,称为数组的初始化。在VisualBasic2005中,可以在声明动态数组时给其初始化。如:'声明一维动态单精度型数组Score,并初始化Dimscore()AsSingle={90.0,85.5,68.0,52.5,76.0}'声明二维动态整型数组b,并初始化,表示4.1.1小节中的矩阵Dimb(,)AsInteger={{1,2,3,4},{2,3,4,5},{3,4,5,6}}'声明一维动态字符串型数组letterStr,并初始化DimletterStr()AsString={"A","B","C","D","E"} 数组元素的访问数组声明以后,就可以通过数组元素在数组中对应的索引值(即下标)来访问,如上面声明的三个数组Score、b、LetterStr,以下列举几个访问其元素的例子:Score(2)'表示数组Score中索引值为2的元素,即68.0b(1,2)'表示数组b中第1、2索引值分别为1、2(即第二行第三列)的元素,即4LetterStr(3)'表示数组LetterStr中索引值为3的元素,即"D" 动态数组在使用数组时,有时在程序设计阶段并不知道数组的大小,从而无法正确声明数组的大小。如果声明太小,则无法满足程序要求;如果声明太大,那么当然可以满足程序的要求,但运行时存放该数组的内存被长期占用,导致系统效率降低。当遇到这种情况时,就需要使用动态数组,因为动态数组允许程序员在程序运行的过程中根据需要改变数组的大小。 ReDim语句动态数组的声明在4.1.2节已经介绍过,这里将介绍如何利用ReDim语句分配实际的元素个数,ReDim语句的语法格式为:ReDim[Preserve]<数组名>([<重定义数组大小>])说明:其中Preserve关键字为可选项,其作用是在重新声明数组时,在重新声明的数组中复制原数组中的元素。即仅改变数组的大小,不丢失原数据。若对多维数组使用Preserve关键字,则只能改变最后一维的大小,其他维不变,否则会发生错误。使用ReDim语句要注意以下几点:(1)ReDim语句仅可以在过程级出现,但不可以在类或模块级代码区使用ReDim语句来重新声明数组。(2)ReDim语句只是更改已被正式声明的数组的一个或多个维数的大小,不能更改该数组的维数。(3)ReDim语句无法更改数组中元素的数据类型,和Dim语句声明数组的区别在于无法在ReDim语句中初始化重新声明的数组。(4)可以多次地重定义数组大小。 ReDim语句示例DimweekStr()AsString={"星期一","星期二","星期三"}ReDimPreserveweekStr(4)weekStr(3)="星期四"weekStr(4)="星期五"上述代码等价于:DimweekStr()AsString={"星期一","星期二","星期三"}ReDimweekStr(4)weekStr(0)="星期一"weekStr(1)="星期二"weekStr(2)="星期三"weekStr(3)="星期四"weekStr(4)="星期五" ForEach语句ForEach...Next语句是专用于数组和集合的循环语句,类似于For...Next循环语句,通过ForEach...Next语句,可以十分方便地访问数组中的每一个元素,其语法格式为:ForEach<成员>In<数组>[<语句组1>][ExitFor][<语句组2>]Next[<成员>]说明:①<成员>代表数组中的每个元素。②<数组>为数组名,没有小括号和维数。 结构结构是VisualBasic6.0中用户自定义类型的扩展,结构中除了字段外,还可以定义属性、方法和事件,对于每个成员可以定义不同的可访问性。一个结构可以实现一个或多个结构。当需要将一些相关联的信息保存在一起时就使用结构。例如:要知道一个学生的姓名、学号、性别、VB成绩等信息,就可以定义一个名为student的结构,包含这些不同的数据成员,这样比使用单独的变量存放这些信息要方便得多。 结构的声明声明结构的语法如下:[Dim|Public|Private|Friend]Structure<结构名><字段名1>As<数据类型1>……<字段名n>As<数据类型n>EndStructure结构中的成员可以是数组,也可以是结构。定义上述student结构如下:StructurestudentDimnameAsStringDimnoAsStringDimsexAsStringDimvbScoreAsSingleEndStructure 建立和使用结构变量定义了结构后,可以像声明普通变量一样声明结构变量,如下面声明了一个student类型的变量liMing:DimliMingAsstudent同样,结构也可以作为数组元素的数据类型,如:Dimstu(10)Asstudent'定义结构数组stu,数组大小为11声明了结构变量后,就可以访问其中某个字段,使用方法为:<结构变量名>.<字段名>如:访问liMing的姓名的方法为:liMing.name同理,stu(5).no表示结构数组stu的第六个学生的学号,stu(10).vbScore表示结构数组stu的最后一个学生的VB成绩。 枚举在编程中有时会遇见在一些固定的有限个元素中取其一的情况,比如一周七天中的一天,一年十二个月中的一月等。要说明这些数据,使用一般变量或是结构都不合适,在VisualBasic2005中定义了枚举类型来解决这类问题。 枚举的声明声明结构的语法如下:[Public|Private|Protected|Friend|ProtectedFriend]Enum<枚举名>[As<数据类型>]<成员名1>[=<常数表达式1>]……<成员名n>[=<常数表达式n>]EndEnum说明:①[As<数据类型>]为可选项,必须为整型数值类型,即:Byte、Short、Long、Integer。缺省情况下为:Integer。②[=<常数表达式1>]为可选项,可以在定义常量成员时指定一个初值。如不指定,系统默认第一个成员为0,第二个为1,依此类推。 枚举其实就是一组相关的常量的集合,例如:可定义一个枚举来描述一周中的七天,它包含七个常量成员,每个成员代表一周中的一天,如下:PublicEnumweekDaysSaturdaySunday=0MondayTuesdayWednesdayThursdayFridayInvalid=-1EndEnum上面的枚举中,Saturday是首个元素被默认为0,Sunday也被指定为0,因而Monday为1,Tuesday为2,……,无效日期为-1。 使用枚举定义了枚举后,可以声明枚举型变量使用它,如:DimmyDayAsweekDays请看下面的代码:DimmyDayAsweekDays=weekDays.Friday'定义枚举变量myDay并初始化IfmyDay=weekDays.SaturdayOrweekDays.SundayThen'该条件等价于myDay=0MessageBox.Show("双休日!")ElseMessageBox.Show("工作日!")'因为条件不成立,所以该语句被执行EndIf 小结本章首先讨论了数组的概念,包括数组的定义、初始化、静态数组、动态数组等。然后介绍了针对数组和集合的循环语句ForEach...Next的使用。接下来介绍了结构类型的概念,并通过实例讲述了结构类型数据的访问方法,最后介绍了枚举类型及其使用方法。重点及难点:(1)数组的概念、数组初始化的方法;(2)静态数组和动态数组的概念和应用;(3)结构类型的定义方法以及如何声明和使用结构变量。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
大家都在看
近期热门
关闭