VB程序概述.docx
- 文档编号:27706935
- 上传时间:2023-07-04
- 格式:DOCX
- 页数:41
- 大小:126.03KB
VB程序概述.docx
《VB程序概述.docx》由会员分享,可在线阅读,更多相关《VB程序概述.docx(41页珍藏版)》请在冰豆网上搜索。
VB程序概述
VisualBasic概述
VB语言是一种面向对象的可视化程序设计语言
一、面向对象程序设计的基本概念
面向对象程序设计:
面向对象的程序设计通过类、对象、继承、多态等机制形成一个完善的
编程体系。
它是一种以对象为基础、以事件驱动对象对事件进行处理的
程序设计技术。
对象:
概念:
对象既包含数据,又包含接受事件后对数据进行操作的方法,将两者封装起来
的一个独立逻辑实体。
也就是说,对象都有自己的属性(数据)、方法、事件。
对象包含属性和方法,能够识别和响应一定的事件。
事件刺激对象,用一定方法处理数据,从而完成一定的功能任务。
属性:
定义:
用来描述对象的特征。
包括公共属性和专业属性。
设置:
每个对象的属性都有一个默认值,可在属性窗口中设置改变,也可在代
码窗口中通过编程设置改变(格式:
对象名.属性名称=属性值)。
事件:
定义:
指对象能够识别并做出反应的外部刺激。
每个事件都有其事件名。
对象事件是由VB预先定义好的能被对象识别和响应的动作。
分类:
系统事件:
由系统或对象自己的产生的,如Load事件。
用户事件:
由用户操作引起的事件,如Click事件。
驱动机制:
事件发生→刺激对象→对象响应→执行事件代码→完成一定功能
(所执行的事件代码称为事件过程)
能由用户引发也可以由系统引发。
VB应用程序的运行过程就是对事件的处理过程。
事件过程格式:
PrivateSub对象名_事件名()[括号不能省略]
……
EndSub
方法:
定义:
指系统已设计好的、在编写事件过程中可以使用的一些特殊程序。
从而实现完成显示、隐藏、移动、聚焦、卸载、加载、打印等功能。
不同对象具有不同的方法,方法的内容是不可见的,用户只需要知道有哪些方
法,完成哪些功能,熟悉其使用规则即可。
使用格式:
对象名.方法名[参数1,][参数2,]…[参数n]
常用方法:
Print、Show、Cls、SetFocus
类:
概念:
具有相同性质的对象的集合,类中的每个单个对象称为类的一个实例。
属于同一类的对象具有同一组属性、事件、方法,只是类的对象一旦建立,每个
对象的属性值、响应事件、设计方法可以不同。
二、程序设计语言
定义:
人和计算机交流的工具,由字、词和语法规则构成的指令系统。
演变:
低级语言:
面向机器(依赖具体的机器硬件,通用性差)的语言。
机器语言(二进制语言)
汇编语言
高级语言:
是一种接近自然语言和数学语言的程序设计语言。
它提供常用的数据描述和对数据操作的规则描述
用高级语言编写的程序称为“源程序”,计算机不能直接识别源程序代码,必须翻译为二进制程序代码才能在机器上运行。
翻译的方式有:
解释方式和编译方式。
三、算法
定义:
解决问题所确定下来的方法和有限步骤称为算法。
(一个算法就是有限指令的集合体)
表达方式:
自然语言表达
流程图表达
四、程序设计方法
类型:
模块化程序设计方法
说明:
在设计和编写大型程序时,可以对其进行模块化分解,每个模块负责对应的子功能,模块间相互协调,共同完成整个程序的功能。
模块是数据说明、接口说明、执行语句等程序对象的集合。
可以独立命名,并通过模块名来调用、访问和执行。
VB语言中,子过程(Sub)、函数(Function)、模块等程序可以看成模块。
结构化程序设计方法:
说明:
结构化程序是指运用基本控制结构编写的程序。
基本结构有:
顺序结构、条件结构、循环结构
△面向对象的程序设计方法
说明:
算法和数据结构在编程中作为一个密不可分的整体,这个整体叫做对象。
面向对象的程序设计通过类、对象、继承、多态等机制形成一个完整编程体系
其可读性、可维护性、可修改性强。
五、VisualBasic发展过程与特点
六、VB的集成开发环境
定义:
将程序的设计、编辑、修改、运行、调试查错等各种功能一体化的开发环境。
包括:
window标题栏
菜单栏、工具栏、工具箱窗口、属性窗口、窗体布局窗口、立即窗口、其他窗口
工程资源管理器窗口:
其上方有“查看代码”、“查看对象”、“切换文件夹”按钮。
属性窗口:
包含:
对象下拉列表框:
标识当前选定对象的名称及所属的类。
单击右端的下拉
箭头,可以列出当前窗体以及所包含的全班对象名称。
选项卡:
属性显示排列方式。
(按字母排序和按分类排序)
属性列表框:
左列显示所选对象所有属性名,右列可供查看和修改的属性值
属性说明:
对属性进行简短说明。
立即窗口:
打开:
“视图”→“立即窗口”。
语句格式:
?
/Print<表达式>
七.VB程序设计初步
1、界面设计
2、属性设置
3、编写程序代码
编码规则:
(1)VB代码中不区分字母大小写
VB对用户编写的程序代码进行自动转换
VB中的关键字,首字母总被转换为大写,其余字母为小写
若关键字又多个英文单词组成,则将每个单词的首字母转为大写
对于用户自定义的变量、过程名,VB以第一次定义的为准,以后输入的自动向首次的定义进行转换。
(2)语句书写自由
在同一行上可以书写多条语句,语句间用冒号“:
”隔开
单行语句可分若干行书写,在本行后加续行符“_”(由一个空字符和下划线组成)
一行最多允许书写255个字符
(3)注释有利于程序的维护和调试
Rem语句注释。
如果要在同一行进行注释,需要用冒号隔开。
单引号注释。
可直接写在同一行语句之后,也可另起一行。
(4)关键字与标识符
关键字:
具有固定含义和使用方法的字母自合。
如Private、Sub、End、If、Caption、Print、Exp
标识符:
程序开发人员定义的,用作变量名、符号常量名、控件名称、过程名称等
的字母自合。
标识符的第一个字符必须是字母。
后续的字符可以是字母、
数字、下划线。
关键字不能被定义为标识符。
长度不能超过255个字符。
4、运行程序
运行方式:
解释方式:
运行、调试、修改
编译方式:
VB集成开发环境具有把应用程序编译成可执行文件(.exe)的
功能,这样程序就可以在Windows操作系统环境下直接运行,脱离了VB继
承开发环境。
5、保存工程:
一个工程至少包含了工程文件(.vbp)和窗体文件(.frm)等两种以上类型的文件,这些文件集合在一起才能构成应该程序。
工程附属文件(.vwp)
八、VB工程的结构
工程:
使用VB设计开发的一个Windows应用程序称为VB的一个工程。
一个工程是一个应用程序所包含文件的集合。
模块是工程的基本功能单位,一个工程可以用多个模块,分担不同功能来完成。
工程中的文件和模块:
工程文件(.vbp)
说明:
一个工程只有一个工程文件,它管理和跟踪该工程的所有部件。
每个工程还会生成一个扩展名为.vbw的附属工程文件,用来保存工程在集成环境中各窗口的状态。
窗体模块文件(.frm):
说明:
各窗体地位相互独立,功能不同,共同担当
类模块文件(.cls)
说明:
VB允许开发人员创建新类,新类的定义保存在类模块中。
标准模块文件(.bas)
说明:
标准模块用来保存公共变量、常量、数据类型和过程
其他模块可以调用标准模块中的代码。
工程结构:
树状工程结构图
VB应用程序的组成及模块
组成:
VB由窗体模块(Form)、标准模块(Module)、类模块(Class)三种模块组成。
结构关系:
应用程序工程文件(.vbp)
窗体模块文件(.frm):
声明、事件、函数、Sub过程
类模块文件(.cls):
类的定义
标准模块文件(.bas):
声明部分、SubMain过程、函数过程、Sub过程
过程作用域
语言基础
一、数据类型
数值型:
Integer(%、Int、2Byte16位)、Long(&、Lng、4Byte32位)、
Single(!
、Sng、4Byte32位)Double(#、Dbl、8Byte64位)
Currency(@、8Byte64位)、Byte(Byt、1Byte8位)
字符串型:
String($、Str)变长、定长字符串。
西方字符占1个字节,汉字全角占2个。
布尔型:
Boolean(Bln)只有两个值:
True和False,占两个字节
日期型:
Date(8Byte64位),日期数据必须用“#”括起来。
可变类型(数值)、可变类型(字符):
Variant
对象型:
Object
注意:
8位(bit)=1个字节(Byte),1024Byte=1KB,1024GB=1TB
位、字节、KB、MB、GB、TB
二、变常量
1、常量:
数值型常量、布尔常量、符号常量、字符串常量、日期常量
字符串常量:
用双引号括起来的一串字符。
日期常量:
用“#”把时间日期括起来表示日期常量。
符号常量:
系统内部定义常量:
有局部、窗体模块级、全局的作用域
自定义常量:
语法格式:
[Public丨Private]Const<常量名>As<数据类型>=<表达式>
PublicconstPiassingle=3.14
注意:
自定义常量时要避免循环定义的情况。
如ConstA=B\2
2、变量:
命名规则:
1)变量名只能由字母、数字、下划线组成
2)变量名开头第一个字符必须是字母或汉字(字符数最长255个)
3)不能用VB中的保留名或用保留名加类型说明符给变量命名
如不能用Integer、If、End等关键字
4)变量名在同一个作用域内必须唯一
5)可在变量名前加数据类型前缀。
如strName$
变量声明:
隐式声明:
VB使用一个变量时不加任何声明而直接使用
显式声明:
OptionExplicit
Dim、Static、Public、Private语句声明
语法格式:
Dim<变量名>As<数据类型>或Dim<变量名><数据类型符>
注意:
多个变量一行声明,需要用逗号隔开,同一类型变量可归类,逗号隔开
如Dimx,yasInteger,zasstring
变量赋值:
定义一个变量后,要对其进行赋值才能使用。
赋值语句:
变量名=表达式(“=”赋值符)
变量引用
变量作用域:
局部变量、窗体/模块变量、全局变量
局部变量:
声明位置:
过程内部
声明方式:
Dim或Static
说明:
不能被本模块的其他过程使用、不能被其他模块使用
窗体/模块变量:
声明位置:
窗体/模块“通用声明”处
声明方式:
Dim或Private
说明:
能被本模块其他过程共同使用、不能被其他模块使用
全局变量:
声明位置:
窗体/模块“通用声明”处
声明方式:
Public
说明:
能被本模块其他过程共同使用
窗体:
能被其他模块使用,但需要在变量名前加窗体名
标准模块:
能被其他模块使用
变量生命周期:
指为变量分配内存空间到回收其内存空间的这段时间。
在Vb中,所有的全局变量和窗体/模块级变量的生命周期都和程序的声
明周期一样。
而局部变量的生命周期根据其声明方式不同而不同,根据
过程结束后变量的内存空间是否被回收分为动态变量和静态变量。
动静态变量:
动态变量:
指程序执行进入到变量所在过程时,才给变量分配内存空间,当退出
过程时,变量所占内存自动清空,变量值消失。
当再次进入该过程时,
变量值已重新初始化为默认值。
在过程内部用Dim语句声明的局部变量都是动态变量。
静态变量:
指程序进入该变量所在的过程,为变量分配固定的内存空间,当退出
该过程时,所占内存空间不被释放,变量值仍被保留。
当再次进入该
过程时,不再分配内存空间及初始化,而是使用之前分配的内存空间。
只有整个应用程序运行结束后,才回收占用的内存空间。
在过程中使用Static语句声明的局部变量都是静态变量。
如果在过程前使用Static声明,那么过程中所有变量都是静态变量
三、运算符
1、算术运算符:
乘方(^),负号(-),乘(*),除(/),整除(\),取余(Mod),加、减
算术运算符要求操作数是数值型
整除运算:
若运算数是小数,则先经过四舍五入处理
若运算结果是小数,则截取整数部分
取余运算:
若运算数是小数,则先经过四舍五入处理
绝对值小于0.5的数不能做整除和取余运算的除数,否则结果为0
进制换算:
【例】201(十进制)转二进制
所以,201(十进制)=1001001(二进制)
日期运算:
分两种:
(1)日期型与日期型相加减:
得出结果是数值型,表天数差
(2)日期型与数值型相加减:
日期型日期部分与整数部分表示天数相加减得新日期
日期型时间部分与小数部分表示时间相加减得新时间
2、字符运算符:
有“&”和“+”两个字符串连接符。
其中“+”兼连接和算术加法运算功能
如x=“123”+5,结果为x=128
3、关系运算符:
<,>,=,<>,<=,>=,Like,Is
关系运算的结果有两个(布尔值),True和False
Like(字符串匹配):
“abcde”Like“abc”=Ture
字符串比较,按照字符串的ASCII码从左到右逐一比较。
如“ABCDE”>“ABRA”=False“男”>“女”=True
关系运算符常用于条件语句和循环语句的条件判断部分。
4、逻辑运算符:
Not、And、Or、Xor、Eqv、Imp,优先级分别是1,2,3,3,4,5
5、赋值运算符:
=,优先级排最后
四、表达式:
定义:
指用运算符连接常量、变量、函数、括号等运算量而形成的式子。
一个复杂的表达式可能同时用到算术、字符串、关系和逻辑等各种运算符。
表达式的整体运算结果是表达式的值。
类型:
算术表达式、字符串表达式、逻辑表达式、关系表达式。
书写规则:
(1)运算符不能相邻
(2)乘号不能省略,应该写成“*”
(3)括号必须成对出现,且均使用圆括号
(4)表达式从左到右在同一基准上书写,无高低、大小之分
不同数据类型的转换:
运算结果往精度高的数据类型靠,即:
整>长>单>双>货币
当Long与Single运算时,结果为Double
表达式中运算符的优先级:
在一个表达式中,优先级高的运算符先进行运算,同等优先级的
运算符按照从左到右的顺序运算。
总的原则,是括号和函数的优
先级最高,然后是算术、字符、关系、逻辑、赋值。
类别
运算符
含义
优先级
算术运算符
^
乘方
1
-
符号
2
*
乘
3
/
除
\
整除
4
Mod
取余
5
+
加
6
-
减
字符运算符
&和+
连接
7
关系运算符
=、>、<、>=、<=、<>
所有关系运算符
8
逻辑运算符
Not
逻辑非
9
And
逻辑与
10
Or
逻辑或
11
Xor
逻辑异或
Eqv
逻辑相等
12
Imp
逻辑蕴含
13
赋值运算符
=
赋值
14
【例】5+10Mod10\9/3+2^2=10
五、函数类型:
1、数学函数:
Sin、Cos、Tan、Atn、Int、Rnd、Sqr、Log、sgn、Fix、Abs、Exp
Rnd函数:
返回指定范围的随机数:
Int(Rnd*范围+基数)
如:
返回1—100的随机数:
Int(Rnd*100+1)
Randomize函数:
返回不重复的随机数系列。
Randomize(X)
(X)是一个整型数,它是产生随机数的“种子数”,可省
三角函数:
Sin45°应该写成Sin(45*3.14/180)
2、字符串函数:
去空格函数:
LTrim(C)、RTrim(C)、Trim(C)
返回指定字符函数:
Left(C,N)、Right(C,N)、Mid(C,N)[Mid(MyName,2,3)]=yNa
返回字符串长度函数:
Len(C)
反序函数:
StrReverse()
空格函数:
Space()
提取大小写字母函数:
Lcase()、Ucase()
注意:
大小写转换函数:
UCase()、LCase()
3、转换函数:
Asc(C)、Chr(N)、Fix(N)、Int(N)、LCase(C)、UCase(C)、Round(N)
Str(N)、Val(C)、Oct(N)、Hex(N)
说明:
C为字符串表达式:
“XXX”。
N为数值表达式:
123
LCase(C):
大写字母变小写。
UCcase(C):
小写变大写。
Int(N):
高斯取整函数(不大于N本身的最大整数)
Fix(N):
纯粹取整函数
Round(N):
四舍五入
Val(N):
数字字符串转为数值,如Val(“AB123”)=123
Str(N):
数值型转为数字字符串,如数值是负数,则应空格代替负号
4、日期时间函数:
Year()、Month()、Day()、Hour()、Minute()、Second()
Now()、Time()、Date()、WeekDay()星期函数,星期日为1,星期二为2
5、格式化函数:
Format():
格式:
Format(表达式,格式字符串)
6、Shell函数:
用来调用凡是能在Windows下运行的应用程序,如Word、Powerpoint等
六、数组
概念:
由一系列具有相同变量名、相同数据类型的下标变量构成的有序排列。
数组由数组名和下标变量构成(a
(1)、a
(2)…)。
下标变量:
(1)下标变量在程序中的用法和简单变量的用法一样。
(2)下标可以是常数、数值变量、算术表达式、甚至下标变量。
下标如含有变量,使用前应给该变量赋值。
如i=5,a(i+3)=a(8)
(3)下标变量的下标值应该为整数,否则计算机自动对其去整。
数组元素:
每个下标变量称为该数组的一个数组元素,数组的数据类型也就是该数组包
含的下标变量的数据类型。
维数表示:
一维数组、多维数组(最多不超过六十维)
说明:
多维数组的表示方法:
首先变化的是最后一维的下标,然后变
化倒数第二维的下标,第一维下标最后变化,按行存放。
例:
二维数组A(4,3)的表示方法:
第一行:
A(0,1)A(0,2)A(0,3)A(0,4)
第二行:
A(1,1)A(1,2)A(1,3)A(1,4)
第三行:
A(2,1)A(2,2)A(2,3)A(2,4)
第四行:
A(3,1)A(3,2)A(3,3)A(3,4)
第五行:
A(4,1)A(4,2)A(4,3)A(4,4)
个数计算:
一维数组个数:
(上界–下界)+1
多维数组个数:
各维数组个数的乘积。
每一维数组的个数:
(上界–下界)+1
数组类型:
固定数组、动态数组、控件数组、自定义数据类型
1、固定数组:
概念:
固定数组也叫静态数组,指数组元素的个数固定不变的数组
声明:
声明一个固定数组时,必须指明数组名、维数、类型、数组元素个数、
数组使用的有效范围。
语法格式:
[Private丨public丨Dim]数组名(<维数说明>)[As数据类型]
说明:
(1)Private丨Dim用来声明局部数组或模块数组
Public用来声明公用数组
(2)数组名的命名规则和简单变量的命名规则相同
(3)如果省略[As数据类型],数组按Variant型处理
(4)<维数说明>指定数组的维数以及各维的范围。
To语句可以指定下标下界(为Long数据类型)
格式:
[下界1]To[上界1],[下界2]To[上界2],…
OptionBasen语句也可以控制下标下界,如果没有使
用该语句,则默认数组下界为0。
【例】DimNum(1To5)AsInteger
表示一个一维数组,下标从1—5,长度为5
DimX(1To10,3,1To15)AsDouble
表示一个三维数组,包含10×4×15个元素
注意:
(1)在声明数组时,下标必须是常量,不能是变量。
而在应用数组元素时,下标可以是常量、变量、表达式。
(2)数组下标越界错误:
引用的下标不在数组声明时的下标范围内。
(3)数组维数错误:
引用数组维数和声明数组时的维数不一致。
(4)增加数组维数时,数组所占存储空间会大幅度增加。
数组的使用:
一个数组声明后,通过对其元素进行赋值、表达式运算、输入和输出等操作实现对其的使用。
注意:
(1)在同一过程中,数组名与其中的简单变量名不能相同。
(2)声明后的数组,数值型数组的各元素默认值为0,字符串型数组的元素默认值为空字符串。
(3)使用数组元素时,数组名、数组的数据类型、维数必须与数组声明时的一致。
下标值应在数组声明时所指定的范围内。
(4)一维数组数轴、二维平面、三维立体空间
2、动态数组:
概念:
在事先不知道数组的大小时,可以声明其为动态数组,在程序需要时再指定数
组的大小。
声明:
(1)数组作用域:
全局(Public)、模块(Dim、Private)、局部(Dim、Static)
(2)声明数组为动态数组,只需要为数组附以一个空维数表(括号不能省略)
如:
DimA()
(3)在过程中,用ReDim语句为声明的动态数组重新分配实际元素个数
格式:
ReDim数组名<维数说明>[As类型]
如:
RedimA(8)表示为X()指定含有9个元素。
说明:
(1)ReDim语句只能出现在事件过程或通用过程中。
(2)<维数说明>格式为:
[下界1]To[上界1],[下界2]To[上界2],…
(3)其中括号的内容可以省略,当省略了上下界的说明时,可用
UBound和LBound函数来获取数组的上界和下界。
(4)在一个过程中,可以多次使用ReDim语句定义同一个数组。
(5)当再次使用ReDim语句重新分配动态数组时,当前存储在数
组中的数据将被清除,利用这一点可以随时对数组进行初始
化。
但如果ReDim语句中使用Preserve选择项时,可以保持
数组中原有的数据不变。
但Preserve只能改变数组最后一维
的大小,且不能改变数组的维数。
(6)用Array函数对数组赋值:
格式:
数组名=Array(元素值)
如:
对A(1To4)赋值,a=Array(1,3,5,7)
表示:
A
(1)=1,A
(2)=3,A(3)=5,A(4)=7
各元素值直接用逗号隔开。
Array函数只适合一维变体型数组
动态数组的应用
3、字符串数组:
4、控件数组:
5、自定义数据类型:
设计结构
一、顺序结构
定义:
程序按照代码书写顺序执行(执行顺序与书写顺序一致)
1、赋值语句Let
语法格式:
[Let]<变量名>=<表达式>
[Let][<对象名>.]<属性名>=<表达式>
说明:
1、Rem“=”为赋值符,Let可以省略。
2、赋值语句兼备运算和赋值两个功能。
运算后赋值。
3、数据相容性问题。
变
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 程序 概述