visual basic 程序设计

295
Visual Basic 程程程程 程程程程 程程程 [email protected] http://www.dstang.com 程程程程程程程程程程

Upload: olin

Post on 05-Feb-2016

63 views

Category:

Documents


0 download

DESCRIPTION

北京大学远程教育课程. Visual Basic 程序设计. 主讲教师:唐大仕 [email protected] http://www.dstang.com. 参考书. Visual Basic 程序设计, 唐大仕, 北方交大、清华大学出版社, 2002. 教学进度安排 (45 学时 ). 1. 序论 2. 数据与运算 3. 语句与分支控制 4. 循环语句 5. 过程与函数(上) 6. 过程与函数(下) 7. 数组与常用算法. 教学进度安排 ( 续 ). 8. 常用控件 9. 绘图、窗体与菜单 10. 复杂界面 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Visual Basic 程序设计

Visual Basic 程序设计

主讲教师:唐大仕[email protected]

http://www.dstang.com

北京大学远程教育课程

Page 2: Visual Basic 程序设计

参考书 Visual Basic 程序设计, 唐大仕,

北方交大、清华大学出版社, 2002

Page 3: Visual Basic 程序设计

教学进度安排 (45 学时 ) 1. 序论 2. 数据与运算 3. 语句与分支控制 4. 循环语句 5. 过程与函数(上) 6. 过程与函数(下) 7. 数组与常用算法

Page 4: Visual Basic 程序设计

教学进度安排 ( 续 ) 8. 常用控件 9. 绘图、窗体与菜单 10. 复杂界面 11. 文件、程序调试 12. API 及多媒体编程 * 13. 数据库编程 * 14. 网络编程及其他 * 15. 复习

Page 5: Visual Basic 程序设计

第 1 讲 序论

Page 6: Visual Basic 程序设计

程序与语言的概念 为什么要学习程序设计

软件 = 程序 + 文档 程序 语言

汇编语言 asm 高级语言 c, pascal, fortran, 面向对象的语言 c++, java

Page 7: Visual Basic 程序设计

Visual Basic 简介 一种程序设计环境 一种程序设计语言 具有广泛的用途

Page 8: Visual Basic 程序设计

VB 快速入门单击右击双击

Page 9: Visual Basic 程序设计

示例:按钮信息

编程提示: 要用西文标点 点启动按钮才会运行

Page 10: Visual Basic 程序设计

设计与运行 界面设计

(插入对象,设其属性)(对象窗) 程序代码

(双击对象,填写代码)(代码窗) 运行

按 F5 (或点启动按钮)

Page 11: Visual Basic 程序设计

保存 保存

窗体文件 .frm 工程文件 .vbp 其他辅助文件

编程提示: 文件应保应在自已的文件夹中,不要放在 VB98 下 每个程序放在单独的文件夹中 下次打开这个程序,只需双击 .vbp 文件即可

Page 12: Visual Basic 程序设计

编译

编译 Make .Exe 文件 / 生成 xxxxx.exe 文件

编程提示: exe 是交给最终用户的,编程者不需要它

Page 13: Visual Basic 程序设计

VB 程序设计环境 工程窗口 对象窗口 属性窗 工具箱 代码窗

Page 14: Visual Basic 程序设计

VB 三种状态 编辑状态 (edit) 运行状态 (run) 中断状态 (break)

Page 15: Visual Basic 程序设计

使用帮肋 按 F1 键 MSDN 教程 网络上的资源

www.vb-helper.com www.codeproject.com

Page 16: Visual Basic 程序设计

VB 中的对象 属性 (property) 方法 (method) 事件 (event)

Page 17: Visual Basic 程序设计

属性与方法的书写 对象 . 属性 对象 . 方法 示例: .move .ForeColor rgb 及 rnd

示例 print

Page 18: Visual Basic 程序设计

事件 Sub objName_EventName(…)

事件驱动 示例 : event_drive.frm & “”

Page 19: Visual Basic 程序设计

示例:事件改变属性

改变字体、大小、颜色

其中 等号( = )表示赋值

Page 20: Visual Basic 程序设计

小结 Visual Basic 程序设计语言 Visual Basic 程序设计环境 Visual Basic 程序设计核心概念:

对象:属性、方法、事件 事件驱动

Page 21: Visual Basic 程序设计

Visual Basic 程序设计

主讲教师:唐大仕[email protected]

北京大学远程教育课程

Page 22: Visual Basic 程序设计

第 2 讲 数据与运算

Page 23: Visual Basic 程序设计

本讲内容 进一步理解对象 数据类型 常量与变量 运算符

Page 24: Visual Basic 程序设计

进一步理解对象

Page 25: Visual Basic 程序设计

对象命名 对象名

对象名 (Name) 与文字 (Caption/Text) 不同 窗体名 . 控件名

Page 26: Visual Basic 程序设计

匈牙利命名法 对象命名的惯例:匈牙利命令名法

前缀(表类型) + 单词(表意义)

btnSayHello btnOk cmdOk btn 按钮 lbl 标签 txt 文字框 pic 图片 frm 窗体 lst 列表框 tmr 定时器 scr 滚动 chk 复选框

Page 27: Visual Basic 程序设计

特殊对象名 事先定义好的对象 Me, Screen, Printer , App, Debug

注: Me表示当前窗体 Me. 可省略

编程技巧: Ctrl+J 快速提示 F2 对象浏览

Page 28: Visual Basic 程序设计

几种常用对象 按钮 CommandButton btn 标签 Label lbl 文本框 TextBox txt 图片框 PictureBox pic

Page 29: Visual Basic 程序设计

常见的属性 Name ForeColor, BackColor FontSize FontN

ame Top Left Width Height Caption/ Picture/ Text / Value Visiable Enabled

Page 30: Visual Basic 程序设计

默认属性 对象有一个默认属性 ( 属性值 )

如: Label 的 Caption, Text 的 Text 如: Text1.Text = "...." 可写为 Text1 = "...."

Page 31: Visual Basic 程序设计

常见的方法 Move (适用于各种控件 ) Print (适用于窗体及图片框 ) Show / Hide (适用于窗体 )

Page 32: Visual Basic 程序设计

常见的事件 有关Mouse, keyboard, 有关选择,文字改变

Page 33: Visual Basic 程序设计

事件驱动编程 对象之间的相互作用 示例:两个文本框显示同样的文本

文本框的事件 跳动的小球

Shape形状对象 : Shape FillColor FillStyle

Timer 计时器对象 : Interval

Page 34: Visual Basic 程序设计

数据与运算 数据:常量与变量 数据的类型

数据的含义不同 数据的运算不同 数据的存储方式不同

Page 35: Visual Basic 程序设计

数据类型 类型 类型符 前缀 占字节数 字节型 Byte b 1 (0-255) 整型 Integer % i 2 (-32768~32767) 长整型 Long & l 4 单精度 Single ! s 4 双精度 Double # dbl 8

Page 36: Visual Basic 程序设计

数据类型(续) 逻辑型 Boolean 2 True/False 日期型 Date 8 字符串型 String 后缀 $ 对象型 Object 变体型 Variant

Page 37: Visual Basic 程序设计

变量 变量的含义 变量的名字

用字母、数字、下划线构成 不能用数字开头

Page 38: Visual Basic 程序设计

变量的定义 隐式定义

不定义而直接赋值 a = 99*99

显式定义:使用 Dim Dim a As Integer Dim iCount% As Integer Dim studentName As String*8 注:还有 Private, Public, Static等词可以定义变量(以后会讲到)

Page 39: Visual Basic 程序设计

Option Explicit 该语句表示变量必须显示定义 它必须放在程序中的第一句 使用它可以减少程序中的错误

Page 40: Visual Basic 程序设计

字面常量 整数、实数 类似于数学中的写法

如 123 -45 123.45 2.3E-5 十六进制 &H0027D9 长整数 1234&

日期 #9:21:30 PM# #7/21/99#

逻辑 True False

字符 "Hello" "A" ""

Page 41: Visual Basic 程序设计

符号常量 Const Pi As Double =3.14

Page 42: Visual Basic 程序设计

较高要求( * ) 自定义类型

用于表示多个数据的组合 Private Type…End Type

枚举 用于表示有限个常量 Private Enum…End Enum

Page 43: Visual Basic 程序设计

运算符

算术运算 + - * / \ mod(取余) ^(乘方 ) 字符串连接 & + 关系运算 > < = >= <= <> 逻辑运算 And Or Not

Page 44: Visual Basic 程序设计

表达式 表达式举例:参 表达式 .txt

Page 45: Visual Basic 程序设计

运算符的优先级与结合性 优先级(从高到低) :

算术运算 (其中 ^ */\ +- ) 关系运算 逻辑运算 (其中 NotAndOr )

结合性 从左向右

Page 46: Visual Basic 程序设计

程序的基本过程: 输入处理输出 示例:圆的面积 InputBox, MsgBox 示例: a *b = c

Page 47: Visual Basic 程序设计

示例 求解一元二次方程

Page 48: Visual Basic 程序设计

小结 进一步理解对象 数据类型 常量与变量 运算符

Page 49: Visual Basic 程序设计

Visual Basic 程序设计

主讲教师:唐大仕[email protected]

北京大学远程教育课程

Page 50: Visual Basic 程序设计

第 3 讲 语句与分支控制

Page 51: Visual Basic 程序设计

本讲内容 简单语句 输入及输出 If/ElseIf 语句 Select Case 语句

Page 52: Visual Basic 程序设计

VB 语言 程序设计语言的两个重要方面:

数据 控制

Page 53: Visual Basic 程序设计

简单语句 简单语句

一句一行 多句同行 ( 用: ) 一句跨多行 ( 用 _ )

Page 54: Visual Basic 程序设计

注释 对程序的执行没有影响 用单引号开始 ,直到行尾 注释的用途:

对一段程序 对一些变量 对一些算法

Page 55: Visual Basic 程序设计

赋值语句 = 示例 : a=a+1 示例 : 移动的小球 示例:交换两变量值

Page 56: Visual Basic 程序设计

输入与输出 程序的基本过程 :

输入处理输出 输入输出的常见方法:

使用控件进行输入输出 使用 InputBox, MsgBox 使用 Print

Page 57: Visual Basic 程序设计

Print 的使用 Print

换行 不换行(,或;)

相关函数 Space , Tab, Format

示例:圆的面积 方法 Print, cls , 与;

示例: a *b = c

Page 58: Visual Basic 程序设计

If条件语句 两种写法:

同一行: If 条件 Then … Else …

多行: If 条件 Then … Else … End If

示例:小球 示例:闰年

Page 59: Visual Basic 程序设计

条件语句嵌套 条件语句的嵌套

示例:性别,年龄的判断 示例 : 判断圆的半径

编程提示: 使用 Tab 键正确地缩进

Page 60: Visual Basic 程序设计

ElseIf 示例:分数的判断 示例:所得税的计算

Page 61: Visual Basic 程序设计

Select Case Select case 表达式 case 常量 。。。。 case 常量 。。。。 case else …. End Select 示例: 分数

Page 62: Visual Basic 程序设计

示例: 自动出题及判分 加减乘除 If 及 Select 的使用 随机数的使用

Rnd 及 Randomize

Page 63: Visual Basic 程序设计

IIF 函数 IIf(条件 , 式 1, 式 2 ) Choose( 数 a ,式 1 , 式 2 , … ) Switch(条件 1 ,表达式 1 ,条件 2 ,表达式 2 ,…… )

Page 64: Visual Basic 程序设计

小结 简单语句 输入及输出 If/ElseIf 语句 Select Case 语句

Page 65: Visual Basic 程序设计

Visual Basic 程序设计

主讲教师:唐大仕[email protected]

北京大学远程教育课程

Page 66: Visual Basic 程序设计

第 4 讲 循环语句

Page 67: Visual Basic 程序设计

本讲内容 控制结构与流程图 For Next 语句 Do Loop 语句 循环出口语句 循环的嵌套 循环的应用 ---- 数列求和

Page 68: Visual Basic 程序设计

三种控制结构 为什么要有循环 程序的三种控制结构

顺序 分支(选择) 循环

Page 69: Visual Basic 程序设计
Page 70: Visual Basic 程序设计

程序流程图 流程线 开始与结束 任务及子任务 输入与输出 条件判断

Page 71: Visual Basic 程序设计
Page 72: Visual Basic 程序设计

For 语句 For v=1 To 100 Step 2

…Next

其中 Step 1 可以省略

Page 73: Visual Basic 程序设计

使用 For 语句 示例

显示 1-100 画同心圆 1+2+…+100 1*1+2*2 +...+100*100 6^3+....+69^3

Page 74: Visual Basic 程序设计

Do Loop Do While 条件 。。。 Loop

示例 :角谷猜想

Page 75: Visual Basic 程序设计

Do 循环的几种写法 Do While 条件 ( 或 :Until条件 )

。。。 Loop

Do 。。。 (至少执行一次循环)

Loop While 条件 ( 或 :Until条件 )

While 条件 。。。

Wend

Page 76: Visual Basic 程序设计

循环的五要素 初始化 循环条件 循环动作 循环改变 结束后处理

Page 77: Visual Basic 程序设计

理解循环 1 变量 5 要素 3典型 几种循环的比较

Page 78: Visual Basic 程序设计

循环出口语句 Exit For

示例 : 判断质数 Exit Do 其他几个相关的语句:

Exit Sub 退出此段 Sub子程序 End 结束整个程序 Stop 停止执行,进入中断状态

Page 79: Visual Basic 程序设计

循环的嵌套 示例

九九乘法表 画图 1! +2! +…. +10! 2-100以内的角谷猜想

内外循环的关系 每重循环的控制变量 控制变量间的关系

Page 80: Visual Basic 程序设计

循环的应用 数列求和 : ---递推法 1! + 2! +…. + 10! 2+22+222+… Exp_sum Pi/2 Pi/4

7

1

5

1

3

11

4

753

321

53

21

3

11

2

!3!2

132 xx

xex

Page 81: Visual Basic 程序设计

程序的 3 种结构 顺序 选择(分支) 循环

Page 82: Visual Basic 程序设计

编码约定 变量名

Option Explict 匈牙利命名法 :类型及含义

注释 使用‘ 针对一段程序或一条语句

缩进 编进 空格、空行

Page 83: Visual Basic 程序设计

GoTo 语句 GoTo 标号或行号

标号:。。。。 On 表达式 GoTo 行号 ,……, 标号 , 尽量少用 GoTo 语句

Page 84: Visual Basic 程序设计

小结 控制结构与流程图 For Next 语句 Do Loop 语句 循环出口语句 循环的嵌套 循环的应用 ---- 数列求和

Page 85: Visual Basic 程序设计

Visual Basic 程序设计

主讲教师:唐大仕[email protected]

北京大学远程教育课程

Page 86: Visual Basic 程序设计

第 5 讲 过程与函数(上)

Page 87: Visual Basic 程序设计

本讲内容 过程 函数 参数传递 过程中的变量

Page 88: Visual Basic 程序设计

过程 学习 VB 语言:

单词语句篇章

使用过程的好处 任务分解 代码重用

Page 89: Visual Basic 程序设计

事件过程与普通过程 事件过程

与某个对象事件相关 过程名为: 对象名 _ 事件名 如: Sub Command1_Click() 如: Sub Form_Load()

普通过程 与事件无关 表示某项任务

Page 90: Visual Basic 程序设计

过程的定义 Sub 过程名(参数 As 类型,。。。) 。。。 End Sub

Page 91: Visual Basic 程序设计

过程的调用 使用 Call

Call 过程名 (参数值。。。) 注意,要用括号

或省略 Call 过程名 参数值,。。。 注意,不用括号

示例 :sub_print100 示例 :sub_delay

注 :second, do loop

Page 92: Visual Basic 程序设计

函数 函数也是一种子程序

是一种带返回值的过程

内建函数 已由 VB定义好,可直接使用 如: CInt(), Int(), Rnd(), Now()

Page 93: Visual Basic 程序设计

函数的定义 Function 函数名(参数,。。。) As 类型

。。。其中有一句 : 函数名 =某个值 End Function

Page 94: Visual Basic 程序设计

函数的调用 一般用于表达式:

函数名 (参数值。。。) 用括号 如果忽略结果,也可以当过程来调用:

函数名 参数值,。。。 示例:

fac1_10_fun :求 1! +2! +……+10! prime_fun :求 100以内的质数

Page 95: Visual Basic 程序设计

参数的传递 形参与实参 参数的传递

按位置传送 按名传送( * )

变量名 :=值

Page 96: Visual Basic 程序设计

传值与传址 传值 ByVal 传址 ByRef (缺省为 ByRef )

示例 简单示例 fun_digi2Sum

Page 97: Visual Basic 程序设计

特殊的参数 可选参数( * )

Optional 可变参数( * )

ParamArray xxxx()

Page 98: Visual Basic 程序设计

模块 模块

工程 /添加模块 工程 / 属性 / 启动对象

模块中的变量 / 过程 模块名 . 过程名 Public 与 Private 过程 过程缺省是 Public 的

Page 99: Visual Basic 程序设计

变量的作用域 作用域(可见性)

全程变量 Public 或 Global 窗体级变量 Private 或 Dim 局部变量 Dim

示例

Page 100: Visual Basic 程序设计

变量的生存期 生存期

普通变量 有产生和消失 静态变量 (Static) 不消失

Static 函数或过程 其中所有变量为 static

示例

Page 101: Visual Basic 程序设计

小结 过程 函数 参数传递 过程中的变量

Page 102: Visual Basic 程序设计

Visual Basic 程序设计主讲教师:唐大仕

[email protected]

北京大学远程教育课程

Page 103: Visual Basic 程序设计

第 6 讲 过程与函数(下)

---- 常用函数

Page 104: Visual Basic 程序设计

本讲内容 I/O函数 数学函数 字符函数 日期时间函数 转换函数

Page 105: Visual Basic 程序设计

再谈使用帮助 F1 使用 MSDN F2 浏览对象 Ctrl+G 立即窗口

其中使用 Print 或 ?来显示一个表达式

Page 106: Visual Basic 程序设计

I/O函数 MsgBox

有关按钮图标 / 有关返回值 MsgBox "hello", vbInformation

InputBox 有关默认值 / 有关返回值 a = InputBox(" Please Input a num", , 99)

Beep 附: Enum枚举的定义

例: Enum_weekday

Page 107: Visual Basic 程序设计

数学函数 Rnd

Int(Rnd * 9) + 1, Randomize Sqr, Abs Sin, Cos Log, Exp Int 示例:

rnd_luckynum Rnd_投针 Sqr_triangle_area

Page 108: Visual Basic 程序设计

字符串函数 Len LTrim, RTrim, Trim UCase, LCase Left, Right, Mid InStr Asc, Chr, String 示例: str_encrypt, str_InStr_email

str_num2chinese

Page 109: Visual Basic 程序设计

日期函数 Date, Time, Now Year, Month, Day, Weekday Hour, Minute, Second DateDiff, DateAdd

Page 110: Visual Basic 程序设计

转换及判断 CInt, CLng, CDbl, CDate, CStr Str, Int, Val Hex, Oct Format

Format( Now(), "hh:mm:ss" ) Format( 3.14, "#,###.000" )

IsNumeric, IsDate

Page 111: Visual Basic 程序设计

小结 I/O: MsgBox InputBox Beep 数学: Rnd Abs Int Sqr Sin Cos Log Exp 字符串: Len LTrim RTrim Trim UCase Mid Left Right InStr Chr Asc 日期: Date Time Now Year Month Day 转换判断 CInt Val Format IsDate IsNumeric

Page 112: Visual Basic 程序设计

Visual Basic 程序设计

主讲教师:唐大仕[email protected]

北京大学远程教育课程

Page 113: Visual Basic 程序设计

第 7 讲 数组及常用算法

Page 114: Visual Basic 程序设计

本讲内容 数组 遍试 迭代 递归

Page 115: Visual Basic 程序设计

数组 数组的概念

加上下标来决定是哪个变量 定义数组

Dim 数组名(数组大小) As 类型 使用数组

数组名 ( 下标) For Each……Next

Page 116: Visual Basic 程序设计

数组的大小 下标 Dim a(100) 0--100 Dim a( 2 to 9 ) Option Base 0 或 1 二维数组 dim c(10,20) LBound () 最小下标 UBound ()最大下标

Page 117: Visual Basic 程序设计

动态定义数组大小 Dim A( ) as Integer n= 计算出的一个数 ReDim A(n) As Integer ReDim Preserve age(i)

Page 118: Visual Basic 程序设计

几个细节 数组元素可以为不同类型

Dim x(10) As Variant 数组的其他定义词

Dim , Public( 在模块中 ), Private, Static 数组作参数

Sub MySub ( x( ) As Integer) Call MySub( a() )

Page 119: Visual Basic 程序设计

数组的应用 最大值与平均值 排序,插入 筛法求素数 约瑟夫问题 Fib 数列 , 其他数列 杨辉三角

Page 120: Visual Basic 程序设计

Array等函数 (*) Array() 及 IsArray()

Dim ary As Variant ary = Array("apple", "banana", "…")

Split() 及 Join() ary = Split("This is a book", " ") j = Join(ary, "@")

Page 121: Visual Basic 程序设计

集合 (*) Collection

Add Remove Count Item For Each……Next

Page 122: Visual Basic 程序设计

算法 指令的有限序列 特点:

有穷性 确定性 可行性

Page 123: Visual Basic 程序设计

遍试 逻辑上:针对所有可能的情况, 形式上: For 中用 If

示例: 1.韩信点兵 ,百鸡问题 ,鸡兔同笼问题

2.水仙花数 13+53+33=153 3. 完全数 28=1+2+4+7+14 4.百分币 5. 佩尔方程 5.验证猜想 :哥德巴赫猜想

Page 124: Visual Basic 程序设计

迭代 逻辑上:多次使用同一算法 形式上: a = f( a )

示例: 1.求平方根 2. Mandelbrot集 ,Julia集 3. 倍边法求 Pi 4. 数字平方和

Page 125: Visual Basic 程序设计

Xn Xn+1

)(/)( '1 nnnn xfxfxx

Page 126: Visual Basic 程序设计

递归 逻辑上:一个问题化为同样的问题 形式上:自己调用自己

示例: 1.求阶乘 2.菲波那契数列 3. Celay树 , Koch 分形集

Page 127: Visual Basic 程序设计

小结 数组 : 定义与下标 遍试: for 中用 if 迭代 : for 中 n=f(n) 递归 : f(n) 中用 f(n-1)

Page 128: Visual Basic 程序设计

Visual Basic 程序设计

主讲教师:唐大仕[email protected]

北京大学远程教育课程

Page 129: Visual Basic 程序设计

第 8 讲 常用控件

Page 130: Visual Basic 程序设计

界面设计 界面设计的重要性 界面元素

控件 窗体 绘图 菜单 其他

Page 131: Visual Basic 程序设计

有关控件的使用 怎样得到控件相关的属性、方法与事件 :

Ctrl_J 快速提示 F1 --MSDN (如果安装了MSDN) F2 --Object Browser

可以参考其他一些资源 光盘,如: <<编程资源大全 >> 书籍,如: <<VB6 参考手册 >> www.codeguru.com www.helpwork.net

Page 132: Visual Basic 程序设计

控件的一般属性 Alignment 对齐方式

0 vbLeftJustify 1 vbRightJustify 2 vbCenter

Appearance 0 1:3D AutoSize True False BackColor ForeColor

RGB(r,g,b) vbRed vbGreen QBColor(Rnd * 15) 123235& &Hrrggbb&

Page 133: Visual Basic 程序设计

控件的一般属性 ( 续 ) BorderStyle Caption Font

xxx.Font.Bold = true xxx.Font.Italic = True xxx.Font.Underline = True xxx.Font.Size = 24 xxx.Font.Name = "宋体 " 或 xxx.FontName = "宋体 "

Left Top Width Height

Page 134: Visual Basic 程序设计

控件的一般属性 ( 续 ) MousePointer MouseIcon

(当MousePointer 为 99 时,设 MouseIcon)

Picture 设计时:选择文件 或 粘贴图片 运行时: xxx.Picture = LoadPicture(“ 文

件” )

Page 135: Visual Basic 程序设计

控件的一般属性 ( 续 ) ToolTipText UseUnemonic

caption 中用 &,如 "xxxx&Xxxxx" Visiable: True False Enabled: True False WordWrap MultiLine

Page 136: Visual Basic 程序设计

CommandButton 按钮 Caption Style, Picture, ToolTipText Enabled

Page 137: Visual Basic 程序设计

Label 标签 ToolTipText, AutoSize, WordWrap, Alignment

0 vbLeftJustify 1 vbRightJustify 2 vbCenter

例 : Label_mouse_shell_263 注 :shell "程序名 参数 " 表示调用外部程序

Page 138: Visual Basic 程序设计

TextBox 文本框 SetFocus 方法 ,

GotFocus, LostFocus 事件 SelStart, SelLength, SelText, Text MultiLine, ScrollBars PasswordChar "*" Locked,Enabled 示例 :text_sel_password_enter

Page 139: Visual Basic 程序设计

Frame 框 Caption BorderStyle 框 : 容器 线 成组 Visible

Page 140: Visual Basic 程序设计

CheckBox 及 OptionButton CheckBox 复选框

Value(1 或 0 或 2):vbChecked OptionButton 单选框

Value(Ture 或 False) 放到一个 Frame 经常做成控件数组

示例: Checkbox_option.frm

Page 141: Visual Basic 程序设计

滚动条 HScrollBar, VScrollBar Max, Min, Value

Page 142: Visual Basic 程序设计

Shape 及 Line Shape形状 / Line 线

Shape / x1,y1,x2,y2 BorderStyle, BorderColor BorderWidth FillStyle, FillColor, BackStyle, BackColor

Page 143: Visual Basic 程序设计

Timer 定时器 Timer

Interval, Enabled

示例 : Timer_Shape_Line_Clock.frm

Page 144: Visual Basic 程序设计

ListBox 及 ComboList ListBox 列表框 ComboList 组合框 '可以认为 ComboList=List + Text Style MultiSelect List(i), ListCount, ListIndex, Selected(i), SelCount AddItem, RemoveItem, Clear 方法 Combo 的 Text 示例: Combox_list.frm

Page 145: Visual Basic 程序设计

PictureBox 及 Image PictureBox

可作容器,可以在上面画图 xxx.Picture = LoadPicture("XXX.jpg")

Image Picture

不能作容器 , 但可以 Stretch Image1.Picture = LoadPicture("XXX.bmp")

示例:跳舞的小女孩 dance_girl

Page 146: Visual Basic 程序设计

小结 控件的一般属性 CommandButton, Label, TextBox Frame, CheckBox, OptionButton HScrollBar, VScrollBar ListBox, ComboBox PictureBox, Image

Page 147: Visual Basic 程序设计

Visual Basic 程序设计

主讲教师:唐大仕[email protected]

北京大学远程教育课程

Page 148: Visual Basic 程序设计

第 9 讲 绘图、窗体与菜单

Page 149: Visual Basic 程序设计

本讲内容 绘图 窗体 多窗体 菜单

Page 150: Visual Basic 程序设计

绘图 在哪里绘图:

窗体上 如: Me.Circle (1000,1000),300

PictureBox 上 如 : Picture1.Circle (1,1),1

Page 151: Visual Basic 程序设计

单位及比例尺 比例尺 ScaleMode

=vbTwips 1/1440 inch =vbPixels 像素

Scale (-50,50)-(50,-50) ScaleLeft ScaleTop ScaleWidth ScaleHeight

Page 152: Visual Basic 程序设计

Scale (-50,50)-(50,-50)

Page 153: Visual Basic 程序设计

绘图状态 CurrentX=100, CurrentY=100 ForeColor BackColor DrawWidth DrawStyle FillColor FillStyle

DrawMode =vbCopyPen, =vbXorPen

Font FontSize, FontName, FontBold, FontItalic

Page 154: Visual Basic 程序设计

绘图方法 Line (x,y)-(x,y), color, BF Circle (x,y), r, color Circle (x,y), r, color, start, end, aspect PSet (x,y), color Print "....." Cls 示例: draw_simple.frm

Page 155: Visual Basic 程序设计

绘图示例 函数图 螺线 画极坐标图 旋转的椭圆 画金刚石

Page 156: Visual Basic 程序设计

窗体 Form 窗体与对话框

添加窗体 加入系统定义的窗体或对话框

Page 157: Visual Basic 程序设计

特殊的事件 Resize Paint 示例: Form_Resize_Paint.frm

Page 158: Visual Basic 程序设计

特殊的属性 BackColor BorderStyle WindowStatus StartupPosition MousePointer 示例:简单屏保: form_screen_saver.frm

生成屏保: File/Make EXE 文件名为: xxxx.scr 然后将 xxxx.scr 文件复制到 c:\windows目录下

示例:屏保 ScreenSaver ( * )

Page 159: Visual Basic 程序设计

多窗体 加入窗体:

Project/Add Form 已有的窗体及对话框

加入模块: Project/Add Module (模块中可以定义变量 public,定义 Sub,Fu

nction) 设定程序入口:

Project/Property/Startup Object

Page 160: Visual Basic 程序设计

窗体的显示 当某个事件发生时(如点击某个菜单或图片 ) Form2.Show Me.Hide Load Form2 Unload Form3 frmAbout.Show vbModal, Me '模态

Page 161: Visual Basic 程序设计

程序生成多窗体 (*) Dim f As New Form1 f.Show

示例: Form_As_New.frm

Page 162: Visual Basic 程序设计

模块 用于定义变量、函数、过程

Public xxxx As String Public Sub xxxxx( xxx ) Public Function xxxx(xxx) As XXXX

Public Sub Main() 可作为程序入口

调用模块中的过程 可以用模块名如: Call Module1.mysub

Page 163: Visual Basic 程序设计

怎样在窗体之间交流信息 直接使用控件:

Form2.Text1.Text = "hello" 使用模块中的变量

在模块中定义变量: Public age As Integer 在窗体 1 中对它赋值: age = Text1.Text 在窗体 2 中使用它: If age>18 Then

Page 164: Visual Basic 程序设计

Menu 菜单 进入菜单编辑器: Tools/MenuEditor (或按 Ctrl+E) 有关菜单项:

菜单名( Name) 菜单文字 (Caption) 其中用 & 表示下划线(如 &Open) 用单独的减号( - )表示分隔线 快捷键 ShorCutKey 如 Ctrl+O 菜单的级别 (按左右箭头按钮) Checked,Enabled,Visible WindowList

Page 165: Visual Basic 程序设计

菜单的编程 与按钮相似 菜单上单击,对 XXX_Click 事件进行处理

Page 166: Visual Basic 程序设计

上下文菜单 (*) 设计时:

使该菜单不可见 ( Visiable 为 False) 程序中,弹出:

在 MouseDown 事件中, If Button=vbRightButton Then PopupMenu menu5

示例 Form_menu_simple.frm

Page 167: Visual Basic 程序设计

小结 绘图:状态与方法 窗体:事件与属性 多窗体:加入与交互 菜单:编辑与编程

Page 168: Visual Basic 程序设计

Visual Basic 程序设计

主讲教师:唐大仕[email protected]

北京大学远程教育课程

Page 169: Visual Basic 程序设计

第 10 讲 复杂的界面

Page 170: Visual Basic 程序设计

本讲内容 多控件 外部控件 控件数组 MDI 菜单、通用对话框、工具栏、状态栏等

Page 171: Visual Basic 程序设计

多控件的布局 多控件的选定与设置 对齐与大小 TabIndex ( Tab顺序) 控件的成组

示例:人员信息 _control.frm

Page 172: Visual Basic 程序设计

外部控件 ActiveX Control (外部控件)

是已经编好的程序,可用于 VB 中 一般存在于 .ocx .dll 文件中

加入外部控件的步骤: 1. 工具箱上点右键,选 Component...( 组

件) 从中进行选择,如: Microsoft Windows Common Control 2.从工具箱上,选控件,加入到窗体中

Page 173: Visual Basic 程序设计

使用外部控件 1. 属性 : F4, 属性窗 点右键 , 打开属性页 2. 方法 / 事件 3. 系统中必须有控件

例 : Microsoft Windows Common Contro 的ProgressBar( 参见书中示例)

Page 174: Visual Basic 程序设计

控件数组 控件数组 :

同名的多个控件,称为控件数组 每个控件的 Index 不同

产生方法(以下方法均可): 1. 复制、粘贴 2.将多个控件的名字相同 3. 设 Index 4. 程序中 Load XXX(i)则生成一个新的

复杂示例:计算器 ( 不讲 )

Page 175: Visual Basic 程序设计

处理控件数组的事件 在控件的事件中可以用 Index

示例:按钮数组 .frm 示例:六个滚动条: line_color_grad_scroll.frm 示例:排块游戏 .frm

(练习使用控件数组、过程、函数) 有趣示例:雪花飘飘 snowflake

Page 176: Visual Basic 程序设计

更复杂的界面 (*) SDI: 单文档界面 MDI: 多文档界面

Page 177: Visual Basic 程序设计

使用 MDI 及菜单 加入一个 MDIForm 加入一个 frmAbout 将MDIForm 设为启动对象

(Project/Property/StartObject) 在 MDIForm 中加入菜单

(Ctrl+E) 将 Form1 的 MDIChild置为 True

(F4 属性窗中设 ) 在 Form1 上加入菜单

(Ctrl+E)

Page 178: Visual Basic 程序设计

使用 ActiveX控件 工具箱加入 ActiveX控件

(工具箱上点右键 ,选 Components) Microsoft Rich Text Box Control Microsoft Windows Common Contr

ol Microsoft Common Dialog Control

Page 179: Visual Basic 程序设计

使用 RichText 及通用对话框 在 Form1 上加入 RichTextBox,命名为Rich1

在 Form1 上加入 CommonDialog

Page 180: Visual Basic 程序设计

通用对话框 .showOpen .showSave .showFont .showColor .showPrint 示例: CommDialog 示例:参见WebBrowser

Page 181: Visual Basic 程序设计

使用 ClipBoard GetText SetText

Page 182: Visual Basic 程序设计

使用工具条 在 Form1 上加入 ToolBar

在其中加多个按钮: Buttons/InsertButton 在 Form1 上加入 ImageList

在其中加多个图片: ImageList/InsertPicture 为工具条设图片:

在 ToolBar1/ImageList 中选 ImageList1 然后设每一个 Button 的 Image

为工具条编程: 其中利用 Button.Index

Page 183: Visual Basic 程序设计

使用状态栏 在 Form1 上加入 StatusBar 加入多个 Panel 设定 Panel 的类型 设定图片 对 StatusBar 进行编程

Statusbar1.Panel(3).Text = “…”

Page 184: Visual Basic 程序设计

小结 多控件的布局 外部控件 控件数组 MDI 菜单、通用对话框、工具栏、状态栏等

Page 185: Visual Basic 程序设计

Visual Basic 程序设计

主讲教师:唐大仕[email protected]

北京大学远程教育课程

Page 186: Visual Basic 程序设计

第 11 讲 文件、程序调试

Page 187: Visual Basic 程序设计

本讲内容 文件的分类及操作 文件及目录控件 程序的调试 从程序到软件

Page 188: Visual Basic 程序设计

文件的概念 是信息的集合 存储于一定的介质上 按名存取

E:\vb_class\Draw\Form1.frm \\teacher\share\sub\file1.txt

Page 189: Visual Basic 程序设计

文件的种类 顺序文件 (sequential file)

文本文件 , 不定长记录文件 随机文件 (random access file)

定长记录文件 二进制文件 (binary file)

所有其他文件

Page 190: Visual Basic 程序设计

文件的操作 文件的打开

Open 文件名 [For 方式 ] [Access 存取类型 ] As[#]文件号

FreeFile() 得到可用的文件号 读写

Line Input, Get Print, Write, Put等 EOF() 判断是否到文件尾

关闭 Close 文件号

Page 191: Visual Basic 程序设计

文件应用举例 文本文件

示例: FileCopy_AddLineNum 注 : On Error ....

定长记录的文件 (*) 示例: File_Random_Student

二进制文件 (*) 示例: File_Read_Bmp

Page 192: Visual Basic 程序设计

文件及目录控件 DriveListBox,

Drive1.Drive DirListBox,

Dir1.Path FileListBox

File1.Path File1.FileName

示例: 图片浏览器 pic_browser

Page 193: Visual Basic 程序设计

通用对话框 Microsoft Common Dialog Control .ShowOpen .ShowSave .ShowFont .ShowColor .ShowPrint

Page 194: Visual Basic 程序设计

文件和目录管理 FileSystem 用于文件及目录的管理

FileCopy 复制文件 Kill 删除文件 MkDir 建立目录 RmDir 删除目录 GetAttr 文件及目录属性 FileLen 文件长度 FileDateTime 文件时间

Page 195: Visual Basic 程序设计

Dir 查找文件 Dir(“*.txt”) 用于首次查找 在循环中, Dir() 用于其他各次查找

示例 DirFind File_Find_Recurse

Page 196: Visual Basic 程序设计

程序中的错误 错误的种类

语法错 逻辑错 运行错

减少错误的一般方法: Tab缩进 ,空格 ,空行 ,注释 变量名 (匈牙利命名法) 显式定义变量 ,Dim,Option Explicit

Page 197: Visual Basic 程序设计

调试 (debug) 断点 (breakpoint):

在行的左边单击 或 F9 跟踪 (trace)

F8, Shift_F8 执行到当前行 (Run to cursor ) 点右键 , Ctr_F8

观察 (watch) 光标指向一个变量 View/Watch Window,然后点右键 , Add Watch 使用立即窗口 (Immediate) ?表示 print

Page 198: Visual Basic 程序设计

错误的捕获与处理 错误的捕获

On Error Resume Next On Error Goto XXXXXX

错误的捕获 XXXXX: Err.Number Err.Description

产生错误: Err.Raise

示例 :err_divby0 err_fordebug ary_prime_filter

Page 199: Visual Basic 程序设计

从程序到软件 软件工程的基本概念 软件开发过程

计划 需求分析 系统设计 软件实现 确认 维护

Page 200: Visual Basic 程序设计

小结 文件的分类及操作 文件及目录控件 程序的调试 软件工程的基本概念

Page 201: Visual Basic 程序设计

Visual Basic 程序设计

主讲教师:唐大仕[email protected]

北京大学远程教育课程

Page 202: Visual Basic 程序设计

第 12 讲 API 及多媒体编程

Page 203: Visual Basic 程序设计

本讲内容 API 图像动画 音频 视频

Page 204: Visual Basic 程序设计

API 的概念 API

Application Programming Interface 应用程序编程接口

Win32 API

Page 205: Visual Basic 程序设计

使用 API 声明 API

Private Declare Function .…Lib … Alias …

若使用 Public ,则必须放入模块文件中 调用

a = 函数名 ( 参数 ) Call 过程名 ( 参数 ) 函数名 参数

Page 206: Visual Basic 程序设计

使用 API Text Viewer 打开 API Text View (API浏览器 ) File/Open 打开 Win32API.txt 选 Declare 或 Constants 选 Private 或 public 最后 Copy到 VB 中

Page 207: Visual Basic 程序设计

声明常数与类型 常数

Private Const 类型

Private Type 句柄作参数

句柄 Handle, 是一个数字 , 代表某个对象 如 Me.hwnd 代表窗体

Page 208: Visual Basic 程序设计

API 应用举例 GetTickCount Topmost WinRoundRect 设定桌面墙纸

Page 209: Visual Basic 程序设计

多媒体编程 多媒体的概念 多媒体编程的基本方式

使用 API 使用 MCI指令 使用 ActiveX控件

Page 210: Visual Basic 程序设计

图像及动画 常用的图像文件

.bmp/.jpg/.gif, .png 动画

使用 Image 或 PictureBox来实现图像的切换 图像的进一步处理

使用 bitblt BitBlt Pd.hDC, x, y, w, h, Ps.hDC, x, y, COPY_PUT

使用 PaintPicture PaintPicture img.Picture, x,y,w,h, x,y,w,h

示例: Bitblt_PaintPicture

Page 211: Visual Basic 程序设计

播放声音 常用的声音文件

.wav .mid .midi .mp3

使用Win32 API 使用 sndPlaySound 使用 Beep

使用声卡驱动程序中的 API 与具体的声卡相关

Page 212: Visual Basic 程序设计

使用 MCI指令 MCI指令 API

Private Declare Function mciSendString Lib "MMSYSTEM" (ByVal lpstrCommand As String, ByVal lpstrReturnStr As Any, ByVal wRetumLen As Integer, ByVal hCallBack As Integer) As Long

播放 CD , AVI 示例: MCI_Play.frm 演示: Piano

Page 213: Visual Basic 程序设计

MMControl 控件 使用 Microsoft Multimedia Control 播放 CD

MMControl1.DeviceType = "CDAudio" MMControl1.Command = "open"

播放 wav MMControl1.DeviceType = "WaveAudio" MMControl1.FileName = " ……." MMControl1.Command = "open"

Page 214: Visual Basic 程序设计

Media Player 控件 常用的媒体文件

.avi .mpg

使用 Windows Media Player 控件 播放声音 (.mid, .wav, .mp3) 播放视频 (.avi, .mpg ) .FileName = “…” .Play 在 Media Player9以上版本,使用 .URL表示文件名

Page 215: Visual Basic 程序设计

流式媒体 流式媒体

Real 格式: .rm,.ram Microsoft 格式: .asf

Real Player 控件

Page 216: Visual Basic 程序设计

Flash 动画 使用 Flash Shockwave Flash Control .movie=“……” .play

Page 217: Visual Basic 程序设计

使用 Agent 及 Speech Agent Speech

Page 218: Visual Basic 程序设计

小结 API 的使用 API 应用举例 多媒体编程: API, MCI, Control 图像、动画 音频 视频

Page 219: Visual Basic 程序设计

Visual Basic 程序设计

主讲教师:唐大仕[email protected]

北京大学远程教育课程

Page 220: Visual Basic 程序设计

第 13 讲 数据库编程

Page 221: Visual Basic 程序设计

本讲内容 数据库基本概念 使用 Data 控件 使用 ADO控件 使用 DAO 使用 ADO 基本的 SQL语句

Page 222: Visual Basic 程序设计

数据库 数据库 (Database) 数据库管理系统 ( DBMS )

Oracle, Sybase, Infomix, DB2 MS SQL Server MS Access桌面数据库 (*.mdb)

数据库系统的优点: 数据的共享性、独立性、完整性和冗余数据少

管理功能 数据定义 /操纵 /完整 / 安全 /并发

Page 223: Visual Basic 程序设计

关系型数据库 (RDB) 数据表 (Table) 、记录 (Record) 、字段 (Field) 字段类型

char int smallint bit float datetime image 主键 : primary key 示例:

书目表 : 编号 (ID), 书名 , 作者 , 出版社 , 关键字 读者表 : id, 姓名 , 性别 , 系别 , email 借阅表 : 人号 , 书号 , 日期 , 选课表 : 人 , 课 , 成绩

2501, A03, 80 2501, A04, 83 2502, A04, 87

Page 224: Visual Basic 程序设计

关系型数据库(续) 其他对象

索引 (Index) 、查询 (Query) 、 过滤 (Filter) 、视图 (view)

用户及权限

Page 225: Visual Basic 程序设计

数据库的使用 可视化的界面 通过 SQL语句

Page 226: Visual Basic 程序设计

通过编程来操作数据库 编程的任务

通过用户界面获取参数,并形成 SQL语句 建立与数据库的连接 向数据库管理系统发出命令( SQL) 从数据库得到数据并显示到用户界面

Client/Server模式 (客户 /服务模式 )

Page 227: Visual Basic 程序设计

数据库编程的基本技术 基于 DAO (Data Access Object)

早期的技术,主要用于MS Access 编程语言以 VB , VC 为主 使用方式:

通过 Data 控件 通过对象库

基于 ADO (ActiveX Data Object) 应用更广,用于各种数据库 编程语言包括 VB , VC , VBScript , ASP等 使用方式:

通过 DAO控件 通过对象库

Page 228: Visual Basic 程序设计

使用 Data 控件 Data 控件 :

DatabaseName (选 xxxx.mdb,注意 Access97格式 )

RecordSource (选表名 , 或填 SQL语句 ) Text 或其他控件 :

DataSource (选 Data1) DataField (选字段名 )

Microsoft Data Bound Grid Control: DataSource (选 Data1)

Page 229: Visual Basic 程序设计

使用 ADODC 控件 Microsoft ADO Data Control(ADODC) 控件 :

Source of Connection (选 xxxx.mdb,SqlServer)

RecordSource (选 CommandType,选表名 , 或填 SQL语句 )

Text 或其他控件 : DataSource (选 Adodc1) DataField (选字段名 )

Microsoft DataGrid Control: DataSource (选 Adodc1)

Page 230: Visual Basic 程序设计

使用 DAO DAO (Data Access Object)

引用 DAO: Project( 工程 ) /Reference(引用 )...中 ,选Microsoft DAO 3.51 Object Library

DAO的基本对象 Database 数据库 RecordSet 记录集(相当于表) Fields(i) 记录中的字段

Data1.RecordSet 记录集

Page 231: Visual Basic 程序设计

RecordSet 的基本操作 移动当前记录

.MoveFirst .MoveLast .MoveNext, .MovePrevious 编辑

.Edit .Fields(i)=.... .Update .AddNew .fields(i)=.... .Update .Delete

查找 .FindFirst .FindNext

Page 232: Visual Basic 程序设计

使用 ADO ADO (ActiveX Data Object)

引用 ADO: Project( 工程 ) /Reference(引用 )...中 ,选Microsoft ActiveX Data Object 2.1 Library

ADO中的基本对象 Connection 连接 RecordSet 记录集 Fields(i) 字段 Command Parameter(了解即可 ,表示命令及参

数 )

Page 233: Visual Basic 程序设计

ADO的基本操作 建立连接

conStr = "Driver={Microsoft Access Driver (*.mdb)};Dbq=c:\mydir\biblio.mdb;"

Dim conn As ADODB.Connection Set conn = New ADODB.Connection conn.Open conStr

Page 234: Visual Basic 程序设计

ADO的基本操作 ( 续 ) 执行 SQL

Dim rs As ADODB.Recordset conn.CursorLocation = adUseClient

Set rs = conn.Execute("Select * FROM [Publishers]")

Set DataGrid1.DataSource = rs

Page 235: Visual Basic 程序设计

ADO的基本操作 ( 续 ) 显示各个字段的名字

For i = 0 To rs.Fields.Count - 1 Print rs.Fields(i).Name, Next

在数据集中遍历数据 Do While Not rs.EOF For i = 0 To rs.Fields.Count - 1 Print rs.Fields(i).Value '或直接写为 rs(i) Next rs.MoveNext Loop

Page 236: Visual Basic 程序设计

常用的连接方式 连接 Access97 文件

"Driver={Microsoft Access Driver (*.mdb)};Dbq=c:\mydir\biblio.mdb;"

连接Microsoft SQL Server "Driver={Sql Server}; Server=192.168.0.12;Datab

ase=pubs;Uid=sa;Pwd=tree“ 连接ODBC 数据源 (较少使用 , 针对其他数据

库 ) "Dsn=biblio; Uid=sa;Pwd=tree"

Page 237: Visual Basic 程序设计

SQL SQL( Structured Query Language ),

即结构化查询语言 SQL包含数据定义、数据查询、数据操纵和数据控制等多种功能

是数据库的标准操作语言

Page 238: Visual Basic 程序设计

SQL语句 SELECT * FROM [publishers] SELECT age, sex, salary + bonus

FROM employee WHERE depart= ' 销售部 ' and title= ' 经理 '

[GROUP BY < 列名 > [HAVING<条件 >]] [ORDER BY < 列名 > [ASC , DESC]]

SELECT avg( salary ) FROM employee

Page 239: Visual Basic 程序设计

SQL语句(续) 加入数据

INSERT INTO [employee] ( name, age ) VALUE ( ' 李明 ', 18)

更新数据 UPDATE [employee] SET salary = salary +500

删除数据 DELETE FROM [employee] WHERE age>80

创建及删除数据表 CREATE TABLE [employee] ( id integer, name char(10), age integer ) DROP TABLE [employee]

Page 240: Visual Basic 程序设计

应用演示 图书馆系统 订单管理 收支管理 图表

Page 241: Visual Basic 程序设计

小结 数据库基本概念 使用 Data 控件 使用 ADO控件 使用 DAO 使用 ADO 基本的 SQL语句

Page 242: Visual Basic 程序设计

Visual Basic 程序设计

主讲教师:唐大仕[email protected]

北京大学远程教育课程

Page 243: Visual Basic 程序设计

第 14 讲 网络编程及其他应用

Page 244: Visual Basic 程序设计

本讲内容 网络编程 OLE 、 VBA 、 VBScript 开发 ActiveX控件 程序的打包发行

Page 245: Visual Basic 程序设计

网络浏览及文件传输 网络浏览 Browser

加入 Microsoft Internet Control 使用WebBrowser1. Navigate "http://……“ “ 工程 /添加窗体 /Web浏览窗体”

文件传输 FTP 加入 Microsoft Internet Transfer Control b() = Inet1.OpenURL("ftp://…", icByteArray) Open "C:\aaa.htm" For Binary Access Write As #1 Put #1, , b() Close #1

Page 246: Visual Basic 程序设计

Microsoft Winsock 控件 Winsock服务端

.LocalPort = 2000 .Listen .Accept

Winsock客户端 .RemoteHost = " 127.0.0.1 " .RemotePort = 2000 .Connect

数据传送 .GetData .SendData

Page 247: Visual Basic 程序设计

OLE OLE :对象链接与嵌入 OLE容器控件

OLE1.CreateEmbed "c:\myfile.doc " OLE1.CreateLink "c:\myfile.doc"

OLE 自动化 Set xls = GetObject("c:\myfile.xls") xls.Sheets(1).cells(3, 3).Value = 1200 xls.Sheets(1).cells(3, 5).formula = "=r3c3+r3c4"

Page 248: Visual Basic 程序设计

VBA VBA : Visual Basic For Application 在各种 Office 软件中使用 工具 /宏 /Visual Basic 编辑器 宏: Sub 示例:加行号的宏 宏病毒

Page 249: Visual Basic 程序设计

VBScript VBScript

变量没有类型 在网页中使用 VBScript

<script language=vbscript>……</script> 在 ASP( 动态服务端网页 ) 中使用 VBScri

pt <% …………%> 示例:使用 ADO, 显示数据库内容

Page 250: Visual Basic 程序设计

用 VB建立 ActiveX控件 VB 的其他应用程序 建立 ActiveX控件

属性 Public Property 读 Public Property Get 写 Public Property Let

方法 Public Sub 事件 Public Event

调用事件 RaiseEvent 测试 ActiveX控件

Page 251: Visual Basic 程序设计

VB 应用程序的发行 使用“打包及发行向导”

Page 252: Visual Basic 程序设计

小结 网络编程: Browser 、 FTP 、Winsock VB 与其他软件: OLE 、 VBA 、 VBScri

pt VB 开发其他程序:开发 ActiveX控件 程序的打包发行

Page 253: Visual Basic 程序设计

Visual Basic 程序设计主讲教师:唐大仕

[email protected]

北京大学远程教育课程

Page 254: Visual Basic 程序设计

第 15 讲 复习

Page 255: Visual Basic 程序设计

本讲内容 复习串讲 重点、难点 有关事项

Page 256: Visual Basic 程序设计

复习内容 第 1部分 VB基础 第 1-2章 第 2部分 VB 语言 第 3-6章 第 3部分 界面、文件等 第 7-11章 第 4部分 VB 应用 第 12-16章

Page 257: Visual Basic 程序设计

第 1部分 VB基础

第 1-2章

Page 258: Visual Basic 程序设计

程序设计的概念 程序设计语言

语言的分类 Visual Basic 在各种语言中的地位

程序设计的基本方面 从编写的内容看:界面与代码 从程序的本质看:数据与控制

程序设计与软件工程

Page 259: Visual Basic 程序设计

VB 程序设计的基本步骤 界面设计 代码编写 运行 / 编译

Page 260: Visual Basic 程序设计

VB 中的核心概念 对象

属性 (property) 方法 (method) 事件 (event)

事件驱动

Page 261: Visual Basic 程序设计

第 2部分 VB 语言

第 3-6章

Page 262: Visual Basic 程序设计

数据与运算 数据:常量与变量 数据的类型

数据的含义不同 数据的运算不同 数据的存储方式不同

常用的数据类型 Integer, Single, Double, Boolean, String,

Date, Variant

Page 263: Visual Basic 程序设计

变量与常量 变量

隐式定义 显式定义

Dim, Public, Global, Private, Static 常量

字面常量 12, 12.3, "Hello", #2008-12-30#

符号常量 Const PI As Double = 3.14

Page 264: Visual Basic 程序设计

运算符 算术运算符

+ - * / \ mod(取余) ^(乘方 )

字符串连接 & + 关系运算 > < = >= <= <> 逻辑运算 And Or Not 运算的优先级

Page 265: Visual Basic 程序设计

控制结构 程序的三种控制结构

顺序 分支 循环

Page 266: Visual Basic 程序设计

语句 简单语句 分支控制语句

If ElseIf Select Case

循环控制语句 For…Next Do While…Loop

Page 267: Visual Basic 程序设计

语句的应用 分支的嵌套 循环的嵌套

For I=1 to 9 For J=1 To I Next

Next 循环的五要素 递推法数列求和

For n=1 To 10 f = f * n s = s + f

Next

Page 268: Visual Basic 程序设计

过程 过程的定义

Sub 过程名(参数……) …… End Sub

过程的调用 Call 过程名 (参数值……) 用括号 过程名 参数值……

Page 269: Visual Basic 程序设计

函数 函数的定义

Function 函数名(参数……) As 类型 其 中有一句 :函数名 =某个值 End Function

函数的调用 函数名 (参数值… .. ) 用括号 过程名 参数值……

Page 270: Visual Basic 程序设计

过程中的几个概念 传值与传址 (ByVal, ByRef) 变量的作用域

全程 Public 局部 于窗体, Private( Dim ) 局部于过程内 Dim

变量的生存期 static

Page 271: Visual Basic 程序设计

常用函数 I/O: MsgBox InputBox Beep 数学: Rnd Abs Int Sqr Sin Cos Log Exp 字符串: Len LTrim RTrim Trim UCase Mid Left Right InStr Chr Asc 日期: Date Time Now Year Month Day 转换判断 CInt Val Format IsDate IsNumeric

Page 272: Visual Basic 程序设计

数组 定义数组 Dim 数组名(数组大小) As 类型 数组元素的个数 使用数组

Page 273: Visual Basic 程序设计

常用算法 遍试:

逻辑上:针对所有可能的情况, 形式上: For 中用 IF

迭代 逻辑上:多次使用同一算法 形式上: a = f( a )

递归 逻辑上:一个问题化为同样的问题 形式上:自己调用自己 : F(n) 中调用 F(n-1)

Page 274: Visual Basic 程序设计

第 3部分 界面、文件及其他

第 7-11章

Page 275: Visual Basic 程序设计

控件 常用控件的属性、方法、事件 控件的典型应用 外部控件( ActiveX控件)的使用 控件数组

Page 276: Visual Basic 程序设计

绘图 坐标系 绘图状态 绘图方法

Page 277: Visual Basic 程序设计

窗体与菜单 窗体的属性、方法与事件 多窗体

窗体的显示 窗体间的信息交互

菜单

Page 278: Visual Basic 程序设计

图片、动画 Picture/Image LoadPicture

Page 279: Visual Basic 程序设计

文件 文件种类

顺序文件(文本文件) 随机存取文件(定长记录文件) 二进制文件

文本文件的打开与读写 Open, Close Line Input, Print

Page 280: Visual Basic 程序设计

程序中的错误 程序中的错误

语法错 逻辑错 运行错

错误的捕获与处理 On Error 语句 Err 对象

Page 281: Visual Basic 程序设计

程序的调试 断点 跟踪 观察

Page 282: Visual Basic 程序设计

第 4部分 VB 的应用

第 12-16章

Page 283: Visual Basic 程序设计

API API 的声明与调用

Declare 调用

Page 284: Visual Basic 程序设计

多媒体编程 编程方式

API, MCI, ActiveXControl 图像、动画

Bitblt, PaintPicture 音频 /视频的播放

Page 285: Visual Basic 程序设计

数据库编程 数据库基本概念 使用 Data 控件 使用 ADO控件 使用 DAO 使用 ADO 基本的 SQL语句

Page 286: Visual Basic 程序设计

网络编程 高层网络编程

Browser 、 FTP 低层网络编程

Winsock

Page 287: Visual Basic 程序设计

VB 与其他软件 OLE 、 VBA 、 VBScript 用 VB 开发其他程序

开发 ActiveX控件 属性、方法、事件

程序的打包发行

Page 288: Visual Basic 程序设计

附: VB 使用外部程序的方法 VB 中使用外部程序的几种方法(还不止这些)

API ( 需要 Declare) ActiveX ( 需要加入部件 ) Object Library ( 需要添加引用 ) OLE ( 需要用 OLE 控件 ) Shell (直接执行外部程序 )

VB作为一个快速应用开发工具 善于作前端的应用 善于集成

Page 289: Visual Basic 程序设计

重点 VB 语言

运算、各种语句、数组、过程与函数 VB 常用函数 VB 常用算法 VB 常用控件 文件的处理

注 :笔试中第 12-16章 (VB 应用 )内容很少

Page 290: Visual Basic 程序设计

难点 循环

循环的五要素 循环的嵌套 数列求和

遍试算法 数组 过程与函数

变量的作用域 参数的传递

Page 291: Visual Basic 程序设计

有关考试 考试内容 考试形式

选择、填空、编程、问答等题型 一般说来,每种题型占 20% -40% 要注意有关考试的具体通知

Page 292: Visual Basic 程序设计

VB 应用程序演示 学生作业 游戏程序

计算器 /俄罗斯方块 /挖地雷 / 分形 多媒体程序

电子琴 数据库应用程序

图书馆系统 订单管理 收支管理 图表

Page 293: Visual Basic 程序设计

进一步的学习 VB 网站 VB 参考书 VB 开发实践 相关的程序设计语言 相关的其他知识 全国计算机等级考试二级 VB ?

Page 294: Visual Basic 程序设计

与老师联系 与唐大仕老师联系

[email protected] 与北大联系 与当地的辅导老师联系

Page 295: Visual Basic 程序设计

Thanks

祝同学们学习愉快,学有所获,学有所成!