-
VB
概述
§
1
VB
的特点
1
.可视化的设计平台
2
.面向对象的设计方法
对象
具有自己的
属性
(对
象的性质)、
方法
(对
象的动作)和
事件
(对象
的
响应),它构成对象的三个要素。
3
.
事件驱动的编程机制
4
.
集成化的开发环境
5
.
结构化的设计语言
§
4
VB
程序设计
VB
< br>应用程序的开发有
三个步骤
:
(
1
)设计应用程序界面。
(
2
)设置对象的属性
(
3
)编写
事件驱动代码
保存工程
简便方法:
执行“
< br>文件
/
保存工程
”命令
(第一次保存文
件
)系统先打开“
文件另存为
”对话框,
保存窗体文件
(或标准模块文件),然后再打开“
工程另存为<
/p>
”
对话框,
保
存工程
文件。
保存修改后的工程文件
选择“
文件
/
保存工程<
/p>
”命令保存所做的修改,(保存与工程有关的修改过
的窗体文件或
标准模块文件)。
VB
基础知识
常量
(
1<
/p>
)字符串常量
用
双引号括起来的字符序列
(除双引号和回车符)。
例如:
“I am a student.
”
计算机软件
(
2
)数值常量
整型
1234
(十进制)
长整型
12345678
(十进制)
单精度数
:有三种形式,
12.34
,
123
!,
123.
45
E
-5
双精度数
:有两种形式,
12.34#
,
123.45
D
-5
在常数后面加上
类型说明符
:
%
整型
&
长整型
!
单精度
#
双精度
$$
字符串型。
2.
符号常量
格式:
Const
常量名
=
表达式
功能:
定义一个符号常量来表示表达式的值。
说明:
“常量名”可加以类型说明符。符号常量的类型由类
型说明符或
表达式的类型决定。
Const
PI =
3.141593
变量
1.
变量的命名
变量名
< br>以字母开头,后跟字母、数字和下划线组成
说明:
(
1
)
变量名不能是关键字
(
2
)
VB
变
量名
不区分字母大小写<
/p>
。
2.
变量的类型
(
1
)用类型说明符
在变量的尾部加上类型说明符:
%
整型
&
长整型
!
单精度
#
双精度
$$
字符串型。
例如:
Num%
,
Str1$$
p>
均
是合法的变量名
在引用时,可以省略类型说明符。
(
2
)定义变量时声明其类型
格式:
Dim
变量名
As
类型
“类型”可为基本数据类型或用户自定义的类型。
Boolean
(布尔型)
Long
(长整型)
Single
(单精度型)
Double
(双精度型)
String
(字符串型)
Variant
(变体型)
用户自定义类型
例如:
Dim str1 As
String ,
country As
String*20
Dim i
As
Integer
, sum As
Single
定义变量后,
数值型变量的初值为
0
字符型变量的初值为空字符串
其中:
变长字符串的初值是长度
为
0
定长字
符串
的
初值的长度等于定义值
。
3.
变体类型变量
如未定义类型的变量
例如:
Dim sum As
Variant
Dim
sum
运算符与表达式
1.
算术运算符(
8
种)
优先级(从高到低):
指数(∧)
取负(
-
)
乘法、浮点除法(
* ,
/
)
整数除法(
)
取模(
Mod
)
加法、减法(
+ ,
-
)。
整除:
被除数和除数为整数
,结果为整
数。
31.7 5.88
326
结果为:
5
取模(求余)运算:结果为整数除法的余数。
31.77 Mod 5.88
(四舍五入)
32 Mod
6
,
余
数为
2
3
Mod 6
余数为
3
字符串表达式
字符串运算符:
&
或
+
功能:
把
字符串连接成一个字符串
。
说明:
(1)
符号“
&
”
与字符串变量之间应间隔一个空格
,
例如:
str1 &
str2
(2)
“
< br>&
”能强制把其
它类型的数据转换为字符串,
而“<
/p>
+
”不能。
例如:
2008 &
奥运会
2008
奥
运会
奥运会
2008
奥
运会
注意:
Print
结果:
690
Print
出错:
类型不匹配
常用内部函数
数学函数
函
数
Abs(x)
Int(x)
Cint(x)
Exp(x)
Log(x)
Sqr(x)
Rnd
字符串函数
Len
< br>(
str
)
< br>Left$$(str
,
n)
<
/p>
Right$$(str
,
n)
Mid$$(str
,
p
[
,
n])
Str$$(num)
Val(str)
Asc
(
str
)
Chr$$(n)
说明
:
功
能
返回<
/p>
x
的绝对值
求
不大于
x
的最大整数
Int(7.8)
结果为
7
,
Int(-7.8)
结果为
-8
把
x
小数四舍五入,转换为整数,
计算
e
x
,
e
< br>是自然数
2.718281
求
x
的自然对数
求
x
的平方根
返回
0
~
1<
/p>
之
间
的随机数:
返回字符串长度
取
字符串左边
n
个字符
取
字符串右边
n
个字符
从
位置
p<
/p>
开始,取
n
个字符,如
< br>n
省略,取到最后
数
值转字符串
字符串转数值
返回字符串首字母
p>
ASCII
码
ASCII
码转字符
(
l
)三角函数
Sin
、
Cos
和
Tan<
/p>
自变量的
单位是弧度
< br>反正切函数
Atn(x)
的
返回
值单位为弧度
。
度转换为弧度:
1° = 3.14159/180
*x
(
2
)
用函数
Rnd
可以产生不同的随机数。
产生指定范围的随机数:
?
产生
< br>0
~
n
之间的随机数(不含
p>
0
和
n
)
Rnd*n
?
产生
< br>0
~
n
之间的随机整数(含
p>
0
,不含
n
)
p>
Int
(
Rnd
*n
)
?
产生
a
~
b<
/p>
之间的随机整数(含
a
,不含
b
)
Int
((
b-a
)
*Rnd+
a
)
?
产生
a
~
b<
/p>
之间的随机整数(含
a
和
b
)
Int
((
b-a+1
)
*Rnd+
a
)
顺序结构
结构化程序三种基本结构:
顺序结构、选择结构和
循环结构
。
1
赋值语句
变量
=
表达式
属性名
=
属性值
注意:
当变量类型与表达式的类型不
同时,
VB
自动将表达式的类型强制
转换为变量类型
。
例如:
Dim Num As
Integer
Num=8.89
(
将
9
赋给
N
um
,
四舍五人
)
3
数据输入
方法
1
:用文本框
例:
Dim m As
Integer
m=Val ()
方法
2
:用
I
nputbox
()函数
例:
m
=Val(InputBox(
方法
3
:从文件输入
Input#2
p>
,
m
4
输出数据
方法
1
:用文本框
例:
=n
或
Text1=n
方法
2
:用标签
例:
n = n
方法
3
:用
Print
方法
例:
Print
n
方法
4
:
输出到列表框
例:
m
n
方法
5
:
输出到文件
例:
Open
Write#1, n
【例】交换变量
< br>a
、
b
的值。
< br>
用中间变量
t
作暂存单元,<
/p>
必须与交换的变量同类型
。
t = a
:
a =b
:
b = t
3.2
窗
体
<
/p>
窗体常用的方法
Print
,
窗体事件
1.
Click
事件
2. Load
事件
Load
是把窗体装入工作区事件,
Form_Load()
事件是执行程序时自动触发的,因此<
/p>
常用来在
启动程序时对属性和变量进行初始化
。
3. UnLoad
事件
关闭窗体
触发该事件
选择结构
满足条件为
“真”
,用“
True
”表示
;
不满足条件为
“
< br>假
”
,用“
Fals
e
”
表示。
关系表达式
1.
< br>关系运算符(
6
种)
=
、<
/p>
<>
、
<
、
p>
>
、
<=
、
>=
优先级相同
,运算从左到右。
2.
关系表达式
< br>例如:“
apply
”
> <
/p>
“
apple
”
按
ASCII
码逐字符进行比较
。
空格
<
“
0
”?“
9
”
<
“
A
”?“
Z
”
<
“
a
”?“
z
”
“
apply
”
>
“
apple
”
结果为
True
逻辑表达式
逻辑运算符:
Not
、
And
、
Or
优先级:
逻辑非(
Not
)、逻辑与(
And<
/p>
)、
逻辑或(
Or
)
注意:
表示:
a
≤
x
≤
b
a <= x And x <=
b
选择结构
1
.单行
If
语句
< br>
If
条件
Then
语句组
1
[Else
语句组
2]
语句组:
各语句间需用“:”分隔
。
2
.块结
构
If
语句
If
条件
Then
语句块
1
Else
语句块
2
End If
例:计算分段函数
1+x
(x
≥
0)
y=
1-2x (x<0)
If x>=0 Then
y=1+x
Else
y=1-2*x
End
If
用
单行
If
语句:
If x>=0 Then
y=1+x
Else
y=1-2*x
或:
If x>=0 Then
y=1+x
If x<0
Then
y=1-2*x
3.
多分支选择结构
I
f
条件
1
Then
语句块
1
ElseIf
条件
2 Then
语句块
2
ElseIf
条件
3 Then
语句块
3
??
Else
语句块
n+1
End If
从多个条件中,选择执行一个语句块
“
纵然分支众多,仅选其一
”
说明:
当有多个条件为真时,只能执行最前面的一个语句块。
注意:
ElseIf
之间不能有空格
【例】学生成绩判定。
Private Sub Command1_Click()
x =Val
(
InputBox
(
输入学生成绩:
)
< br>
If x >=90 Then
Print
“优”
ElseIf x >=80 Then
Print
“良”
ElseIf x >=70 Then
Print
“中”
ElseIf x >60 Then
Print
“及格”
Else
Print
“不及格”
End
If
End Sub
4.2.4
IIf
函数
IIf
是
单行
If
语句的简单版本
。
变量
= IIf
(条件,
True
部分
,
Fals
e
部分)
注意:
IIf
函数中的
三个参数都不能省略
。
例:计算分段函数
1+x (x
≥
0)
y=
1-2x
(x<0)
Private Sub
Command1_Click()
Dim x As
Single,y As Single
x=
Val()
y=
IIf(x>=
0,
1+x
,1-2*x)
= y
End
Sub
【例】判闰年。
闰年的条件:
(
1
)
被
4
整
除,但不能被
100
整除
;
(
2
)
能被
400
整除
。
最好:
If
x Mod 400 = 0
Then
y$$ =
是闰年
ElseIf
x Mod 4 = 0
And
x Mod 100 <>
0
Then
y$$ =
是闰年
Else
y$$ =
不是闰年
End If
也可
x
=
Val(InputBox(
输入年份
If
x Mod 4 = 0
and
x Mod 100 <>
0
or
x Mod 400 = 0
Then
y$$ =
是闰年
Else
y$$ =
不是闰年
End If
也可
x
=
Val(InputBox(
输入年份
If
x Mod 4 = 0
and
x Mod 100 <>
0
or
x Mod 400 = 0
Then
y$$ =
是闰年
Else
y$$ =
不是闰年
End If
Case
语句
用于实现多分支结构。
Select Case
测试表达式
Case
条件
1
语句块
1
Case
条件
2
语句块
2
??
Case
Else
语句块
n+1
End Select
功能:
从
多个条件中选择
执行第一个符合条件的语句
,都不符合,
则执行
Case
Else
后的语句块。
注意条件:
常量表
:
1
,
3
,
p>
5
测试范围
:
10 to 20,“a”
to “z”
比较范围
:
Is <
10
(
不能为逻辑表达式
)
【例】学生成绩评定
Private Sub Command1_Click()
x
= Val(InputBo
x(
输入考试成绩
Select Case
x
Case 90 To 100
y$$ =
优
Case 80 To 89
y$$ =
良
Case 70 To 79
y$$ =
中
Case 60 To 69
y$$ =
及格
Case 0 To 59
y$$ =
不及格
Case Else
y$$ =
输入错误
End Select
成绩
:
等级
:
End Sub
循环结构
“当型”循环:
当条件为真,执行循环体
。
“直到型”循环:
做循环,直到
条件为真为止
。
-Next
循环
常用于
循环次数已知
。
For
循环变量
=
初值
To
终值
[Step
步长
]
循环体
[ Exit For
]
Next
循环变量
【例】计算
n!
。
Private Sub
Command1_Click()
n = Val(I
nputBox(
输入一个自然数
Term = 1
For i = 1 To n
Term = Term *
i
Next i
Print n;
End
Sub
【例】计算
2 + 4 + 6 +
??
+
100
的值。
Private
Sub Command1_Click()
Sum = 0
For x = 2 To 100 Step 2
Sum = Sum + x
Next x
End Sub
【例】计算
1 + 2! + 3! +
??
+
10!
Private Sub
Command1_Click()
T = 1
S =
0
For k = 1 To
10
T = T *
k
S = S + T
Next k
Print
S
End Sub
2
.
While-
Wend
循
环
适合处理
循环
次数未知
的循环。
While
条件
语句块
Wend
功能:
当条件为真时执行循
环。
<
/p>
【例】计算
1+2+3+
??
+100
Private Sub
Command1_Click()
Dim n As
Integer, s As Integer
s=0
n
=1
While n<=100
s=s+n
n=n+1
Wend
n=
“
1+2++3+
??
+100=
”
& s
End
Sub
3
.
Do-
Loop
循环
Do
语句块
[Exit
Do]
Loop [
Whi
le
|
Until
条件
]
Do [
While
|
Until
条件
]
语句块
[ Exit
Do ]
Loop
功能:
While
条件——当“条件”为
True
执行循环体。
Until
条件——“条件”为
False
执行循环体。
如无条件,则为死循环。
说明:
格式
1
:“
先循环,后判断
”,
至少执行一次循环
。
格
式
2
:“
先判断,后循环
”,如
条件不满足
,则
一次
循环也不执行
。
【例】计算
1+2+3+
??
+100
s=0
n =1
Do while n<=100
s=s+n
n=n+1
Loop
也可
s=0
n =1
Do Until n>100
s=s+n
n=n+1
Loop
【例】将十进制数转换为二进制数
Private Sub Form_Click()
Dim m As Integer
m = InputBox(
a$$ =
While m <>
0
r = m Mod 2
a$$ = r & a$$
m = m 2
Wend
Print
a$$
End Sub
注意:
a$$ = a$$ &
r
则为:
4=001
列表框
列表框的方法
AddItem
方法
:用于
在列表框中插入一个列表项
。
格式:
列表框
. AddItem
项目字符
串
[,
索引值
]
如省略索引值,则在列表框的最后插入新列表项。
【例】将文本框内容添加到列表框
1
Private Sub Command1_Click()
m
End Sub
多重循环
说明:
(
1
)
必须完整嵌套
,不得交叉。
(
2
)
Exit For
语句和
Exit Do
语句只能退出
当前层
循环。
指定每行显示数据的个数
For
n=1 to 30
Print n; ”
”;
If
n Mod 10 =
0
Then
Print
Next n
'
每显示
10
个数据换行
常用算法
(1)
1.
不定方程求解
。
【例】百鸡问题
x+y+z=100
5x+3y+z/3=100
Private Sub
Command1_Click()
Dim x As
Integer
Dim y As Integer, z
As Integer
Print
公鸡
母鸡
小鸡
For x = 0 To
20
For y = 0 To
33
z = 100 - x -
y
If
5 * x + 3 * y + z / 3 = 100
Then
Print x, y,
z
End If
Next y
Next
x
End
Sub
2
.求
最大公约数和最小公倍数
辗转相除法:
【例】计算最大公约数和最小公倍数。
Private Sub Command1_Click()
Dim m As Integer, n As
Integer
Dim u As Integer, v
As Integer
m =
Val()
n = Val()
If m > n Then
u = m: v = n
Else
u = n : v =
m
End If
Do
r = u Mod v
u =
v
v = r
Loop Until r =
0
Print
最大公约数:<
/p>
u
Print
最小公倍数:
u
End Sub
或
r =
u Mod v
Do While
r<>0
u = v
v = r
r = u Mod
v
Loop
Print
最大公约数:
v
3
.
判素数(质数)
【例】判
n
是
否为素数。
Private Sub
Command1_Click()
Dim n As
Integer, i As Integer
n =
Val(InputBox(
输入正整数
For i =
2 To n -
1
If
n Mod i
= 0
Then Exit For
Next i
If
i > n - 1
Then
Print n;
是质数
Else
Print n;
不是质数
End If
End Sub
例
p>
求
100
~
200
之
间素数,并写入顺序文件。
Private Sub Command1_Click()
Open “” For Output As
#1
For n= 101 To 200 step
2
S=1
‘是
For i = 2 To
Int(Sqr(n))
If n Mod i
= 0 Then
S=0
‘不是
Exit
For
-
-
-
-
-
-
-
-
-
上一篇:<Ⅰ>汽车音响功能操作使用说明 新
下一篇:在excel中产生随机数