




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 2 v学时:48(32+16) v教材: vVB程序设计教程 周霭如, 清华大学出版社 v参考资料: vVB6.0入门与提高 张树兵, 清华大学出版社 vVB程序设计教程 刘瑞新, 电子工业出版社 vVB实用教程 郑阿奇, 电子工业出版社 3 教学内容教学内容 v第一章 概述 2学时 v第二章 数据与表达式 4学时 v第三章 顺序结构 2学时 v第四章 分支结构 2学时 v第五章 循环结构 2学时 v第六章 VB常用控件 v第七章 数组与记录 2学时 v第八章 过程 4学时 4 v第九章 文件 2学时 v第十章 菜单、多重窗体与多重文档 2学时 v第十一章 绘图 2学时 v第十二章 程序调
2、试与错误处理 2学时 v附:ACCESS数据库应用 4学时 v总结 2学时 5 教学目的要求教学目的要求: 了解VB的发展过程和特点 掌握VB集成开发环境 理解面向对象程序设计方法 掌握VB工程开发设计步骤 教学重点教学重点 VB集成开发环境 VB工程开发设计步骤 面向对象程序设计方法 第1章 概述 6 时间安排:时间安排: 2学时 教学难点:教学难点: 面向对象程序设计中对象、属性、方法、事件 等概念 7 1.1 VB1.1 VB的发展过程和特点的发展过程和特点 一、发展过程: 年: . 年秋:. 年: . 年: . 年: . 年: . Windows操作系统产生初期,人们只能利用Windo
3、ws API(应用程序接口)的一千多个函数编写程序。微软 公司就开发了当今流行的Microsoft Visual Studio工 具套件,就是其中一种。 8 VB6.0 版本 学习版: Learning VB的基础版本,可开发WINDOWS或WINDOWS NT 程序。内容包括所有内部控制以及网络、数据 绑定控件。 专业版: Professional 为专业编程人员开发功能强大的分布式应用程 序。包括专业版的全部功能,同时具有自动化 管理器、部件管理器及数据库管理工具。 企业版: Enterprise 为专业编程人员提供的一套功能完备工具。包 括学习版的全部功能和ActiveX控件、Inter
4、net 控件开发工具、动态HTML页面设计。 9 二、二、VBVB主要功能特点主要功能特点 VB是面向对象的可是面向对象的可 视化程序设计工具视化程序设计工具 友好的集成开发友好的集成开发 环境环境 支持多种数据库系统支持多种数据库系统 的访问的访问 支持动态数据交换、支持动态数据交换、 动态链接库、对象的动态链接库、对象的 链接与嵌入技术及链接与嵌入技术及 ctiveXctiveX技术技术 10 1.2 VB61.2 VB6.0 .0 集成开发环境集成开发环境 VB6.0启动: 11 工具箱工具箱 窗体设计窗体设计 器窗口器窗口 代码编辑代码编辑 器窗口器窗口 标题栏标题栏 工具栏工具栏 菜
5、单栏菜单栏 工程资工程资 源编辑源编辑 器窗口器窗口 窗体窗体 布局布局 窗口窗口 属性窗口属性窗口 12 标题栏标题栏 可显示当前VB的工作模式: 设计模式:可进行界面设计和代码编写 运行模式:运行程序 中断模式:程序运行暂时中断,可编辑代码,但不可设计界面 13 工程资源管理窗口工程资源管理窗口 一个工程由多种类型的文件组成, 如工程文件、窗体文件、标准模 块文件等,在工程资源管理窗口 中以树形目录结构的形式列出了 当前工程中包括的所有文件。 工程文件(.vbp) 窗体文件(.frm) 标准模块文件(.bas) 类模块文件(.cls) 工程组文件(.vbg) 资源文件(.res) 查看对象
6、查看对象 切换文件夹切换文件夹 查看代码查看代码 14 属性窗口属性窗口 属性窗口主要对窗体和控件设置 对象下拉列表框 可列出当前所有 对象 选项卡 属性说明 属性列表框 属性值 15 代码编辑器窗口代码编辑器窗口: 对象下拉 列表框 事件过程下 拉列表框 过程查看 全部过程 查看 自动列出 成员特性 代码窗口 窗口拆分栏 用于显示和编辑代码 16 传统过程化应用程序传统过程化应用程序 从第一行开始执行,并按照预定 的路径执行,用户无法改变程序 的流程 事件驱动的应用程序事件驱动的应用程序代码不是按预定的路径执行,而 是在响应不同事件时执行不同 的代码段. 事件触发事件触发 由用户触发由用户触
7、发 由操作系统触发由操作系统触发 由其它应用程序的消息触发由其它应用程序的消息触发 采用面向对象、事件驱动方式的编程采用面向对象、事件驱动方式的编程, ,程序员不需要考虑精确次序执行的程序员不需要考虑精确次序执行的 每一步骤,而只需编写响应用户动作的程序即可,工作量相对较少。用每一步骤,而只需编写响应用户动作的程序即可,工作量相对较少。用VBVB 编程,实际上是与一组标准对象进行交互的过程。编程,实际上是与一组标准对象进行交互的过程。 1.3 1.3 面向对象程序设计面向对象程序设计 17 对象对象 是系统中的基本运行实体是系统中的基本运行实体, ,是代码和数据的集合是代码和数据的集合. .
8、用户定义 对象是具有特殊属性(数据)和行为方式(方法)的实体。建 立对象后,其操作与该对象有关的属性、事件和方法来描述。 类类 是封装数据和隐藏数据的工具是封装数据和隐藏数据的工具, ,是一组用来定义对象是一组用来定义对象 的相关过程和数据的集合的相关过程和数据的集合. . 一个对象就是类的一个实例一个对象就是类的一个实例 类具有封装性、继承性和多态性特征类具有封装性、继承性和多态性特征 VBVB中,对象分中,对象分 系统定义,如窗体、菜单等 18 属性属性 是一个对象的特性,不同的对象有不同的属性。是一个对象的特性,不同的对象有不同的属性。 对象常见的属性: 标题(Caption) 名称(N
9、ame) 颜色(Color) 字体(Font) 是否可见(Visible) 19 通过修改对象的属性,可以改变对象的外观与功能。 在属性窗口上设置 在程序代码中用赋值语句设置 属性设置属性设置 格式: .= 例: Command1.Caption=“确定” Command1.Font=19 20 事件 在VB中,系统为每一对象预先定义好一系列的事件,如: 单击(Click) 双击(DblClick) 装入事件(Load) 改变事件(Change) 鼠标移动事件(MouseMove) 获取焦点事件(GotFocus) 是指发生在对象上的事情。是指发生在对象上的事情。 事件过程的一般格式: Pri
10、vate Sub _() End Sub 例: Private Sub Command1_Click() Form1.BackColor = vbRed End Sub 21 方法 方法是面向对象程序设计中所特有的,是一种特殊的过 程和函数,可供用户直接调用。 如:打印(Print)方法、显示窗体(Show)方法、清除(Cls)方法、移动(Move) 方法 对象调用格式: . 是指对象要执行的动作。是指对象要执行的动作。 22 1.4 VB1.4 VB程序设计的基本步骤程序设计的基本步骤 程序设计的一般过程程序设计的一般过程 分析问题分析问题 设计算法设计算法 绘制流程图绘制流程图 编制程序编
11、制程序 调试程序调试程序 23 新建一个工程新建一个工程 设计用户界面设计用户界面 编写事件过程及通用过程代码编写事件过程及通用过程代码 保存、调试、运行,保存、调试、运行, 形成可执行文件形成可执行文件 以求两数和的程序为例,说明VB工程的建立全过程 VB程序设计的基本步骤程序设计的基本步骤 24 1、新建工程、新建工程 途径有两种:途径有两种: 启动VB后,在系统显示的“新 建工程”对话框的“新建”选项 卡中选择“标准EXE”,然后单 击“打开”按钮。 在“文件”菜单中选择“新建 工程”命令,然后在“新建工程” 对话框中选择“标准EXE”,然 后单击“打开”按钮。 25 2、设计界面、设计
12、界面 设计对象控件的布局 改变Caption属性的值为“求和” 改变对象标签、命令按钮Caption 属性的值 改变文本框的属性Text为0 窗体 标签 命令按钮 文本框 26 3、编写代码、编写代码 三种方式: 在窗体上双击命令按 钮 在工程管理器窗口单 击“查看代码”按钮 在视图菜单中选择 “代码窗口”命令, 或单击“工具栏”上 的“代码窗口”按钮 27 4、运行与调试工程、运行与调试工程 选择“运行”菜单中的“启动”命令,或单击工具栏中的“启 动”按钮,或按F5键,即可运行。 在文本框中输入数据,然后 点击“求和”按钮,即可得 到两数的和,显示在文本框 中。 计算结果 28 5、保存工程
13、、保存工程 程序代码检查没有错误后,可 保存工程。 选择“文件”菜单中的“保存 工程”或“工程另存为”命令, 或单击工具栏中的“保存工程” 按钮。若是第一次保存,则系 统弹出“文件另存为”对话框。 在“文件对话框”中选择合适 的文件夹后,点击“保存”即 可。 文件名 文件夹 文件名后缀 保存窗体文件后,系统会弹出 “工程另存为”对话框,同样 选择文件夹,点击“保存” 29 6、编译工程形成可执行文件、编译工程形成可执行文件 编译成.exe文件,可脱离VB环 境运行 选择“文件”菜单中的“生 成可执行文件” ,则系统弹 出“生成工程”对话框。 在“生成文件对话框”中选 择合适的文件夹,输入文件
14、名点后,击“确定”即可。 30 输入代码规则输入代码规则: : 每行不超过每行不超过10231023个字符个字符 一行写多个语句用一行写多个语句用“:”:”隔开隔开 可用续行符可用续行符“ “ _”_”在下一行接着写在下一行接着写 不分大小写不分大小写, ,关键字及标准函数自动处关键字及标准函数自动处 理成第一母大写理成第一母大写 注释行用注释行用“”“”开头开头 VBVB程序结构程序结构: : 窗体模块窗体模块 标准模块标准模块 类模块类模块 31 课后分析: 面向对象程序设计中对象、属性、方法、事 件、类等概念的理解随后续课程的学习而逐渐 加深 32 教学目的要求: 掌握VB基本数据类型
15、掌握VB中的常量与变量 掌握运算符与表达式 了解常用标准函数 教学重点 常量与变量 运算符与表达式 常用标准函数 第章 VB程序设计基础 33 时间安排: 4学时 教学难点: 变量的类型定义 运算符的优先级 34 数据类型是程序设计的必要组成部分,也是程 序处理的对象。 在不同语言中,数据类型的规定和处理方法不同。 VB提供系统定义 的数据类型 还允许用户自己 定义 VB提供的基本数据类型主要有: 数值型 字符串型(String) 布尔型(Boolean)逻辑型 日期型(Date) 变体型(Variant) 对象型 (Object) 2.1 数据类型 35 类型: 整型(Integer) 长整
16、型(Long) 单精度浮点型(Single) 双精度浮点型(Double) 货币型(Currency) 字节型(Byte) 2.1.1 数值型数据 36 整型(Integer):以2个字节的二进制码存储。 十进制:由0-9数字组成和正负号,取值范围-32768-32767 八进制:由0-7数字组成,前面冠以 s End Sub Private Sub Command2_C1ick() angle=Sin(20*pi180) Print angle End Sub 符号常量pi在整个窗体模块中有效, 符号常量r只 在本事件过程中有效 54 4)由于符号常量可以用其他符号常量定义,因此在两个 以上
17、符号常量之间不要出现循环或循环引用。 例如:在标准模块Modulel中定义: Public Const conA= conB*2 在整个应用程序中有效 在标准模块Module2中定义: Public Const conB=conA/2 在整个应用程序中有效 当程序中有两个以上的公共符号常量,而且每个公 共符号常量都用另一个去定义时就会出现循环。 出现循环引用,在运行此应用程序时,VB就会产 生错误信息。为了避免出现循环引用,可以将公共 符号常量限制在单一模块内,或最多只存在于少数 几个模块内。 55 5)符号常量是有意义的名字,它用于取代永远不变的 数值或字符串。 尽管符号常量有点像变量,但不
18、能像对变量那样修 改符号常量,也不能对符号常量赋以新值。 56 3 系统定义符号常量 符号常量的定义可以从“对象浏览器”中获得。使用对象 浏览器可以显示包括当前工程及对象库在内的过程、模块、类、 属性和方法等的描述信息。 选择对象库 在“类”列表中选择 所需要的符号常量组 用鼠标单击 某一个符号常量 描述框中显示有关该符号常量的定义及描述信息。 例:vbBlue所表示的颜色值为 SomeValue = “ABC”+SomeValue 63 可在窗体模块或标准模块的声明段中加入语句: Option Explicit 强制显式声明强制显式声明 VB可采用强制声明功能,使所有变量都必须先声明后使用.
19、 这样,若运行时遇到一个未经明确声明的变量名,VB就会 发出错误警告。 声明方式: 在“工具”菜单中打开“选项”对话框,单击“编辑器” 选择“要求变量声明”选项,即可自动插入 Option Explicit语句. 注:Option Explicit语句的作用范围仅限于语句所在模块. 对于需要强制式变量声明的窗体模块、标准模块及类模块, 必须将Option Explicit语句放在这些模块的声明段中。 64 VB中有以下6类运算符和表达式: 算术运算符与算术表达式 字符串运算符与字符串表达式 关系运算符与关系表达式 逻辑运算符与逻辑表达式 日期运算符与日期表达式 对象运算符与对象表达式 用运算符
20、将运算对象(或操作数)连接起来即构成表达式。 表达式表示了某种求值规则。 操作数操作数可以是常量、变量、函数、对象等,而运算符也 有各种类型。 2.3 运算符与表达式 65 2.3.1 算术运算符与算术表达式 算术运算符用于对数值型数据执行各种算术运算。 VB提供了7个算术运算符,优先级次序如表所列: 优先级运算符运算 1 乘方 2- 取负 3 * 乘法 / 浮点除法 4 整数除法 5Mod 取模 6 + 加法 - 减法 其中,取负()运算符是单目运算符,其余运算符均为双目 运算符(需要两个操作数)。 66 乘方运算用来计算乘方和方根。 例: 102 10的平方,结果为100 10(-2) 1
21、0的平方的倒数,即1100,结果为0.01 250.5 25的平方根,结果为5 8(1/3) 8的立方根,结果为2 223 运算顺序从左到右,结果为以64 (-8)(-1/3) 错误,当底数为负数时,指数必须是整数 1乘方运算 2整数除法 例: 104 结果为2 25.686.99 先四舍五人再整除,结果为3 执行整除运算,结果为整型值。参加运算的操作数一般为 整型数。当操作数带有小数点时,先被四舍五入为整型数 ,后整除。 67 例: 10 Mod 4 结果为2 25.68 Mod 6.99 先四舍五人再求余数,结果为5 11 Mod -4 结果为3 -11 Mod 5 结果为-1 -11 M
22、od 3 结果为-2 3.取模运算 取模运算符Mod用于求余数,为第一操作数整除第二操作 数所得的余数. 操作数带小数, 先四舍五入取整型数,后求余; 运算结果符号取决于第一个操作数。 68 注意: “ 若x=0,则产生与最近生成的随机数相同的数; 若省略参数x,则以上一个随机数作为种子,产生序列中的下一个随机数 产生N1,N2问随机数,可使用公 式: Int(N2-N1+1)*Rnd +N2 随机种子生成器:Randomize time 79 2.4.2 字符串函数 VisualBasic提供了大量的字符串函数,具有很强 的字符串处理能力。 1删除空白字符函数 LTrim(s) 去掉字符串s
23、左边的空白字符(即前导空格)。 RTrim(s) 去掉字符串s右边的空白字符(即后置空格)。 Trim(s) 去掉字符串s左右两边的空白字符。 例如: LTrim(”UUUABC”) 结果为“ABC” RTrim(”ABCUUU”) 结果为“ABC” Trim(”UUUABCUUU”) 结果为 “ABC” 80 2取子串函数 Left(s,n) 取字符串s左边的n个字符 Right(s,n) 取字符串s右边的n个字符 Mid(s,p,n) 从字字符串s的第p个字符开始取n个字符 例: Left(“ABCDE”,2) 结果为“AB” Right(“ABCDE”,2) 结果为“DE” Mid(“A
24、BCDE”,2,3) 结果为“BCD” Mid(“ABCDE”,2,6) 结果为“BCDE” 3.字符串长度函数 Len(s) 返回字符串s的长度 例: Len(“ABCDE”) 结果为5 81 5生成空格函数 Space(n) 返回n个空格 例:Space(3)的结果为“UUU” 4生成字符串函数 String(n,s) 取字符串s的第一个字符构成长度为n的新字符串。 例: String(3,”ABC”) 结果 “AAA” String(3,65) 结果 “AAA” (字符”A”的ASCII码为65) 82 7字母大小写转换函数 UCase(s) 把小写字母转换为大写字母。 LCase(s)
25、 把大写字母转换为小写字母。 例: UCase(”Abc”) 结果为ABC” LCase(”ABc”) 结果为abc” 6搜索予字符串函数 InStr(S,s1,s2,C) 在字符串s1中第S个位置开始 查找字符串s2出现的起始位置 例: InStr(”ABCDE”,”BC”) 结果为2 1nStr(”ABCDECDE”,”DE”,) 结果为4 83 转换函数用于数据类型或形式的转换,包括整型、实型、 字符串型之间以及与ASCII码字符之间的转换。 下面介绍常用的转换函数。 1将字符转换成ASCII码 Asc(s) 返回字符串s中第一个字符的ASCII码。 例: Asc(“A”) 结果为65
26、Asc(“ABC”) 结果为65 2.4.4 转换函数 2将ASCII码转换成字符 Chr(x) 把x的值转换为对应的ASCII字符 例:Chr(65)的结果为”A”。 84 3将数值转换成字符串 Str(x) 把x的值转换为一个字符串。 如果x为正,则返回的字符串前有一前导空格。 例:Str(123)的结果为“ 123”。 4将字符串转换成数值 Val(s) 把数字字符串s转换为数值。 例: Val(“123”) 结果为123 Val(“123AB”) 结果为123 Val(“.123AB”) 结果为.123 Val(”a123AB) 结果为0 85 5转换成逻辑型数据 Cbool(x) 非
27、0为True 0为False。 例:Cbool(123)的结果为True。 6转换成日期型数据 Cdate(x) 把数字、字符串转换为日期数据。 例: Cdate(“February 20,1999”) 结果为99-2-20 Cdate(“4:30:40 PM”) 结果为16:30:40 86 日期和时间函数可以显示系统的日期和时间,提供某个 事件何时发生及持续时间长短等信息。 常用的日期时间函数有: Now 返回系统日期和时间 Date 返回系统日期 Time 返回系统时间 Day(d) 返回参数d中指定月份的第几天 WeekDay(d) 返回参数d中指定的星期几 Month(d) 返回参数
28、d中指定的月份 Year(d) 返回年份 Hour(d) 返回小时(023) Minute(d) 返回分钟(059) Second(d) 返回秒(059) Timer 返回从午夜开始到现在经过的秒数 2.4.3 日期和时间函数 87 格式输出函数可以使数值、日期或字符串按指定的格式输出。 其格式为 Format(,) 2.4.5 格式输出函数 :要格式化的数值、日期或字 符串表达式。 :指定表达式的值的输出 格式。 格式字符有三类:数值格式、日期格式 和字符串格式。 格式字符要加引号。 88 89 2.4.6 其他函数 1条件函数 Iif(,) 如x1值为真,则返回x2的值,否则返回x3 例:
29、 Iif(xy,x,y) 返回x,y中较大值 Iif(x=60,“Pass”,”Failure”) 2选择函数 Choose(n,.) 例:Choose(3,”星期一”,”星期二” ”星期三” ”星期四” ”星 期五”))的结果为”星期三”。 90 课后分析: 本节需掌握知识点较多,不需要一下子都记住,以 后用到时逐渐记忆。 91 教学目的要求: 掌握顺序结构程序设计方法 掌握选择结构程序设计方法 掌握循环结构程序设计方法 教学重点 顺序、选择、循环结构程序设计 第3章 流程控制 92 时间安排: 6学时 教学难点: 循环结构程序设计 93 VB采用事件驱动方法,但仍需要结构化程序设计 方法,
30、用控制结构控制程序执行的流程。 程序流程有三种最基本的结构:顺序、选择、循 环。 一个计算机程序通常可分为三部分,即输入、处 理和输出。 VB的输入输出有着十分丰富的内容和形式,它提 供了多种手段,并可通过各种控件实现输入输出操作 ,使输入输出更加灵活、多样、方便、直观。 3.1.1顺序结构 94 功能: 先计算“=”号(称为赋值号)右边的表达式的值,然后将此值 赋给赋值号左边的变量或对象属性. 说明: 应符合VB的变量命名约定。 可以是常量、变量、表达式及带有属性的对象。 格式: Let = 3.1.1 几个基本语句 1.赋值语句 95 1) “=”赋值号与数学中的等号意义不 同。 例如:语
31、句X=X+1表示将变量X的值加1后 的结果值再赋给变量X,而不是表示两边 的值相等. 2) 赋值号左边必须是变量或对象属性. 例: X=1 MyStr = “Good Morning” Command1.Caption=“确定” X+1=X (错误) 注意事项 96 3)变量名或对象属性名的类型应与表达式的类型相容. 即变量名或对象属性名能够正确存取赋值号右边的表达式的 值. 例如 Dim A As Integer, B As Single, C As Double, S As String A = 100 S = 123.45“ A = S A=123 S = A S=“123” S = a
32、bc” A = S 错误,类型不匹配 97 4)变量未赋值时,数值型变量的值为0,字符串变量的值为 空串“”。 例4-1交换两个变量的值。 设变量A中存放5,变量B中存放8,交换两个变量 的值,使变量A中存放8,变量B中存放5。 分析:交换变量需要借助第三个变量C,才能实 现交换。 代码如下: A = 5 B = 8 C = A A = B B = C 98 2. 注释语句 格式: Rem|注释内容 1)如使用Rem则在Rem与注释内容之间要 加空格;以开头,可不加 2)允许使用GoTo或GoSub语句转到一个有 行号或标号的注释语句,程序从该注释 行下面的第一条可执行语句继续执行 3)在其他
33、语句行后使用Rem,用冒号 注意事项: 99 . 停止程序执行语句 格式: End 功能:结束程序的执行。 一个程序没有End语句,对运行没有什么影响。但如果没 有End语句,或者虽然有,却没执行,程序都不能正常结束 ,此时要结束程序必须执行“运行”菜单中的“结束”命令 或单击工具栏中的“结束”按钮。为了保持程序的完整性, 应当在程序中含有End语句,并且通过End语句来结束程序 的运行。 100 InputBox函数产生一个对话框,作为输入数据的界面,等待 用户输入正文或按下按钮,并返回所输入的内容。 格式:InputBox(,) 3.1.2 输入数据 1 输入框函数(InputBox) 1
34、01 例如,假设某程序中有如下代码: MyStr=InputBox(“提示” | , 可以是窗体、图片框、打印机或立即窗口。如 果省略“对象名”,则在当前窗体上输出。 中的表达式可以是算术表达式、字符串表达 式、关系表达式或者布尔表达式,多个表达式之间的分隔 符为逗号(,)或分号(;)。 3. 用Print方法输出数据 1. Print方法 123 例: Form1Print “欢迎使用Visual Basic” 在窗体Forml上显示字符串“欢迎使用Visual Basic” Picture1Print “欢迎使用Visual Basic” 在图片框Picturel上显示字符串“欢迎使用Vi
35、sual Basic” PrinterPrint “欢迎使用Visual Basic” 在打印机上打印字符串“欢迎使用Visual Basic” 124 Print方法具有计算和输出双重功能。 对于表达式,先计算表达式的值,然后输出。输出时,数值型数 据前面有一符号位(正号不显示),后面留一个空格位;字符串原样 输出,前后无空格。 符号位 125 Print方法有两种显示格式:区分格式和紧凑格式。 当各表达式之间用逗号作为分隔符时,则按区分,显示数据个字为 单位把一个输出行分成 若干区个表达式的值。 当各表达式之间用分号作为分隔符时,则按紧凑格式输出数据,后 一项紧跟前一项输出。 126 一般
36、情况下,每执行一次Print方法都要自动换行,即每一次执行Print 时,都会在新的一行上输出数据。若要在同一行上输出数据,则可以 在末尾加上分号或逗号。 若省略,则输出一个 空行或取消前面Print末尾的逗号 或分号的作用。 127 2. 与Print方法有关的函数 格式: Tab(n) 功能: 在指定的第n个位置 上输出数据. 1) Tab函数 说明: 若n小于当前显示位置, 则自动移到下一个输出行的第n列上; 若n小于1,则打印位置在第1列; 若n大于输出行的宽度,则利用公式n Mod width计算下一个打 印位置; 若省略此参数,则将插入点移到下一个打印区的起点. 128 2) Sp
37、c函数 格式: Spc(n) 功能: 跳过n个空格. 说明: n是一个数值表达式,表示空格. 例如: Print “Hello”; Spc(3); “World” 输出结果: HelloUUUWorld Spc函数与输出项之间用分号分隔. Spc函数表示两个输出项之间的间隔, Tab函数总是从对象的左 端开始计数. 129 3.1.4 举例 例3-3 使用文本框输入圆的半径,计算圆的面积并用标签 输出。运行界面如下图所示。 Private Sub Command1_Click() Dim r As Double,s As Double Const pi = 3.1415926 r = Val(
38、Text1.Text) s=pi * r * r Label2.Caption = “圆的面积:” Y 当X=4时,条件X0成立,执行Then之后的语句X=1+X,使X的值成为5,然后执行条件 语句之后的语句Y=1+X,使Y的值成为-4,所以输出Y=-4。 当X的值为-4时,条件X=0不成立,执行Else之后的语句X=5-X,使X的值成为9,然后 同样执行条件语句之后的语句Y=1-X,使Y的值成为-8,所以输出Y=-8。 即无论条件X=0是否成立,都要执行If语句后面的语句Y=1-X。 3)单行结构条件语句可以嵌套,也就是说,在或中 可以包含另外一个单行结构条件语句。 133 2 块结构条件语
39、句 格式: If Then ElseIf Then Elself Then Else EndIf 功能:执行该块结构条件语句时,首先判断是否成立,若成立,则执行,若不成立,则继续判断ElseIf子句后的是否成立,若成立,则 执行,否则,继续判断以下的各个条件,依此类推。如果到都不成立,则执行Else子句后面的。 当某个条件成立而执行了相应的语句组后,将不再继续往下判断其他条件,而 直接退出块结构,执行EndIf之后的语句。 条件1 语句组1 条件2 语句组2 条件n 语句组n 其他语句组 134 注意:整个块结构必须以If语句开头,EndIf语句结束。除了第一行的If语句和最 后一行的EndI
40、f语句是必须的以外,ElseIf子句和Else子句都是可选的。 块结构条件语句的两种常见的简化形式: 形式一: If Then Else End If 形式二: If Then End lf 形式一的功能与单行结构条件语句功能相同,用于处理两个条件分支的情况; 而形式二仅在条件成立时执行一定的操作,当条件不成立时则不做任何处理。 135 注意: 1)使用块结构条件语句时,关键字Elself不能写成 Else If,即中间不能有空格。 2)在书写时,可以将If语句、ElseIf语句、Else子句和 EndIf语句左对齐,而各语句组向右缩进若干空格,以使 程序结构更加清楚,便于阅读和查错。 3)要
41、注意严格按格式要求进行书写,不可以随意换行 或将两行合并成一行。 4)块结构条件语句可以嵌套。 136 格式如下: Select Case Case Case Case Else End Select 3 多分支选择语句 功能: 根据的值,按顺序匹配Case后的表达式表,如果匹配成功,则 执行该Case下的语句组,然后转到EndSelect语句之后继续执行;如果的值与各表达式表都不匹配,则执行CaseElse之后的,再 转到EndSelect语句之后继续执行。 137 可以是任何数值表达式或字符表达式。可以是任何数值表达式或字符表达式。CaseCase后的表达式表可以后的表达式表可以 有如下形
42、式之一:有如下形式之一: 1)1) 1 , 2如:如:Case lCase l,3 3,5 5 表示表示 的值为的值为1 1或或3 3或或5 5时将执行该时将执行该CaseCase语句之后的语句组。语句之后的语句组。 2)2) TO TO 2:Case l0 TO 30Case l0 TO 30 表示表示 的值在的值在1010到到3030之间之间( (包括包括1010和和30)30)时将执行该时将执行该CaseCase语语 句之后的语句组。句之后的语句组。 3)Is 3)Is :Case Is=10Case Is=10 表示表示 的值大于或等于的值大于或等于1010时将执行该时将执行该Case
43、Case语句之后的语句语句之后的语句 组。组。 以上三种方式可以同时出现在同一个以上三种方式可以同时出现在同一个CaseCase语句之后,各项之间用逗号语句之后,各项之间用逗号 隔开。隔开。 如:如:Case lCase l,3 3,10 T0 20, Is010 T0 20, Is0 138 0lg 025. 1 0 xx x xee y xx 设从文本框Textl输人X的值,单击命令按钮Commandl计算Y的值, 结果显示于文本Text2中: Private Sub Command1_Click() X=Val(Text1.Text) Select Case X Case Is 0 Y
44、= Log(X)/Log(10) End Select Text2Text=Format(Y, ”0.000000”) 保留6位小数 End Sub 按以下公式求分段函数y的值 139 注意: 1)的类型应与Case后的表达式类型一致。 2)不可以在Case后的表达式中使用中的变量。 3)只能是一个变量或表达式,而不能是变量表或表达式表。 4)语句也可以嵌套,但每个嵌套的Select Case语句必须要有相应的语句。 5)不要在Case后直接使用布尔运算符来表示条件,例如,要表示条件 0X0 And X100 End Select 对于较复杂的条件,可以用块If语句来实现,而有些条件完全可以转
45、换成 Case语句允许的几种形式之一. 140 以上三种条件结构都能解决需要多分支处理的问题,但根 据不同的要求选择适当的结构进行编程,可以简化编程, 使程序结构更加清楚,便于阅读和查错。 对于简单的两个分支的情况,使用单行结构条件语句就比 较方便; 使用块结构条件语句可以处理分支较多,条件较复杂的情 况;而多分支选择结构更适合于对单一表达式进行多种条 件判断的情况。 编程时,使用条件结构语句尤其要注意两个问题, 一是条件的书写, 二是不同语句结构之间的格式区别。 141 3.2.2举例 Private Sub Command1_Click() If Text1.Text = 王刚 Then
46、If UCase(Text2.Text) = ABCDE Then MsgBox 口令正确! Else MsgBox 口令错误! End End If Else MsgBox 用户名错误! End End If Print Print Spc(20); 欢迎使用! End Sub 142 例例:运费计算运费计算.规则如下规则如下: 50km以内以内: 运费运费=运量运量(t)*距离距离(km)*1(元元) 50100km: 运费运费=运量运量(t)*距离距离(km)*0.8(元元) 101300km:运费运费=运量运量(t)*距离距离(km)*0.6(元元) 300km以上以上:运费运费=运量
47、运量(t)*距离距离(km)*0.5(元元) Private Sub Command2_Click() Dim y1, j1, yf As Single y1 = Text1.Text j1 = Text2.Text Select Case j1 Case Is 300 yf = y1 * j1 * 0.5 End Select Text3.Text = CStr(yf) End Sub Private Sub Command1_Click() Text1.Text = Text2.Text = Text3.Text = End Sub Private Sub Command3_Click()
48、 Unload Me End Sub 143 3.3 循环结构程序设计 和顺序结构、选择结构一样,循环结构是结构化程序 中的三种基本程序结构之一。在程序中,凡是需要重复 相同或相似的操作步骤,都可以用循环结构来实现。 循环结构由两部分组成: 循环体,即要重复执行的语句序列;循环体,即要重复执行的语句序列; 循环控制部分,即用于规定循环的重复条件或重复次循环控制部分,即用于规定循环的重复条件或重复次 数,同时确定循环范围的语句。数,同时确定循环范围的语句。 要使计算机能够正常执行某循环,由循环控制部分所 规定的循环次数必须是有限的,即循环体可以重复0次 到若干次。 3.3.1实现循环结构的语句
49、144 VB支持的循环结构有: ForNext循环 DoLoop循环 For EachNext循环 While Wend循环 本章将介绍ForNext循环结构和DoLoop循环结 构。其中ForNext循环结构常用于设计已知循环次数 的程序,而DoLoop WhileWend循环结构更适合于 设计循环次数未知,而只知道循环结束条件的程序。 For EachNext循环将在数组中介绍。 145 1. ForNext循环语句 在已知循环要执行多少次时,最好使用ForNext循环。 在ForNext循环中使用一个起计数器作用的循环变量,每 重复一次循环之后,循环变量的值就会按一定的步长增加 或者减少
50、,直到超过某规定的终值时退出循环。 格式如下: For = To Step Exit For Next 146 VisualBasic按以下步骤执行ForNext循环: 1)首先将设置为。 2)若为正数,则测试是否大于, 若是,则退出循环,执行Next语句之后的语句,否则继续下 一步。 若为负数,则测试是否小于,若 是,则退出循环Next语句后的语句,否则继续下一步。 3)执行循环体部分,即执行For语句和Next语句之间的语句 组。 4)的值增加值。 5)返回步骤2)。 147 以下面循环为例,以框图形式说明以下面循环为例,以框图形式说明For循环执行过程:循环执行过程: For I= to
51、 step 循环体循环体 Next I I=e1 I超过终值e2? 循环体 I=I+e3 N Y 148 说明: 、和都是数值型的,其 中,、和是必需的。 可正可负,也可以省略。若为正,则 必须小于或等于,否则不能执行循环体内的语句;若 为负,则必须大于或等于,否则不能执 行循环体内的语句;若省略,则默认为1。 Exit For 可选, 语句用于退出循环体,执行Next语句之后的 语句。必要时,循环体中可以放置多条Exit For语句。该语句 一般放在某条件结构中,用于表示当某种条件成立时,强行 退出循环。 Next语句中的必须与For语句中的一 致,也可以省略。 149 例: 求1+2+3+
52、n的值。 分析: 在程序设计中,求取一批数据的“和”是一种典型的操作 ,通常称为“累加”。 “累加”问题可以很方便地用循环来实现。设计时,一般 引入一个存放和”值的单元,如变量Sum。首先设置该 “和”值为0,然后通过循环重复执行: 和值=和值+累加项 即 Sum=Sum+I 程序代码如下:程序代码如下: For I =1 to n Sum=Sum+I Next 150 DoLoop循环结构有几种演变形式,但每一种都是通过判 断某条件以决定循环是否继续执行。所不同的是,是先判断 条件后执行循环体,还是先执行循环体后判断条件;是条件 成立时执行循环(当型循环) ,还是条件不成立时执行循环(直 到
53、型循环) 。 2. DoLoop循环语句 Do循环 当型 直到型 前测式 后测式 前测式 后测式 151 格式一 :前测式当型循环 Do While Exit Do Loop 格式二:前测式直到型循环 Do Until Exit Do Loop 格式三 :后测式当型循环 Do Exit Do Loop While 格式四:后测式直到型循环 Do Exit Do Loop Until DoLoop循环结构的四种格式 152 四种格式的区别在于的书写位置不同,可以写在 Do语句之后,也可以写在Loop语句之后,另外,之 前的关键字可以是While,也可以是Until。 使用While时,当指定的条
54、件为True时,执行循环体 中的语句组,而当条件为False时则退出循环,执行循环终止 语句Loop之后的语句。 使用Until时,当指定的条件为False时,执行循环体 中的语句组,而当条件为True时则退出循环,执行循环终止 语句Loop之后的语句。 使用While和使用Until的区别是: While表示当条件成立时执行循环体, Until则是在条件不成立时执行循环体。 153 四种格式中,格式一和格式二在循环的起始语句Do之后判断 条件,属于当型循环; 格式三和格式四在循环的终止语句Loop处判断条件,属于直到 型循环。 Exit Do语句用于退出循环体,执行Loop语句之后的语句。必
55、 要时,循环体中可以放置多条ExitDo语句。该语句一般放在某 条件结构中,用于表示当某种条件成立时,强行退出循环 也可以在Do语句和Loop语句之后都没有条件判断,这时循环 将无条件地重复,因此在这种情况下,在循环体内必须有强行 退出循环的语句,如Exit Do语句,以保证循环在执行有限次数 后退出。 154 例:从键盘输入一正整数,判断是否是素数。 输入值 K=int(sqr(n) I=2 Flag=0 I=k且Flag=0? N能被整除吗? Flag=1 I=I+1 Flag=0? 打印不是素数 打印是素数 结束 开始 程序代码如下: Input “n=”;n k=int(sqr(n)
56、I=2 flag=0 do while I=k and flag=0 if n mod I=0 then flag=1 else I=I+1 end if loop if flag=0 then print n;”is a prime number.” else print n;”is not a prime number.” end if 155 3. WhileWend循环语句 格式如下: While Wend 功能:当条件为True时,反复执行循环,为False 时退出循环。 156 通常,把循环体内不再包含其他循环的循环结构叫做单层 循环。在处理某些问题时,常常要在循环体内再进行循环操
57、 作,而在内嵌的循环中还可以再包含循环,这种情况叫多重 循环,又称为循环的嵌套。 VB对循环的嵌套层数没有限制,当循环的层数太多时,程 序的可读性会下降。 习惯上,为了使循环结构更具可读性,总是用缩排的方式 书写循环体部分。 4. 循环的嵌套 157 多层循环的执行过程是,外层循环每执行一次,内层循环 就要从头开始执行一轮。 如: For I=1 To 9 For J=1 To 9 Print I; ”*”;J;“=”;I*J Next J Next I 在以上的双重循环中,外层循环变量I取1时,内层循环就 要执行9次(J依次取1、2、3、9),接着,外层循环变量 I=2,内层循环同样要重新执
58、行9次(J再依次取1、2、3、 9),所以循环共执行81次。 158 同类循环可以嵌套,ForNext循环和DoLoop循环也可 以互相嵌套。嵌套时,内层循环必须完全嵌套在外层循环之 内。例如,以下的嵌套都是允许的 For I=1 To 10 For J=1 To 20 Next J Next I Do For J=1 To 20 Next J Loop While I=10 For I=1 To 10 Do While J=20 Loop Next I Do Do While J10 159 交叉是不允许的 For I=1 To 10 For J=1 To 20 Next I Next J
59、Do For J=1 To 20 Loop While I=10 Next J For I=1 To 10 Do While J1000 Then Exit For Next J Print I; J; F F=1 Next I F=1 Do While I1000 Then Exit Do Next J Print F F=1 I=I+1 Loop Print F 162 3.3.2 举例 例1:打印九九乘法口诀表 程序如下: Private Sub Form_Click() Dim i As Integer, j As Integer For i = 1 To 9 For j = 1 To
60、 9 Print i; *; j; =; Format(i * j, ); Next j Print Next i End Sub 163 若打印格式改进如下: 程序修改如下: Private Sub Form_Click() Dim i As Integer, j As Integer For i = 1 To 9 For j = 1 To i Print i; *; j; =; Format(i * j, ); Next j Print Next i End Sub 164 若打印格式修改如下: 程序修改如下: Private Sub Form_Click() Dim i As Integ
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 健康营养品批发商的顾客忠诚度建设考核试卷
- 猫咪科普知识
- 辽宁省营口市、鞍山市部分学校2024-2025学年七年级下学期4月月考语文试题(含答案)
- 2025年商场店铺租赁合同协议
- 2024-2025学年度广东省深圳市盐田高级中学高二第二学期3月月考(文化班)历史试题(含答案)
- 药品行业行政管理岗位
- 上海市回民中学2024-2025学年高一3月月考语文试题(原卷版+解析版)
- 培训服务在创新创业中的应用与发展
- 2025独家分销合作协议合同
- 中国结艺课程简介
- 三晶变频器说明书SAJ系列简约
- 七氟丙烷灭火系统安全操作规程(最新)
- 教学成果申报
- 谈谈微电影创作PPT课件.ppt
- 混凝土模板支撑工程专项施工方案(140页)
- 空分装置增压机大修方案
- 2021年中国华电集团公司组织架构和部门职能
- 六层框架住宅毕业设计计算书2
- MATLAB_第6讲_GUI界面设计
- 胆汁淤积和自身免疫性肝病诊治专家共识参考教学提纲
- 高中英语北师大版(2019)必修第一册 Unit3Lesson1SpringFestival
评论
0/150
提交评论