VB知识点总结.docx

上传人:b****4 文档编号:11710602 上传时间:2023-03-30 格式:DOCX 页数:36 大小:28.02KB
下载 相关 举报
VB知识点总结.docx_第1页
第1页 / 共36页
VB知识点总结.docx_第2页
第2页 / 共36页
VB知识点总结.docx_第3页
第3页 / 共36页
VB知识点总结.docx_第4页
第4页 / 共36页
VB知识点总结.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

VB知识点总结.docx

《VB知识点总结.docx》由会员分享,可在线阅读,更多相关《VB知识点总结.docx(36页珍藏版)》请在冰豆网上搜索。

VB知识点总结.docx

VB知识点总结

VB概述

§1VB的特点

1.可视化的设计平台

2.面向对象的设计方法

对象具有自己的属性(对象的性质)、方法(对象的动作)和事件(对象的响应),它构成对象的三个要素。

3.事件驱动的编程机制

4.集成化的开发环境

5.结构化的设计语言

§4VB程序设计

VB应用程序的开发有三个步骤:

(1)设计应用程序界面。

(2)设置对象的属性

(3)编写事件驱动代码

保存工程

简便方法:

执行“文件/保存工程”命令

(第一次保存文件)系统先打开“文件另存为”对话框,保存窗体文件(或标准模块文件),然后再打开“工程另存为”对话框,保存工程文件。

保存修改后的工程文件

选择“文件/保存工程”命令保存所做的修改,(保存与工程有关的修改过的窗体文件或标准模块文件)。

VB基础知识

常量

(1)字符串常量

用双引号括起来的字符序列(除双引号和回车符)。

例如:

"China"

“Iamastudent.”

"95.3%"

"计算机软件"

(2)数值常量

整型1234(十进制)

长整型12345678(十进制)

单精度数:

有三种形式,12.34,123!

,123.45E-5

双精度数:

有两种形式,12.34#,123.45D-5

在常数后面加上类型说明符:

%整型&长整型!

单精度

#双精度$字符串型。

2.符号常量

格式:

Const常量名=表达式

功能:

定义一个符号常量来表示表达式的值。

说明:

“常量名”可加以类型说明符。

符号常量的类型由类型说明符或表达式的类型决定。

ConstPI=3.141593

变量

1.变量的命名

变量名以字母开头,后跟字母、数字和下划线组成

说明:

(1)变量名不能是保留字

(2)VB变量名不区分字母大小写。

2.变量的类型

(1)用类型说明符

在变量的尾部加上类型说明符:

%整型&长整型!

单精度

#双精度$字符串型。

例如:

Num%,Str1$均是合法的变量名

在引用时,可以省略类型说明符。

(2)定义变量时声明其类型

格式:

Dim变量名As类型

“类型”可为基本数据类型或用户自定义的类型。

Boolean(布尔型)Long(长整型)

Single(单精度型)Double(双精度型)

String(字符串型)Variant(变体型)

用户自定义类型

例如:

Dimstr1AsString,countryAsString*20

DimiAsInteger,sumAsSingle

定义变量后,数值型变量的初值为0

字符型变量的初值为空字符串

其中:

变长字符串的初值是长度为0

定长字符串的初值的长度等于定义值。

3.变体类型变量

如未定义类型的变量

例如:

DimsumAsVariant

Dimsum

运算符与表达式

1.算术运算符(8种)

优先级(从高到低):

指数(∧)

取负(-)

乘法、浮点除法(*,/)

整数除法(\)

取模(Mod)

加法、减法(+,-)。

整除:

被除数和除数为整数,结果为整数。

31.7\5.88

32\6结果为:

5

取模(求余)运算:

结果为整数除法的余数。

31.77Mod5.88(四舍五入)

32Mod6,余数为2

3Mod6余数为3

字符串表达式

字符串运算符:

&或+

功能:

把字符串连接成一个字符串。

说明:

(1)符号“&”与字符串变量之间应间隔一个空格,

例如:

str1&str2

(2)“&”能强制把其它类型的数据转换为字符串,

而“+”不能。

例如:

2008&"奥运会"2008奥运会

"2008"+"奥运会"2008奥运会

注意:

Print"123"+567结果:

690

Print"abc"+567出错:

类型不匹配

常用内部函数

数学函数

函数

功能

Abs(x)

返回x的绝对值

Int(x)

求不大于x的最大整数

Int(7.8)结果为7,Int(-7.8)结果为-8

Cint(x)

把x小数四舍五入,转换为整数,

Exp(x)

计算ex,e是自然数2.718281

Log(x)

求x的自然对数

Sqr(x)

求x的平方根

Rnd

返回0~1之间的随机数:

字符串函数

Len(str)

返回字符串长度

Left$(str,n)

取字符串左边n个字符

Right$(str,n)

取字符串右边n个字符

Mid$(str,p[,n])

从位置p开始,取n个字符,如n省略,取到最后

Str$(num)

数值转字符串

Val(str)

字符串转数值

Asc(str)

返回字符串首字母ASCII码

Chr$(n)

ASCII码转字符

说明:

(l)三角函数Sin、Cos和Tan自变量的单位是弧度

反正切函数Atn(x)的返回值单位为弧度。

度转换为弧度:

1°=3.14159/180*x

(2)用函数Rnd可以产生不同的随机数。

产生指定范围的随机数:

●产生0~n之间的随机数(不含0和n)

Rnd*n

●产生0~n之间的随机整数(含0,不含n)

Int(Rnd*n)

●产生a~b之间的随机整数(含a,不含b)

Int((b-a)*Rnd+a)

●产生a~b之间的随机整数(含a和b)

Int((b-a+1)*Rnd+a)

顺序结构

结构化程序三种基本结构:

顺序结构、选择结构和循环结构。

1赋值语句

变量=表达式

属性名=属性值

注意:

当变量类型与表达式的类型不同时,VB自动将表达式的类型强制

转换为变量类型。

例如:

DimNumAsInteger

Num=8.89(将9赋给Num,四舍五人)

3数据输入

方法1:

用文本框

例:

DimmAsInteger

m=Val(Text1.Text)

方法2:

用Inputbox()函数

例:

m=Val(InputBox("enterm:

"))

方法3:

从文件输入

Input#2,m

4输出数据

方法1:

用文本框

例:

Text1.Text=n

或Text1=n

方法2:

用标签

例:

Label1.Caption=n

方法3:

用Print方法

例:

Printn

方法4:

输出到列表框

例:

List1.AddItemn

方法5:

输出到文件

例:

Open"abc.dat"ForOutputAs#1

Write#1,n

【例】交换变量a、b的值。

用中间变量t作暂存单元,必须与交换的变量同类型。

t=a:

a=b:

b=t

3.2窗体

窗体常用的方法Print,

窗体事件

1.Click事件

2.Load事件

Load是把窗体装入工作区事件,

Form_Load()事件是执行程序时自动触发的,因此常用来在

启动程序时对属性和变量进行初始化。

3.UnLoad事件

关闭窗体触发该事件

选择结构

满足条件为“真”,用“True”表示;

不满足条件为“假”,用“False”表示。

关系表达式

1.关系运算符(6种)

=、<>、<、>、<=、>=

优先级相同,运算从左到右。

2.关系表达式

例如:

“apply”>“apple”

按ASCII码逐字符进行比较。

空格<“0”…“9”<“A”…“Z”<“a”…“z”

“apply”>“apple”结果为True

逻辑表达式

逻辑运算符:

Not、And、Or

优先级:

逻辑非(Not)、逻辑与(And)、逻辑或(Or)

注意:

表示:

a≤x≤b

a<=xAndx<=b

选择结构

1.单行If语句

If条件Then语句组1[Else语句组2]

语句组:

各语句间需用“:

”分隔。

2.块结构If语句

If条件Then

语句块1

Else

语句块2

EndIf

例:

计算分段函数

1+x(x≥0)

y=

1-2x(x<0)

Ifx>=0Then

y=1+x

Else

y=1-2*x

EndIf

用单行If语句:

Ifx>=0Theny=1+xElsey=1-2*x

或:

Ifx>=0Theny=1+x

Ifx<0Theny=1-2*x

3.多分支选择结构

If条件1Then

语句块1

ElseIf条件2Then

语句块2

ElseIf条件3Then

语句块3

……

Else

语句块n+1

EndIf

从多个条件中,选择执行一个语句块

“纵然分支众多,仅选其一”

说明:

当有多个条件为真时,只能执行最前面的一个语句块。

注意:

ElseIf之间不能有空格

【例】学生成绩判定。

PrivateSubCommand1_Click()

x=Val(InputBox("输入学生成绩:

"))

Ifx>=90Then

Print“优”

ElseIfx>=80Then

Print“良”

ElseIfx>=70Then

Print“中”

ElseIfx>60Then

Print“及格”

Else

Print“不及格”

EndIf

EndSub

4.2.4IIf函数

IIf是单行If语句的简单版本。

变量=IIf(条件,True部分,False部分)

注意:

IIf函数中的三个参数都不能省略。

例:

计算分段函数

1+x(x≥0)

y=

1-2x(x<0)

PrivateSubCommand1_Click()

DimxAsSingle,yAsSingle

x=Val(Text1.Text)

y=IIf(x>=0,1+x,1-2*x)

Text2.Text=y

EndSub

【例】判闰年。

闰年的条件:

(1)被4整除,但不能被100整除;

(2)能被400整除。

最好:

IfxMod400=0Then

y$="是闰年"

ElseIfxMod4=0AndxMod100<>0Then

y$="是闰年"

Else

y$="不是闰年"

EndIf

也可

x=Val(InputBox("输入年份"))

IfxMod4=0andxMod100<>0orxMod400=0Then

y$="是闰年"

Else

y$="不是闰年"

EndIf

4.SelectCase语句

用于实现多分支结构。

SelectCase测试表达式

Case条件1

语句块1

Case条件2

语句块2

……

CaseElse

语句块n+1

EndSelect

功能:

从多个条件中选择执行第一个符合条件的语句,都不符合,

则执行CaseElse后的语句块。

注意条件:

常量表:

1,3,5

测试范围:

10to20,“a”to“z”

比较范围:

Is<10

(不能为逻辑表达式)

【例】学生成绩评定

PrivateSubCommand1_Click()

x=Val(InputBox("输入考试成绩"))

SelectCasex

Case90To100

y$="优"

Case80To89

y$="良"

Case70To79

y$="中"

Case60To69

y$="及格"

Case0To59

y$="不及格"

CaseElse

y$="输入错误"

EndSelect

Form1.Print"成绩:

";x,"等级:

";y$

EndSub

循环结构

“当型”循环:

当条件为真,执行循环体。

“直到型”循环:

做循环,直到条件为真为止。

1.For-Next循环

常用于循环次数已知。

For循环变量=初值To终值[Step步长]

循环体

[ExitFor]

Next循环变量

【例】计算n!

PrivateSubCommand1_Click()

n=Val(InputBox("输入一个自然数"))

Term=1

Fori=1Ton

Term=Term*i

Nexti

Printn;"!

=";Term

EndSub

【例】计算2+4+6+……+100的值。

PrivateSubCommand1_Click()

Sum=0

Forx=2To100Step2

Sum=Sum+x

Nextx

Form1.Print"Sum=";Sum

EndSub

【例】计算1+2!

+3!

+……+10!

PrivateSubCommand1_Click()

T=1

S=0

Fork=1To10

T=T*k

S=S+T

Nextk

PrintS

EndSub

2.While-Wend循环

适合处理循环次数未知的循环。

While条件

语句块

Wend

功能:

当条件为真时执行循环。

【例】计算1+2+3+……+100

PrivateSubCommand1_Click()

DimnAsInteger,sAsInteger

s=0

n=1

Whilen<=100

s=s+n

n=n+1

Wend

Lable1.Caption=“1+2++3+……+100=”&s

EndSub

3.Do-Loop循环

Do

语句块

[ExitDo]

Loop[While|Until条件]

Do[While|Until条件]

语句块

[ExitDo]

Loop

功能:

While条件——当“条件”为True执行循环体。

Until条件——“条件”为False执行循环体。

如无条件,则为死循环。

说明:

格式1:

“先循环,后判断”,至少执行一次循环。

格式2:

“先判断,后循环”,如条件不满足,则一次循环也不执行。

【例】计算1+2+3+……+100

s=0

n=1

Dowhilen<=100

s=s+n

n=n+1

Loop

也可

s=0

n=1

DoUntiln>100

s=s+n

n=n+1

Loop

【例】将十进制数转换为二进制数

PrivateSubForm_Click()

DimmAsInteger

m=InputBox("enterm:

")

a$=""

Whilem<>0

r=mMod2

a$=r&a$

m=m\2

Wend

Printa$

EndSub

注意:

a$=a$&r

则为:

4=001

列表框

列表框的方法

AddItem方法:

用于在列表框中插入一个列表项。

格式:

列表框.AddItem项目字符串[,索引值]

如省略索引值,则在列表框的最后插入新列表项。

【例】将文本框内容添加到列表框1

PrivateSubCommand1_Click()

List1.AddItemText1.Text

EndSub

多重循环

说明:

(1)必须完整嵌套,不得交叉。

(2)ExitFor语句和ExitDo语句只能退出当前层循环。

指定每行显示数据的个数

Forn=1to30

Printn;””;

IfnMod10=0ThenPrint

Nextn

'每显示10个数据换行

常用算法

(1)

1.不定方程求解。

【例】百鸡问题

x+y+z=100

5x+3y+z/3=100

PrivateSubCommand1_Click()

DimxAsInteger

DimyAsInteger,zAsInteger

Print"公鸡","母鸡","小鸡"

Forx=0To20

Fory=0To33

z=100-x-y

If5*x+3*y+z/3=100Then

Printx,y,z

EndIf

Nexty

Nextx

EndSub

2.求最大公约数和最小公倍数

辗转相除法:

【例】计算最大公约数和最小公倍数。

PrivateSubCommand1_Click()

DimmAsInteger,nAsInteger

DimuAsInteger,vAsInteger

m=Val(Text1.Text)

n=Val(Text2.Text)

Ifm>nThen

u=m:

v=n

Else

u=n:

v=m

EndIf

Do

r=uModv

u=v

v=r

LoopUntilr=0

Print"最大公约数:

";u

Print"最小公倍数:

";m*n/u

EndSub

r=uModv

DoWhiler<>0

u=v

v=r

r=uModv

Loop

Print"最大公约数:

";v

3.判素数(质数)

【例】判n是否为素数。

PrivateSubCommand1_Click()

DimnAsInteger,iAsInteger

n=Val(InputBox("输入正整数"))

Fori=2Ton-1

IfnModi=0ThenExitFor

Nexti

Ifi>n-1Then

Printn;"是质数"

Else

Printn;"不是质数"

EndIf

EndSub

例求100~200之间素数,并写入顺序文件。

PrivateSubCommand1_Click()

Open“shusu.dat”ForOutputAs#1

Forn=101To200step2

S=1‘是

Fori=2ToInt(Sqr(n))

IfnModi=0Then

S=0‘不是

ExitFor

EndIf

NextI

Ifs=1ThenWrite#1,n

Nextn

close#1

EndSub

添加到列表框:

List1.AddItemn

数组

6.1静态数组

编译时分配存储空间。

定义:

Dimb(3,4)AsLong

分配4×5个长整型变量的空间,

二维数组在内存按行的顺序存放

b(0,0)

b(0,1)

B(0,2)

b(0,3)

b(0,4)

b(1,0)

b(1,1)

B(1,2)

b(1,3)

b(1,4)

b(2,0)

b(2,1)

B(2,2)

b(2,3)

b(2,4)

b(3,0)

b(3,1)

B(3,2)

b(3,3)

b(3,4)

例:

Dimb(3,2to4,1to3)AsInteger

共分配4×3×3=36个元素,共72Byte

Option语句

格式:

OptionBase1

注意:

只能出现在窗体层或模块层

必须位于数组定义之前。

例:

OptionBase1

……

Dima(10)AsInteger,x(5,5)AsString

每一维下标的下界均从1开始。

动态数组

运行时分配内存区,

定义分两步进行:

(1)先在窗体层、标准模块或过程中Dim或Public声明一个

没有下标的数组。

(2)过程中用ReDim语句定义带下标的数组。

说明:

声明时不指定数组的维数

数组的维数由第一次出现的ReDim语句指定。

例如:

DimTest()AsInteger

DimnAsInteger

SubForm_click()

……

n=InputBox(”Enteravalue:

”)

ReDimTest(n)

……

EndSub

数组元素的引用

形式:

数组名(下标)

数组元素赋初值

运行前对数组进行初始化。

格式:

数组变量名=Array(初值表)

说明:

数组下标下界缺省为0,只能对一维数组初始化

【例】

DimaAsAsVariant

a=Array(1,2,3,4,5,6,7)

注意:

下标从0~6

【例】一维数组元素赋初值。

OptionBase1

PrivateSubForm_Click()

DimaAsVariant

a=Array(1,2,3,4,5,6,7)

Fori=1To7

Printa(i);

Nexti

EndSub

运行结果:

1234567

数组输入/输出

一般通过For循环语句和InputBox函数实现,

一维数组用单重循环。

二维数组采用双重循环。

【例】一维数组的输入和输出。

Fori=1To10

a(i)=InputBox("Enterdata:

")

Nexti

【例】二维数组的输入和输出。

123

456

789

Fori=1To3

Forj=1To3

a(i,j)=InputBox("enterdata:

")

Nextj

Nexti

Fori=1To3

Forj=1To3

Printa(i,j);"";

Nextj

Print

Nexti

【例】用Rnd产生10个0~100之间随机数。

Fori=1To10

a(i)=Int(100*Rnd)

Nexti

用户自定义类型

定义格式:

Type自定义类型名

元素名1As类型名

元素名2As类型名

……

元素名nAs类型名

EndType

其中:

类型名——可为任何基本类型,也可为用户自定义类型。

说明:

(1)一般在标准模块中定义,默认为Public。

如在窗体模块的“声明”段定义,则必须加上Private,

且只能在窗体模块中使用。

(2)自定义类型中的元素可以为数组名。

【例】

PrivateTypestudent

numAsString*8

nameAsStr

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1