内容正文:
满分计划(胖子60套)VB专题(陶小波)
(1) VB基础:
VB简介:Visual Basic(简称VB)是Microsoft公司开发的一种通用的基于对象的程序设计语言,为结构化的、模块化的、面向对象的、包含协助开发环境的事件驱动为机制的可视化程序设计语言。是一种可用于微软自家产品开发的语言。
“Visual” 指的是开发图形用户界面 (GUI) 的方法——不需编写大量代码去描述界面元素的外观和位置,而只要把预先建立的对象add到屏幕上的一点即可。 “Basic”指的是 BASIC (Beginners All-Purpose Symbolic Instruction Code) 语言,是一种在计算技术发展历史上应用得最为广泛的语言。
VB同时遵循面向对象(OOP)规范 和 程序运行的三大结构 即(顺序结构、循环结构、分支结构)
1.1 数据类型
数值
Integer
-32768 ~ +32767
Long
约-21亿 ~ 约+21亿
Single
小数有效位数是6-7位
Double
小数有效位数是14-15位
字符
String
文字或符号或不参与运算的数字字串
逻辑
Boolean
逻辑型 值只有 True或者False
表1
数据类型 一般称为 数据元( Data Element),也称为数据元素,是用一组属性描述其定义、标识、表示和允许值的数据单元,在一定语境下,通常用于构建一个语义正确、独立且无歧义的特定概念语义的信息单元。数据元可以理解为数据的基本单元。VB中常见的数据类型 见表1
1.2 变量与常量的定义
变量来源于数学,是计算机语言中能储存计算结果或能表示值的抽象概念。
“常量”的广义概念是:‘不变化的量’(在计算机程序运行时,不会被程序修改的量。常量可区分为不同的类型,如:25、0为整型常量,6.8为实型常量,‘a’、‘b’为字符常量。常量一般从其字面形式即可判断。这种常量称为字面常量或直接常量。
VB中 变量定义的写法是 :Dim 变量名 as 数据类型
VB中 常量的定义:Const 常量名 = 值
数组(Array)是有序的元素序列。 若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,数组是用于储存多个相同类型数据的集合,VB中数组的定义写法是Dim 数组名([上标 To] 下标) As 数据类型。上标缺损默认为0 即dim a(10) as integer 等价于 dim a(0 to 10) as integer 共 11个数组元素
1.3 变量、常量、自定义函数的命名方法
在1.2节中 我们看到 定义常量、变量都需要 设置名称 。在编程中 在命名变量、常量、函数等 自定义对象的时候:不能用系统关键字命名、不能数字开头、名称不能重复 以及
变量中不能有特殊符号 下划线 _ 不属于特殊符号 同时在定义变量的时候 还需要遵循 匈牙利命名法和驼峰规则中的一种或多种
注:(匈牙利命名法是一种编程时的命名规范。基本原则是:变量名=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。要基于容易记忆容易理解的原则。保证名字的连贯性是非常重要的。例如 frm、vbp等)
(驼峰式大小写(Camel-Case,Camel Case,camel case),电脑程式编写时的一套命名规则(惯例)。当变量名和函式名称是由二个或多个单字连结在一起,而构成的唯一识别字时,利用“驼峰式大小写”来表示,可以增加变量和函式的可读性。例如 FirstName、LastName、CamelCase)
1.4 常见系统关键字(保留字)
Dim
Const
As
Private
Public
Static
New
Me
Function
Sub
End
Do
Loop
For
Next
Option
IF
Else
ElseIF
And
Not
Or
表2
1.5 常用运算符
表3
1.6关系运算符
表4
1.7逻辑运算符
运算符
含义
示例
结果
And
与
True And True
True
And
与
False And True
False
And
与
True And False
False
And
与
False And False
False
Or
或
True Or True
True
Or
或
False Or True
True
Or
或
True Or False
True
Or
或
False Or False
False
Not
取反
Not True
False
Not
取反
Not False
True
表5
逻辑运算是数字符号化的逻辑推演法,包括联合、相交、相减。在图形处理操作中引用了这种逻辑运算方法以使简单的基本图形组合产生新的形体,并由二维逻辑运算发展到三维图形的逻辑运算 我们常见的逻辑变量有 And 、Not、Or
优先级为:NOT AND OR 同级运算从左到右
(2) VB语句基础
2.1分支语句
if语句是指编程语言中用来判定所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一。if的返回值为真或假,可以用bool型变量进行存储
If语句只有1个或2个分支 超过两个分支的语句 一般称为多分支IF
if 语句的标准写法:IF 条件表达式 Then 执行代码 Else 执行代码 End IF
If k = 0 then t=t+1
If k = 0 then t=t+1 else t=t-1
行IF语句
If k = 0 then if k = 0 then
t=t+1 t=t+1
Else end if
t=t-1
End if
块if 语句
If t=10 then
k=k+1
Elseif t=11 then
k=k+2
Elseif t=12 then
k=k+3
End if
分支语句1
If t=10 then
k=k+1
Elseif t=11 then
k=k+2
Elseif t=12 then
k=k+3
Else
k=4 分支语句2
End if
表1
2.2 循环语句
在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句。一组被重复执行的语句称之为循环体,能否继续重复决定循环的终止条件。循环结构是在一定条件下反复执行某段程序的流程结构,被反复执行的程序被称为循环体。循环语句是由循环体及循环的终止条件两部分组成的。VB中 循环包括 For循环和Do循环例表4
For 变量名称 = 初值 to 终值 step 步长
Next 变量名
例如
For i = 1 to 10 step 1
Next i
For循环
Do while 条件表达式
Loop
例如
Do while t>0
k=k+1
Loop Do循环
(3) VB面向对象
3.1 面向对象基础
面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)的主要思想是把构成问题的各个事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙一个事物在整个解决问题的步骤中的行为。面向对象程序设计中的概念主要包括:对象、类、属性、方法和事件。通过这些概念面向对象的思想得到了具体的体现
控件名称
(类)
对象名称(示例)
属性
方法
事件
CommandButton
(命令按钮)
Command1
Caption
/
Click
TextBox
(文本框)
Text1
Text
/
change
Label
(标签)
Label1
Caption
/
click
Form
(窗体)
Form1
caption
/
Load
Click
ListBox
(列表框)
List1
/
Additem(添加一项)
Clear(清空)
/
Timer
(定时器)
Timer1
Interval
/
Timer
公共属性:Name:对象名,Enabled: 是否可用
给属性赋值写法:对象名.属性名=属性值 方法的写法: 对象名.方法名 (方法没有=)
事件的写法 对象名_事件名() 。[对象名_事件名() ]又称为 事件处理过程名
窗体事件写法:Form_事件名()
表5
表2
3.2 自定义函数及过程
函数是一段可以重复使用的代码,用来独立地完成某个功能,它可以接收用户传递的数据,也可以不接收。接收用户数据的函数在定义时要指明参数,不接收用户数据的不需要指明,根据这一点可以将函数分为有参函数和无参函数。
将代码段封装成函数的过程叫做函数定义。过程的定义与函数相类似,命名规范详见1.3节
Function 方法名(形参列表)As 返回值类型
End Function
例如
Function f(a as integer)As integer
a=a+1
End Function 自定义方法
Sub 过程名(形参列表)
End Sub
例如
Sub f(a as integer)
a=a+1
End Sub 自定义过程
表3
3.3 常见内置函数
函数名称
作用
示例
结果
Abs(x)
求绝对值
Abs(-1)
1
Cos(x)
求余弦函数值
Cos(30)
0.154251449887584
Sqr(x)
开根号
Sqr(4)
2
Int(x)
向下取整
Int(-5.9) / Int(5.9)
-6/5
Fix(x)
去掉小数
Fix(-5.9) / Fix(5.9)
-5/5
Asc(s)
求Asc码
Asc(“A”)
65
Chr(x)
Asc码转字符
Chr(65)
“A”
Val(s)
数字字符串转数值
Val(“12345”)
12345
Str(x)
数字转字符串
Str(12345)
“ 12345”
Left(s,x)
从字符串左边第一个开始截取字符
Left(“12345”,3)
“123”
Right(s,x)
从字符串右边第一个开始截取字符
Right(“12345”,2)
“45”
Mid(s,x,y)
从字符串中截取字符串
Mid(“12345”,2,2)
“23”
CStr(s)
数字转字符串(无符号)
CStr(12345)
“12345”
Trim(s)
去掉头部和尾部的空格
Trim(“ 1234 ”)
“1234”
Rnd()
产生随机数
Rnd()
[0,1)区间的随机数
Len(s)
求字符串长度
Len(“招宝山2”)
4
表4
1. 求[a,b]范围内的随机数:Int(Rnd*(b-a+1))+a
2. 四舍五入保留n位小数:int(x*10^n+0.5)/10^n
3. a、b两值交换方法1 :t=a : a=b: b=t
4. a、b两值交换方法2 :a=a+b : b=a-b : a=a-b
5. Mid函数中的截取长度可以超过其字符串长度,例如s=”12345”:mid(s,5,3)的结果是”5”
(4) VB常见错误
常见的代码错误按类型分 分为编译错误和运行错误
编译错误:一般是语法上存在问题,编译过不去
运行错误:是指程序在运行过程中出现错误,只能说是程序存在一定的边界bug
一般情况下 当代码中存在多种错误时 代码自上至下 先提示的是编译错误 再提示运行错误,VB语言中 只要有提示错误 程序即停止运行
在错误提示框中会显示 是编译错误 还是运行错误
图 1 图2
例图1 是运行错误,图2即编译错误。常见错误的类型 看下表
错误提示
错误类型
报错原因
溢出
运行错误
超过数据类型范围
下标越界
运行错误
超过数组下标范围
要求对象
运行错误
没有这个对象
类型不匹配
运行错误
等号左边与右边数据类型不一致
未找到方法或数据成员
编译错误
没有这个方法
For没有next
编译错误
缺少Next
表5
特例:
图3
图4
例如图3代码 图3窗体中没有名为command1的对象,但是VB程序中有Text属性
VB无法确定 command1是否为TextBox的对象 那么VB就提示 要求对象
图5
例图5 窗体中即没有名为Text1的对象,但是属性可以自定义(面向对象) 所有VB也无法确定是否有Text1属性(默认就当有)所以仍然报要求
1
$