VB编程基础教程.docx
- 文档编号:23608914
- 上传时间:2023-05-19
- 格式:DOCX
- 页数:69
- 大小:72.17KB
VB编程基础教程.docx
《VB编程基础教程.docx》由会员分享,可在线阅读,更多相关《VB编程基础教程.docx(69页珍藏版)》请在冰豆网上搜索。
VB编程基础教程
送给VisualBasic6.0的初学者
应朋友的要求,写这么个东西,这里主要介绍一些学习VB过程中应该注意的问题,因为其他的东西可以从任何一本教材中看到。
1、学习VisualBasic之前最好做好一下几种准备:
•知道Windows操作系统中常见部件的名称,例如“按钮”、“文本框”、“单选按钮”、“滚动条”等。
•掌握一定的编程思想或数学思想。
或者说有一定的逻辑分析能力。
•能经常上机实践,当然最好的学习方法是边看书边实际操作。
初学者推荐阅读高等教育出版社出版的《全国计算机等级考试•二级VisualBasic语言程序设计》(附带一本课后习题答案)、清华大学出版社出版的《VisualBasic程序设计》(谭浩强主编)。
其他的书在很多问题上讲的不清楚。
不推荐参考。
2、VB中的主要内容:
VB也是一门计算机语言,所以也就避免不了要有各种语法,主要是“变量类型”、“选择程序结构”、“循环程序结构”、“数组”、“子函数和子过程”、“文件”。
另外由于VB是可视化的编程工具,所以比传统的QBASIC和C语言多了“控件”这一部分。
具体需要那些控件教材里面有介绍。
3、各个章节的重点难点介绍:
这里的“章节”并不是按照教材上的“章节”介绍的,而是按照刚才我划分的“块”介绍。
并且是按照国家计算机二级VB考试的标准叙述的。
1)、变量类型
变量和常量的概念。
主要的变量类型有:
integer、string、long、Boolean、currency、float、double。
其中integer、string和Boolean最为常见。
2)选择程序结构
几种常见的选择结构。
书上都有介绍。
学习过程中记得如何判断条件的“真”“假”,选择不同的程序走向。
如果条件为“真”,则怎么样;如果条件为“假”,又该怎么样。
最后不要忘了EndIf。
在学习选择程序结构的时候注意培养自己良好的编码风格。
看一个例子:
PrivateSubnumber_Click(IndexAsInteger)
Iflastinput<>"nums"Then
disp=Number(Index).Caption
Else
disp=disp+Number(Index).Caption
EndIf
lastinput="nums"
EndSub
不管你是否能看懂这段程序写的是什么,况且这也不是我让你看这段程序的主要目的。
你应该注意这段程序的编码风格,就是格式。
VB里面几乎每段代码都在一个“Sub”和“EndSub”中间,所以你在写程序的时候最好使第一行代码向右缩进一个Tab键,按一下键盘上的Tab键,然后输入代码。
如果出现“If”等语句的时候,“Then”后面一行的代码要缩进两个Tab键。
不知道是否明白。
不明白也没有关系。
多看一些优秀代码就明白了。
3)循环结构
这一部分可以说对初学者来说比较头疼。
特别是循环条件的判定。
什么时候要执行循环,什么时候不用执行循环。
哪些语句比那些语句少(多)执行一次循环。
主要的循环语句教材上都有详细的讲解,这一部分要多揣摩,多练习。
可以在源程序上用笔划出语句执行的顺序。
其实用不了多长时间就明白了。
给出一个典型的例子:
“百钱买百鸡”
PrivateSubCommand1_Click()
Dimx%,y%,z%,tAsData,t1AsData
Forx=0To100
Fory=0To100
Forz=0To100
Ifx+y+z=100And3*x+2*y+0.5*z=100Then
Print"能买母鸡";x;"只,公鸡";y;"只,小鸡";z;"只"
EndIf
Nextz,y,x
EndSub
这段程序可以算是初学者比较经典的算法。
100块钱,要买三种鸡,母鸡3元一只,公鸡2元一只,小鸡0.5元一只。
问一共可以买几只。
研究完算法之后别忘了看格式。
其中Nextz,y,x的顺序不能颠倒,也可以写成如下格式:
PrivateSubCommand1_Click()
Dimx%,y%,z%,tAsData,t1AsData
Forx=0To100
Fory=0To100
Forz=0To100
Ifx+y+z=100And3*x+2*y+0.5*z=100Then
Print"能买母鸡";x;"只,公鸡";y;"只,小鸡";z;"只"
EndIf
Nextz
Nexty
Nextx
EndSub
4)数组
数组是一种重要的数据结构。
要多练习。
其中VB里面最容易出错的就是下标!
例如定义一个数组Arr(4),那么它一共5个变量:
Arr(0)开始,一直到Arr(4)。
5)子函数和子过程
这里我沿用QBASIC里面的叫法。
在子函数(过程)部分最容易搞不懂的概念就是“传地址”和“传值”,即“ByRef”和“ByVal”,ByRef是默认的。
也就是说如果没有在函数的参数列表中注明是那种传递方式,默认按照传地址进行处理。
函数中的数值既可以由主函数传递到子函数(过程)中,也可以由子函数(过程)回到主函数中。
其实我这里说的“主函数”是不确切的,应该叫做“主调函数”。
另外还有一个与之相关的概念是“形参”和“实参”,就是“实际参数”和“形式参数”。
实际参数是子函数(过程)中的参数,而形式参数是“主调函数”中的参数。
我觉得VB中子函数参数调用应该是比其他计算机语言简单的一个地方,包括C/C++等。
在C/C++中,参数传递默认的是传值。
就是不能把子函数(过程)的参数传回主调函数,如果要进行这样的操作,就要借助指针变量。
看一个简单的子函数(过程)调用的例子:
PublicSubS)
DimtAsInteger
t=x
x=y
y=t
EndSub
PrivateSubForm_Click()
DimaAsInteger
DimbAsInteger
a=10
b=20
S
Print”a=”;a,”b=”;b
EndSub
Form_Click是主调函数,Swap是子函数(过程)。
在主调函数的倒数第三行调用了子函数(过程),输出结果为:
“a=20,b=10”。
6)文件
这一部分单独考试出题不多,实际应用中用到的也不多,但是它总是在某些考试中以压轴题的姿态出现。
并且更为严重的是:
如果对这一部分不清楚,会使整道题都无从下手。
所以还是要好好看看这部分为好。
7)常见控件
对于控件最令初学者头疼的是“属性”、“事件”和“方法”这三个概念。
这三个概念是“面向对象程序设计”专用的。
VB6虽然不能算是标准的“面向对象程序语言”,但是具备了很多的面向对象特征,唯独不具备“类的继承”特征。
考虑到初学者对面向对象编程没有基础,所以关于上述三个概念就不能给出确切的定义。
但是我们可以这样去理解这三个概念:
“属性”就是某个控件的固有性质,拿Command(按钮)控件为例,它的“属性”就有“长度”、“宽度”、“是否显示图片”等。
简单来说,大多数初学者接触的控件属性,都可以在VB6开发环境中的属性栏找到(如果找不到的属性称为“只读属性”)。
“事件”很容易理解。
比如我们用鼠标单击一个按钮,这时候“按钮”这个控件就接收鼠标的单击,换句话说就是“按钮上发生了单击事件”。
那么发生单击事件以后程序会做什么呢?
那就是运行你编写的针对此事件的程序。
现在你打开VB6的界面,随便画一个按钮,然后双击这个按钮,进入代码视图,在PrivateSubCommand_Click()和EndSub之间写代码。
那么你写的这段代码就是名称为Command的按钮发生Click事件执行的代码。
“方法”的概念最不容易理解。
按照标准的面向对象编程描述,方法是一个函数,它被封装在类中。
其实我们也可以把方法想想成一个“函数”,类似上文中描述的“子函数(过程)”。
初学者常用的VB6方法不多,其中最常用的就是“Print”。
正如您所想象的那样,刚才使用的时候也没有发现它有多么特殊。
其实我们已经在使用Print方法了。
只不过它所归属的对象我们不需要知道而已。
关于控件的使用这里就不多说了,因为教科书上介绍的比我介绍的详细的多。
4、结束语:
VisualBasic6.0可以说算是最简单的一门计算机语言。
学习的时候多用心。
其实前面“变量”部分即使记不住也无妨,在后续的学习过程中会不断牢固以前的知识的。
更何况现在的考试都带有MSDN,就是VB的帮助系统。
如果有哪些关键字或者用法记不清楚了,可以随时查阅MSDN的相关文档。
最后祝各位VB愉快!
附:
送上几例经典的算法
求最大公约数和最小公倍数
PrivateSubCommand3_Click()
Dimm1%,m%,n%,n1%,r%,b%
m1=Val(InputBox("输入一个数:
"))
n1=Val(InputBox("请输入另一个数:
"))
Ifm1>n1Thenm=m1:
n=n1Elsem=n1:
n=m1
Do
r=mModn
Ifr=0ThenExitDo
m=n
n=r
Loop
Printm1;"和";n1;"的最大公约数为:
";n
b=m1*n1/n
Printm1;"和";n1;"的最小公倍数为:
";b
EndSub
求100到200之间所有的素数(质数)
PrivateSubCommand2_Click()
Dimi%,m%
Form=101To199Step2
Fori=2ToInt(Sqr(m))
If(mModi)=0ThenGoTonotnextM'一旦被2到sqr(m)的数整除就转到下一个数
Nexti
Printm
notnextM:
Nextm
EndSub
注意!
程序中使用了GoTo语句!
VB编程基础教程一
代码模块
VisualBasic的代码存储在模块中。
模块有三种类型:
窗体、标准和类。
简单的应用程序可以只有一个窗体,应用程序的所有代码都驻留在窗体模块中。
而当应用程序庞大复杂时,就要另加窗体。
最终可能会发现在几个窗体中都有要执行的公共代码。
因为不希望在两个窗体中重复代码,所以要创建一个独立模块,它包含实现公共代码的过程。
独立模块应为标准模块。
此后可以建立一个包含共享过程的模块库。
每个标准模块、类模块和窗体模块都可包含:
声明。
可将常数、类型、变量和动态链接库(DLL)过程的声明放在窗体、类或标准模块的模块级。
过程。
Sub、Function或者Property过程包含可以作为单元来执行的代码片段。
本章后面的“过程概述”一节中将讨论这些内容。
窗体模块
窗体模块(文件扩展名为.FRM)是大多数VisualBasic应用程序的基础。
窗体模块可以包含处理事件的过程、通用过程以及变量、常数、类型和外部过程的窗体级声明。
如果要在文本编辑器中观察窗体模块,则还会看到窗体及其控件的描述,包括它们的属性设置值。
写入窗体模块的代码是该窗体所属的具体应用程序专用的;它也可以引用该应用程序内的其它窗体或对象。
标准模块
标准模块(文件扩展名为.BAS)是应用程序内其它模块访问的过程和声明的容器。
它们可以包含变量、常数、类型、外部过程和全局过程的全局(在整个应用程序范围内有效的)声明或模块级声明。
写入标准模块的代码不必绑在特定的应用程序上;如果不小心用名称引用窗体和控件,则在许多不同的应用程序中可以重用标准模块。
类模块
在VisualBasic中类模块(文件扩展名为.CLS)是面向对象编程的基础。
可在类模块中编写代码建立新对象。
这些新对象可以包含自定义的属性和方法。
实际上,窗体正是这样一种类模块,在其上可安放控件、可显示窗体窗口。
详细信息关于在类模块中编写代码的更详细的信息,请参阅“用对象编程”。
注意VisualBasic的专业版和企业版也包含ActiveX文档、ActiveX设计器和用户控件。
它们介绍了具有不同文件扩展名的新模块类型。
从编写代码的角度来看,这些模块应视同为窗体模块。
使用“代码编辑器”
VisualBasic“代码编辑器”是一个窗口,大多数代码都在此窗口上编写。
它象一个高度专门化的字处理软件,有许多便于编写VisualBasic代码的功能。
图5.4所为示“代码编辑器”窗口。
图5.4“代码编辑器”窗口
因为要操作模块中的VisualBasic代码,所以要为每一个从“工程资源管理器”中选择的模块打开一个独立的“代码编辑器”窗口。
在每个模块中,对于模块中所包含的每个对象,将模块中的代码再细分出与对象对应的独立部分。
用“对象列表框”实现各部分间的切换。
在窗体模块中,该列表包含一个通用段,一个属于窗体自身的段以及窗体所包含的每一控件的段。
对于类模块,列表包括一个通用段和一个类段;对于标准模块,只有一个通用段被显示。
每一段代码都可包含几个用“过程列表框”访问的不同过程。
对窗体或控件的每一个事件过程,窗体模块的过程列表都包含一个独立的段。
例如,Label控件的过程列表就包含Change事件段、Click事件段和DblClick事件段等等。
类模块只列举类本身的事件过程—初始化和终止。
标准模块不列举任何事件过程,因为标准模块不支持事件。
模块通用段的过程列表只包含唯一段—声明段,其中放置模块级的变量、常数和DLL声明。
当在模块中添加子过程或函数过程时,那些过程被添加到声明段下方的“过程列表框”中。
代码的两种不同视图都可用于“代码编辑器”窗口。
可以一次只查看一个过程,也可以查看模块中的所有过程,这些过程彼此之间用线隔开(如图5.4所示)。
为了在两个视图之间进行切换,利用编辑器窗口左下角的“查看选择”按钮。
自动完成编码
VisualBasic能自动填充语句、属性和参数,这些性能使编写代码更加方便。
在输入代码时,编辑器列举适当的选择、语句或函数原型或值。
通过“工具”菜单上的“选项”命令访问“选项”对话框,在“选项”对话框的“编辑器”选项卡上可用这样的选项,由它们决定是允许还是禁止各代码的设置值。
在代码中输入一控件名时,“自动列出成员特性”会亮出这个控件的下拉式属性表(图5.5)。
键入属性名的前几个字母,就会从表中选中该名字,按Tab键将完成这次输入。
当不能确认给定的控件有什么样的属性时,这个选项是非常有帮助的。
即使选择了禁止“自动列出成员特性”,仍可使用CTRL+J组合键得到这种性能。
图5.5“自动列表成员功能”
“自动快速信息”功能显示语句和函数的语法(图5.6)。
当输入合法的VisualBasic语句或函数名之后,语法立即显示在当前行的下面,并用黑体字显示它的第一个参数。
在输入第一个参数值之后,第二个参数又出现了,同样也是黑体字。
“自动快速信息”也可以用CTRL+I组合键得到。
图5.6“自动快速信息”
书签
在代码编辑器中书签可用来标记代码的某些行,以便您以后可以很容易地返回这些行。
书签开关的切换以及定位到已有书签的命令可以在编辑、书签菜单项或编辑工具栏中得到。
详细信息关于如何使用组合键使用“代码编辑器”窗口的各种功能的更详细信息,请参阅“代码窗口的快捷键”。
编码基础
这一部分介绍代码编写机制,包括如何中断和合并代码行、如何添加注释、如何使用数字以及VisualBasic命名约定。
将单行语句分成多行
可以在“代码”窗口中用续行符(一个空格后面跟一个下划线)将长语句分成多行。
由于使用续行符,无论在计算机上还是打印出来的代码都变得易读。
下面用续行符(_)将代码分成若干行:
Data1.RecordSource=_
"SELECT*FROMTitles,Publishers"_
&"WHEREPublishers.PubId=Titles.PubID"_
&"ANDPublishers.State='CA'"
在同一行内,续行符后面不能加注释。
至于在什么地方可以使用续行符,还是有某些限制的。
将多个语句合并到同一行上
通常,一行之中有一个VisualBasic语句,而且不用语句终结符。
但是也可以将两个或多个语句放在同一行,只是要用冒号(:
)将它们分开。
Text1.Text="Hello":
Red=255:
Text1.BackColor=_
Red
但是,为了便于阅读代码,最好还是一行放一个语句。
.
详细信息关于详细信息,请参阅“VisualBasic的规范、限制和文件格式”。
在代码中添加注释
阅读本手册的例子时常会遇到注释符(')。
这个符号告诉VisualBasic,忽略该符号后面的内容。
这些内容是代码段中的注释,既是为了方便开发者,也是为了方便以后可能检查源代码的其他程序员。
例如:
'这是从屏幕左边
'开始的注释。
Text1.Text="Hi!
" '在文本框中放
'欢迎词。
注释可以和语句在同一行并写在语句的后面,也可占据一整行。
上述代码对这两种情况都作了示范。
记住,不能在同一行上,将注释接在续行符之后。
注意您可以通过选中两行或多行代码并在“编辑”工具栏上通过选择“注释块”或“删除注释块”按钮来对该代码块添加或删除注释符号。
理解数字系统
在本文档中,大多数的数值都是十进制的(基数为10)。
但有时用十六进制数(基数为16)或八进制数(基数为8)更方便。
VisualBasic用前缀&H表示十六进制数,而用&O表示八进制数。
下表说明同一个数的十进制、八进制和十六进制表示。
十进制八进制十六进制
9&O11&H9
15&O17&HF
16&O20&H10
20&O24&H14
255&O377&HFF
通常不必掌握十六进制或八进制数制,因为计算机可以用任何数制的数工作。
但是,对某些任务来说,有的数系就比其它数系更合适,例如利用十六进制数设置屏幕和控件的颜色。
VisualBasic的命名约定
在编写VisualBasic代码时,要声明和命名许多元素(Sub和Function过程、变量、常数等等)。
在VisualBasic代码中声明的过程、变量和常数的名字,必须遵循这些规则:
它们必须以字母开头。
它们不可以包含嵌入的句号或者类型声明字符(规定数据类型的特殊字符)。
它们不能超过255个字符。
控件、窗体、类和模块的名字不能超过40个字符。
它们不能和受到限制的关键字同名。
受到限制的关键字是VisualBasic使用的词,是语言的组成部分。
其中包括预定义语句(比如If和Loop)、函数(比如Len和Abs)和操作符(比如Or和Mod)。
详细信息关于关键字表的更详细信息,请参阅语言参考。
窗体和控件可以和受到限制的关键字同名。
例如,可以将某个控件命名为Loop。
但在代码中不能用通常的方法引用该控件,因为VisualBasic会认为Loop意味着关键字。
例如,这样的代码就会出错。
Loop.Visible=True '出错。
为了引用那些和受到限制的关键字同名的窗体或控件,就必须限定它们,或者将其用方括号[]括起来。
例如,下面的代码就不会出错。
MyForm.Loop.Visible=True '用窗体名
'将其限定。
[Loop].Visible=True '方括号
'起了作用。
在引用窗体和控件时都可以用这种方式使用方括号,但在声明变量或定义过程期间,当变量名或过程名与受到限制的关键字相同时,这种方式是不能使用的。
方括号还可以用来强制VisualBasic接受其它类型库提供的名称,这些名称与受到限制的关键字冲突。
注意因为键入方括号也是令人厌倦的事情,所以希望少用受到限制的关键字作窗体或控件名。
但是,如果VisualBasic的新版本定义了与现有窗体或控件冲突的新关键字,那么,在为使用新版本而更新代码时,可以使用这个技巧。
变量
在VisualBasic中执行应用程序期间,用变量临时存储数值。
变量有名字(用来引用变量所包含的值的词)和数据类型(确定变量能够存储的数据的种类)。
可以把变量看作内存中存放未知值的所在处。
例如,假定正在为水果铺编一个销售苹果的软件。
在销售实际发生之前并不知道苹果的价格和销量。
此时,可以设计两个变量来保存未知数—将它们命名为ApplePrice和ApplesSold。
每次运行程序时,用户就这两个变量提供具体值。
为了计算总的销售额,并且将结果显示在名叫txtSales的文本框中,代码应该是这样的:
txtSales.txt=ApplePrice*ApplesSold
每次根据用户提供的数值,这个表达式返回不同的金额。
由于有了变量,就可以设计一个算式,而不必事先知道实际的输入是多少。
在这个例子中,ApplePrice的数据类型是货币,而ApplesSold的数据类型是整数。
变量还可以表示许多其它数值,比如:
文本数值、日期、各种数值类型,甚至对象也在此列。
存储和检索变量中的数据
用赋值语句进行计算,并将结果赋予变量:
ApplesSold=10 '将值10
'传给变量。
ApplesSold=ApplesSold+1 '变量值
'增一。
注意,例子中的等号是赋值符,并不是等于操作符;它将数值(10)赋予变量(ApplesSold)。
声明变量
声明变量就是事先将变量通知程序。
要用Dim语句声明变量,Dim语句提供了变量名:
Dimvariablename[Astype]
在过程内部用Dim语句声明的变量,只有在该过程执行时才存在。
过程一结束,该变量的值也就消失了。
此外,过程中的变量值对过程来说是局部的—也就是说,无法在一个过程中访问另一个过程中的变量。
由于这些特点,在不同过程中就可使用相同的变量名,而不必担心有
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 编程 基础教程