




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Visual Basic 程序设计基础目 录 第1章 Viaual Basic 概述 第2章 第一个Visual Basic 程序 第3章 Visual Basic 语言基础 第4章 程序控制结构 第5章 过程 第6章 面向对象程序设计 第7章 窗体的设计 第8章 控件的使用 第9章 菜单的设计 第10章 文件处理 第11章 数据库应用 第12章 程序调试与文件打包内容简介 Visual Basic是优秀的计算机应用程序开发软件,提供了开发Windows应用程序最迅速、最简捷的方法,是国际通用的比较简单易懂的计算机程序设计语言。 本书主要介绍了Visual Basic的基础知识、编写应用程序的
2、一般步骤和方法、Visual Basic语言基础、程序流程控制、过程、面向对象程序设计、窗体、控件、菜单的设计与应用、文件管理、数据库开发、程序调试和发布应用程序等12章内容。最后给出了一个VB应用程序的综合开发实例。教学计划 参考学时 72学时,1/3学时为上机操作。 教学过程 第一层次20学时左右,学习掌握Visual Basic的基础知识、编写应用程序的一般步骤和方法、Visual Basic语言基础、程序流程控制和过程等内容。 第二层次32学时左右,掌握面向对象程序设计基础、窗体、控件、菜单的设计与应用等内容。 第三层次20学时左右,学习文件管理、数据库开发、程序调试和发布应用程序等高
3、级功能。 第1章 Visual Basic 概述1.1 简述 Visual Basic1.2 Visual Basic 6.0 的安装、启动与退出1.3 Visual Basic 6.0 的集成开发环境1.4 获取帮助1.1 简述 Visual Basic “Visual”指的是可视化开发图形用户界面 (GUI) 的方法。在设计过程中,用户不需编写大量代码,只要把各种对象添加到交互界面上即可,设计时看到的界面就是程序运行时的外观。 BASIC语言是一种国际通用的计算机程序设计语言。 Visual Basic有学习版、专业版和企业版三种版本,分别满足不同的开发需要。本书以学习版的Visual B
4、asic .0 简体中文版为开发环境。 61.2 Visual Basic 6.0的安装、启动与退出 VB的安装 运行环境 CPU:486DX/66 MHz 或更高的处理器。 内存:24MB以上,Windows NT下要求32MB以上。 磁盘空间:典型安装 48MB,完全安装 80MB。 显示器:VGA 或分辨率更高的监视器。 安装 VB:从 CD 盘上安装。 VB的启动与退出 启动VB:选择“开始|程序Micrsoft Visual Basic 6.0 中文版Micrsoft Visual Basic 6.0 中文版”命令。 退出VB:选择“文件|退出”命令。71.3 Visual Basi
5、c 6.0 的集成开发环境 启动VB后,出现 “新建工程”对话框。 在“新建”选项卡中,选中“标准EXE”项,再单击“打开”按钮,即进入VB集成开发环境。 建立新的工程打开最近使用过的工程打开已有的工程81.3 Visual Basic 6.0 的集成开发环境对象窗口工具栏菜单栏工具箱工程资源 管理器属性窗口立即窗口窗体布局窗口VB的集成开发环境91.3 Visual Basic 6.0 的集成开发环境 工具箱 利用工具箱中的工具可以设计用户界面。 选项按钮OLE对象文本框列表框驱动器列表框文件列表框线条数据水平滚动条 标 签框 架复选框组合框定时器目录列表框形 状选择对象101.3 Visu
6、al Basic 6.0 的集成开发环境 工程资源管理器 在该窗口中可以管理一个应用程序程中使用的所有文件,如工程文件(Vbp)、窗体文件(Frm)、标准模块文件(Bas)等。 工程文件 是与该工程有关的所有文件和对象的集合,这些文件和对象自动链接到工程文件上。 工程文件窗体文件标准模块文件工程资源管理器111.3 Visual Basic 6.0 的集成开发环境 对象窗口 也称窗体设计器,用来设计应用程序的界面。在该窗口中设计的窗体就是应用程序运行时所显示的界面。 对象窗口窗体的设计界面窗体的运行界面121.3 Visual Basic 6.0 的集成开发环境 属性窗口 用来设置对象的各项属
7、性。 对象框:显示当前被选定对象的名称。 属性列表框 左列显示属性项。 右列显示属性值。 说明:显示当前属性的简要说明。对象框属性列表框说明131.3 Visual Basic 6.0 的集成开发环境 代码窗口 用来编写各种通用过程和事件过程的代码。 打开代码窗口的方法有: 双击窗体的任意位置或窗体上的任意控件。 右击窗体,从快捷菜单中选择“查看代码”命令。 选择“视图|代码窗口”命令。过程列表框代码编辑区对象列表框141.3 Visual Basic 6.0 的集成开发环境 窗体布局窗口 用来设置应用程序中各窗体运行时出现在屏幕上的位置。窗口中有一个代表屏幕的图像,拖动其中的窗体图标,可以调
8、整窗体在屏幕上的显示位置。 窗体图标151.3 Visual Basic 6.0 的集成开发环境 附加窗口 调试程序时利用立即窗口、本地窗口和监视窗口等附加窗口,可以在程序中断状态下查询表达式的值和命令执行的结果。 161.4 获取帮助 执行“帮助”菜单中的“内容”、“索引”、“搜索”命令,可启动 “MSDN Library Visual Studio 6.0”帮助程序,获取帮助信息。访问帮助信息的方法 171.4 获取帮助VB 的帮助界面18第2章 第一个Visual Basic 6.0 程序 2.1 工程管理 2.1.1 工程的创建、打开和保存 2.1.2 文件的添加、保存和移除 2.1.
9、3 设置工程属性2.2 程序设计 2.2.1 创建用户界面 2.2.2 设置属性 2.2.3 编写代码2.1 工程管理 工程是用来建造应用程序的文件的集合。 用VB创建应用程序,首先要建立工程。 202.1.1 工程的创建、打开和保存 创建工程 有两种方法: 启动VB时,在“新建工程”对话框中,选择“新建”选项卡下的“标准EXE”项。 启动VB后,选择“文件|新建工程”命令,打开“新建工程”对话框,选择“标准EXE”项。 建立工程后,工程资源管理器中会显示新建的工程,并在工程中自动创建一个名为“Form1”的窗体。 212.1.1 工程的创建、打开和保存 保存工程 选择“文件|保存工程”命令。
10、 先保存窗体文件(.frm),再保存工程文件(.vbp)。 222.1.1 工程的创建、打开和保存执行保存操作后,工程资源管理器中的显示结果:工程文件名窗体文件名工程名称窗体名称232.1.1 工程的创建、打开和保存 打开工程 选择“文件|打开工程”命令。242.1.2 文件的添加、保存和移除 添加文件 选择“工程”菜单中的“添加”命令。例如,要添加一个窗体,可以选择“工程|添加窗体”命令。添加的新窗体12252.1.2 文件的添加、保存和移除 保存文件 在工程资源管理器中选定要保存的文件,执行“文件|保存 ” 命令。修改文件后,要用新的文件名或新的路径重新保存,执行“文件|另存为”命令。 将
11、Form2窗体保存为“Login.frm”262.1.2 文件的添加、保存和移除 移除文件 在工程资源管理器中选定要移除的文件,执行“工程|移除 ”命令。 例如,选择“文件|移除Login.frm”命令可以从当前工程中移除该窗体文件。 移除文件只是将该文件从工程中移走,而不是将它从磁盘中删除,被移除的文件仍存在于磁盘上,需要的时候还可以将它添加到工程中。272.1.3 设置工程属性 选择“工程|工程1属性”命令,打开“工程属性”对话框。 在“通用”选项卡中,可以更改工程名称、设置启动对象等。 例如,将默认的工程名称“工程1”改为“教学管理系统”。新的工程名称工程文件名282.1.3 设置工程属
12、性 工程名称是该工程在程序代码中的标识,不能以非字母字符开头,且不能包含点(.)和空格,长度不超过37个字符。 “启动对象”用于选择程序运行的起始点,可以是工程中的一个窗体(默认为Form1窗体),或者是Sub Main主程序(编写无窗体的应用程序时,应将启动对象设置为“Sub Main”过程)。292.2 程序设计 在VB中设计程序的一般步骤创建用户界面设置对象属性编 写 代 码保 存 程 序运 行 程 序302.2.1 创建用户界面 创建用户界面就是将构成界面的各种控件对象,如文本框、列表框、命令按钮等添加到窗体上。 添加控件 在工具箱中选择要添加的控件按钮。 在窗体上用鼠标拖出控件的大小
13、。 拖出控件大小在窗体上添加的命令按钮312.2.1 创建用户界面【例2.1】 在“教学管理系统”工程的“Form1”窗体上添加标签控件、定时器控件和命令按钮控件,设计一个欢迎界面。 定时器是不可见控件,运行时不会显示出来。 标签控件命令按钮定时器控件322.2.1 创建用户界面 调整控件大小 在窗体中单击控件选定它,控件四周出现8个黑色小方块。 拖动边角上的方块可以按比例改变控件大小。 拖动四边上的方块可以在水平或垂直方向上改变控件大小。 按住Shift键同时按下键盘上的方向键可以将控件每次缩放一个网格单元的大小(如果关闭网格,则每次缩放一个像素大小)。 在“属性”窗口中设置控件的Width
14、(宽度)和Height(高度)属性值,可以精确地调整控件大小。332.2.1 创建用户界面 移动控件 方法有: 用鼠标将窗体上的控件拖动到新位置。 选定控件后,按住 Ctrl 键同时按下键盘上的方向键,可以将控 件每次移动一个网格单元的位置。 在“属性”窗口中设置控件的Top(顶部)和Left(左侧)属性值,可以 精确地调整控件在窗体上的位置。 复制控件 选中要复制的控件,执行“编辑”菜单中的“复制”和“粘贴”命令,系统会弹出一个消息框,询问是否“创建一个控件数组”,选择“是”,则在窗体上创建一个控件数组;选择“否”,则在窗体上得到该控件的副本,副本的所有属性与原控件相同。 342.2.1 创
15、建用户界面 删除控件 选中要删除的控件,按 Delelte键。 控件的布局 步骤是: 按住Shift键再用鼠标依次单击各对象,同时选定多个控件。 执行“格式”菜单中的“对齐”、“顺序”等布局命令。 Command2 置后Command2 置前执行“顺序|置前”命令执行“顺序|置后”命令352.2.1 创建用户界面 锁定控件 执行“格式|锁定控件”命令,可以锁定当前窗体中的所有控件, 防止被移动或被改变大小。 控件被锁定后就不能用鼠标操作来移动位置或改变大小,但仍可在“属性”窗口中改变控件的Top、Left、Width、Height 属性。 解除锁定 再次执行“格式|锁定控件”命令,可以解除对控
16、件的锁定(此时,锁定控件项左边的锁头标记从凹陷状态恢复为正常状态)。 362.2.2 设置属性 在“属性”窗口中可以为窗体及其界面元素设置属性。 在窗体设计器中选中需要设置属性的对象。 在“属性”窗口的属性列表框中选择要修改的属性,若属性项右侧显示插入点光标,则可以直接输入属性值;若属性项带按钮,则单击此按钮会弹出一个对话框,可以用来设置相应的属性值;若属性项带按钮,则可以双击该属性值遍历所有选项,或者单击此按钮,在出现的一个下拉列表中选择相应的属性值。 372.2.2 设置属性【例 2.2】 为例2.1中创建的Form1窗体中的对象设置属性。选中窗体对象,在属性列表框中单击“Caption”
17、属性项,将默认的“Form1”改为“欢迎界面” 。 选中标签控件,将“Height”属性值改为525,将“Width”属性值改为4200。选中命令按钮控件,将“Caption”属性值改为“确定”。选中定时器控件,将“Interval”属性值改为600。 设计阶段为窗体及各控件设置的属性,有些可以直接反映在窗体设计器中。 382.2.2 设置属性设置窗体的Caption属性窗体对象标签对象设置标签的属性392.2.2 设置属性设置命令按钮的属性命令按钮对象设置定时器的属性定时器对象402.2.3 编写代码 编写事件代码 方法是: 双击窗体或窗体中需要编写响应代码的控件,打开代码窗口。 在“过程”
18、列表框中,选择一个响应事件,如Load、Click等。然后在 Sub 和 End Sub 语句之间输入代码。 例如,为命令按钮编写Click事件代码。系统设定 的代码注释信息一行一条语句,按回车键换行412.2.3 编写代码【例2.3】 为例2.1中的命令按钮和定时器控件编写事件代码。 运行结果422.2.3 编写代码【例2.4】 在“教学管理系统”工程的“Form2”窗体上添加标签控件、文本框控件和命令按钮控件,设计一个登录界面。 设置属性后的窗体界面在窗体上添加控件标签文本框命令按钮432.2.3 编写代码运行时的窗体界面44第3章 Visual Basic 语言基础3.1 数据类型 3.
19、1.1 数值型数据 3.1.2 字符型数据 3.1.3 布尔型数据 3.1.4 日期型数据 3.1.5 变体型数据 3.1.6 对象型数据 3.1.7 自定义类型45第3章 Visual Basic 语言基础 3.2变量 3.3 常量 3.4 数组 3.4.1 静态数组 3.4.2 动态数组 3.4.3清空数组 3.4.4访问整个数组 3.4.5 多维数组46第3章 Visual Basic 语言基础3.5 运算符 3.5.1 赋值运算符 3.5.2 算术运算符 3.5.3 连接运算符 3.5.4 日期运算符 3.5.5 比较运算符 3.5.6 逻辑运算符 3.5.7 位运算符47第3章 Vi
20、sual Basic 语言基础3.6 函数 3.6.1 输入输出函数 3.6.2 数学函数 3.6.3 字符处理函数 3.6.4 日期函数 3.6.5 格式化函数 3.6.6 数据类型转换函数 3.6.7 测试函数3.7 语句 483.1 数据类型 数据类型决定了数据的存储和运算方式。VB的数据类型493.1.1 数值型数据 整型(Integer) 整型数据用来表示不带小数点的数值。 如:10、+256、0、-68 整型数也可以用十六进制数表示,以&H开头,数据位数不超过4位,范围为 &HO &HFFFF,如:&H64表示十进制数100,&HA6表示十进制数166。 长整型(Long) 与整型
21、类似,但取值范围比整型数大。 整型或长整型数据的运算速度较快,而且比其它数据类型占据的内存要少。 字节型(Byte) 可用来表示无符号的整数,不能表示负数。除一元减法外,所有可对整数进行操作的运算符均可操作 Byte 数据类型。 Byte 数据类型在存储二进制数据时很有用。503.1.1 数值型数据 单精度浮点型(Single) 浮点型数据用来表示一个实数,小数点可以放在数字的任何位置。 单精度数的最大有效位数为7,超过7位时,四舍五入。如: -4.5、12.3、+12.34、0.0069、-31.24683 双精度浮点型(Double) 双精度数比单精度数的取值范围大,最大有效位数为15 。
22、如: -123456789012345、0.98765432101234、1234567890.12345 货币型(Currency) 货币型数据可表示15位整数和4位小数,是一个定点数据类型(小数点位置固定),适用于货币计算。其精度高于单精度和双精度浮点数。513.1.2 字符型数据 字符型数据(String) 是用双引号(”)括起来的一串字符,包括汉字、字母、数字、符号等,如: Visual Basic、教学管理系统V1.0、123456789“ 字符串的类型 变长字符串 是指字符串的长度可以改变。当给一个变长字符串变量赋予不同的值时,其长度可增可减。 定长字符串 是指在程序执行过程中,长
23、度始终保持不变的字符串。例如,定义一个长度为20个字符的字符串变量: Dim strTemp As String *20 如果赋予字符串的字符少于20个,则不足部分用空格填充;如果超过20个,则多出的字符被截去。 523.1.2 字符型数据【例3.2】 字符型数据的使用。选择“文件|新建工程”命令,新建一个“标准EXE”类型的工程文件。然后执行“工程|添加模块”命令,在当前工程中添加一个名为“Module1(Module1)”的模块。在工程资源管理器中右击“工程1”项,从快捷菜单中选择“工程1属性”命令,打开“工程属性”对话框,选择“通用”选项卡,从“启动对象”下拉列表框中选择“Sub Mai
24、n”选项。当编写无窗体的应用程序时,必须将启动对象设置为“Sub Main”过程,作为程序运行的起始点。 在代码窗口中输入代码。结果在立即窗口中输出。533.1.2 字符型数据运行结果543.1.2 字符型数据 说明: VB是用双引号来标识字符串的,当遇到第一个“时,系统就认为是字符串的开始,当遇到下一个”时,就认为是字符串的结束。 当字符串本身要包含“时,可以输入两个连续的”“,这时VB就会判定它是一个单纯的双引号,而不会将它作为字符串的开始或结束标志。 例如,要显示字符串This is my first VB program, 可以在立即窗口中输入以下语句: ? This is my fi
25、rst VB program553.1.3 布尔型数据 布尔型数据(Boolean) 只有两个值:真(True)和假(False),通常用来表示逻辑判断的结果,也称之为逻辑型数据。 任何只有两种状态的数据,如真/假、是/否、开/关等,都可以用Boolean型表示。 说明: 当把数值型数据转换为Boolean型时,0会转换为False,其他非0值转换为True。 当把Boolean值转换为数值型时,False转换为0,True转换为-1。 563.1.4 日期型数据 日期型数据(Date) 用来表示日期和时间。Date型数据要用两个“#”号作为定界符,例如: 2003年1月12日表示为: #1/
26、12/2003# 2003年1月12日下午1时20分45秒表示为: #1/12/2003 1:20:45 pm# 如果输入的日期或时间是非法的,系统将显示出错信息。573.1.5 变体型数据 变体型数据(Variant) 能够表示任何数据类型。 把常量赋予Variant型数据时,VB按以下规则判定其类型: 用双引号括起来的数据是字符型 用#号括起来的数据是日期型 值为True或False的数据是布尔型 对于数值型数据,如果不含小数位,且大小不超出整型数范围就被看作是整型;如果数值大于整型数范围但不超过长整型数范围,就被看作是长整型;除此以外,其它的数值型数据都被看作双精度浮点型。583.1.6
27、 对象型数据 对象型数据(Object) 用来存储应用程序中的某个对象,用4个字节来表示该对象在内存中的地址引用。 一个被声明为 Object 的变量可以引用应用程序所识别的任何对象。例如: Dim objDb As Object Set objDb = OpenDatabase (c:Vb6Biblio.mdb) 上述两条语句首先声明一个名为objDb的对象型变量,然后引用了应用程序中的一个数据库对象。 593.1.7 自定义类型 自定义类型 用Type语句创建,可以包含多个不同类型的数据元素、数组或一个已定义过的自定义类型。 例如,自定义一个名为Student的数据类型: Type Stu
28、dent Dim Number As Long 声明Number为长整型变量 Dim Name As String 声明Name为字符型变量 Dim Birthday As Date 声明Birthday为日期型变量 Dim Sex As Boolean 声明Sex为布尔变量 End Type 603.2 变量 变量 是指在数据处理过程中其值可以改变的量。 每个变量都有一个名字(变量名)和一种数据类型,(确定该变量能够存储哪种数据)。 变量的命名 变量必须以字母开头,由汉字、字母、数字或下划线组成,不能包含空格、!、#、$、%、&、.等字符,且长度不超过256个字符。 不能使用VB中的关键字、
29、对象名称或属性名称。613.2 变量 变量的声明 格式: Dim As 数据类型, As 数据类型 功能:声明变量并分配存储空间。 使用AS类型子句可以指定变量的数据类型,如果没有指定数据类型,默认为Variant型。 声明一个变量后,该变量的初始值默认为:数值型数据为0,字符型数据为空字符串(),日期时间型数据为0:00:00,逻辑型数据为False。623.2 变量例如,下列语句分别声明了String 、Date和 Single类型的变量: Dim strName As String Dim datBirthday As Date Dim fltScore As Single 在 Dim
30、语句中声明多个变量时,如果没有用As子句指定类型,就被认为是Variant类型。例如: Dim strName As String, datBirthday As Date 该语句分别声明了一个字符型变量和一个日期型变量。 Dim strName, strAddress As String 该语句将strAddress声明为字符型变量,strName默认为Variant型变量。633.2 变量 变量的隐式声明 先用Dim语句声明一个变量,然后再使用该变量的方式称作显式声明。 不事先声明某个变量而直接在程序中使用的方式称作隐式声明。在执行程序时,VB会根据该变量名自动创建一个Variant型变量
31、。 643.2 变量 强制声明变量 方法是: 在程序开头加上一条语句:Option Explicit。 选择“工具|选项”命令,选中“要求变量声明”选项。VB将会在任何一个新建立的模块中自动插入Option Explicit语句。 653.2 变量 类型声明字符 在变量名的后面加一个类型声明字符,也可以指定变量的数据类型。 常用类型声明字符 663.2 变量 在Dim语句中可以使用类型声明符号来代替“As”子句。 例如:Dim iTemp% 等同于 Dim iTemp As Integer 当一个变量未经声明第一次使用时,若后面加上了类型声明字符,就会被自动声明为该类型声明字符所代表的数据类型
32、。 例如: a% = 55 隐式声明变量a并指定其数据类型为整型 给Variant型变量赋值时,可以使用类型声明字符指定类型。 例如:Dim varTemp As Variant varTemp = 10& 指定varTemp中存储的数据为长整型673.3 常量 常量 指在程序运行过程中其值始终保持不变的量。 类型 系统常量 是系统内部预定义的常量,以小写的vb字母开头,如:vbRed(代表红色数值)。在程序中可以直接使用系统常量。 用户定义的常量 使用Const语句自定义的常量。 格式:Const As 数据类型 = 功能:声明用于代替文字量的常数。例如,自定义一个双精度浮点型常量Pi: C
33、onst Pi = 3.1415926 用Const语句定义常量后,就可以在程序的其他位置使用这个常量,但不能再用任何代码去改变该常量的值。 683.4 数组 数组是内存中连续的一片存储区域,由一组称为数组元素的变量组成。每个数组元素通过数组名和相应的索引编号被引用。 通常情况下,一个数组中的所有元素具有相同的数据类型,数组的数据类型可以声明为任何一种基本数据类型(包括用户自定义类型和对象类型);当数据类型为Variant时,各个元素能够包含不同种类的数据。 第1个元素 第2个元素 第3个元素 第4个元素 第5个元素 第6个元素内存中的数组元素 数组示意图693.4.1 静态数组 静态数组 是
34、指在程序运行过程中大小固定不变的数组。 声明静态数组 格式1: Dim (索引值上界) As 数据类型 格式2: Dim (最小索引值 To 最大索引值) As 数据类型 功能:声明数组并分配存储空间。 引用数组元素 数组经过声明后,就可以象普通变量一样引用数组中的任何一个元素。 格式:数组名(索引号) 703.4.1 静态数组例如: Dim a(5)As Integer Dim a(0 to 5) As Integer 这两条语句都表示定义一个数组a,包含a(0)、a(1)、a(2)、a(3)、a(4)、a(5) 6个元素,且每个元素的类型都是整型。 Dim a(-1 to 4) As In
35、teger 该语句表示数组a中包含a(-1)、a(0)、a(1)、a(2)、a(3)、a(4) 6个元素。 a(1) = 10 给数组元素a(1)赋值为10 a(2) = 20 给数组元素a(2)赋值为20713.4.2 动态数组 动态数组 是指程序运行时大小可以改变的数组。 静态数组的大小(即数组元素的个数)是在声明该数组时指定的,在程序运行过程中其大小就固定不变。 若事先不知道数组大小的情况下,可以使用动态数组。 声明动态数组 格式:Dim () As 数据类型 功能:声明动态数组,但不分配存储空间。 分配动态数组的空间 格式:ReDim Preserve (索引值) As 数据类型 功能
36、:定义或重定义动态数组的大小。723.4.2 动态数组例如: 声明动态数组fltScore,其数组元素的类型为Single Dim fltScore() As Single 给动态数组分配10个元素 ReDim fltScore(10) 获取动态数组的元素个数 UBound(数组名) 取得索引上界 LBound(数组名) 取得索引下界733.4.3 清空数组 清空数组 即释放数组占用的存储空间。 清空动态数组 格式:Erase 功能:释放动态数组的存储空间或重新初始化静态数组的元素。 说明 对动态数组执行Erase语句后,将释放它所占用的内存,所以在下次引用该动态数组之前,还必须用 ReDim
37、 语句重新定义大小。 对于静态数组,执行Erase语句后,会清除数组中的所有数据,但是不会改变数组的大小,即不会释放静态数组所占用的内存。743.4.4 访问整个数组 将一个数组赋给一个Variant变量或者赋给一个动态数组,可以一次读取整个数组中的数据。 说明: 把一个静态数组赋给一个Variant变量时,系统会在Variant变量中构建一个与静态数组大小一样的同类型数组,并将静态数组中的元素一一复制到Variant变量中。 把一个静态数组赋给一个动态数组时,系统会自动改变动态数组的空间使它与静态数组的大小相同,然后再将静态数组中的元素一一复制到动态数组中。753.4.5 多维数组 多维静态
38、数组 格式1:Dim (索引值,索引值,索引值,) As 数据类型 格式2:Dim (最小索引值1 To 最大索引值1, 最小索引值2 To 最大索引值2, 最小索引值3 To最大索引值3,) As 数据类型 功能:声明多维数组并分配存储空间。 说明:包含一个索引项时,为一维数组;包含二个索引项时,为二维数组;包含三个索引项时,为三维数组,以此类推。VB中最多可以定义 60 维的多维数组。763.4.5 多维数组 例如,要存储2个学生3门课程的成绩信息,可定义一个二维数组, 包含6个Single类型的元素: Dim fltScore(2,3) As Single 引用多维数组中的元素 格式:
39、数组名(索引号,索引号,) 例如,第1个学生第3门课程的成绩 为 88.5 分,可表示为: fltScore(1,3) = 88.5 多维数组示意图 fltScore(1,1) fltScore(1,2) fltScore(1,3)fltScore(2,1) fltScore(2,2) fltScore(2,3) 第1个元素 第2个元素 第3个元素 第4个元素 第5个元素 第6个元素773.4.5 多维数组 多维动态数组 与一维动态数组类似,先用Dim语句声明一个数组,再用ReDim语句分配数组空间,然后才可以使用。 利用 ReDim 语句改变多维数组的大小时,如果带 Preserve 关键字
40、,则只能改变最后一维的大小,否则就会出错。例如: Dim fltNumber() As Single ReDim fltNumber(3, 5, 4) 正确,只改变最后一维的大小 ReDim Preserve fltNumber(3, 5, 6) 错误,改变了两个维度的大小 ReDim Preserve fltNumber(3, 9, 8) 错误,改变的不是最后一维的大小 ReDim Preserve fltNumber(3, 6, 4)783.5 运算符 运算符是对相同类型的数据进行运算操作的符号。 用运算符将常量、变量和函数等数据连接起来的式子称为表达式。表达式的类型通常由运算符的类型决定
41、,每个表达式按照规定的运算规则产生一个惟一的值。793.5.1 赋值运算符 赋值运算符 就是“=”号。 格式: = 说明:“=”右边可以是一个常量或已赋过值的变量,也可以是一个表达式。如果是表达式,VB将先计算表达式的值,再将此值赋给“=”左边的变量。例如:a = 3 将数值常量3赋予变量ab = a 将变量a的值赋予变量b 将表达式2 * a + b的运算结果赋予变量cc = 2 * a + b 变量还可以用它当前的值参加运算,再将运算结果赋给变量自身。 例如:X=X+1 表示先计算表达式 X+1,再将运算结果存回变量 X中,替换原来的值。803.5.2 算术运算符 算术运算符 用来进行数学
42、计算的运算符。运算优先级依次为:括号指数运算负数乘、除、整型除法、求模加、减,其中乘、除、整型除法和求模同级,加和减同级,分别从左到右进行计算。算术运算符 813.5.3 连接运算符 连接运算符 将两个字符串连接起来合并为一个字符串。 连接运算符的类型 有 “+”和“&” 两种 当运算符前后的数据都是字符串时,两者完全相同。 例如, 在立即窗口中输入两个表达式,结果是一样的。 在立即窗口中输出表达式表达式1表达式2相同的输出结果在立即窗口中输出表达式时,需使用“?”命令823.5.3 连接运算符 运算符前后的数据不都是字符串时,两者的处理方式不同。 “+” 有处理数值运算的作用。当一个字符串与
43、一个数值数据相加时,如果该字符串是一个数值格式的字符串,则VB先将字符串转换成数值,然后再相加,此时进行的是数值相加操作。如果字符串不能转换成数值的格式,就会发生错误。例如, ?“12”+ 45 结果为 57(12+45) ?abc+ 45 错误 “&” 是专门用来进行字符串连接的运算符。使用“&”时,不管是何种类型的数据,都会先转换成字符串再进行连接。例如, ?12.34 & 43 结果为1 2.3443 ?“a12bc” & 56 结果为 a12bc56 833.5.4 日期运算符 日期型运算符有“+”和“-”两种。 ,结果为一个新的日期时间。的单位是“天”。 -,结果为两个日期相差的天数
44、。 例如, ?#2003-4-28# + 10 结果是:原来的日期加上10天,为 2003-5-8 ?#3-24# - #1-21# 结果是:两个日期相减,相差62天 843.5.5 比较运算符 比较运算符 用来对两个表达式进行比较运算。运算结果为Boolean值(True或False)。比较运算符有种,优先级相同。 比较运算符 说明 参加比较的数据的类型必须一致。 数值型数据按数值的大小比较,西文字符按ASCII码的值比较,汉字按国标码的值比较,日期时间型数据分别按年月日和时分秒的值比较。 853.5.5 比较运算符例如, 数值的比较 ?1=2, 1=2, 11.1 结果分别是 False,
45、True,True 字符串的比较 ?“张” “帐” 结果是 True 日期时间的比较 ?#2003-2-2 12:12:12# #2003-3-1# 结果是 True ?#2003-3-1 12:12:12# 5 AND 85 XOR 84 结果为 True ?True XOR (2=3) OR (3=3) AND NOT(5=5) 结果为 True883.3.7 位运算符 位运算 先将整型数据转换为二进制数,然后将其中的每一位分别进行运算处理,其中0相当于False,1相当于True。 逻辑运算符可以作为位运算符使用。 例如, Dim a, b As Byte a = 5 b = 9 ?a
46、And b 结果为1 ?a Or b 结果为13 ?Not b 结果为246 ?a XOR b 结果为12893.3.7 位运算符 说明:进行位运算时,VB先将十进制数5和9转换成二进制,(5)10=(00000101)2,(9)10=(00001001)2,运算过程下表所示。 位运算示例903.6 函数 函数(Function) 是一种能够完成某种特定操作或功能的程序段。函数的运算结果称为函数值。 函数调用的格式 Call (参数1,参数2,) 参数1,参数2, 变量 = (参数1,参数2,)说明:任何可以使用表达式的地方都可以使用函数,表达式将函数 的返回值作为运算对象。 函数分类 系统函
47、数:VB提供的内部函数。 用户自定义函数:用户根据程序设计的需要自行编写的函数。913.6.1 输入输出函数 使用输入输出函数可以实现一些简单的人机对话。 输入函数 格式:InputBox( , , 功能:显示一个用户自定义的对话框,等待用户输入文本或按下 按钮,并返回用户在文本框中输入的字符串。 例如,在立即窗口中输入以下语句: ? InputBox(“请输入学生性别” ,“学生情况”, “男”) 结果如图所示。标题提示信息默认值923.6.1 输入输出函数 输出函数 格式:MsgBox(, Buttons , ) 功能:显示一个消息对话框,并等待用户单击按钮,作为继续执行程序的依据。 说明
48、: 参数是一个数值表达式,指定消息框中的按钮类型、图标样式和默认按钮等,默认值为0。 用户在消息框中单击某一按钮后,该函数返回一个整数值,表示某个按钮被选中。933.6.1 输入输出函数按钮类型 943.6.1 输入输出函数图标样式和默认按钮 953.6.1 输入输出函数MsgBox 函数的返回值 963.6.1 输入输出函数例如,在立即窗口中输入以下语句: ?MsgBox(“性别输入错误, & Chr(10)& 只能输入男或女。, _ 2 + 256 + 16, _ “输入错误”) 结果如图所示。标题提示信息按钮类型默认按钮图标类型973.6.2 数学函数常用数学函数983.6.3 字符处理
49、函数993.6.4 日期函数常用的日期函数1003.6.5 格式化函数 数值格式化函数 格式:FormatNumber(数值,小数位数,前导0字符, 负数格式,数字分组) 功能:按指定的数据格式对数值数据进行格式化。 例如,? FormatNumber(-123456.789,2,-1) 结果为 -123,456.79 日期时间格式化函数 格式: FormatDateTime(日期,格式) 功能:按指定的日期时间格式对日期时间数据格式化。1013.6.5 格式化函数 通用格式化函数 格式:Format(表达式, 格式) 功能:按指定的格式对表达式进行格式化。例如, Dat = #5/10/20
50、03 20:12# ? Format(Dat, hh:mm am/pm) 结果为 08:12 pm ? Format(Dat,“现在是yyyy年m月”) 结果为:现在是2003年5月 ? Format(514, “总分是#.0”) 结果为:总分是514.0 1023.6.6 数据类型转换函数 常用转换函数 强制将一个表达式转换成某种特定类型的数据。 1033.6.6 数据类型转换函数 数值转换为字符串函数 格式:Str() 功能:将数值型数据转换成字符串。例如,? str(123) 结果为字符串 123 字符串转换为数值函数 格式:Val() 功能:将字符串转换为Double型的数值。例如,?
51、 Val(“123.45”) 结果为数值 123.451043.6.7 测试函数 数字测试函数 格式:IsNumeric() 功能:测试表达式的值是否为数值型数据或符合数值格式的字 符串,若是,返回值为True;否则,返回值为False。例如,? isNumeric(12.25) 结果为 True ? isNumeric(ab) 结果为 False 日期测试函数 格式:IsDate() 功能:测试表达式的值是否为日期时间型数据或符合日期时间 格式的字符串,若是,返回值为True;否则,返回值为False。例如,? isDate(#2003-5-20 8:30#) 结果为 True ? isDa
52、te(#2003-5-20#) 结果为 False1053.6.7 测试函数 数组测试函数 格式:IsArray() 功能:测试表达式是否为数组,若是,返回值为True;否则, 返回值为False。例如,Dim XX(5) As Single Dim YY As Single ?IsArray(XX) 结果为True ?IsArray(YY) 结果为False 数据类型测试函数 格式:TypeName() 功能:测试表达式的数据类型。例如,Dim X1 As Single ? TypeName(X1) 结果为Single1063.7 语句 语句 是指程序中的一行代码,由VB关键字、函数、运算符
53、以及VB可识别的指令组成。 语句的书写规则 通常是一条语句占一行,行尾不加任何终结符。 将两个或多个语句放在同一行时,各语句之间要用冒号 (:) 隔开。 在一行语句的末尾加续行符“_”(下划线),可以将一条语 句分成数行书写。 一行语句中以单撇号()开始的内容为注释信息。程序中的注释内容不会影响程序运行的结果。 1073.7 语句 输入完一行代码并按回车键后,VB会自动对输入的内容进行语法检查;发现错误时,会显示一个提示框。自动语法检查出错语句用红色标识1083.7 语句 VB会按约定对语句进行格式化处理,例如,关键字和函数的第1个字母自动变为大写。 在代码窗口中输入语句时,可以自动显示有关语
54、句和函数语法格式的快速信息。 自动显示快速信息参考信息109第4章 程序控制结构4.1 顺序结构 4.2 分支结构 4.2.1 单分支结构 4.2.2 双分支结构 4.2.3 多分支结构 4.3 循环结构 4.3.1 For Next 循环 4.3.2 Do Loop 循环 4.3.3 For Each Next 循环 4.3.4 多重循环 4.4 跳转控制1104.1 顺序结构 程序:是为解决某一问题而将有关命令按照一定的控制结构组成的命令序列。 顺序结构:按程序中语句的书写顺序逐条执行。 VB程序从主体上说都是顺序执行的,每个命令执行完后都自动执行下一个,只有当遇到分支结构、循环结构、过程
55、函数等才会改变执行的顺序。 1114.1 顺序结构【例4.1 】 顺序结构的使用。 程序流程图1124.2.1 单分支结构 分支结构:根据逻辑条件的结果执行不同的命令序列,也称为选择结构。 单分支结构 格式:If Then End If 功能:若条件表达式的值为真,就执行;否则,直接执行End If之后的语句。单分支结构流程图N条件语句序列End IfY1134.2.1 单分支结构【例4.2】 单分支结构的使用。 程序流程图单分支结构1144.2.2 双分支结构 双分支结构 格式:If Then Else End If 功能: 若条件成立,就执行 ,然后转去执行End If后面的语句;否 则,
56、执行 ,再执行End If后面的语句。 双分支结构流程图N条件语句序列1End If 后面的语句Y语句序列21154.2.2 双分支结构 【例4.3】 双分支结构的使用。 程序流程图双分支结构1164.2.3 多分支结构 嵌套If语句 在一个If 语句中包含另一个 If 语句。If Then If Then Else End If Else If Then Else End If End If流程图1174.2.3 多分支结构 【例4.4】 用嵌套If语句计算分段函数。 程序流程图嵌套的If语句1184.2.3 多分支结构 If.Then.ElseIf.End If语句 If Then Els
57、eIf Then ElseIf Then Else End If流程图1194.2.3 多分支结构【例 4.5】 用ElseIf语句计算分段函数。 程序流程图ElseIf 语句1204.2.3 多分支结构 Select Case 语句 根据判断数据的结果,选择执行一种操作。 Select Case Case Case Case Case Else End Select流程图1214.2.3 多分支结构【例4.6 】 Select Case 语句的使用。 1224.3.1 ForNext 循环 循环结构:按规定的条件重复执行一段命令序列。 For Next循环:用于已知循环次数 For = To
58、 Step Exit For Next For 循环流程图1234.3.1 ForNext 循环 【例4.8】 用For循环求1+2+100和。 程序流程图For 循环1244.3.2 DOLoop 循环 Do Loop循环 常用于不知道循环次数的情况。 格式1: Do While | Until Exit Do Loop 功能:先判断条件,若条件不成立, 则结束循环;若条件成立,则执行循 环体内的语句序列,直到条件不成立, 执行过程中遇到 Exit DO 语句时被 强制退出循环。1254.3.2 DOLoop 循环 格式2: Do Exit Do Loop While | Until 功能:
59、先执行一次循环体,再判断条件。若条件不成立,就结束循环;否则,重复执行循环体内的语句序列,直到条件不成立,执行过程中遇到 Exit DO 语句时被强制退出循环。1264.3.2 DOLoop 循环 【例4.11】 用Do循环求1+2+100的和。 程序流程图Do 循环1274.3.3 For Each Next 循环 For Each.Next循环: 用于对数组或对象集合中的每一个元素重复执行一组操作。 格式For Each In Exit For Next 1284.3.3 For Each Next 循环 【例4.13】 用For Each 循环求1+2+100和。 程序流程图For Ea
60、ch 循环1294.3.4 多重循环 多重循环 在VB中,几种循环结构可以自我嵌套,也可以相互嵌套,由此构成双重循环或三重、四重等多重循环结构。 Do循环和For两种循环可以混合嵌套,且层数不限。但内层循环的所有语句必须完全嵌套在外层循环之中。否则就会出现循环的交叉,产生错误或造成逻辑上的混乱。 循环结构与分支结构也可以混合嵌套使用,但不允许交叉;并且各自的入口语句与相应的出口语句(如 For 与 Next、Select Case 与 End Select、Do 与 Loop、If 与 End If)必须成对出现。1304.3.4 多重循环外层循环内层循环【例4.14】 多重循环的使用,打印九
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 宠物医院品牌加盟医疗耗材供应与品牌合作推广合同
- 体育明星代言赛事活动赞助及权益转让合同
- 监狱安全巡查辅助劳务协议
- 医学实验设备租赁及配套试剂供应协议
- 儿童摄影加盟体系技术授权与摄影设备采购合同
- 夫妻离婚房产使用权限过渡期合同书
- 职业技能培训机构教练员企业人才培养与输出聘用合同
- 2025至2031年中国柠檬乳浆市场现状分析及前景预测报告
- 2025至2030年海苔卷项目投资价值分析报告
- 2025至2030年中国语音识别电灯开关行业投资前景及策略咨询报告
- 《中国的生物灾害》课件
- 《吸烟的危害性》课件
- 基于单片机的恒压供水系统设计(附原理图、程序清单及外文翻译)
- 宾馆饭店消防安全培训课件
- 2022杭州新教科版六年级科学下册第四单元《物质的变化》全部教案(共7课)
- 装修店面施工方案
- 小学语文教师基本功大赛试卷及答案
- 技术学校直饮水工程施工组织设计(方案)
- 某切眼掘进工作面开口施工的安全技术措施
- 山东省病理质控
- 某医院安全生产三项制度(安全生产责任制、制度、操作规程)汇编
评论
0/150
提交评论