VB编程基础教程.docx

上传人:b****8 文档编号:27982541 上传时间:2023-07-07 格式:DOCX 页数:69 大小:72.30KB
下载 相关 举报
VB编程基础教程.docx_第1页
第1页 / 共69页
VB编程基础教程.docx_第2页
第2页 / 共69页
VB编程基础教程.docx_第3页
第3页 / 共69页
VB编程基础教程.docx_第4页
第4页 / 共69页
VB编程基础教程.docx_第5页
第5页 / 共69页
点击查看更多>>
下载资源
资源描述

VB编程基础教程.docx

《VB编程基础教程.docx》由会员分享,可在线阅读,更多相关《VB编程基础教程.docx(69页珍藏版)》请在冰豆网上搜索。

VB编程基础教程.docx

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++中,参数传递默认的是传值。

就是不能把子函数(过程)的参数传回主调函数,如果要进行这样的操作,就要借助指针变量。

   看一个简单的子函数(过程)调用的例子:

PublicSubSwap(x,y)

   DimtAsInteger

   t=x

   x=y

   y=t

EndSub

PrivateSubForm_Click()

   DimaAsInteger

   DimbAsInteger

   a=10

   b=20

   Swapa,b

   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语句声明的变量,只有在该过程执行时才存在。

过程一结束,该变量的值也就消失了。

此外,过程中的变量值对过程来说是局部的—也就是说,无法在一个过程中访问另一个过程中的变量。

由于这些特点,在不同过程中就可使

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

当前位置:首页 > 解决方案 > 学习计划

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

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