Vb复习资料.docx
《Vb复习资料.docx》由会员分享,可在线阅读,更多相关《Vb复习资料.docx(33页珍藏版)》请在冰豆网上搜索。
![Vb复习资料.docx](https://file1.bdocx.com/fileroot1/2022-11/29/f0222585-5fa1-460b-8d12-9db23a9ae087/f0222585-5fa1-460b-8d12-9db23a9ae0871.gif)
Vb复习资料
Vb复习提纲
Vb的三种工作模式:
设计模式;运行模式;中断模式。
运行模式中不能编辑代码,不能编辑界面;中断模式中可以编辑代码,不能编辑界面。
工程文件包括部分,工程文件扩展名:
.vbp
窗体模块
Form1,form2……
.frm
Function过程,sub过程,事件过程
标准模块
Module1,module2……
.bas
Function过程,sub过程
类模块
Class1,class2……
.cls
Vb程序的执行方式:
解释方式(便于程序的调试和修改,运行速度较慢);编译方式
对象:
对象指现实世界中的实体,可以是抽象的也可以是实体的,有自己的特征(属性),行为(方法),活动(事件)的类:
对同一种对象的集合与抽象,封装和隐藏是类的重要特性。
类包含所创建对象的属性数据,以及对这些数据进行操作的方法。
Vb对象的三要素:
属性&方法&事件
基本属性:
name(名称):
所有对象都具有的属性,是创建对象的名称
Caption:
决定了控件上显示的文本内容。
(文本框和combo框[也有list属性]为text属性,list框为list属性
Font:
改变文本的外观,包括
1.Fontname:
字体属性,是字符型(”“)
2.Fontsize:
字体大小,是数字型
3.Fontbold:
字体加粗,是逻辑型
4.Fontitalic:
字体斜体,是逻辑型
5.Fontstrikethru:
加删除线,是逻辑型
6.Fontunderline:
加下划线,是逻辑型
Enable属性:
决定控件能不能使用:
true:
可以使用,对操作做出响应;false:
不能操作,呈灰色,对操作无响应。
Visible属性:
决定控件是否可见:
true:
程序运行时控件可见;false:
程序运行时控件隐藏,用户看不到,但控件本身存在。
MouseIcon:
鼠标的指针类型,鼠标类型设置值为0~15,值若为15则是用户自定义鼠标文件。
事件:
Load:
窗体被装入是自动执行,用于对属性值和变量的初始化。
Click,DblClick:
单击和双击事件,由鼠标单击和双击时候触发事件。
方法:
Print:
用于在窗体或者图形框中显示文本
Cls:
在窗体或者图形框中清除运行时产生的图形或者文本
Move:
移动一个窗体或者控件
图片的引用——loadpicture(App.Path+”\summer.bmp”)相对引用,图片和工程文件在一个文件夹中。
Loadpicture(“D:
\summer.bmp”)绝对引用,图片在D盘中。
在文本框中,汉字、字母、数字都只占一个字符,
a=text1.seltext:
将选中的内容放入a中。
Text1.seltext:
=a:
将选中的内容插入到光标所在的位置
数据类型
数据类型
关键字
类型符
占用字节
字节型
Byte
无
1
逻辑型
Boolean
无
2
整型
Integer
%
2
长整型
Long
&
4
单精度型
Single
!
4
双精度型
Double
#
8
货币型
Currency
@
8
日期型
Date
无
8
字符型
String
$
与字符长度有关
对象型
Object
无
4
变体型
Variant
无
根据需要分配
整数的表达形式:
123,123%,123&,+342,-123,
浮点数:
又称为实数,分为单精度和双精度浮点数。
123.45;123.45!
;0.12345E+3;0.12345E+3都是表示同值的单精度浮点数;123.45;123.45#;0.12345D+3;0.12345E+3#都是表示同值的双精度浮点数。
字符型:
用””括起来,包括所有的西文字符和汉字,如”123”,”abc”,”夏天”
若字符串中有双引号,则要用连续两个双引号来表示,如”””123””abc”,输出为”123”abc
逻辑型:
当逻辑型数值转化为整数时,true=-1,false=0;当其他类型的数据转化为逻辑型数据时,非零为true,零为false
日期型:
用一对#括起来,#mm/dd/yy#、#mm-dd-yy#
变量的命名规则:
必须以汉字(中文系统中可以用)或字母开头,由字母、汉字、数字或者下划线组成,长度小于等于255个字符。
不能使用vb中的关键词
Vb中不区分大小写,Xyz,xyz,XYZ都是同一个变量。
3xy:
不能数字开头;y–z:
不能出现减号;wangping:
不能出现空格;dim:
不能使用vb中的关键词;cos:
最好不要使用,与余弦函数混淆。
变量声明:
Dim变量名[as类型]
Dima,b,casinteger,x,yassingle:
表示a,b,x定义为变体型变量,c为整型变量,y为单精度型变量
字符型变量的定义:
dim字符串变量名asstring[*长度]
若长度确定了,而字符串没有达到所定义的长度,则字符串右边用空格补齐,若超过了长度,则将多余的部分截去。
变量类型
数值类型
String
Boolean
Object
Date
初始值
0
“”(空串)
False
Nothing
0/0/0/
常量:
八进制:
&O123,十六进制:
&H1234
运算符与优先级:
优先级:
{^}<{-(负号)}<{*;/(除)}<{\(整除);Mod}<{+;-(减号)},优先级越小越先算
如:
30-true=31;10+false+”14”=24
字符串运算符
&:
字符串的连接,将两个字符串连接起来,若是没有加””的数字字符串变量,与&连接时要有空格,否则就认为字符串为长整型。
当变量与&连接在一起的时,系统先把它作为类型定义符处理,造成错误。
+:
连接符两端都应该是字符型,若均为整型,则进行加法运算;若一个为字符型数字,一个为数值型,则把字符型数字变成数值型,再进行加法运算;若一个为非数字型字符,一个为数字型就会出错。
10+“10”=20
“10”+”10”=1010
“10”+”abc”=10abc
10+”abc”=出错
10&10=1010
“abc”&10=abc10
“10”&”10”=1010
10+“12”&10=2210
关系运算符
=、>、>=、<、<=、<>(不等于)。
结果为逻辑型字符。
数字型比较数字大小。
字符型按字符的ascii码值从左到右逐一比较,直到出现的字符为止。
关系运算符的优先级相同。
逻辑型运算符
Not:
取反;notf=t,nott=f,优先级1
And:
与;tandt=t,fandt=f,tandf=f,fandf=f,优先级2
Or:
或;两者之一为真时结果就为真,优先级3
Xor:
异或;两者为一真一假时结果为真,否则为假,优先级3
表达式
组成:
变量、常量、运算符、函数和圆括号。
规则:
乘号不能省略;括号必须成对出现;表达式从左到右在同一基准上书写,无高低大小的区别。
不同数据类型的转变:
如果操作数具有不同的数据精度,则运算结果的数据类型采用精度高的数据类型。
IntegerLong型与single型运算,其数据类型应该是double。
优先级:
算数运算符>字符运算符>关系运算符>逻辑运算符
常见内部函数
数学函数
函数名
含义
实例
结果
Abs(N)
取绝对值
Abs(-3.5)
3.5
Cos(N)
余弦函数
Cos(0)
1
Exp(N)
以e为底的指数函数
Exp(3)
20.086
Log(N)
自然对数
Log(10)
2.3
Rad[(N)]
随机函数
Rad
[0,1)任意数
Sin(N)
正弦函数
Sin(0)
0
Sgn(N)
符号函数
Sgn(3.5)
正数为1,0为0,负数为-1
Sqr(N)
平方根
Sqr(4)
2
Tan(N)
正切函数
Tan(0)
0
转换函数
函数名
含义
实例
结果
Asc(C)
字符串转换成ascii码值
Asc(A”)
65
Chr(N)
Acsii码值转换成字符
Chr(65)
“A”
Fix(N)
取整
Fix(-3.5)
-3
Int(N)
取小于等于N的最大整数
Int(3.5)
3
Int(-3.5)
-4
Hex(N)
十进制数转换成十六进制数
Hex(100)
64
Lcase(C)
字母转换成小写字母
Lcase(“ABC“)
abc
Oct(N)
十进制数转换成八进制数
Oct(100)
144
Round(N)
四舍五入取整
Round(3.5)
4
Round(-3.5)
-4
Str(N)
数值转换成字符串
Str$(123.45)
“123.45”
Ucase(C)
字母转换成大写字母
Ucase(abc)
ABC
Val(C)
数字字符串转化成数值
Val(“123ab”)
123
Attention:
str(N)在转变数值为字符串时,会在数字前面加上一个空格,即:
str(123)=“123”而不是”123”
常用字符串函数
函数名
含义
实例
结果
Instr(C1,C2)
在C1中查找C2是否存在,不存在则为0
Instr(”abcdefgh”,”cd”)
3
Join(A[,D])
将数组A中的个元素按D(或空格)分隔符连接成字符串
A=array(“13”,”ab”,”4”)
Join(A,””)
“13ab4”
Left(C,N)
取出字符串左边的N个字符
Left(”abcdefg”,3)
“abc”
Len(C)
字符串的长度
Len(”abcdefg”)
7
Mid(C,N1[,N2])
取字符子串,在C中从第N个字符开始向右取N2个字符,默认N2到结束
Mid(”abcdefg”,4,2)
“de”
Replace(C,C1,C2)
在C字符串中用C2代替C1
Replace(“abcd”,”bc”,”fg”)
“afgd”
Right(C,N)
取出字符串右边的N个字符
Right(“abcdefg”,3)
“fg”
Space(N)
产生N个字符串的空格
Space(3)
““
Split(C,D)
将字符串C按分隔符D分割成字符数组,与join相反
S=Split(”123,45,ab”,”,”)
S(0)=”123”,S
(1)=”45”
S
(2)=”ab”
String(N,C)
返回由C中首字母组成的N个相同字符的字符串
String(3,”abcdefg”)
aaa
Trim(C)
去掉字符串两边的空格
Trim(“abc“)
“abc”
编码规则:
vb程序中不区分大小写;同一行上可以书写多条语句,语句之间用“:
”分隔,一行最多可达25个字符;单行语句可分若干行书写,在在本行后加入续行符“_”(空格加下划线);在句首加上“’”则把该句注释。
赋值语句:
变量名=表达式
把等号右边的表达式计算结果赋值给等号左边的变量。
Attention:
1.赋值号与表示等于的关系运算符都用“=”表示,但是两者有区别。
赋值语句:
a=b和b=a是两个结果不同的赋值语句
关系表达式:
a=b和b=a是同一个意思。
2.赋值号的左边只能是变量名,不能是常量,常量函数,常量符号,表达式。
例:
Now()=x+y错误,左边是表达式
5=x+y错误,左边是常量
x+y=3错误,左边是表达式
3.赋值号两边数据类型不同时的处理
1当表达式为数值型并与变量精度不同时,需强制转换成左边变量的精度。
例如:
n%=3.5n为整型,转换时四舍五入,n中的结果为5
2当表达式是数字字符串,左边变量是数值类型,自动转换成数值类型后再赋值,如果表达式有非字符字串或者空串,则出错。
例如:
n%=”123”n中的结果是123,与n=val(”123”)一样
n%=”la123”或者n%=””引发运行时异常出现
3任何非字符型的值赋值给字符型变量,自动转换为字符型
数据的输入和输出
输入:
1.Label1.caption=”************”
2.r=val(text1.text)
printr
输出:
Inputbox对话框inputbox(”提示”,”标题”,”默认值,[x的坐标],[y的坐标]”
Msgbox:
msgbox(”提示”,[按钮],[标题])
按钮设置值:
分组
内部函数
按钮值
描述
按钮数目
VbOkOnly
0
只显示”确定”按钮
VbOkCancel
1
显示”确定”,”取消”按钮
VbAbortRetryIgnore
2
显示”终止”,”重试”,”忽略”按钮
VbYesNoCancel
3
显示”是”,”否”,”取消”按钮
VbYesNo
4
显示”是”,”否”按钮
VbRetryCancel
5
显示”重试”,”取消”按钮
Vb控制结构
分组
内部函数
按钮值
描述
图标类型
VbCritical
16
关键信息图标
VbQuestion
32
询问信息图标
VbExclamation
48
警告信息图标
VbInformation
64
信息图标
在写msgbox的函数时,msgbox(“**”,5+48,”**”),
msgbox(“**”,VbRetryCancel+48,”**”),msgbox(“**”,VbRetryCancel+VbExclamation,”***)
msgbox(“**”,5+VbExclamation,”**”)执行时效果相同。
返回值
内部函数
返回值
被单击的按钮
vbOk
1
确定
vbCancel
2
取消
vbAbort
3
终止
vbRetry
4
重试
vbIgnore
5
忽略
vbYes
6
是
vbNo
7
否
Print方式
[对象.]print[定位函数][输出表达式列表][分隔符]
如:
picture1.printtab(10);string(3,””);
省略picture1.则在窗体上输出,省略tab(10)则在当前位置输入,省略string(3,””),则输出一空行
分隔符有”;”和”,”两种,”;”定位于输出字符的下一个位置,”,”定于为输出字符的后14个为位置
Format格式输出函数
格式:
Format(表达式,”格式字符串”)
符号
作用
数值表达式
格式化字符串
显示结果
0
实际数字位数小于符号位数,数字前后加0
1234.567
1234.567
“00000.000”
“0000.000”
01234.567
1234.567
#
实际数字位数小于符号位数,数字前后不加0
1234.567
1234.567
“#####.###”
“####.###”
1234.567
1234.567
千分位
1234.567
“##.##0,0000”
1,234.5670
%
数值乘以100,加百分号
1234.567
“####.##%”
123456.7%
$
在数字前强制加$
1234.567
“$###.##”
$1234.57
E+
用指数表示
0.1234
#0.00E+00”
1.23E-01
输出时;为紧凑输出,&为字符串连接符
print“a=”;format(a,”0.00”)|a=12.34
Print“a=”;a|a=[空格]12.34
Print“a=”&a|a=12.34
Printa;”+”|[空格]a[空格]+
Printa&”+”|a+
选择结构
语句
1.If……Then语句
1.If<表达式>Then
<语句块>
End
2.If<表达式>Then<语句块>
2.If……Then……Else语句(双分支结构)
1.If<表达式>Then
<语句块1>
Else
<语句块2>
EndIf
2.If<表达式>Then<语句块1>Else<语句块2>
3.If……Then……ElseIf语句(多分支结构)
1.If<表达式1>Then
<语句块1>
ElseIf<表达式2>Then
<语句块2>
…
[Else
<语句块n+1>]
EndIf
:
语句的顺序按照从上往下执行,若不符合表达式n,则跳转到表达式n+1,若符合表达式n,则执行完语句块n之后直接endif
:
若有else语句就可以执行else语句,若没有则直接endif,else语句不是必须有的
4.SelectCase语句(情况语句)
SelectCase变量或表达式
Case表达式列表1
<语句块1>
Case表达式列表2
<语句块2>
…
[CaseElse
<语句块n+1>]
EndSelect
变量或表达式:
可以是数值型或字符串表达式
表达式列表i:
必须与“变量或表达式”的类型相同,可以使下面四种形式之一:
☻表达式
☻一组用逗号分隔的枚举值
☻表达式1to表达式2(包含表达式1和2)
☻Is关系运算符表达式(配合关系运算符来制定一个数值范围)
Attention:
对于多分支结构,用selectcase语句比用if…then…elseif语句更加直观,程序可读性强,但是如果有多个变量,则只能使用if…then…elseif语句。
例:
方法一:
Ifx>0andy>0then
Msgbox(“在第一象限”)
Ifx<0andy>0then
Msgbox(“在第二象限”)
Ifx<0andy<0then
Msgbox(“在第一象限”)
Ifx>0andy<0then
Msgbox(“在第一象限”)
方法二:
Selectcase
Casex>0andy>0then
Msgbox(“在第一象限”)
Casex<0andy>0then
Msgbox(“在第二象限”)
Casex<0andy<0then
Msgbox(“在第一象限”)
Casex>0andy<0then
Msgbox(“在第一象限”)
循环结构
语句
1.for循环语句——用于控制次数的预知的循环结构。
For循环控制变量=初值to终值[step步长]
循环体
Next循环控制变量
Ps:
a.循环控制变量必须为数值型,
b.步长=int((终值-初值)/步长+1)
c.循环体中有exitfor语句,表示当遇到该语句时直接退出for循环,执行next语句的下一条语句
2.do……loop循环
形式一:
(循环次数>=0)
Do[{While/Until}条件]
循环体
Loop
形式二(循环次数>0)
Do
循环体
Loop[{While/Until}条件]
2.循环嵌套
外一次内一轮
Fori=ntom
*********
Forj=xtoy
#########
Nextj
Nexti
两循环并列
Fori=ntom
***********
Nexti
Forj=xtoy
###########
Nextj
数组
定义:
一组相同类型变量的集合,在使用上的好处是用一个数组名代表逻辑上的一批数据,用下标表示该数组中的各个元素,和循环语句配合使用,使得程序书写更为简洁。
注意:
1.数组必须先声明后使用,要声明数组名、类型、维数、数组的大小。
2.数组声明时下标的个数分为一维数组和多维数组。
3.数组声明时根据数组的大小确定与否可分为定长数组和动态数组。
定长数组和声明:
1.一维数组
表达形式:
Dim数组名(下标)[As类型]
Ps:
下标:
必须为整数,不可以为表达式或者变量
下标的形式:
[下界to]上界,下标可以省略,省略则默认值为0to上界,但如果在vb中的窗体层或者标准模块层用optionbasen语句定义时,下界则被人为规定为n
一维数组的大小:
上界-下界+1
As类型:
如果默认,与前述变量的声明一样,是变体型数组。
2.多维数组
表达形式:
Dim数组名(下标1[,下标2,…])[As类型]
Ps:
下标个数:
决定了数组的维数。
最多60维。
数组大小:
每一维的大小为上界-下界+1;数组的大小为各维大小的乘积。
动态数组和声明
1.建立
a.用Dim语句声明数组,但不声明数组的大小:
Dim数组名()As数据类型
b.用ReDim语句分配元素的个数:
ReDim数组名(下标1[,下标2…])[As类型]
Ps:
用redim分配元素时可以用变量,但是变量要先赋值,而用dim分配时,绝对不可以用变量!
Dim语句是说明性语句,可以出现在程序的任何地方。
而ReDim语句是可执行语句,只能出现在过程中。
在过程中可以多次使用ReDim语句来改变数组的大小,但每次使用完之后,都会清空数组中的值,可以在ReDim保留字后加Preserve参数,用来保留数组中的数据,但使用Preserve只能改变最后一维数组的大小,前面几维的大小不能改变。
例:
ReDim[Preserve]A(3,3)
再ReDim[Preserve]A(3,x)
数组的基本操作
1.数组元素的引用
数组名(下标1[,下标2…])
2.数组的赋值array函数
变量名=array(常量列表)
Ps:
其中变量名必须声明为variant变体类型,并作为数组使用。
常量列表用逗号分隔,数组的下界和上界可通过lbound和ubound函数获得。
功能:
将常量列表中的各项值分别赋值给一个一维数组的各元素。
例如:
Dima(),i%
a=Array(1,2,3,4,5,6)
fori=LBound(a)toUbound(a)
printa(i)
nexti
3.数组的输入
可以通过textbox或者InputBox输入
例如:
Dimx(3,4)asinteger
Fori=0To3
Forj=0To4
x(i,j)=Val(InputBox("输入"&i&","&j&"元素的值"))
Nextj
Nexti
4.数组的输出
用print配合for语句。
5.求数组和、最大值和最小值、位置以及交换数组元素。