VB小结.docx

上传人:b****7 文档编号:9730540 上传时间:2023-02-06 格式:DOCX 页数:46 大小:29.12KB
下载 相关 举报
VB小结.docx_第1页
第1页 / 共46页
VB小结.docx_第2页
第2页 / 共46页
VB小结.docx_第3页
第3页 / 共46页
VB小结.docx_第4页
第4页 / 共46页
VB小结.docx_第5页
第5页 / 共46页
点击查看更多>>
下载资源
资源描述

VB小结.docx

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

VB小结.docx

VB小结

VB的特点

1.可视化的设计平台

2.面向对象的设计方法

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

3.事件驱动的编程机制

4.集成化的开发环境

5.结构化的设计语言

VB程序设计

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)取余

加法、减法(+,-)。

整除:

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

字符串表达式

字符串运算符:

& 或 +

功能:

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

说明:

(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可以产生不同的随机数。

产生指定范围的随机数:

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

Rnd*n

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

Int(Rnd*n)

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

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

l     产生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语句:

 If x>=0 Then y=1+x Else y=1-2*x

或:

Ifx>=0Theny=1+x

If x<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.4 IIf函数

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$="是闰年"

ElseIf xMod4=0 And xMod100<>0Then

  y$="是闰年"

Else

  y$="不是闰年"

EndIf

 

也可

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

IfxMod4=0andxMod100<>0 or xMod400=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=0Then Print 

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=1Then Write#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()

 DimaAsV

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

当前位置:首页 > 高等教育 > 工学

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

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