VB程序设计课件_第1页
VB程序设计课件_第2页
VB程序设计课件_第3页
VB程序设计课件_第4页
VB程序设计课件_第5页
已阅读5页,还剩382页未读 继续免费阅读

下载本文档

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

文档简介

12第1章VB入门VB程序设计基础程序语言类、对象、属性、方法与事件VB基础VB应用程序开发过程一、三类程序设计语言二、高级语言一、类与对象二、属性与方法三、事件一、VB的发展过程二、VB的特点三、VB版本简介四、VB的启动五、VB集成开发环境一、VB应用程序开发过程二、VB应用程序的构成和管理END首页上页下页目录一、三类程序设计语言要利用计算机来解决问题,就必须采用程序设计语言来编制程序程序设计语言大致有三类:机器语言、汇编语言、高级语言1.1程序和程序设计语言机器语言0011000000000101000001000000001011110100

……汇编语言

MOVA,5

ADDA,2HLT……高级语言

LETX=5+2PRINTX

END……END首页上页下页目录二、高级语言1、高级语言的分类

分为面向过程(POP)和面向对象(OOP)面向过程:一个过程表示一种加工机,能对不同的数据进行同样的操作。是基于功能分析,以算法为中心的程序设计方法。(C、PASSCAL)面向对象:一种基于结构分析的,以数据为中心的程序设计(C++、VB、VC)END首页上页下页目录2、高级语言的两种翻译方式

计算机不能直接识别和处理高级语言一般采用两种翻译方式,一是编译方式,二是解释方式。它们所采用的翻译程序分别称为编译程序和解释程序

VB采用上述两种翻译方式,通常情况下,学习阶段采用解释方式;应用阶段采用编译方式机器语言程序

解释系统/编译系统翻译VB语言源程序END首页上页下页目录一、类和对象1、类类是同种对象(具有共同属性、共同操作)的集合与抽象,它包含所创建对象的属性描述和行为特征的定义。2、对象是现实世界中的实体在计算机中的映射。是对具有某些特征的具体事物的抽象。1.2类、对象、属性、方法和事件END首页上页下页目录所有的人构成了一个类。一个对象一个对象一个对象每个人构成一个对象;类是对象的抽象;对象是类的实例END首页上页下页目录二、属性和方法1、属性一个对象所具有的静态性质、特征。对象属性的设置:①在属性窗口中设置;②在程序代码中设置设置格式:对象名.属性名=属性值2、方法对象所具有的动作和行为。方法的调用格式:对象名称.方法名称

VB中,方法是系统预先规定好的函数和过程。用户只能调用方法,方法只能在代码中使用。END首页上页下页目录身高:170cm视力:5.0年龄:37身材:居中头发:短发属性:即静态特征每个特征的具体取值,称属性值。它的一个范围称属性域END首页上页下页目录踢跳跑一个对象具有跑、跳、踢等这些能力,即对象的动态特征,称为方法。END首页上页下页目录三、事件

对象能够识别并做出反应的外部刺激,主要作用是用来传递信息的。在VB中,对象的事件是由VB预先设置好的,能够被对象识别的动作。不同的对象能够识别的事件也不一样。用户和系统都可以触发事件,当事件触发后,对象会对该事件做出响应,自动执行事件代码,如:单击按钮、移动鼠标等。1.2类、对象、属性、方法和事件END首页上页下页目录打人:是个外部的动作,称为事件这人哭,就是受到外部刺激所做出的反应。这个反应在计算机中要通过用户自己的编程实现这整个过程就是一个事件驱动的过程。VB中最主要的一个思想就是事件驱动。即通过什么事件,做出什么反应。END首页上页下页目录1.3VB基础一、VB的发展过程

“Visual”指的是开发图形用户界面(GUI)的方法,即“可视化”。“Basic”指的是BASIC(BeginnersALL_PurposeSymbolicInstructionCode)语言。它是60年代初由DARTMOUTH学院开发的一种初学者的万能的指令码。

VB是一种可视化的、面向对象的和采用事件驱动方式的结构化高级程序设计语言,它是以Basic语言为基础的可视化软件开发工具。END首页上页下页目录二、VB的特点

1、面向对象的可视化编程

把应用程序划分为相互关联的多个对象;对象是一组程序代码和数据的集合;每个对象都是可视的。程序员使用系统预先设计好的对象,不必考虑对象内部的复杂结构。从VB工具箱中选用控件(即“类”,如文本框、命令按钮等),构成应用程序的用户界面(生成对象)END首页上页下页目录2、事件驱动的编程机制传统的程序设计语言中,程序按指定的流程执行。

VB通过事件来执行对象的操作。用户操作触发事件,系统响应事件时会自动执行相应的事件过程(“事件驱动“),从而实现指定的操作和达到运算、处理的目的。3、结构化的设计语言

4、友好的VB集成开发环境END首页上页下页目录三、VB版本简介

1、学习版:使编程人员轻松开发Windows和WindowsNT的应用程序。该版本包括所有的内部控件连同Grid、Tab和Data_Bound控件。2、专业版:为专业编程人员提供了一整套进行开发的功能完备的工具。还包括Internet控件和CrystalReportWriter功能和网络功能。3、企业版:使得专业编程人员能够开发功能强大的组内分布式应用程序。该版本包括专业版的全部功能连同自动化管理器、部件管理器、数据库管理工具、MicrosoftVisualSourceSafe(TM)面向工程版的控制系统等。END首页上页下页目录四、VB集成环境1、VB的启动与集成环境介绍END首页上页下页目录五、VB集成开发环境五、VB集成开发环境双击窗体设计器中任一位置进入下页的代码窗口五、VB集成开发环境代码窗口如下:对象下拉框事件下拉框代码编辑区代码窗口五、VB集成开发环境某类对象的所具有的属性对象下拉框:列出当前窗体上的所有对象对应属性的具体取值,即属性值属性的备注END首页上页下页目录说明如下:①标题栏:显示当前VB所处的状态设计模式:可进行用户界面设计和编写代码,开发应用程序运行模式:不可编写代码和编辑界面中断模式:可编写代码,不可编写界面②工具箱(ToolBox)窗口

用于设计时在窗体中放置控件来生成应用程序的用户界面。END首页上页下页目录③窗体(Form)设计器是屏幕中央的主窗口,作为自定义窗口用来设计应用程序的界面。④代码(Code)窗口

双击窗口就可以打开此窗口。是输入应用程序代码的编辑器。⑤工程资源管理器(ProjectExplore)窗口列出了当前工程中所包括的窗体和模块等,是管理程序的窗口。END首页上页下页目录⑥属性(Properties)窗口

列出了当前选定窗体或控件的属性及值,用户可以对这些属性值进行设置⑦窗体布局窗口用户可使用表示屏幕的小图像来布置应用程序中各窗体的位置。工程管理窗口、属性窗口和布局窗口可以在常用工具栏处打开或在视图的菜单下打开。END首页上页下页目录一、创建VB应用程序的过程大致分为两大部分工作:

设计用户界面和编写程序代码1、新建一个工程2、创建用户界面3、设置属性4、编写代码5、调试运行保存6、[生成可执行文件]:可以脱离VB环境而运行1.4VB应用程序开发过程END首页上页下页目录例:在窗体上画一个命令按钮,设置它的Caption属性为“输出”,在它的Command1_Click()事件下写这句代码:Print“欢迎你来到VB世界!”,并保存在“D:\VB例子”文件夹下,窗体名为sjt1-1.frm,工程名为sjt1-1.vbp。运行界面如下:END首页上页下页目录说明:①在窗体上添加一个控件:单击加拖动或双击②控件的缩放、移动、复制和删除③选定多个控件:按Ctrl键加单击④控件的布局:可以通过拖动来调整END首页上页下页目录二、VB应用程序的构成和管理1、工程的组成:工程文件包含了一个应用程序的所有文件:1)窗体文件(.frm):控件及属性、事件过程和自定义过程2)窗体的二进制数据文件(.frx),自动产生同名.frx文件。3)标准模块文件(.bas)4)类模块的文件(.cls) 5)资源文件(.res)6)ActiveX控件的文件(.ocx)至少要保存两类文件:工程文件(.vbp)

和窗体文件(.frm)END首页上页下页目录2、工程资源管理器有三种模块,分为窗体模块、标准模块和类模块。每个模块都可包含声明和过程。窗体模块(扩展名为.frm):可以包含处理事件的过程、通用过程,以及变量、常量、类型和外部过程的窗体级声明。标准模块(扩展名为.bas):可用来存放公共代码用的一个独立模块。类模块(扩展名为.cls):是面向对象编程的基础。可以在类模块中编写代码建立新对象。这些新对象可以包含自定义的属性和方法。END首页上页下页目录窗体模块本章小结重点:熟悉VB的集成开发环境建立简单的应用程序的方法和步骤掌握一些基本控件的属性、事件和方法应用难点:VB的集成开发环境的熟悉END首页上页下页目录第2章VB的代码编程基础编码基础1数据类型及运算2顺序结构程序设计3选择结构程序设计4循环结构程序设计5数组6END首页上页下页目录2.1编码基础一、编码规则

程序中的大部分实际工作是采用程序代码来处理的。任何一门程序设计语言都有一套严格的编程规定END首页上页下页目录例:单击窗体可输出内容交换后的a变量和b变量的值。

PrivateSubForm_Click()'声明变量

DimaAsInteger,bAsInteger,intTempAsIntegera=10'变量赋值

b=20Print"a变量和b变量内容交换前:";a;b

'变量交换

intTemp=aa=bb=intTemp

Print"a变量和b变量内容交换后:";a;bEndSubEND首页上页下页目录语句输入时不区分大小写,一条语句通常写在一行中。一行中若输入多条语句,需用“:”分隔。例如:intTemp=a:a=b:b=intTemp

长语句可通过续行符“_”(空格后加下划线)分行。例如:Print"a变量和b变量内容交换前:";a;b

可分成以下两行输入:

Print"a变量和b变量内容交换前:";_a;b单引号后面的内容为注释,可放在一行语句的最后,或单独占据一行。END首页上页下页目录

数值前加上前缀&H和&0分别表示十六进制和八进制数。各关键字之间,关键字和变量名、常量名、过程名之间一定要有空格分隔。例如:

Private└┘Sub└┘Form_Click()

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

PrivateSubForm_Click()

x=4

Ifx<1Then

Print"x<1"

Else

Print"x>=1"

EndIf

EndSubEND首页上页下页目录

严格按照VB规定的格式和符号编写程序。与其他高级语言一样,在VB中使用的分号、引号、括号等符号都是英文状态下的半角符号,而不能使用中文状态下的全角符号。

许多程序错误都是由此而起!!!!

例如:

Ifa<5Thenx=10Print"x=";x

不能写成

Ifa〈

5Thenx=10Print“x=”;x全角符号全角符号END首页上页下页目录2.2数据类型及运算

一、数据类型

在使用计算机来处理数据时,会遇到各种不同类型的数据。例如,一个人的姓名是由一串文本(字符)组成,成绩、年龄和体重都是一个数值,而是否大学毕业则是一个逻辑值等等。为了更好地处理各种各样的数据,VB定义了多种数据类型。

END首页上页下页目录

整数:整型/长整型字节型浮点型:单/双精度货币型数据类型数值型字符型逻辑型日期型对象型END首页上页下页目录变体型用户自定义数据类型枚举型

数据类型宽度(字节)取值范围Byte

(字节型)1(8位)0~255间的无符号数(非负)Integer%(整型)2(16位)-32768~32767例:12,12%Long&(长整型)4(32位)-2147483648~2147483647例:12&Single!(单精度浮型)4(32位)符号位1位,指数8位,23位尾数-3.402823*1038~3.402823*1038例:1.2e2,1.2!,12!Double#(双精度浮型)8(64位)符号位1位,指数11位,52位尾数-1.79769313486232*10308~1.79769313486232*10308例:1.2e2#,1.2,1.2d2END首页上页下页目录Boolean

(逻辑型、布尔型)2(16位)TRUE/FALSECurrency@

(货币型)8(64位)-922337203685477.5808~922337203685477.5808例:1.2@String$

(字符型,用双引号)定长字符串型最多不能超过65536(216)例:DimNameBAsString*20

变长字符串型最多不能超过20亿(231)例:DimNameAAsStringDate#

(日期型)8使用“#”将日期时间文字括起来例:#2007-9-10#Object

(对象型)4Variant

(变体型)根据需要分配END首页上页下页目录说明:自定义数据类型:

Type

自定义类型名数据类型元素名As类型名数据类型元素名As类型名

……EndType

用户定义的数据类型也称记录类型,必须先定义后使用,而且只能在模块(包括标准模块和窗体模块)的声明部分定义。如果在窗体模块中定义,必须在前面加上关键字Private。END首页上页下页目录

例如:对于一个学生的“学号”、“姓名”、“性别”、“年龄”、“入学成绩”等数据,为了处理数据的方便,常常需要把这些数据定义成一个新的数据类型(如Student类型)。

TypeStudent‘是字符类型时必须是定长的

XhAsSting*5XmAsString*8XbAsString*2NlAsIntegerScoreAsSingleEndTypeEND首页上页下页目录声明自定义数据类型后,可使用该类型。例:

DimstudTempAsStudent

上语句声明studTemp为Student类型变量。访问自定义数据类型的变量,格式如下:

变量名.成员名,例如:

studTemp.xh=“030005”studTemp.xm=“李斌”END首页上页下页目录枚举类型

用枚举类型声明的变量一般具有规定的有限多个值。定义枚举类型,要在模块声明段中使用关键字Enum。其格式如下:

[Public/Private]Enum

枚举类型名元素名1[=元素值]

元素名2[=元素值]

...

EndEnum

注意:如果省略了“=元素值”,则第一个元素的默认值为0,第二个元素的默认值为1,依次类推。元素值可以是任何长整型数(包括负值),各个元素的元素值不要求连续,也不要求递增或递减,甚至还允许重复。END首页上页下页目录例如:定义一个名为days的枚举类型名:

PrivateEnum

dayssun=0mon=1tue=2wed=3thu=4fri=5sat=6EndEnumEND首页上页下页目录1、数据类型之间的转换

1)隐式转换

当直接使用赋值号“=”把一种类型的数据赋给另一种类型的变量时,或者不同类型数据进行运算时,VB会在程序运行时进行必要的类型转换。这种转换就是隐式转换,也称为“默认转换”。例:

int1%="1234"int1=int1/10Text1.Text=int1

运行如下:END首页上页下页目录数值之间的转换一般规则:运算结果类型一般与表示范围大、精度高的数据保持一致。整型-〉浮点型:类型改变,大小不变浮点型-〉整型:小数部分“四舍五入”字符串与数值类型的转换若字符串中有非数字字符(包括空格和空串)则显示“类型不匹配”错误逻辑型与数值型的转换

False->0,True->-1;0->Flase,非0->True逻辑型与字符串型的转换

True<->”True”;False<->”False”END首页上页下页目录转换函数将表达式转换成转换函数将表达式转换成CBool()BooleanCLng()LongCByte()ByteCSng()SingleCCur()CurrencyCStr()StringCDate()DateCVar()variantCDbl()DoubleCVErr()ErrorCInt()IntegerCDec()Decimal

2)显式转换

VB提供了一些转换函数,用于将表达式或值转换成特定数据类型。如下表所示:END首页上页下页目录3)变量的命名规则

①名字的第一个字符必须是英文字母或汉字,最后一个字符可以是类型说明符。

②名字只能由字母、汉字、数字和下划线组成

1、变量:1)问题的提出二、变量与常量2)定义:是在程序运行期间其值可以发生变化的量。END首页上页下页目录

③名字的有效字符为255个。

④不能用VisualBasic的保留字作变量名,但可以把保留字嵌入变量名中。

⑤在同一个作用域中,变量名不能重复注意:VB不区分变量名中的大小写END首页上页下页目录例:判断下列哪些变量名是合法的?

EndStudentInteger9axiaoming

a3bpr#fxiao_liEND首页上页下页目录4)变量的声明

①隐式声明

不加说明就直接使用变量,此时默认的变量类型为变体型。也允许使用类型符来声明变量的类型,如Num%,Sum!

END首页上页下页目录

变量的类型可以用类型说明符来标识。这些类型说明符分别为:

%

整型

&

长整型!单精度浮点型

#

双精度浮点型

@

货币型

$

字符串型注意:字节、布尔、日期、对象及变体类型没有类型说明符。END首页上页下页目录例:PrivateSubCommand1_Click()int1!=1234int2$=“1234”int3&=25Text1.Text=int1EndSubEND首页上页下页目录4)变量的声明

②显式声明

Declare

变量名[As类型名]

这里的“Declare”可以是Dim、Static、Redim、Public或Private。

注意:用一条语句可定义多个变量,其中每个变量都用AS子句,否则该变量被看作变体,且子句间用“,”分隔。格式为:

Public/Private/Dim/Static变量名1[As类型名],变量名2[As类型名]……END首页上页下页目录③强制显式声明——OptionExplicit语句

良好的编程习惯都应该是“先声明变量,后使用变量”,这样做可以提高程序的效率,同时也使程序易于调试。VisualBasic中可以强制显式声明,可以在窗体模块、标准模块和类模块的通用声明段中加入语句:OptionExplicit。END首页上页下页目录3)变量的作用域

局部变量(过程变量)

又称过程级变量,在过程中声明,且只能在这个过程中使用,可以在一个过程中的任何位置声明过程级变量。局部变量通过Dim或Static关键字来定义。格式如下:

Dim/Static

变量名

AS类型名END首页上页下页目录例:PrivateCommand1_Click()PrivateCommand2_Click()DimaAsIntegerPrintaDimbAsIntegerEndSuba=a+1b=b+2Printa,bEndSub

若单击Commnad1两次,输出的结果各是什么?单击Command2输出结果是多少?END首页上页下页目录

结论一:某一过程的执行只对该过程内的变量产生作用,对其他过程中相同名字的局部变量没有任何影响。END首页上页下页目录把上述程序中DimaAsInteger改为StaticaAsInteger,单击命令按钮两次效果是否一样?PrivateSubCommand1_Click()

StaticaAsIntegerDimbAsIntegera=a+1b=b+2Printa,bEndSub想一想END首页上页下页目录结论二:

Dim:执行完,变量会自动消失,释放所占内存,再执行重新分配。

Static:第一次执行时分配,下次执行仍存在。END首页上页下页目录

②模块级变量

指在声明变量的这个模块中的所有过程都有效,放在模块开始的通用声明段中。

格式如下:

Private/Dim变量名[As类型名]

例:把上例中的DimaAsInteger放到窗体的通用声明中,单击Command1两次结果是多少?单击Command2输出结果是多少?END首页上页下页目录把上例中的DimaAsInteger放到窗体的通用声明中,单击Command1两次结果是多少?单击Command2输出结果是多少?DimaAsIntegerPrivateSubCommand1_Click()DimbAsIntegera=a+1b=b+2Printa,bEndSub想一想END首页上页下页目录结论:这就说明a对同一窗体中不同的事件过程都有效END首页上页下页目录

若为此工程再添加一个窗体Form2,在这个窗体上添加一个命令按钮,在这个命令按钮的单击事件下写如下代码:

Printa

则窗体二上输出的结果是多少?END首页上页下页目录结论:这结果说明模块级的变量a只在声明的本模块中有效END首页上页下页目录③全局变量

全局变量可用于工程的每个模块、每个过程。全局变量必须用Public(或Global)

同时,全局变量在标准模块中声明,或窗体模块中声明。若用Global则只能写入标准模块中。

例:若将DimaAsInteger语句改为PublicaAsInteger放在窗体模块通用声明段中,并在第二个窗体中输出a的值,结果会是多少?END首页上页下页目录结论:这说明全局级的变量a对不同的窗体模块都有效END首页上页下页目录1)直接常量:在程序代码中直接给出的数据。例如:

123,-263,”VisualBasic”,”12.57”等

2)符号常量:在程序中用符号表示的常量。

格式为:

[Public|Private]Const常量名[As数据类型]=表达式

例如:

ConstPIAsSingle

=3.14159二、常量与变量

2、常量:定义:在程序运行期间其值始终保持不变的量。END首页上页下页目录注意:

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

②声明符号常量时,可以使用不包括函数的表达式(表达式中可以使用除Is外所有的算术运算符与逻辑运算符),也可以使用其他的常量来赋值。

③可以使用一条语句声明多个符号常量,方法与声明变量相似。END首页上页下页目录综合例子:创建如下界面,要求单击“放大”按钮后,将文本框中显示的字符串放大3倍;若单击“还原”按钮,则文本框中显示的字符串的大小还原。想一想END首页上页下页目录综合例子:创建如下界面,要求单击command1时,会在text2中显示圆的面积。单击command2时,text3中会显示圆的周长。想一想END首页上页下页目录四、常用内部函数

内部函数是由VB系统提供。函数调用的一般格式为:

函数名(参数1,参数2,…)

函数通过函数名返回函数值。

例如:y=Sqr(289)

Sqr是内部函数名,289为参数,运行时该语句调用内部函数Sqr来求289的平方根,其计算结果由系统返回给变量y。

VB的内部函数大体上分为四大类:数学函数,字符串函数,日期与时间函数和转换函数。END首页上页下页目录1、数学函数

包括Abs(x)、Cos(N)、Sin(N)、Sqr(x)、Exp(x)、Log(x)、Int(x)、Fix(x)、Sgn(x)、Rnd(x)END首页上页下页目录函数功能例子Abs(x)求X的绝对值Abs(-3)=3Abs(3)=3Cos(X)Sin(x)求X的余弦值;注意以弧度为单位求X的余弦值;注意以弧度为单位Cos30O

应为Cos(3.14159/180*30)Sqr(x)求X的平方根Sqr(25)=5Exp(x)返回以E为底、以X为指数的值Exp(2)等价于e2Log(x)返回自变量X的自然对数(以E为底)Log(3)等价于ln3END首页上页下页目录Sgn(x)当X为负数时,返回为-1;当X为0时返回为0;当X为正数时,返回为1Sgn(2)=1Int(x)求不大于自变量的整数Int(-4.67)Int(4.67)Fix(x)去掉小数部分,取整Fix(-4.67)Fix(4.67)Round(x)四舍五入,取整Round(-4.67)Round(4.67)Rnd(x)返回0~1(包括0和不包括1)之间的双精度随机数。

产生N-M范围内的随机数Int(Rnd*(M-N+1))+NEND首页上页下页目录说明:当x<0时,每次产生的随机数相同;

当x=0时,产生的随机数与上次相同;

当x>0和省略时,获得随机系列的下一个随机数;Randomize[(x)]:初始化随机数,用以保证每次产生不同的随机数序列.END首页上页下页目录

使用Randomize语句可以为随机数生成器指定不同的初值或者称为随机数序列的“种子”,这样可以得到不同的随机数序列。

Rnd通常与Int函数配合使用。生成[a,b]区间范围内的随机整数,可以采用

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

例如Int(4*Rnd+1)可以产生1~4之间(含1和4)的随机整数。可以是1,2,3或4,这由VB运行时随机给定。END首页上页下页目录

例1:给定一个两位数(如36),交换个位数和十位数的位置,把处理后的数显示在窗体上。编写的窗体单击事件过程代码如下:

PrivateSubForm_Click()DimxAsInteger,aAsIntegerDimbAsInteger,cAsIntegerx=36a=Int(x/10)'求十位数

b=xMod10'求个位数

c=b*10+a'生成新的数

Print"处理后的数:";cEndSub

运行程序后单击窗体,输出结果是:处理后的数:63END首页上页下页目录

例2:通过随机函数产生2个两位正整数,求这2个数之和并显示出来。编写的窗体单击事件过程代码如下:

PrivateSubForm_Click()DimaAsInteger,bAsInteger,cAsIntegerRandomize'初始化随机数生成器

a=Int(90*Rnd+10)'产生[10,99]区间内的随机整数

b=Int(90*Rnd+10)c=a+b'求两数之和

Print"产生的两个随机数:";a,bPrint"和数:";cEndSub运行程序后单击窗体,输出结果是:

产生的两个随机数:5671

和数:127

再次运行程序,单击窗体后输出另一组结果是:

产生的两个随机数:1837

和数:55END首页上页下页目录2、字符串函数Ltrim$(c)去掉字符串左边空白字符Ltrm(“A”)“A”Rtrim$(c)去掉字符串右边空白字符Rtrm(“A”)“A”Left$(c,n)取字符串左边的n个字符Left(“ask”,2)“as”Right$(c,n)取字符串右边的n个字符Right(“ask”,2)“sk”Mid$(c,p,n)从p位置开始取字符串的n个字符Mid(“while”,2,4)“hile”Len(c)字符串的长度Len(“while”)5String$(n,c)返回c中首字符组成的n个字符串String(2,“abc”)“aa”END首页上页下页目录Space$(n)返回n个空格Space(3)“”Ucase$(c)把小写转换为大写Ucase(“mY”)“MY”Lcase$(c)把大写转换为小写Lcase(“mY”)“my”InStr([n1,]c1,c2)在c1中从n1开始查找c2,省略n1从头开始找找不到为0c1长度为0,返回0c1为Null,返回Nullc2长度为0,返回首字符位置c2为Null,返回Null首字符位置>c2位置,返回0InStr(3,“Doityourself”,”you”)7END首页上页下页目录3、日期与时间函数

日期/时间函数用于进行日期和时间处理。

例如:函数Date返回系统日期,如返回日期为#11/03/2007#

函数Time返回系统时间,如返回时间为#7:03:28#

函数WeekDay返回指定日期所对应的星期END首页上页下页目录4、类型转换函数函数功能例Asc(字符串)返回“字符串”中第一个字符的ASCII码。参数“字符串”可以是字符串或字符串变量。?Asc(”A”)<CR>65Chr$(表达式)把“表达式”的值转换为相应的ASCII字符。?Chr$(65)<CR>AStr$(数值表达式)把“数值表达式”的值转换为一个字符串。?Str$(12.3456)12.3456END首页上页下页目录Val(字符串)把“字符串”转换为数值注意:

被转换的“字符串”可以是字符串的表达式。

被转换的字符串必须由数值构成。

如果在字符串转换过程中遇到字母(指数符号9和E除外),则停止转换,字母字符不转换。?Val(”123”)<CR>123?Val(”2e-3”)<CR>2e-3?Val(”12”+”34.56”)<CR>1234.56?Val(”123ab”+”12”)<CR>123?Val(”abc123”)<CR>0END首页上页下页目录2.3顺序结构程序设计

VB支持结构化的程序设计方法。其程序结构清晰,可读性好,也易于查错和修改。

结构化程序设计方法有三种基本控制结构:

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

具有单入口,单出口的特点

(a)(b)(c)

顺序结构

选择结构

循环结构AB假真L

E真假AB

EEND首页上页下页目录一、赋值语句

1、赋值语句[Let]变量名=表达式示例:x=5*1.42、注释、结束和暂停语句

1)注释语句Rem

注释内容或´

注释内容

2)结束语句End3)暂停语句Stop

也可以通过单击工具栏上的“中断”按钮来实现,或使用Ctrl+Break组合键END首页上页下页目录说明

①表达式中的变量必须是赋过值的,否则变量的初值自动取零值(变长字符串变量取空字符)。例如:

a=1c=a+b+3′b未赋过值,为0

执行后,c值为4

②赋值语句跟数学中等式具有不同的含意,例如:

x=x+1

表示把变量x的当前值加上1后再将结果赋给变量。“先读后写”:

读出x的内容→加1→写回x(覆盖原有内容)END首页上页下页目录③变量出现在赋值号的右边和左边,其用途是不相同的。出现在右边表达式中时,变量是参与运算的元素(其值被读出);出现在左边时,变量起存放表达式的值的作用(被赋值)。例如

x=2a=3x=2*a+5

当执行第3行语句“x=2*a+5”时,将读出变量a的值(即3),把该值乘2后加5,然后将结果(11)赋值给变量x。

④赋值号两边的数据类型必须一致,即同时为数值型或同时为字符型。END首页上页下页目录例:设计程序,实现两个文本框内容的交换。

①在窗体上建立两个标签、两个文本框和一个命令按钮

②编写程序代码

借助于另一个变量(假设为t),并直接在控件中交换数据

PrivateSubCommand1_Click()′“交换”按钮

DimtAsStringt=Text1.TextText1.Text=Text2.TextText2.Text=tEndSubText1Text2END首页上页下页目录果汁空杯茶132或者果汁空杯茶abtabt=a:a=b:b=tt=b:b=a:a=tEND首页上页下页目录把上述程序改为以下形式,效果是否一样?PrivateSubCommand1_Click()

′“交换”按钮

Text2.Text=Text1.TextText1.Text=Text2.TextEndSub想一想END首页上页下页目录二、运算符和表达式1、算术运算符与算术表达式优先级运算运算符举例结果

高低乘方

^2^3

8取负

--2^3

-8乘、除*/5*3/2

7.5整除

\5*3\2

7求余Mod5*3Mod2

1加、减+-10-3+(-2)

5END首页上页下页目录2、字符串运算符与字符串表达式

字符串运算符:&、+,功能是字符串连接。例如:

“ABCD”+“EFGHI”

结果为:ABCDEFGHI“VB”&“程序设计教程”结果为:VB程序设计教程说明:当连接符两旁的操作量都为字符串时,上述两个连接符等价。END首页上页下页目录它们区别是:&(连接运算):两个操作数均应为字符串类型;+

(计算或连接运算):两个操作数既可为字符型也可为数值型,当是数值型时,系统自动先将其转换为数字字符,然后进行连接操作。注意:使用运算符“&”时,变量与运算符“&”之间应加一个空格。END首页上页下页目录例:"100"+123'结果为223"100"+"123"'结果为100123“Abc”+“123”‘结果为Abc123"100"&123'结果为100123100&123'结果为100123"Abc"&"123"'结果为Abc123"Abc"&123'结果为Abc123END首页上页下页目录3、关系运算符与关系表达式运算符含义优先级实例结果<小于所有关系运算优先级相同。低于算术运算的加“+”,减“-”运算,高于逻辑非“Not”运算。15+10<20False<=小于或等于10<=20True>大于10>20False>=大于或等于"This">="That"True=等于"This"="That"False<>不等于"This"<>"That"TrueLike字符串匹配"This"Like"*is"TrueIs对象比较

END首页上页下页目录说明:

①当两个操作式均为数值型,按数值大小比较。

②字符串比较,则按字符的ASCII码值从左到右一一比较,直到出现不同的字符为止.。例:"ABCDE">"ABRA" 结果为False③数值型与可转换为数值型的数据比较,如:29>“189”,按数值比较,结果为False。

④数值型与不能转换成数值型的字符型比较.

如:77>"sdcd",不能比较,系统出错。

⑤“Like”运算符是VB6.0新增加的。其使用格式为:str1Likestr2。END首页上页下页目录4、逻辑运算符与逻辑表达式END首页上页下页目录5、运算符的执行顺序

表达式中出现了多种不同类型的运算符时,其运算符优先级如下:

算术运算符>=字符运算符>关系运算符>逻辑运算

说明:

①当一个表达式中出现多种运算符时,首先进行算术运算符,接着处理字符串连接运算符,然后处理比较运算符,最后处理逻辑运算符,在各类运算中再按照相应的优先次序进行。

②可以用括号改变优先顺序,强令表达式的某些部分优先运行。括号内的运算总是优先于括号外的运算。对于多重括号,总是由内到外。END首页上页下页目录6、表达式的书写中需注意的问题:

①运算符不能相邻。例a+-b是错误的。

②乘号不能省略。例x乘以y应写成:x*y③括号必须成对出现,均使用圆括号。

④表达式从左到右在同一基准并排书写,不能出现上下标

⑤要注意各种运算符的优先级别,为保持运算顺序,在写VB表达式时需要适当添加括号()。END首页上页下页目录例:求出下列表达式的值。

1+2*14Mod17\6/2=?1.按运算符的优先级分成若干运算步骤

先乘除,再整除\和求Mod,后加运算

2.根据运算符的运算功能求出各步骤的结果

1+28Mod5

结果为4想一想END首页上页下页目录三、数据输入输出

1、数据的输出

1)Print方法:可在窗体上显示文体字符串或表达式的值,并可以在其他图像或打印机上输出信息格式:[对象.]Print[输出表列]

说明:

①对象可以是窗体、图形框、打印机、立即窗口,省略为Form②“输出表列”是一个或多个表达式,省略为空行若多个表达式,之间可用逗号(,),分号或空格间隔

END首页上页下页目录

;(分号或空格):表示在光标定位上一个显示的字符后,(逗号):表示光标定位在下一个打印的开始位置处,打印区每隔14列

无:输入后换行END首页上页下页目录例:PrivateSubForm_Click()a=3:b=4Printa,b,4+a,Print2*bPrinta,bPrint"a=";a,"b=";bEndSubEND首页上页下页目录③与Print有关的几个函数

a、Spc函数格式:Spc(n)

功能:在输出下一项之前插入n个空格。

例如:

Print"学号";Spc(2);"姓名";Spc(5);"成绩"

输出结果(└┘表示空格):

学号└┘└┘姓名└┘└┘└┘└┘└┘成绩END首页上页下页目录b、Tab函数函数格式:Tab(n)

功能:把输出位置移到第n列。例如:

PrintTab(2);"学号";Tab(11);"姓名";Tab(21);"成绩"输出结果是(1个汉字占2个位置):

└┘学号└┘└┘└┘└┘└┘姓名└┘└┘└┘└┘└┘└┘成绩END首页上页下页目录2)Format函数格式:Format(表达式[,格式串])

功能:根据格式串规定的格式来输出表达式的值字符作用#数字:不在前面或后面补00数字:在前面后面补0.小数点,千位分隔符%百分比符号$美元符号+,-正、负号E+,E-指数符号END首页上页下页目录例a=4513.7:b=3456.78:TimeVar=#08:30:05#

PrintFormat(a,"##,###.##")

PrintFormat(a,"$##,###.00")

PrintFormat(b,"+##,###.#")

PrintFormat(TimeVar,"h:m:s")

输出结果是:

4,513.7$4,513.70+3,456.8

8:30:5

格式符号#和0都能显示数字,但符号#会剔除不必要的0,符号0会按规定补足0END首页上页下页目录2、数据的输入

VB中,数据的输入可以通过文本框,也可以通过输入框函数来实现。1)InputBox函数:格式如下:变量名=InputBox[$](<提示信息>[,<标题>][,<缺省>][,<x坐标>][,<y坐标>])END首页上页下页目录缺省值标题提示END首页上页下页目录变量名=InputBox[$](<提示信息>[,<标题>][,<默认值>][,<x坐标>][,<y坐标>])表示返回的值为字符类型为字符型,不能省略若要多行显示,必须在每行末加回车(chr13)和换行(chr10)控制符为字符类型默认值为字符类型代表输入框在窗体上的位置注意:①InputBox函数输入的数据默认为字符型,一次只能输入一个值。②各参数次序必须一一对应,除“提示”外,其他均可省,省略部分要用逗号占位符跳过END首页上页下页目录例如:有下列语句如下:DimstrNameAsString*40,strS1AsString*40strS1=“请输入你的姓名”+Chr(13)+Chr(10)+“然后单击确定”strName=InputBox$(strS1,“输入框”,,100,100)当键盘输入“练习”后,变量strName获得键盘输入的值。END首页上页下页目录2)利用Text控件输入

利用Text控件实现数据的输入也是用Text控件的Text属性进行数据的接收,但是由于Text控件的Text属性是字符串表达式,因而赋给变量前要进行强制类型转换。如:

Dimint1AsIntegerint1=Cint(Text1.Text)

就是先强制转换数据类型再赋值给整型变量int1。END首页上页下页目录3)信息提示框①MsgBox函数格式:变量[%]=MsgBox(提示[,按钮][,标题])功能:在对话框中显示消息,等待用户单击按钮,并返回一个整型数来获知用户单击对话框上的哪一个按钮。②MsgBox

语句:格式:MsgBox

提示[,按钮][,标题]功能:与MsgBox函数功能类似,只是没有返回值,只用到简单的信息提示。END首页上页下页目录图标标题提示信息命令按钮END首页上页下页目录按钮值如下:函数返回所选按钮整数值

END首页上页下页目录例:i=MsgBox(“是否继续”,4+16+256,“MsgBox信息提示框”)Ifi=6ThenText1.Text=“你按下的按钮是””是”””ElseText1.Text=“你按下的按钮是””否”””EndIf运行结果如下:END首页上页下页目录2.4选择结构程序设计

选择程序结构用于判断给定的条件,根据判断的结果判断某些条件,根据判断的结果来控制程序的流程一、用If语句实现选择结构1、If…Then语句(单分支结构)

If<表达式>Then

语句块

EndIf

或If<表达式>Then<语句>END首页上页下页目录说明:①“条件”一般为关系表达式或逻辑表达式。通常把关系表达式或逻辑表达式的值为真时,称为条件满足;值为假时,称为条件不满足。反之亦然。②语句块是“条件”满足时,处理方法的描述,可以是若干个语句。功能:If…Then语句首先判断“条件”,其值为真时,执行语句块;为假时不执行语句块。END首页上页下页目录例:已知两个数x和y,比较它们的大小,使得x大于y.Ifx<yThent=xx=yy=tEndIf或Ifx<yThent=x:x=y:y=t条件若条件成立则执行语句块语句块END首页上页下页目录2、If…Then…Else语句(双分支结构)

If<表达式>Then<语句块1>

Else<语句块2>

EndIf

If<表达式>Then<语句1>Else<语句2>功能:块If首先判断“条件”,其值为真时,执行语句块1;为假时执行语句块2。END首页上页下页目录例如:DimDataAsInteger

Data=InputBox(“请输入成绩:")

IfData>=90ThenPrint"优秀"ElsePrint"合格"

Print"计算完毕"

上例的If语句可以改写为:

IfData<90ThenPrint"合格"ElsePrint"优秀"EndIfPrint"计算完毕"Data>=90?输出“优秀”YesNo输出“合格”输出“计算完毕”END首页上页下页目录3、If…Then…ElseIf语句(多分支结构)

形式:

If<表达式1>Then <语句块1>

ElseIf

<表达式2>Then <语句块2> … [Else

语句块n+1]EndIfEND首页上页下页目录END首页上页下页目录①依次判断条件,如果找到一个满足的条件,则执行其下面的语句块,然后跳过EndIf,执行后面的程序。②如果所列出的条件都不满足,则执行Else语句后面的语句块;如果所列出的条件都不满足,又没有Else子句,则直接跳过EndIf,不执行任何语句块。

ElseIf之间不要加空格。

Else和位于其上方的最近的If配对END首页上页下页目录例:Char=InputBox("输入一个字符","测试字符值")

IfChar>="0"AndChar<="9"ThenMsgBox"输入的字符是数字"

ElseIfChar>="A"AndChar<="Z"ThenMsgBox"输入的字符是大写字母"

ElseIfChar>="a"AndChar<="z"ThenMsgBox"输入的字符是小写字母"

ElseMsgBox"输入的字符是其它符号"EndIf判断输入的是大写字母、小写字母、数字还是其它符号

END首页上页下页目录4、嵌套选择语句所谓嵌套的选择结构就是一个选择结构又包含另一个或多个选择结构。在一个If语句中可以包含另一个If语句。语法为:If条件1Then

If条件1Then

If条件2Then

语句块1

语句块1

Else

Else

If条件2Then

语句块2

语句块2

Endif

ElseElse

语句块3

...Endif

EndIf

EndifEND首页上页下页目录Ifx<yThent=x:x=y:y=tIfy<zThent=y:y=z:z=tIfx<yThent=x:x=y:y=tEndIfEndIf已知x,y,z三个数使得x>y>zEND首页上页下页目录5、条件函数(等价与双分支结构)⑴IIf函数形式是:

IIf(表达式,当表达式为True时的值,当表达式为False时的值)例如,求x,y中大的数,放入Tmax变量中,语句如下:

Tmax=IIf(x>y,x,y)END首页上页下页目录二、多分支结构1、SelectCase语句(情况语句)形式:SelectCase

测试表达式

Case表达式列表1

语句块1Case表达式列表2

语句块2 … [CaseElse

语句块n+1]

EndSelect<测试表达式>值的类型是数值型、字符串型、日期型等,一旦与某个Case后的<表达式>值相

温馨提示

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

评论

0/150

提交评论