计算机二级大学复习资料 从老师那拷来的.docx

上传人:b****8 文档编号:9424638 上传时间:2023-02-04 格式:DOCX 页数:122 大小:689.56KB
下载 相关 举报
计算机二级大学复习资料 从老师那拷来的.docx_第1页
第1页 / 共122页
计算机二级大学复习资料 从老师那拷来的.docx_第2页
第2页 / 共122页
计算机二级大学复习资料 从老师那拷来的.docx_第3页
第3页 / 共122页
计算机二级大学复习资料 从老师那拷来的.docx_第4页
第4页 / 共122页
计算机二级大学复习资料 从老师那拷来的.docx_第5页
第5页 / 共122页
点击查看更多>>
下载资源
资源描述

计算机二级大学复习资料 从老师那拷来的.docx

《计算机二级大学复习资料 从老师那拷来的.docx》由会员分享,可在线阅读,更多相关《计算机二级大学复习资料 从老师那拷来的.docx(122页珍藏版)》请在冰豆网上搜索。

计算机二级大学复习资料 从老师那拷来的.docx

计算机二级大学复习资料从老师那拷来的

3VisualBasic语言基础

3.1VisualBasic程序代码的组织方式

通过上面几章的学习,可以看出,一个VisualBasic程序由窗体界面和程序代码两部分组成,通过程序代码把窗口界面的各个对象以及应用中的其他元素联系在一起。

程序代码部分则由若干被称为“过程”的代码行及向系统提供某些信息的说明组成。

过程及说明又被组织在所谓的“模块”之中。

将设计的过程代码及相关说明合理地组织到不同的模块之中,也就是设计代码的结构,在创建VisualBasic应用时是最为重要的一个步骤。

3.1.3过程

所谓“过程”,正如前几章从示例中看到的,就是具有特定书写格式、包含若干可被作为一个整体执行的代码行的一个代码组。

根据执行的方式,可把“过程”分为“事件过程”和“通用过程”两类(编者注:

VB还有一类“属性过程”,因超出本书内容范围,不再介绍,感兴趣的读者可自行参阅VB手册)。

1.事件过程

VisualBasic程序是由事件驱动的,所以事件过程是VisualBasic程序中不可缺少的基本过程。

我们为窗体以及窗体上的各种对象编写的用来响应由用户或系统引发的各种事件的代码行就是“事件过程”。

事件过程由VisualBasic中的事件调用。

也就是说,当指定的事件发生时,该过程即会被激活执行。

事件过程存储在被称为“窗体模块”的文件中(扩展名.FRM),而且在缺省情况下,是“私有的”(Private)。

换言之,事件过程在未加特别说明时,仅在该窗体内有效。

前面列举的程序示例中的程序代码都是事件过程。

事件过程的代码框架是由VB系统自动提供的,用户在代码编辑器窗口可通过单击“对象”下拉列表框选择要编写代码的具体对象,单击“过程”下拉列表框选择具体的事件,代码窗口就给出该对象响应相关事件的过程框架,在框架内加入代码即可(图3-1)。

在保存窗体时,窗体的外观会和编写的事件代码一起保存。

图31

2.通用过程

一个应用程序可以具有若干个窗体,每个窗体又可能拥有相同或不相同的对象,但是这些不同窗体中的对象却有可能引发相同的操作或需要进行某些共同的处理,也就是说,一个应用中的多个窗体可以共享一些代码,或者一个窗体内不同的事件过程可共享一些代码。

这些可被共享的代码构成的过程被称为“通用过程”。

通用过程是由事件过程或其它通用过程调用而执行的。

这些过程在缺省情况下,是“公有的”(Public),也就是说,通用过程可被所有的窗体共享。

有关通用过程的设计及调用,将在第7章详细介绍。

3.1.4模块

模块是VisualBasic用于将不同类型过程代码组织到一起而提供的一种结构。

在VB中具有三种类型的模块,即窗体模块、标准模块和类模块。

1.窗体模块

应用程序中的每个窗体都有一个相对应的窗体模块。

窗体模块不仅包含有用于处理发生在窗体中的各个对象的事件过程,而且包含有窗体及窗体中各个控件对象的属性设置以及相关的说明。

如果某些通用过程仅供本窗体内的其他过程共享,则它也可包含在该窗体模块之中。

2.标准模块

在应用程序中可被多个窗体共享的代码,应当被组织到所谓的“标准模块”之中。

标准模块文件的扩展名是.bas。

标准模块中保存的过程都是通用过程。

除了这些通用过程之外,标准模块中还包含有相关的说明。

特别值得一提的是:

标准模块中代码并不限于用于一个应用程序,还可供其他应用程序重复使用。

创建标准模块最简便的方法是:

单击工具栏上添加窗体按钮右侧向下的箭头,并在出现的选项表中选择“添加模块”(图3-2),然后再在出现的代码编辑窗口中输入代码即可。

图31

3.类模块

类模块包含用于创建新的对象类的属性、方法的定义等。

有关类模块的详细内容,感兴趣的读者可参阅有关的VB手册。

3.2代码行的书写规则

1.语句

语句是构成VisualBasic程序的最基本成份。

一个语句或者用于向系统提供某些必要的信息(如程序中使用的数据类型等),或者规定系统应该执行的某些操作。

语句的一般形式是:

<语句定义符>[语句体]

语句定义符用于规定语句的功能;语句体则用于提供语句所要说明的具体内容或者要执行的具体操作。

但VisualBasic中一些语句可以没有语句定义符;有一些语句的语句定义符可以省略。

VisualBasic程序是按行书写的。

一个语句可写在一行上;也可以通过在行的末尾加上“续行标志”(_:

一个空格加一个下划线字符),而分写在多行上;另外,也可在一个代码行上写入多个语句,但语句之间需要用冒号“:

”分隔。

下面是两种情况的示例:

例1,一个语句分写在多行上:

Dimstudent_nameAsString,student_numberAsString,computerAs_

Integer,englishAsInteger

例2,一行写多个语句:

x=10:

y$="VisualBasic":

z=20

2.书写规范

语句输入时,可以不区分大小写字母,一个代码行输入完后,按回车键,光标自动移向下一行,同时,系统还会自动把语句中所有“保留字”的第一个字母改为大写字母,并在其前后加上空格。

比如,Rem是系统保留字,所以不论输入的是ReM、还是rem或REM等,系统都会自动变换成Rem。

3.3VisualBasic的数据类型

数据是程序处理的对象。

VB具有强大的数据处理能力,它的具体表现就是VB程序不仅可以处理各种数制的数,而且具有丰富的数据类型。

在程序中取值始终保持不变的数据称为“常量”,常量可以是具体的数值,也可以是专门说明的符号;以符号形式出现在程序中,且取值可以发生变化的数据称为“变量”。

在程序执行前已知,且在程序重复执行时,不发生变化的量,可把它的取值直接写入程序。

例如圆周率的值3.14159,在进行相关运算时总是不变的,就可直接写入程序。

变量则是存储单元的代号。

从计算机的外部设备输入的数据,必须送入变量中保存;而在程序执行过程中,变量的内容可以不断改变(存入新的数据)。

与数学上表示未知数的“变量”不同,程序中的变量在任一时刻都有一个确定的“值”(即该时刻所存储的数据),变量在参加运算等处理时,是用它所存储的数据进行运算。

3.3.3数据类型

VB支持的数据类型多达十一种。

表3-1列出了这些数据类型的名称、存储大小及数据的取值范围。

变体型数据是VB的缺省数据类型,它可以存储各种类型的数据。

表4-1

数据类型

存储大小

取值范围

Integer整数

2Byte

-32768~32767

Long长整数

4Byte

-2147483648~2147483647

Single单精度数

4Byte

-3.402823E38~-1.401298E-45

1.401298E-45~3.402823E38

Double双精度数

8Byte

-1.79769313486232E308~

-4.94065645841247E-24;

4.94065645841247E-324~1.79769313486232E308

Byte字节型数

1Byte

0~255

Boolean逻辑型数

2Byte

True或False

String字符串型数(变长)

10Byte+串长度

0~约20亿个字符

String字符串型数(定长)

串长度

1~约65400个字符

Date日期型数

8Byte

100年1月1日~9999年12月31日

Currency货币型数

8Byte

-922,337,203,685,447.5808~

922,337,203,685,447.5807

Object对象型数

4Byte

任何对象引用

Variant变体型数

>=16Byte

数值型可达Double型的范围;

字符型可达变长字符串型的串长度

VB之所以提供多种数据类型的根本目的就是为了提高程序代码的运行效率。

不论是常量还是变量,如果不加说明,系统均按变体型数据处理。

表面上看,对于编程者似乎要简单一些,但实质上,由于在机器内部,以定点数形式表示的整数和以浮点数形式表示的实型数不仅处理的效率差别很大,而且由于数制转换(计算机内部采用的是二进制数)可能带来较大的误差。

另外,由上表还可看出,采用变体型数所占用的内存也要比其他类型更多。

所以在程序中,合理地选择使用数据类型非常重要。

由于VB处理整型数的速度最快,且没有数制转换误差,所以可以使用整型数的地方都应尽量使用整型数;在进行带小数点的数据运算时,常常会因数制转换而产生不精确的运算结果,所以如需要比较高的数据计算精确度,应使用双精度数据类型;货币类型的计算则比双精度数和单精度数的计算精度更高。

由于不同类型的数据在计算机内部存放的形式及占用的存储单元个数不同,因此,各自能够表示的数据范围也有所不同。

如果需要处理的数值超出了相应数据类型数据的表示范围,将产生“数据溢出”错误。

3.3.4常量

1.数值常量

一般的数值常量由正负号、数字和小数点组成,正数的正号可以省略。

在VB程序中,除人们最常用的十进制数外,还可以使用八进制数和十六进制数。

十进制数的表示形式与人们日常使用的形式基本相同。

不带小数点的数称为“整数”。

VB中的整数又分为整数和长整数。

从表3-1可知,整数用2个字节存放,表示范围较小;长整数用4个字节存放,表示的范围较大。

带小数点的数称为“实型数”或“浮点数”。

根据占用的存储量的大小,又分为单精度数和双精度数。

由于双精度数占用的存储量比单精度数大一倍,所以不仅表示的数据范围要比单精度数大得多(见上节),数据的有效数字也要多得多。

在计算机程序中,很大或很小的数通常以指数形式表示,10的幂次则以字母e或字母d代表。

也就是说浮点数值可表示为mmmEeee或mmmDeee两种形式,其中mmm是尾数,而eee是指数。

用D将数值文字中的尾数部分和指数部分隔开,系统将把该值作为双精度数据类型来处理。

同样,用这种方式使用E,系统也会把该值作为单精度数据类型来处理。

例如:

123-22735742(整数)

1758624-3765410(长整数)

123.4-752.6780.000352-0.012341.234E5-9.654E61.234E-5

-9.654E-6(单精度数)

3.1415926535-5732.123453.14159265D8-8.573264907D-15(双精度数)

VB中允许使用八进制数和十六进数,它们都是无符号整数。

八进制数的表示方法是在数字前面加“&O”;十六进制数的表示方法是在数字前面加“&H”。

例如:

&O137表示这是一个八进制数137,它相当于十进制数95;

&H137表示这是一个十六进制数137,它相当于十进制数311。

2.字符常量

把一串字符用引号括起来,就构成一个字符常量。

例如:

"VisualBasic"、"Howareyou!

"、"aB"等都是合法的字符常量。

字符常量容纳的字符数(长度),最多可达65535个。

3.逻辑型常量

逻辑型常量只有两个取值:

True(真)和False(假)。

4.日期常量

日期型常量的一般表示形式是:

mm/dd/yyyy,如1998年6月15日可表示为:

#6/15/1998#

注意:

为了与字符串型常量相区分,日期常量要用“#”括起来。

5.符号常量

常量在程序中也可用符号来表示。

以符号形式表示的常量称为“符号常量”。

代表常量的符号称作“常量名”。

常量名是一个长度不超过255个字符、只能由字母、数字和下划线组成且首字符必须是字母的字符串。

常量名中的字母不区分大小写。

如在程序中使用自定义符号常量,则应用Const语句先行说明。

Const语句的形式是:

[Public|Private]Const<常量名>[Astype]=<数值>

Public选项,只能用在标准模块中用以说明可在整个应用程序中使用的常量;Private选项则可用于说明在模块范围内使用的常量,它们均不能在过程中使用。

Type用于指定常量的数据类型。

另外,也可以在说明时,通过数据类型符号规定常量的类型。

例如:

ConstTaxAsSingle=1.05‘Tax是单精度数值常量

PublicConstCountry$="CHINA",Fax_Num&=36134484‘$和&是用于说明数据类型的符号,Country是字符串型常量,Fax_Num是长整型常量

有关数据类型符号详见下1节。

VB还在其内部定义了许多符号常量,在使用程序代码为窗体及各种控件的某些属性赋予新的取值时,就可以直接使用相应的内置符号常量。

通过VB帮助即可查找和使用他们。

3.3.5变量

1.变量名及类型说明

变量名的命名规则是:

●首字符必须是字母;

●长度不超过255个字符;

●在作用域内必须唯一;

●作为变量名的字符串内不得包括点号和用于类型说明的字符%、&、!

、#、@、$。

有时为了提高程序的可读性,可在变量名之前加上一个约定的前缀,用于表示变量的数据类型。

约定的前缀见表3-2。

表3-2

数据类型

前缀

数据类型

前缀

整型

int

长整型

lng

单精度型

sng

双精度型

dbl

逻辑型

bln

货币型

cur

日期型

dt

字串型

str

变体型

vnt

字节型

byt

2.变量作用域与变量说明语句

未加说明类型而使用的变量,系统一律按变体型处理。

由于变体型变量要占用较多的内存,并影响程序运行的效率,所以,变量在使用之前,最好用变量说明语句说明其类型。

根据变量说明方式的不同,变量的有效作用范围也不同。

变量的有效作用范围称为变量作用域。

1)变量作用域

VB有三个作用域等级:

等级

范围

局部

在过程中说明,仅在说明它的过程中有效

窗体/模块

在窗体或模块中说明,在定义该变量的模块或窗体的所有过程内均有效

全局(公有)

在模块或窗体中说明,在工程内的所有过程中都有效

2)变量说明语句

可使用四种说明语句说明变量的类型:

Dim<变量名>As<类型>[,<变量名>As<类型>]...

Public<变量名>As<类型>[,<变量名>As<类型>]...

Private<变量名>As<类型>[,<变量名>As<类型>]...

Static<变量名>As<类型>[,<变量名>As<类型>]...

其中Public语句用于说明全局变量,Private语句用于说明窗体/模块级变量,,它们都只能用在模块的通用部分;Static用于说明过程级的静态变量,而Dim语句既可用于说明模块级的变量(在模块的通用部分使用),也可用于说明过程级的变量(在过程内使用),因此较为常用。

有关静态变量的使用将在第7章述及。

模块级和公有级的变量应在代码窗口中的(通用)(声明)部分进行说明。

例如:

PrivateCountAsInteger

PublicNameAsString,ageAsInteger

局部变量仅在使用它的过程中说明:

PrivateSubCommand1_Click()

DimCountAsInteger

...

EndSub

在用Dim语句说明一个变量后,系统自动为该变量赋予一个初始值。

若变量是数值型的,则初始值为0;字符串型的,则初始值为空串;逻辑型变量的初始值为False。

另外,系统还会自动转换在代码行中输入的变量名以与说明的变量名相匹配。

例如说明语句是:

DimMyCountryAsString

在程序中输入:

mycountry=”NanJing”

VB将其自动转换成:

MyCountry=“NanJing”

VB的这种功能,可帮助使用者输入和使用正确的变量名。

在变量类型说明语句中,必须对每个需要说明的变量逐个使用AsType说明其类型,未加说明的变量将按变体类型处理,例如语句:

Dima,bAsInteger

中的a是变体类型,b是整型。

使用变量说明语句说明变量的数据类型,通常称为“显式说明”,也可以采用在变量名后加上一个用于规定变量类型的说明字符,来规定变量的类型,这种方法称为“隐式说明”。

VB规定的类型说明字符见表3-3。

表3-3

说明字符

示例

意义

%

x%

表示x是整型变量

&

x&

表示x是长整型变量

!

x!

表示x是单精度变量

#

x#

表示x是双精度变量

@

x@

表示x是货币型变量

$

x$

表示x是字符型变量

例如在过程:

PrivatesubForm_Click()

k&=1

Country$=“china”

Printk,Country

EndSub

中的变量k和Country被隐式说明为长整型和字符串型。

类型说明字符也适用于常量。

按照缺省规定,字符串型变量的长度是可变的,也就是说通过对字符串赋予新的数据,它的长度可增可减。

但也可以将字符串变量说明为具有固定长度。

方法是:

Dim<变量名>AsString*size

例如,为了声明一个长度为50字符的字符串,可用下列语句:

DimEmpNameAsString*50

如果赋给字符串变量的字符少于50个,则用空格将EmpName的不足部分填满。

如果赋予字符串的长度太长,则VisualBasic会直接截去超出部分的字符。

因为定长字符串用空格填充尾部多余的空间,所以在处理定长字符串时常常需要使用后面将要述及的用于删除空格的Trim和RTrim函数。

标准模块中的定长字符串变量可说明为Public或Private。

在窗体和类模块中,则必须将定长字符串变量说明为Private。

3)OptionExplicit语句

在模块中使用OptionExplicit语句,系统将检查模块中所有未加显式说明的变量,一旦发现有这样的变量存在,就会产生一个出错信息,提示使用者改正错误。

例如:

变量curSalary用于存放一个人用于计税的工资数据,若不使用Dim语句进行说明,一旦在程序中因为疏忽,变量名错输入为curSalry,就会得到错误的结果。

但使用了OptionExplicit语句,就可以通过系统自动检测发现并排除类似的错误。

OptionExplicit语句可使用以下方法输入:

激活代码编辑器窗口;

从对象列表中选“General”或(通用);

从过程列表中选“Declarations”或(声明);

在代码编辑栏中输入:

OptionExplicit

3.4运算符与表达式

VB中的运算符和表达式可分为算术运算符与算术表达式、关系运算符与关系表达式和逻辑运算符与逻辑表达式三类。

3.4.3算术运算符与算术表达式

1.算术运算符

VB的算术运算符有以下几种:

^乘方运算符

+加

-减(负号)

*乘

/除

\整除例:

8\6结果等于1

Mod取余运算例:

8Mod6结果等于2

&字符串连接运算例:

"Visual"&"Basic"结果是VisualBasic

算术运算符的运算次序为:

^→-(负号)→*和/→\(整除)→Mod→+和-→&

2.算术表达式

把常量、变量等运算元素用算术运算符连接起来的式子称作“算术表达式”。

在算术表达式中,可以使用圆括号来改变运算次序。

例如:

a*b/(c*d)

3.14159265*r^2

等都是合法的算术表达式。

带有括号的算术表达式在运算时将优先进行括号内的运算。

3.4.4关系运算符与关系表达式

关系运算用于对两个数据进行比较,比较结果为逻辑值“True”或“False”。

1.关系运算符

VB常用的关系运算符如下:

运算符

功能

<

小于

<=

小于等于

>

大于

>=

大于等于

<>

不等于

=

等于

Is

用来比较两个对象的引用变量

2.关系表达式

关系表达式就是用关系运算符把两个比较对象连接起来的式子。

比较对象可以是变量、常量和算术表达式。

例如:

a<32

x+y>=z/2

b$<>"Basic"

object1Isobject2

等都是合法的关系表达式。

关系表达式的运算是采用“按值比较”的方法,即先求出运算符两边的“值”,若是变量,则取其当前值,如果两端的值可满足关系运算符,则结果为“True”,否则为“False”。

字符型数据的关系运算是依照字符的ASCII代码,自左至右按照“逐个比较、遇大则大、长大短小,完全相同,才是相等”的原则进行。

例如:

“aBcd”>“abc”

的运算结果是False,因为字母“B”的ASCII代码小于字母“b”。

3.4.5逻辑运算符与逻辑表达式

逻辑运算是对逻辑值进行的运算。

1.逻辑运算符

VB常用的逻辑运算符有:

NOT逻辑非例:

若a=True则NOTa=False

AND逻辑与例:

若a、b均为逻辑值,则只有a、b同为True时aANDb为True

OR逻辑或例:

若a、b均为逻辑值,只要a、b中有一个为True时aORb为True

XOR逻辑异或例:

若a、b均为逻辑值,a、b中只有一个为True时aXORb为True

逻辑运算的优先次序是:

NOT→AND→OR→XOR

2.逻辑表达式

逻辑表达式是用逻辑运算符把逻辑量连接起来的式子。

例如:

a>=2*3.14159*rANDx<>5ORNOTb(设b为逻辑变量)

x>2ORText1.Text="Microsoft"

等都是合法的逻辑表达式。

逻辑表达式主要用于表示一些复杂的判断条件。

3.4.6运算规则

在表达式中,当运算符不止一种时,要先处理算术运算符,接着处理关系运算符,最后处理逻辑运算符。

而这几种运算符内的优先次序,则按前面各小节所列次序进行。

比如系统在求一个包含有关系运算、算术运算的比较复杂的逻辑表达式的值时,将先求算术表达式的值、再进行关系运算求出关系表达式的值,最后进行逻辑运算。

当然,如果表达式包含有括号时,最内层的括号将最优先处理。

在运算时,如果进行运算的两个运算对象的类型相同,它们的运算结果也将是同一类型。

例如执行下面的代码:

DimxAsInteger,yAsInteger

x=324:

y=324

printx*y

系统会给出“数据溢出”的出错提示,其原因就在于x与y相乘时,结果已超出了整数可表示的范围;

如果不同数据类型的数据进行运算,结果的类型为两个运算对象中存储长度较长的那个对象的类型。

比如一个整型数与一个长整型数进行运算,结果就是长整型;一个整型数与一个单精度数进行运算,结果为单精度型,但一个Long型数与一个Single型数运算,结果则为Double类型,依次类推。

上例中若把x或y任一个说明为长整型,则计算可以正常进行。

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

当前位置:首页 > 总结汇报 > 学习总结

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

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