西安财经学院vb重点第 2 章 面向对象的程序设计方法_第1页
西安财经学院vb重点第 2 章 面向对象的程序设计方法_第2页
西安财经学院vb重点第 2 章 面向对象的程序设计方法_第3页
西安财经学院vb重点第 2 章 面向对象的程序设计方法_第4页
西安财经学院vb重点第 2 章 面向对象的程序设计方法_第5页
已阅读5页,还剩93页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章面向对象的程序设计方法

(选择、填空)

一.简单VB程序的建立过程

具体过程:

创建一个VB应用程序有6个步骤:

•创建应用程序界面

•设置对象的属性

•编写代码

•保存窗体和工程

•运行调试程序

•生成可执行文件

二.对象及其属性、事件和方法(考点:对象的三要素)

|1.对象和类|

对象(object)是客观世界中实际存在的事物,可以是有形的,也可以是无形的,具有静

态和动态特征,如一名学生、一所学校、一个表单、一个按钮等。在程序设计中是数据与方

法的统一体。

类(class)是同一种对象的统称。如动物是一个类,具体到某一个动物,比如一只猴子就

是一个具体的对象。

时象三要素:属性、方法和事伟

1.属性

属性是指一个对象的性质和特征。这些特征可能是直接可见的,也可能是不可见的。

设置对象属性的方法:

在设计阶段,在[属性]窗口中直接设置对象的属性,决定对象的初始值。

在程序代码中通过赋值实现

[对象名.]属性名=属性值

示例:

Labell.Caption=“输入数”’设置标签的标题

2.事件、事件过程和事件驱动

(1)事件

事件是对象能够识别的一种操作或动作(并做出反应的外部刺激)。

单击鼠标、双击鼠标、键盘按下等都是一些控件所能识别的动作,这就是控件的事件。

(2)事件过程

当在对象上发生了事件后,应用程序对这个事件所能做出的反应及处理步骤就是事件

过程。一个动作可能导致多个事件发生。

事件过程的语法格式如下

PrivateSub对象名_事件名()

处理事件的程序代码

EndSub

3.方法

方法是对象所具有的动作和行为,实际上是VB提供的一些已封装好的通用子程序。

方法的调用格式:

[对象].方法[(参数表)]

例:PrivateSubForm_Click()

Forml.Move0,500,1000,2000

EndSub

对象三要素使用语法总结:I

①属性

对象名.属性名

②方法

对象名.方法名[(参数表)]

③事件过程

PrivateSub对象名事件名([参数表])

EndSub

其中窗体的事件过程为:Form事件名

三.窗体对象的常用属性

大多对象一般都有的属性:_

Name、Caption>Font、EnabledsVisible>Height、Width,Left和Top等。

(l)Name(名称)属性

用于设置窗体对象的名称,其被用在代码中引用该窗体。只能在设计时设置,运行时为

只读。以字母开头,后跟字母、数字和下划线,长<=40字符。建议以frm为默认前缀。当

前窗体name可用me.

(2)Appearance属性

用于设置一个对象是否以3D效果显示,运行时为只读。

(3)BackColor、ForeColor属性

BackColor:用于设置窗体内文本或图形对象的背景色。

ForeColor:用于设置窗体内文本或图形对象的前景色。

(4)BorderStyle属性

用于设置窗体的边框样式:0~6。P21

⑸Caption属性

用于确定窗体标题显示的文本。

(6)ControlBox属性

设置是否取用窗体"控制菜单”:T、F

⑺Enabled属性

设置或返回对象是否能够对用户产生的事件作出反应。T、F

⑻Height、Width、Left、Top属性

值以twips(堤,1堤=1/567CM)为单位。

(9)Font属性

设置或返回窗体上字体的样式、大小、字形等。

如:

FontName="楷体_GB2312"

FontSize=20

FontBold=True

(10)Icon属性

该属性用于设置窗体的标题图标。

(1l)Picture属性

用于设置在窗体中显示的图片。

设计时:

运行时:[对象.]Picture=LoadPicture("文件名")

(12)StartupPosition属性

决定窗体启动后出现时在屏幕上的位置,运行时不能设置。

(13)Visible属性

用于设置窗体是被显示还是被隐藏。

(14)WindowState属性

该属性设置窗体启动后的初始大小。

窗体对象的常用事件

(l)Click/DbClick事件

Click是鼠标单击事件。其事件过程结构为:

PrivateSubForm_Click()

(VB语句)

EndSub

DbOick是鼠标双击事件。其事件过程结构为:

PrivateSubForm_DbClick()

(VB语句)

EndSub

⑵Resize事件

在程序运行时,当窗体的大小发生改变时或窗体被启动显示时,会引发Resize事件。

窗体加载时的事栩(考点:加载时的事件)

①Initialize事件

在加载一个窗体时,此事件最先被引发,称为初始化事件。此时,在内存中只存在窗体

的代码部分,且窗体不存在。利用这个事件可以编写窗体或控件的初始化程序。事件过程为:

PrivateSubForm_Initialize()

EndSub

②Load事件

在窗体被加载时,由系统引发Load事件。可以使用该事件过程在窗体显示之前作一些

准备活动,例如:设置窗体或控件的属性,给变量赋初值等等。事件过程为:

PrivateSubForm_Load()

③Activate事件

当窗体被加载或被激活时引发Activate事件。可在此事件过程中设置控件焦点、进行绘

图等。

事件过程为:

PrivateSubForm_Activate()

系统卸载时的事生(考点:卸载时的事件)

①QueryUnload事件

当窗体卸载之前,先引发QueryUnload事件。P25

事件过程为:

PrivateSubForm_QueryUnload(cancelAsInteger,UnloadModeAsInteger)

©Deactivate事件

在卸载时,当活动窗体变为非活动窗体时触发此事件;当不进行卸载时,但窗体变为非

激活窗体时,也会接收到此事件。事件过程为:

PrivateSubForm_Deactivate()

③Unload事件

如果QueryUnload事件过程未中止窗体的卸载过程,当窗体从屏幕上消失时,会继续

引发Unload事件。事件过程为:

PrivateSubForm_Unload(cancelAsInteger)

©Terminate事件

这是窗体卸载过程中的最后一个事件。事件过程为:

PrivateSubObject_Terminate()

(5)Paint事件

在鼠标在一个窗体上移动或放大窗体之后,或在一个覆盖该对象的窗体被移开之后,

引发此事件。

|窗体对象的常用方法

(l)Show方法

用于显示窗体。

语法:Object.Show[Style]'默认0,无模式

⑵Hide方法

用于隐藏窗体,但不能将窗体卸载。

语法:Object.Hide

⑶Move方法

用于移动窗体到一定的坐标位置。

语法:Object.Moveleft[,topi,width|,height)]]

(4)Refresh方法

用于强制性完全重绘窗体及上面的控件。

语法:Object.Refresh

(5)Cis方法

清除对象上的文本或图形。

语法:object.Cis

(6)Print方法

在窗体、图片框上输出文字,也可在打印机上输出。

语法:object.Print[输出列表]

四.命令按钮

命令按钮的常用丽

•Name属性

•Caption属性’默认属性

•Visible属性

•Enabled属性

•Default属性

•Cancel属性

•Value属性:无论用何种方法选中命令按钮,均将其值设为True并触发Click事件,默

认为Falseo

命令按钮的常用事作

Click事件

命令按钮的常用方法'

Move方法

五.文本框(会熟悉使用)

文本框的常用属南

•Text属性’默认属性

•MaxLength属性

•MultiLine属性

•ScrollBars属性

・Appearance属性

•SeilengthSelStart>SelText属性

•PasswordChar属性

•Alignment属性

•Loked属性

文本框的常用事用

•Click事件:

•DblClick事件:

•Change事件:当文本框中内容发生变化时触发。

文本框的常用方接

•Move方法

六.标签(会熟悉使用)

标签的常用属性

•Caption属性

•BorderStyle属性

•AutoSize>Wordwrap属性

•BackColor、ForeColor、Font属性

标签的常用方法

•Move方法

标签的常用事件

•Click、DblClick事件

•Change事件

七.程序书写规则(熟练掌握)

在编写程序代码时,要遵守一定的规则。不能超越其规定来自由发挥。

•不区分大小写:VB不区分应用程序代码字母的大小写

•一行写多条语句,用冒号分隔。

Sum=Sum+x:Count=Count+l

•一条语句写成多行

使用续行符(一个空格后面跟随一个下划线将长语句分成多行。

例如:

PrintText1.Text&Text2.Text&Text4.Text11_

&Left(Text3.Text,3)

•注释说明:英文单引号、Rem;

•行号和行标号;

•空格分隔

各关键字之间,关键字和变量名、常量名、过程名之间

一定要有空格分隔

示例:Private1-1Sub1~~1Form_Click()

•使用缩进

编写程序代码时,可以使用缩进来反映代码的逻辑结构和嵌套关系。

课后习题:P35

第3章VB语言的基本成分

(选择、填空)

一.基本数据类型(考点:类型名及其取值范围)

数据是程序处理的对象。为了更好地处理各种各样的数据,VB定义了多种数据类型;

1.数值型

数值型数据一般分为整型数和浮点数两类。

整型数分为整数(Integer)和长整数(Long)。

浮点数分为单精度浮点数(Single)和双精度浮点数(Double)。

有时也把货币型数据(Currency)和字节型数据(Byte)划归数值型数据。

(1)整型(Integer)

整数是不带小数点和指数符号的数;

存储:2字节;

取值范围:-32768〜32767。

(2)长整数(Long)

存储:4字节;

取值范围:-2147483648〜2147483647。

(3)浮点数

浮点数(实型数或实数)由符号、指数和尾数组成。浮点数:分单精度浮点数(Single)

和双精度浮点。

单精度浮点数(Single):

存储:4个字节(32个二进制位)

范围:-3.4028*1038-3.4028*1038

双精度浮点数:(Double)

存储:用8个字节(64个二进制位);

范围:-1.79769*10308〜1.79769*10308。

(4)货币型(Currency)

专门为处理货币而设计的数据类型,小数点前有15位,小数点后有4位,其余的数字被

舍去。

存储:用8位字节存储;

取值范围:-922337203685477.5808〜

922337203685477.5807»

(5)字节型(Byte)

存储:用1个字节的无符号二进制数存储;

取值范围:0〜255o

2.String(字符杳奥醺一

字符串是用双引号括起来的一串字符序列,两种类型字符串:变长字符串和定长字符串。

例:

"Canton"、"1+2=?"、"Good1~~1Morning"

在VB中,把汉字作为一个字符来处理。

注意:

①零字符串用""表示,而“”则表示有一个空格的字符串;

②字符串中必须用两个连续的双引号来表示字符串有一个双引号。如字符串:”

abc"“计算机"“abc”;

③变长字符串存储:实际串长+10个字节。

3.Boolean(逻辑型)类型

逻辑型数据只有两个值:真(True)和假(False),用2字节二进制数存储,经常用来

表示逻辑判断的结果。

当把数值型数据转换为逻辑型数据时,0会转换为Flase,其它非0值转换为True。反

之,当把逻辑型数据转换为数值型时,Flase转换为0,True转换为-1。

4.Date(日期型)类型

日期型数据按(8个字节)64位浮点数值存储,表示的日期从公元100年1月1日~9999

年12月3日,时间范围为0:00:00-23:59:59,

任何在字面上可以被认作日期的文本都可以赋值给日期变量,且日期文字必须用符号

“#”括起来,

如#January15,2011#

#1995-10-19:45:00PM#

g.Object〈对象型)类型

对象类型的数据主要是以变量形式存在的,Object变量通过32位(4字节)来存储,

该地址可以引用应用程序中的对象。利用Set语句,声明为Object的变量可以被赋值并被任

何对象所引用。

Set对象变量名=对象名

例:Dimobj1AsObject

Setobjl=Command1

obj1.Caption="OK"

函riant《变体变数据逐

变体型数据是一种可变的数据类型,可以存放任何类型的数据。存储:

N(数值):16字节

C(字符串):串+22

未声明的变量系统默认为Variant型。

例:

Temp=“22”'字符串

Temp=Temp-l'数值

Temp=#01/01/2002#'日期

二.直接常量(考点:明白各是什么意思)

常量是指在程序运行过程中,其值保持不变的量。包括直接常量和符号常量。

直接常量:在程序代码中直接给出的数据。

例如:123,-263,

"VisualBasic","12.57”等

符号常量:符号常量是在程序中用符号表示的常量。用户定义、系统常量。

例如:

ConstPI=3.14159AsSingle

S=PI*R*R

1.整型和长整型常量

整型:十进制、八进制、十六进制

例如:888&O555&H888

长整型:在整型常量之后加上后缀&

例如:999999&

&O555&O555&

&H888&H888&

2.浮点型常量

有两种表示方法。

(1)日常记数法

•般书写方法。如果整数或小数部分为零时,可以省略零,但是小数点不能省略。

如0.5可写为.5

在浮点型常量后面可加上类型声明符来指明该浮点型常量是单精度浮点型常

量还是双精度浮点型常量。

例如:0.123!,.123,12.#,0.0

(2)科学记数法

用指数形式来表示浮点型常量,用mEn表示mXIOn。其中,m称为尾数,它可以是一

个带有正负号的小数:n称为指数,它只能是一个带有正负号的整数.

标准科学记数法:尾数的小数点前有且仅有一位非零数字。也可用mDn表示mXIOn。

例如:0.123E-4,-12.34e8,1.23D-3,-1.23d3

3.字符串型常量

字符串型常量是指用双引号括起来的一串字符。

例如:"大家好!”、“abD123"、"

“”是含有三个空格的字符串,长度为3。

是一个空字符串,长度为0。

“大家好!”,长度为8。

空格也是合法的字符,要注意含有空格的字符串和空串的区别:

“”就是含有空格的字符串

空串中没有任何字符

乩逻辑型常量

逻辑型常量只有两个值:True和False,分别表示逻辑真和逻辑

5.日期时间型常量

日期时间型常量:用“#”括起来的一串日期和时间,它可以表示一个日期,也可以表

示一个时间,还可以同时表示日期和时间。

例如:#1/31/2003#

#2003.3.8#

#May1,2003#

#11:30:22AM#

#3/1/200312:22:09#

三.变量(考点:变量的声明一作用域、参数传递)

变量的实质是指在程序运行过程中,其值可以改变的量。

1.变量的命名规则

1)变量名必须是以字母开始的,由字母(人~2和2~2)、数字(0~9)或下划线(_)组

成。

2)长度不能超过255个字符。

3)自定义的标识符不能和VisualBasic中的运算符、语句以及系统已有的函数、过程

名等关键字同名,同时也不能与系统已有的方法和属性同名。

4)最好做到“见名知意”。

5)可使用下划线改变长变量名的可读性。

6)用默认前缀。

下面是一些正确的变量名:

SumTelCircleXAlMy_name

下面是一些非法的变量名:

llaaa,beIntegera[l]Y$1

2.变量的存取

语法格式如下:

一般:

[Let]变量名或属性名=表达式

例:

strl="abc”

forml.caption="练习"

对象型:

Set对象变量名=对象名

例:

Dimobj1AsObject

Setobjl=Command1

obj1.Caption="OK"

3.变量的声明

声明变量就是事先将变量通知给程序,由此使变量的使用合法。

声明变量时需要指明:变量名、变量类型、变量的作用域和生存期。

变量声明后,系统为该变量分配内存空间,确定其数值范围、作用范围和生存周期。

变量的声明分为3个级别:

过程级变量、模块级变量和应用程序级变量

声明变量的语句所放的位置不同,其作用范围不同。

(1)过程级变量

过程级变量:在某个过程中定义的变量。其特点是只在其定义变量的过程中有效,当过

程代码执行完时,变量立即从内存中释放掉。

声明过程级变量的语句格式:

DimIStatic变量名As类型名

说明:

・用Dim声明的变量的生存周期短,进入此过程时,系统为变量分配存储单元,退出

此过程时,系统释放存储单元,变量消失。

•用Static声明的变量叫静态变量,第一次进入此过程时,系统为变量分配存储单元,

退出此过程时,存储单元保留,变量失效。重新进入此过程时,该变量被激活,变量值仍存

在,可以继续使用。

(2)模块级变量

在模块通用声明段中声明的变量,在模块中的所有过程中都有效,模块运行结束后被释

放。

语句格式:

DimIPrivate变量名As类型名

说明:Dim和Private是等效的。

(3)用程序级变量

应用程序级变量是指在整个工程的任何模块中都有效的变量。又叫全局变量。在标准模

块的声明段中声明。

语句格式:

Public变量名As类型名

如:Publica1AsInteger

几种特殊变量的声明

①定长字符串变量与变长字符串变量的声明

变长字符串变量:

DimIPrivate变量名AsString

变长字符串变量包含字符的个数是可变的,所占用的存储空间是该字符串的长度加上

10个字节。

定长字符串变量:

DimIPrivate变量名AsString*字符串长度

定长字符串变量包含字符的个数是固定的,所占用的存储空间是就是声明语句中指定的

字符串长度。多出的截掉,不够的补空格。

注意:不能在窗体模块或类模块中声明全局定长字符串变量。

②对象型变量

语句格式:

Dim变量名AsObjectIControlI对象类型名

使用Object声明的变量可以引用任何■种类型的对象。使用Control声明的变量可以引

用所有的控件对象。使用“对象类型名”声明的变量只能引用这种类型的对象。

例如:Dimobj1AsObject

Dimobj1AsControl

DimobjIAsCommandButton

声明变量的注意事项

1)一条语句中声明多个变量,例如:

DimaAsInteger,bAsString,cAsDate

Privatea,b,cAsDate

2)变量被声明时,VB自动设定默认值。P45

数据的类型可在数据之后加上一个类型符来表示,

例如:

a%,413&,861,104.67#等。P46

四.符号常量(考点:各声明方法的含义)

符号常量也称为用户自定义常量,用户首先得给常量起一个名字,其命名方法类似于变

量的命名方法,也要求使用以字母开头的字母、数字、下划线串命名;然后使用Const常量

声明语句来声明常量,这样才能使用它。与声明变量不同的是,声明符号常量时要指定符号

常量的值,这个值在程序的整个运行过程中都不能被改变,不能被重新赋值,这也是符号常

量与变量的本质区别。

(1)过程级符号常量

声明格式:

Const常量名[As类型名]=表达式

如ConstPI=3.14156

表达式的值就是被声明的变量的值。【AS类型名】用来定义常量的类型,可以省略。

这个声明语句如果放在某个过程的内部,则称它为过程级变量,过程级变量使用范围局限于

该过程的内部。

~(2)模块级符号宿圜

声明格式:

[Private]Const常量名[As类型名]=表达式

Private省略:看句子放的位置。

(3)全局符号标

声明格式:

PublicConst常量名[As类型名]=表达式

说明:声明语句要放在标准模块的声明段中声明.

(4)注意

①当省略了[As类型名]时,默认为Variant常量。

②不能在窗体模块和类模块中声明全局常量.

③表达式中不能使用函数和Is运算符。

④可以使用一条语句声明多个常量,方法与声明变量类似。

⑤常量取名时建议加上Con前缀。

五.运算符:算术、关系、字符、逻辑(考点:熟悉使用)

.算术运算符

A*/\Mod+-

运算符优先级

"(指数运算)--(求负)一*(乘法)、/(除法)一\(整除)-Mod(求余)一+、-

同级从左到右

说明:

(1)日期时间土数值型

将H期时间型数据的日期部分加上(减去)数值型数据的整数部分以形成新的日期。

将日期时间型数据的时间部分加上(减去)数值型数据的小数部分以形成新的时间。

(2)日期型士日期型

两个日期时间型数据进行减法运算时,结果两个日期之间相差的天数

进行加法运算时,将后一个转换成数值再加。

(3)日期型土逻辑型、

同日期时间土数值型。

例:

•#5/1/2003#+31结果:#6/1/2003#

•#5/1/20036:00:00PM#-1.25结果:#4/30/200312:(X):00AM#

•#6/1/2003#-#5/1/2003#结果31

•#5/1/2002#+True相当于#5/1/2002#+(-1)

(4)/和'的区别:1/2=0.5,1\2=0

整除运算符运算前先将两个运算量按四舍五入的方法转换成整型数值,如果小数

部分正好是0.5,则向最近的偶数靠拢,然后再参加运算,运算结果只截取整数部分。

例:

•17\2结果是8

•17.3\2结果是8

•17.5\2结果是9

•17.8\2结果是9

•16.5\2结果是8

(5)Mod用来求整型数除法的余数

例如:9Mod7结果为2

运算结果的符号与被除数保持一致;在运算前先将两个运算量按四舍五入的方法转换成

整型数值,如果小数部分正好是0.5,则向最近的偶数靠拢,然后再参加运算。绝对值小于

或等于0.5的数不能作为除数。

再例:

17mod3结果是2

-17mod3结果是-2

17mod-3结果是2

17.5mod3结果是0

18.5mod3结果是0

2.字符串运算符&和+

&、+运算符都能用于两个字符串的连接。

&运算符:强制两个表达式按字符串连接。

+运算符:当两个表达式都是字符串时按字符串连接,否则视具体情况会有不同结果。

一般使用&运算符。

例如:

“西安”&“财院”“西安财院”

&和+运算符的比较

XYX&YX+Y

“1234”“12345”“12345”

12345“12345”1239

“1234”5“12345”1239

n123An5“123A5”报错

3.关系运算符

<<=>>=o=IsLike

运算优先级:同级

反映两个运算量之间的关系。关系成立,返回True(真);关系不成立,返

回False(假);两个运算量中若有Null,则返回Null。

运算符含义例子结果

<小于88<88False

“aa”<“ab"True

<=小于等于88<=88True

“aa"<=''ab"True

>大于88>87True

“aa”>“ab”False

>=大于等于88>=87True

“aa''>=''ab''False

=等于88=89False

“aa"=''ab"False

<>不等于88<>89True

“aa"<>''ab"True

注意:

•运算结果只有True和Falseo

•注意“等于”和“赋值号''的区别。

•若英文字母的比较运算不区分大小写在模块的通用声明部分添加一行代

码:

OptionCompareText

•日期时间型数据做关系运算时,较晚的日期时间大于较早的日期时间。

如:#10/30/1999#<#10/31/1999#

•Is运算符

对象比较运算符,它用来比较两个对象变量。如果它们引用的是同一个对象,

则运算结果为True,否则为False。

例如:DimObjvarlAsObject

DimObjvar2AsObject

DimBlnvar3AsBoolean

Blnvar3=ObjvarlIsNothingT

SetObjvarl=Cmdl

SetObjvar2=Cmd2

Blnvar3=ObjvarlIsObjvar2F

•Like运算符

字符串匹配运算符,它将字符串与给定的“模板”进行匹配,若匹配成功,结

果为True,否则为False。

格式:

StrvarlLikeStrvar2

其中:Strvarl是被比较的字符串,Strvar2是“模板”。P54

例:

“xyz”Like"x*”T

“yyz”Like"x?z"F

4.逻辑运算符

NotAndOrXorEqvImp

双目运算符:And与)、Or(或、Xor(异

或、Equ(逻辑等于)和Imp

(逻辑蕴涵)。

单目运算符:Not(非),只有一个操作数。

说明:逻辑运算时,只要参与运算的表达式中

有一个为Null,则将返回NulL

ABNotAAAndBAOrBAXorBAEquBAlmpB

TrueTrueFalseTrueTrueFalseTrueTrue

TrueFalseFalseFalseTrueTrueFalseFalse

FalseTmeTrueFalseTrueTrueFalseTrue

FalseFalseTrueFalseFalseFalseTrueTrue

员按位逻辑运算

所谓按位逻辑运算是指先把操作数转换为补码表示的二进制数(机器内部表

示数的方法),然后,对该数的每一个数值位进行逻辑运算,这里,二进制数1

当作True,而二进制数0当作False,运算规则与逻辑运算符相同。P57

六.表达式

表达式是指用运算符和括号将属性、常量、变量和函数连接起来的有意义的

式子。算术、字符串、关系和逻辑表达式。

1.表达式的书写规则:

(1)水平书写,表达式中无上下角标,无上分子下分母,所有的符号都写在一

行上;

(2)在表达式中乘号不能省略

如a*b不能写成ab(或a-b)

(3)括号不分大、中、小,一律采用圆括号,可以嵌套使用

如,x[x(x+l)+lj-*x*(x*(x+l)+l)

2.运算优先级

从高到底的顺序进行:

算术运算符一>字符串运

七.常用内部函数(考点:类型的转换)

L数学函典

•Abs(x):x为数值型表达式,它的功能为求x的绝对值;

•Sqr(x):x为大于或等于0的数值型表达式,它的功能为求x的平方根;

•Exp(x):x为数值型表达式,它的功能为求e的x次方,函数返回值的类型为Double

型,当Exp(x)>709.8时,会产生溢出;

•Log(x):x为大于0的数值型表达式,它的功能为求x的自然对数(以e为底的对数),

函数返回值的类型为Double型;

•Sgn(x):x为数值型表达式,它的功能为求x的符号;

•Int(x):x为数值型表达式,Int(x)返回值为不大于x的最大整数;

•Fix(x):x为数值型表达式,Fix(x)的功能为剪取x的整数;

•Round(x,n):x为数值型表达式,n为整数。Round(x,n)的功能是对x四舍五入保留n

为小数,如果n省略,就四舍五入保留x的整数部分;

•Rnd(x):x为数值型表达式,Rnd(x)返回一个大于等于0而小于1之间的随机整数,它

的返回类型为Single类型;

(如果要产生[a,b]之间的随机整数,可以使用以下变换:Int((b-a+l)*Rnd(l))+l)

例如:

产生],10]之间的随机数:Int(10*Rnd(l))+1

产生[11,99]之间的随机数:Int(89*Rnd(l))+ll

产生[-20,20]之间的随机数:Int(41*Rnd(l))-20

2.转换函数

•Str(x):x为数值型表达式,Str(x)的功能为把数值表达式x转换

为相应的字符串;

(Str函数与CStr函数的区别是:当x>0时,Str的返回值有前导空

格(符号位),而CStr无前导空格)

例如:

Str(-3.14)的返回值为“314”;

CStr(-3.14)的返回值也为“314”;

5门(3.14)的返回值为“3.14”,一共5个字符,有一个前导空格;

CStr(3.14)的返回值为“3.14”,一共4个字符,无前导空格;

•Val(Str):Str为字符串表达式,Val(Str)的功能为把将字符串Str

转换为数值型数据从左到右转换,直到遇到字符串中的非数字字

符为止;

例如:

Val(“12345abcd")的返回值为十进制数12345;

Val(“-123.4e-2”)的返回值为十进制数-1.234;

Val("&HFFFF")的返回值为十进制数-1;

Val("&O177777”)的返回值为十进制数-1。

•Chr(x):x为数值型表达式,Chr(x)的功能为把数值表达式x作为

字符编码,转换为仅含有一个符号的字符串;

例如:

Chr(65)的返回值为“A“;

Chr(97)的返回值为“a“;

Chr(13)的返回I值为“回车符”。

•Asc(Str):Str为字符串表达式,Asc(Str)的功能与Chr(x)函数正好

相反,它是将Str的首字符转换为十进制数值;

例如:

Asc("Hello")的返回值为十进制数72(H的AscH的值为72);

Asc(“?abcd")的返回值为十进制数63(?的Ascii的值为63);

Asc(“-3.14”)的返回值为十进制数45(-的AscH的值为45)。

•Format(Exp[,format]):Exp可以是日期、时间、数字、字符串

等任意类型的表达式;Format参数是格式控制字符串,它指定输

出格式。Format函数的功能为:首先将Exp表达式变换成字符串

类型,然后按参数format指定的格式输出Exp表达式的值,函数

的返回值是字符串类型;P63(注意:其格式)

行货串困数

•Len(str):str为字符串表达式,Len(str)函数返回str的字符个数(字

符串的长度);

例如:

Len("VisualBasic")的返回值为11;

Len(“VisualBasic”)的返回值为12;

•LCase(str)>UCase(str):str为字符串表达式,LCase(str)函数的

功能是将str中所有字母转变为小写字母;UCase(str))函数的功

能是将str中所有字母转变为大写字母;

例如:

LCase("VisualBasic”)的返回值为"visualbasic”;

UCase(“VisualBasic”)的返回值为“VISUALBSIC”;

•LTrim(str)、RTrim(str)>Trim(str):str为字符串表达式,3个函

数的功能分别为:将str字符串左边、右边、或者两边的空格删

除;

注意:3个函数都不会对字符之间的空格进行任何操作

例如:

LTrim(“VisualBasic”)的返回值为“VisualBasic”;

RTrim(“VisualBasic”)的返回值为“VisualBasic”;

Trim("VisualBasic")的返回值为"VisualBasic”。

•Left(str,n)>Right(str,n):str为字符串表达式,这两个函数的功能

都是取字符串。Left(str,n)函数是取字符串str最左边n个字符;

Right(str,n)函数是取字符串str最右边n个字符;当n大于str

的长度时,返回整个字符串;

例如:

Left("VisualBasic”,6)的返回值为“Visual”;

Right("VisualBasic”,5)的返回值为“Basic”;

Left(uVisualBasic”,20)的返回值为“VisualBasic”。

•Mid(str,m,[n]):str为字符串表达式,Mid(str,m,[nD函数的功能是

取子字符串。函数返回从字符串str中第m个字符开始的n个字

符;若n省略,函数返回从字符串str中的第m个字符开始的所

有字符;若m大于字符串str的长度,则返回空串;

例如:

Mid(“VisualBasic”,7,3)的返回值为“Bas”;

Mid(“VisualBasic”,7)的返回值为“Basic”;

Mid("VisualBasic”,30)的返回值为””;

另外,Mid函数还有另外一种用法:Mid(strl,m,[n])=str2的含

义是将字符串strl第m个字符开始的n的字符用字符串str2替换。

P68

•Space(n):n为非负整数,Space(n)函数返回一个由空格组成的字

符串;

例如:

Space(5)的回值为“”(包含5个空格的字符串)

•String(n,str):n为非负整数,str为字符串表达式,String(n,str)

函数返回一个由n个字符组成的字符串,这个字符串为Str的首

字符;

例如:

String(6,“*”)的返回值为“******'';

String(8,“VisualBasic")的返回值为“VVVVVVVV”;

4.数组函数

•LBound(ArrayName[,Dimension])和UBound(ArrayName

[,Dimension]):

LBound(ArrayName[,Dimension])函数返回数组名为ArrayName

的第Dimension维下标的下界,如果省略Dimension参数,则函数返

回第一维下标的下界;

UBound(ArrayName[,Dimension])函数返回数组名为ArrayName

的第Dimension维下标的上界,如果省略Dimension参数,则函数返

回第一维下标的上界;

•Array(ArgList):

Array函数定义一个一维变体类型的数组,其参数列表ArgList

中逗号分隔的多个值就是该数组元素的值。数组下界从0开始,不受

OptionBase1|0的影响。如果ArgList省略,则定义一个无元素的数

组;

例如:

DimVntaAsVariant

Vanta=Array(“Red”,“Yello'',"Blue","Green","Black”)

PrintVanta(2),输出"Blue”

PrintVanta(5),下标越界

5旧期和时间函数

•Date和Time

这两个函数没有参数,Date函数用来返回计算机系统当前日期;

Time函数用来返回计算机系统当前时间。另外,可以用Date和Time

重新设置计算机系统的日期和时间。

例如:

Date:返回值是计算机系统当前口期;

Time:返回值是计算机系统当前时间;

Date=#2/14/2003:把系统日期设置为2003年2月14日;

Time=#5:58:00PM#:把系统时间设置为下午5点58分。

•Now

这个函数没有参数,Now函数用来返回计算机系统当前日期和时

间;

•Year(dtm)>Month(dtm)>Day(dtm)>WeekDay(dtm)

Year函数返回I给定日期dtm的年;

Month函数返回给定日期dtm的月;

Day函数返回1给定日期dtm的天;

Month函数返回给定日期dtm的星期;若返回值为1,则表示星

期天;返回值为2,表示星期一;以此类推,返回值为7表示星

期六;

例如:

Year(“2003/8/26")的返回值为2003;

Month(“2003/8/26")的返回值为8;

Day(“2003/8/26")的返回值为26;

WeekDay(“2003/8/26")的返回值为3,表示星期二;

•Hour(dtm)>Minute(dtm)、Second(dtm)

Hour函数返回给定时间dtm的时;

Minute函数返回I给定时间dtm的分;

Second(函数返回给定时间dtm的秒;

例如:

Hour("pm09:30:28")的返回值为21;

Minute("pm09:30:28")的返回值为30;

Second("pm09:30:28")的返回值为28;

使用转换函数的示例

PrivateSubForm_Click()

x="123"

y=123

a=Chr(Asc(x)+5)

b=Str(Val(x)+5)

c=Val(Str(y)+"5")

Printa,b,c

EndSub

运行程序后单击窗体,输出结果如下:

6“128”1235

6.其他函数与语句

•IIF(bln,TruePart,FalsePart)函数

Bln是逻辑表达式,IIF函数的功能是:bln的值为True时,函数

返回值取TruePart;bln的值为False时一,函数返回值取FalsePart;

例如:

Intvarl=80:intvar2=50

IFF(intvarl>=intvar2,intvarl,intvar2),返回值为80

•Choose(expn,expl[,exp2,exp3…])函数

expn为整形表达式。Choose为多项选择函数,当表达式expn的

值为1时;函数返回expl的值;

当表达式expn的值为2时,函数返回exp2的值;

…以此类推。若表达式expn的值小于1或大于可选项时,函数返

回NULLo

•Switch(expl,value1[,exp2,value2,…])函数

exp是条件,value是要取的值,exp和value必须成对出现。Switch

函数是多条件分支函数,若expl为True,则函数返回valuel的值;

若exp2为True,则函数返回value2的值;以此类推,若所有的表达

式都不为True,则函数返回NULL。

•Shell()函数

在VB中,可以通过Shell。函数调用各种应用程序。PathName

为字符串型表达式,使用双引号扩起来的应用程序名及其路径。

WindowStyle为整形表达式,表示执行应用程序的窗口风格,取0到

6的整形数值。

例:在VB程序中启动Excel

Shell("C:\ProgramFiles\MicrosoftOffice\excel.exe")

说明:函数一般不能独立成行,Shell函数是特例。

•Beep语句

Beep语句是报警语句,每执行一次,它使计算机发出“嘟”的一

声响;

7.与用户交互函布

•输入框函数lnputBox()

输入框具有标题栏、提示信息、一个文本框、两个按钮(确定按钮和取消按钮),如下

图所示:strvar=InputBox(“请输入项目号”,“项目概况”)

函数格式:

lnputBox(prompt[,title|[,default][,xpos,ypos][,helpfile,context])

参数说明:

Prompt:为输入框上出现的字符串,必选。可换行,例:

InputBox(“项目号不能省略”+Chr(13)+Chr(10)+“请输入项目号”,“项目概况")

Title:输入框标题栏中的字符串.

Default:显示文本框中的字符串,省略则文本框为空。

Xpos,Ypos:N型达式现,指定对话框在屏幕上的位置。

Helpfile:字符串表达式,识别帮助文件,用该文件为

对话框提供上下文相关的帮助。

context:Context可选的。数值表达式,帮助文件的某

个帮助主题的帮助上下文编号。与helpfile成

对出现。

执行过程:

当程序执行到InputBox()函数时,显示输入框并且等待用户在文本框中输入信息,如果

用户输入信息并单击[确定]按钮则InputBox。函数以字符串形式接受文本框的内容并返回;

如果单击[取消]按钮,则InputBox()函数返回空串。

•消息框函数MsgBox()

消息框具有标题栏、一条消息、一个图标、最多三个按钮。如下图所示:

MsgBox("是否继续执行“,32,“提示”)

提不

,⑦是否继续执行

函数格式:P75___________

MsgBox(prf忙二匍辽二讨否®I_出一I)

参数说明:P751〃-------------------------------------

MsgBox函数只有一个参数prompt时可独立成行。

例:

MsgBox("数据出错")

执行过程:

消息框函数MsgBox()主要用于向用户显示信息,然后等待用户进行选择。当程序执行

到消息框函数时,显示消息框并且等待用户响应,当用户选择所需的按钮后,消息框函数

MsgBox()返回一个整数值。

课后习题:P78

第4章控制结构与算法

(程序填空、编程)

一.顺序结构(了解)

顺序结构是按照“从上到下”的顺序依次执行各语句的,在其结构中用到的典型语句是:

赋值语句和输入输出语句。

例4.1

编程求解一元二次方程ax2+bx+c=0的实根。

算法流程囱口

代码

PrivateSubcmdRoot_Click()

DimaAsSingle,bAsSingle,cAsSingle

DimDAsSingle

DimxlAsSingle,x2AsSingle

a=Text1.Text

b=Text2.Text

c=Text3.Text

D=b*b-4*a*c

xl=(-b+Sqr(D))/(2*a)

x2=(-b-Sqr(D))/(2*a)

Label4.Caption=nxl=n+Str(xl)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论