VB语言基础教程演示文稿_第1页
VB语言基础教程演示文稿_第2页
VB语言基础教程演示文稿_第3页
VB语言基础教程演示文稿_第4页
VB语言基础教程演示文稿_第5页
已阅读5页,还剩259页未读 继续免费阅读

下载本文档

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

文档简介

VB语言基础教程演示文稿目前一页\总数二百六十四页\编于十七点优选VB语言基础教程目前二页\总数二百六十四页\编于十七点第一章VisualBasic程序设计概述

1.1概述

1.2运行环境、安装和启动

1.3VB集成开发环境目前三页\总数二百六十四页\编于十七点1.1概述一、VB简介:

VisualBasic是基于Basic的可视化的程序设计语言。VisualBasic6.0中文版是Microsoft公司最新推出的可视化开发工具,是一种基于Windows操作系统的新型的现代程序设计语言,是一种易于学习、功能强、效率高的编程工具。任何具有初步程序设计基础的人,都能在很短的时间内掌握好VB,并有效地编写出各种Windows程序。

VB6.0包括三个版本:学习版、专业版、企业版目前四页\总数二百六十四页\编于十七点二、VB主要功能特点:1.具有面向对象的可视化设计工具2.事件驱动的编程机制3.提供了易学易用的应用程序集成开发环境4.结构化的程序设计语言5.支持多种数据库系统的访问6.OLE技术。VB核心就是其对对象的链接与嵌入(OLE)的支持。7.Active技术8.完备的help联机帮助功能三、VB6.0新功能特点目前五页\总数二百六十四页\编于十七点1.2运行环境、安装和启动一、运行环境:二、安装:安装文件:setup.exe三、启动:方法:1、双击桌面VB快捷方式。

2、“开始”|程序|MicrosoftVisualStudio6.0|MicrosoftVisualBasic6.03、“开始”|运行|C:\programfiles\MicrosoftVisualStudio\VB98\VB6.exe目前六页\总数二百六十四页\编于十七点进入VB6.0窗口目前七页\总数二百六十四页\编于十七点1.3VB集成开发环境目前八页\总数二百六十四页\编于十七点1.主窗口应用程序窗口,由标题栏、菜单栏和工具栏组成VB的三种工作模式(标题栏总显示当前模式)

(1)设计模式:创建应用程序的大多数工作都是在设计时完成的。在设计时,可以设计窗体、绘制控件、编写代码并使用“属性”窗口来设置或查看属性设置值。

(2)运行模式:代码正在运行的时期,用户可与应用程序交流。可查看代码,但不能改动它。

(3)中断模式:程序在运行的中途被停止执行时。在中断模式下,用户可查看各变量及不是属性的当前值,从而了解程序执行是否正常。还可以修改程序代码,检查、调试、重置、单步执行或继续执行程序。目前九页\总数二百六十四页\编于十七点2.窗体(Form)设计窗口

窗体设计窗口是屏幕中央的主窗口,它可以作为自定义窗口用来设计应用程序的界面。用户可以在窗体中添加控件、图形和图片来创建所希望的外观。每个窗口必须有一个的窗体名字,建立窗体时缺省名为Form1,Form2,...。窗体网格点间距的设置:设计模式-”工具”–”选项”应注意窗体名(代码中使用的标识对象名称)和窗体文件名的区别目前十页\总数二百六十四页\编于十七点窗体设计窗口窗体名窗体文件名目前十一页\总数二百六十四页\编于十七点3.代码(code)窗口

在设计模式中,通过双击窗体或窗体上任何对象或通过“工程资源管理器”窗口中的“查看代码”按钮来打开代码编辑器窗口。代码编辑器是输入应用程序代码的编辑器。

代码窗口主要包括:

a.对象列表框

b.过程列表框

c.代码框

d.过程查看按钮

e.全模块查看按钮目前十二页\总数二百六十四页\编于十七点目前十三页\总数二百六十四页\编于十七点4.属性(properties)窗口

属性是指对象的特征,如大小、标题或颜色等数据。在VisualBasic6.0设计模式中,属性窗口列出了当前选定窗体或控件的属性的值,用户可以对这些属性值进行设置。目前十四页\总数二百六十四页\编于十七点

工程是指用于创建一个应用程序的文件的集合。工程资源管理器列出了当前工程中的窗体和模块5.工程资源管理器(projectexplorer)窗口目前十五页\总数二百六十四页\编于十七点工程文件的扩展名为.VBP工程资源管理器下面的列表窗口,以层次列表形式组成这个工程的所有文件。主要包括三种类型的文件:窗体文件(.FRM)存储窗体上使用的所有控件对象和有关的属性、对象相应的事件过程、程序代码。标准模块文件(.BAS)所有模块级变量和用户自定义的通用过程(可以被应用程序各处调用的过程)类模块文件(.CLS)包含用户对象的属性及方法。目前十六页\总数二百六十四页\编于十七点

工具箱提供一组工具,用于设计时在窗体中放置控件生成应用程序的用户接口。系统启动后缺省的General工具箱就会出现在屏幕左边,上面有常用“部件”6.工具箱(ToolBox)窗口目前十七页\总数二百六十四页\编于十七点定制工具箱添加选项卡:对添加的选项卡加控件的方法:

(1)在已有的选项卡中拖动所需控件(2)激活选项卡-”工程”-“部件”

目前十八页\总数二百六十四页\编于十七点

窗体布局窗口显示在屏幕右下角。用户可使用表示屏幕的小图像来布置应用程序中各窗体的位置。这个窗口在多窗体应用程序中很有用,因为这可以指定每个窗体相对于主窗体的位置。

7.窗体布局窗口目前十九页\总数二百六十四页\编于十七点立即窗口:中断模式中调试应用程序。对象浏览窗口:可查看工程定义的模块或过程,也可查看对象库、类型库、类、方法、属性及可在过程中使用的常数。目前二十页\总数二百六十四页\编于十七点第二章简单的VB程序设计

2.1程序设计方法的发展

2.2对象的概念

2.3建立简单的应用程序

2.4窗体和基本控件

2.5工程的管理及环境设置

2.6制作成安装盘

2.7使用帮助系统

目前二十一页\总数二百六十四页\编于十七点2.1程序设计方法的发展1.初期的程序设计

高运行效率、少占用内存为目标2.结构化程序设计

程序的可读性、可维护性为目标程序=算法+数据结构的面向过程的程序设计3.面向对象的程序设计(OOP)

降低程序的复杂性、提高软件的开法效率和改善工作界面为目标程序=对象+消息的面向对象的程序设计目前二十二页\总数二百六十四页\编于十七点结构化的分解突出过程(Howtodo?)面向对象的分解突出真实世界和抽象的对象(Whattodo?)目前常用的面向对象语言有:VisualBasic、VisualC++、VisualFoxPro等优点

a.符合人们的思维方法

b.易于软件的维护和功能的增减

c.能用继承的方式减短程序开发时间

d.与可视化技术结合,改善了工作界面目前二十三页\总数二百六十四页\编于十七点2.2对象的概念一、对象和类1、类:是创建对象实例的模板,是同种对象的集合与抽象,包含了创建对象的属性描述和行为特征的定义.2、对象:

是类的一个实例,继承了类的属性、方法。

Vb中常用的对象有:窗体、控件等。3、控件:以图标的形式放在工具箱中。VB中的控件分为三类:

内部控件(标准控件):如工具箱上的控件,20个

ActiveX控件:“工程/部件”命令加载

可插入对象:Windows应用程序的对象,如Excel工作表。二、对象的建立和编辑:

1、对象的建立:两种方法2、对象的选定:单选、多选

3、复制或删除对象4、对象的命名目前二十四页\总数二百六十四页\编于十七点三、对象的三要素:属性、事件和方法(1)属性

对象的性质,即用来描述和反映对象特征的参数。(2)事件对象的响应称为事件,它发生在用户与应用程序交互时。如单击控件、鼠标移动、键盘按下等。事件过程指附在该对象上的用户编写的程序代码,是事件的处理程序。事件驱动过程是图形用户界面的本质,由用户控制而代码作出响应。目前二十五页\总数二百六十四页\编于十七点VB程序执行步骤:启动应用程序,装载和显示窗体窗体(或窗体上的控件)等待事件的发生事件发生时,执行对应的事件过程重复执行(2)和(3),直到遇到“END”结束语句结束程序的运行或单击“结束”按钮强制停止程序的运行目前二十六页\总数二百六十四页\编于十七点(3)方法

对象的动作,即将一些通用的过程编写好并封装起来,作为方法供用户直接调用。对象方法的调用格式:

[对象.]方法[参数名表]例如:在窗体上显示一行文字。

Form1.Print”欢迎使用VisualBasic6.0”目前二十七页\总数二百六十四页\编于十七点2.3建立简单的应用程序设计一个VB应用程序的通用步骤:

1.设计用户界面的对象

2.设置对象的属性

3.编写对象事件代码

4.保存文件

5.程序运行和调试(解释执行:

或“运行|启动”

按F5)

6.建立可执行文件。(编译运行:“文件”|“生成…exe”)目前二十八页\总数二百六十四页\编于十七点例2.1编写一个对输入字符进行转换的程序转换规则为:将其中的大写字母转换成小写字母,小写字母转换成大写字母,空格不转换,其余转换成“*”。要求每输入一个字符,马上就进行判断和转换。目前二十九页\总数二百六十四页\编于十七点PrivateSubText1_KeyPress(KeyAsciiAsInteger)DimaaAsString*1aa=Chr$(KeyAscii)SelectCaseaaCase"a"To"z"aa=Chr$(KeyAscii-32)Case"A"To"Z"aa=Chr$(KeyAscii+32)Case""CaseElseaa="*"EndSelectText2.Text=Text2.Text&aaEndSub目前三十页\总数二百六十四页\编于十七点PrivateSubCommand1_Click()Text1.Text=""Text2.Text=""

EndSubPrivateSubCommand2_Click()End

EndSub目前三十一页\总数二百六十四页\编于十七点2.3.4保存和运行程序保存窗体文件保存工程程序的运行(1)编译运行模式——生成.exe

(2)解释运行模式——F5目前三十二页\总数二百六十四页\编于十七点2.4窗体和基本控件一、基本属性

1.Name名称属性创建的对象名称,有默认的名.在程序中,控件名是作为对象的标识而引用,不会显示在窗体上。

2.Caption标题属性 该属性决定了控件上显示的内容。

3.Height、width、top和left属性目前三十三页\总数二百六十四页\编于十七点4.Enabled属性控件是否可操作.当设置为false时,呈暗淡色,禁止用户进行操作.5.Visible属性控件是否可见.当设置为false时,用户看不到,但控件本身存在。6.Font属性

Fontname字体Fontsize字体大小Fontbold是否是粗体

Fontitalic是否斜体Fontstrikethru是否加一删除线

Fontunderline是否带下划线

例2.2在窗体上建立两个命令按钮

Command1和Command2,Command2

的Font通过属性窗口设置,其余属性通过代码实现。目前三十四页\总数二百六十四页\编于十七点7.Forecolor前景颜色属性设置控件的前景颜色(即正文颜色).其值是一个16进制常数,用户可以在调色板中直接选择所需颜色。8.Backcolor背景颜色属性9.Backstyle背景风格属性

0-transparent:透明显示,即控件背景颜色显示不出来10.BorderStyle边框风格属性

0-None:控件周围没有边框

1-FixedSingle:控件带有单边框。11.Alignment属性控件上正文水平对齐方式

0:正文左对齐

1:右对齐 2:居中12.AutoSize属性控件是否根据正文自动调整大小,False.目前三十五页\总数二百六十四页\编于十七点13.MousePointer属性

指示鼠标指针的类型,当为99时为用户自定义类型。

MouseIcon属性

设置鼠标的图标,当MousePointer为99时起作用。图标库在Graphics目录下,扩展名一般为.ico或.cur14.WordWarp属性为True时水平方向上下发生变化。15.TabIndex属性决定了按Tab键时,焦点在各个控件移动的顺序。各个控件默认的TabIndex值就是控件建立时的顺序,第一个为0.16.控件默认属性

反映该控件最重要的属性,使用时可省略属性名。如:Text1.text=“Welcome”与Text1=“Welcome”是等价的。

部份控件默认值:文本框的为:Text命令按钮为:Default标签为:Caption

单选/复选按钮为:Value图形/图像框为:Picture

注意:Command的Default为True,当按Enter键,该控件起作用。目前三十六页\总数二百六十四页\编于十七点

例:有关属性的综合应用。对象设置:效果:目前三十七页\总数二百六十四页\编于十七点二、窗体1.属性:P27StartUpPosition、Icon、ControlBoxMaxButton、MinButtonWhatsThisButton、WhatsThisHelpPicture、AutoRedrawBorderStyle(012345)WindowsState(0-正常、1-最小化、2-最大化)注:1、Picture属性可在属性窗口设置,也可通过Loadpicture函数用代码来实现。函数格式为:

[对象].Picture=Loadpicture(“文件路径\文件名”)

对象可以是窗体、图片框、图像框,缺省时为窗体。

VB可以识别的图形格式有:.bmp.gif.jpg.wmf.ico.cur等。

2、两者的不同在于:属性设置时设置的图片,会被保存起来并与窗体同时加载,而运行时加载的图片,不和应用程序一起保存。目前三十八页\总数二百六十四页\编于十七点2.事件:P28

Click、DblClick、Load、UnLoad

Load当装入窗体时激发,通常用于对属性和变量初始化3.方法:P28Print、Cls、Move、Show、Hide等

当在Form_Load事件中使用Print方法时,必须将该窗体的AutoRedraw设置为True,否则Print方法无效。

例上述属性、Click、DblClick和Load

事件演示。书上例子:P28目前三十九页\总数二百六十四页\编于十七点三.标签Label1、功能:用于显示文本(输出)信息,不能作为输入信息的界面。2、属性:P293、事件:click、Dblclick、Change

例2.5.显示浮雕效果的文字,实现方法:字颜色、标签位置书上例子:P29四.文本框TextBox

功能:是一个文本编辑区域,可以输入,编辑和显示正文内容。

1、属性:P30

Text:正文内容Maxlength:设置正文的最多字符个数,0任意长度值.

MultiLine:是否为多行,默认一行.FALSEScrollBars:当MultiLine为True时,该属性才有效,表示滚动条的形式

0-None、1-Horizontal、2-Vertical、3-Both。

Locked:是否可被编辑属性,False,表示为可编辑。PassWordchar:口令字符.Text属性返回输入的数据,屏幕显示该字符,SelStart,SelLength,SelText:选中文本的起始、长度、内容。

例2.6复制选中的文本目前四十页\总数二百六十四页\编于十七点2.常用事件

Change:当改变文本框的Text属性时会引发该事件.KeyPress(KeyAsciiAsInteger):同上,并可返回一个KeyAscii参数

KeyAscii为13,按回车键;为0去除刚输入的字符.LostFocus:当控件失去焦点时发生.GotFocus:当控件获得焦点时发生.3.常用方法

[对象.]SetFocus:是把光标移到指定的文本框对象中(即设置焦点)。4.文本框的应用数据过滤例2.7要求输入合法的数字数据。当输入结束时(按Tab键),对于输入正确的数据,显示正确信息;对输入的非数字数据,则响铃(Beep)、显示错误信息、清除文本框中的内容,并使焦点重新回到文本框。

Text2_LostFocus当输入结束按Tab键时,该事件激发

IsNumeric(Text2):判断是否输入非数字数据.Text2.SetFocus:使焦点重新回到文本框

书上例子:P32目前四十一页\总数二百六十四页\编于十七点五.命令按钮CommandButton

功能:接受用户输入的命令。

输入命令可以有三种方式:鼠标单击Tab键焦点到该按钮快捷键

1.属性:P33Caption:命令按钮显示的内容,可设置快捷键,例&Ok,显示

OkValue:检查该按钮是否按下.该属性在设计时无效.Picture:按钮可显示图片文件(.bmp和.Ico),当Style为1时有效Style:确定显示的形式.0只能显示文字,1文字、图形均可。ToolTipText:设置工具提示,和Picture结合使用。

2.事件

Click目前四十二页\总数二百六十四页\编于十七点3.应用:例2.8

建立一个允许剪切、复制和粘贴的简单便笺板程序。可增加内容:利用MouseMove事件决定命令按钮的有效性,即当选中内容,“剪切”、“复制”按钮有效,否则无效。目前四十三页\总数二百六十四页\编于十七点DimstAsStringPrivateSubcmdcopy_Click()st=txtnoteedit.SelTextcmdcopy.Enabled=Falsecmdcut.Enabled=Falsecmdpaste.Enabled=TrueEndSubPrivateSubmdcut_Click()st=txtnoteedit.SelTexttxtnoteedit.SelText=""cmdcopy.Enabled=Falsecmdcut.Enabled=Falsecmdpaste.Enabled=TrueEndSubPrivateSubcmdexit_Click()EndEndSubPrivateSubcmdpaste_Click()txtnoteedit.SelText=stEndSubPrivateSubForm_Load()cmdcopy.Enabled=Falsecmdcut.Enabled=Falsecmdpaste.Enabled=FalseEndSub目前四十四页\总数二百六十四页\编于十七点Subtxtnoteedit_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)Iftxtnoteedit.SelText<>""Thencmdcopy.Enabled=Truecmdcut.Enabled=Truecmdpaste.Enabled=FalseElsecmdcopy.Enabled=Falsecmdcut.Enabled=Falsecmdpaste.Enabled=TrueEndIfEndSub目前四十五页\总数二百六十四页\编于十七点六、常用方法Vb中使用方法的语法结构是相同的[对象.]方法[参数列表]1.print方法形式:[对象.]print[{spc(n)|tab(n)}][表达式列表]作用:在对象上输出信息。对象:可以是窗体(form)、图形框(picturebox)、打印机。若省略,则在窗体上输出。目前四十六页\总数二百六十四页\编于十七点表达式列表开始位置是由对象的currentx和currenty属性决定的,缺省为打印对象的左上角0,0。例2-9:print方法输出图形。PrivateSubForm_Click()Form1.CurrentX=200Form1.CurrentY=550Fori=1To5PrintTab(i+5);String(6-i,"▼");_Spc(6);String(i,"▲")NextiEndSub目前四十七页\总数二百六十四页\编于十七点2、cls方法形式:[对象.]cls(如:picture.cls)作用:用于清除运行时在窗体或图形框中显示的文本或图形。注意:(1)cls方法只清除运行时在窗体或图形框中显示的文本或图形,不清除窗体在设计时的文本或图形。(2)cls方法使用后,currentx和currenty属性被设置为0。目前四十八页\总数二百六十四页\编于十七点3、move方法形式:[对象.]move左边距离[,上边距离[,宽度[,高度]]]作用:用于移动窗体或控件,并可改变其大小。对象:可以是窗体及除时钟、菜单外的所有控件,省略对象为窗体。如果对象是窗体,则“左边距离”和“上边距离”以屏幕左边界和上边界为准,否则以窗体的左边界和上边界为准,宽度和高度表示可改变其大小。目前四十九页\总数二百六十四页\编于十七点例2-10

PrivateSubForm_Load()Image1.Top=0Image1.Left=0Image1.Picture=LoadPicture(App.Path+"\1.gif")EndSubPrivateSubImage1_Click()Image1.Move(Form1.Left+Form1.Width)\2-Form1.Left,(Form1.Top+Form1.Height)\2-Form1.Top,Image1.Width\2,Image1.Height\2EndSub目前五十页\总数二百六十四页\编于十七点七、应用举例例2-11:根据房产商提供的信息,购房者选择房型、面积、单价、按揭期等信息,编写计算每月支付贷款的程序。程序由两个窗体构成,第一个窗体输入或选择买房的数据,该窗体由列表框选择数据、标签显示数据、文本框输入数据;第二个窗体显示房屋的平面图,该窗体仅有一个图形控件。目前五十一页\总数二百六十四页\编于十七点2.5工程的管理一、工程的组成

工程文件包含了一个应用程序的所有文件:工程文件(.vbp):工程组文件(.vbg):窗体文件(.frm):控件及属性、事件过程和自定义过程 窗体的二进制数据文件(.frx),自动产生同名.frx文件。标准模块文件(.bas)类模块文件(.cls) 资源文件(.res) ActiveX控件的文件(.ocx)二、创建、打开和保存工程:“文件”菜单目前五十二页\总数二百六十四页\编于十七点三.添加、删除和保存文件:可利用“文件”和“工程”菜单

1、窗体名和窗体文件名概念

窗体名:窗体的Name属性,在代码中用来引用该窗体,同一工程不能有相同的窗体名;

窗体文件名:窗体存放在磁盘上的文件名,该文件包含了该窗体的所有控件属性和代码,同一文件夹不能有相同的文件名。

2、在工程中添加现存的窗体时,只是对该窗体文件的引用纳入工程。因此,如果更改窗体并保存它,会影响包含此窗体文件的任何工程。

3、在工程中删除窗体时,仅将此窗体从工程里删除掉,但是窗体文件仍存在于磁盘上。但是,如果在VB之外删除一个窗体文件,VB不能更新此工程文件,当打开此工程时,将显示一个文件丢失的错误信息。

窗体文件名窗体名目前五十三页\总数二百六十四页\编于十七点四、环境设置“工具”——”选项”1.”编辑器”选项卡2、“通用”选项卡4、对窗体文件改名方法:在“工程资源管理器”中--右击窗体文件--“Form另存为…”

5、保存窗体文件:若只想保存窗体文件而不保存工程文件,可直接在“工程资源管理器”中选定,然后执行“文件”菜单中的相应选项。目前五十四页\总数二百六十四页\编于十七点2.6制作成安装盘2.6.1使用打包和展开向导打包:把工程中用到的各种类型的文件(包括工程自身的文件、必要的系统文件和安装主文件)进行打包压缩后,存放到特定的目录下。展开:把打包的文件展开到用户可以携带的用来安装的软盘、光盘等介质。管理脚本:记录打包或展开过程中的设置,便于以后做同样的操作。系统的压缩文件以.cab扩展名保存。2.6.2检测安装程序目前五十五页\总数二百六十四页\编于十七点

第三章VB语言基础

3.1编码基础

3.2数据类型

3.3常量与变量

3.4运算符和表达式

3.5基本语句

3.6数组

3.7过程

3.8常用算法举例

3.9程序调试

目前五十六页\总数二百六十四页\编于十七点3.1

编码基础一、书写要求:1.VB代码不区分字母的大小写

系统关键字自动转换每个单词的首字母大写;用户自定义行以第一次为准2.语句书写自由

一行可书写几个语句,之间用冒号分隔;一行最多255个字符;一条语句可分若干行书写,用续行符

(空格+下划线)连接3.注释有利于程序的维护和调试

Rem

或单撇号“‘”以及“编辑”工具栏的“设置注释块”;

VB中注释语句会自动变为绿色4.保留行号与标号5.其他注意事项:保留字与变量之间至少有一空格;字母“l”与数字“1”、字母“o”与数字“0”的使用。目前五十七页\总数二百六十四页\编于十七点3.2

数据类型

一、标准数据类型:

目前五十八页\总数二百六十四页\编于十七点1、数值数据类型:

IntegerLongSingleDoubleCurrencyByte(1)Integer和Long型用于保存整数(2)Single和Double型用于保存浮点实数(3)Currency型是定点实数或整数(4)Byte字节型用于存储二进制数目前五十九页\总数二百六十四页\编于十七点2、日期(Date)数据类型

按8字节浮点数来存储。日期范围:公元100年1月1日~9999年12月31日时间范围:0:00:00~23:59:59

表示方法:一般日期形式前后加#来表示另一种是以数字序列表示日期和时间(1)一般日期表示法:使用成对#将任何可被认作日期和时间的字符括起来。公元年份默认19年,因而填入1995年与填入95年效果一样,但年的部分输入0~29间的数字,则VB自动转换为20年。例如:#5/25/24#与#5/25/2024#等价。而#5/25/95#,#May25,95#,#May-25-95#,

#25May1995#,#1995May25#等均为合法日期格式。目前六十页\总数二百六十四页\编于十七点(2)数字序列表示法数字序列是双精度的浮点数,由VB自动解释。序号的整数部分表示日期,小数部分表示时间。在VB中,基准日期为公元1899年12月30日,这一天的整数部分为0,比基准早的日期序号为负数,比其晚的日期序号为正数,其取值范围为657434(公元100年1月1日)到2958465(公元9999年12月31日)。小数部分:以某个时间点占一天24小时的比例表示。如:6:00AM会以0.25来表示。-2.5表示1899-12-2812:00:005.75表示1900-1-418:00:00366.05表示1900-12-311:12:00367.05表示1901-1-11:12:00-367.05表示1898-12-281:12:00目前六十一页\总数二百六十四页\编于十七点3、逻辑(布尔型)数据型:Boolean

当逻辑型转换成整型数据时:true–(-1)false—(0)

当其他类型数据转换成逻辑数据时:非0数转换为true,0转换为false4、字符串型:String“”

5、对象数据类型:Object

作为32位(4个字节)地址来存储目前六十二页\总数二百六十四页\编于十七点6、变体类型:Variant

是所有未定义的变量的缺省数据类型,它可以包括标准数据类型,还包含四个特殊的数据:

empty(空)表示未指定确定的数据

null(无效)表示数据不合法

Error(出错)指出过程中出现了一个错误条件

Nothing(无指向)表示数据还没有指向一个具体对象Vartype:检测变体型变量中保存的数值类型如:dimtVartype(t)

或Vartype(667)目前六十三页\总数二百六十四页\编于十七点二、自定义类型让用户自己定义的数据类型,由若干个标准数据类型组成。是一组不同类型变量的集合。相当于C语言中的结构类型;Pascal中的记录类型。1.自定义类型的定义

形式如下:

Type

自定义类型名 元素名[(下标)]As类型名

… [元素名[(下标)]As类型名]

EndType其中:元素名:表示自定义类型中的一个成员下标:表示数组类型名:为标准类型目前六十四页\总数二百六十四页\编于十七点例如,以下定义了一个有关学生信息的自定义类型:

TypeStudType NoAsInteger '学号

NameAsString*20 '姓名

SexAsString*1 '性别

Mark(1To4)AsSingle '4门课程成绩

TotalAsSingle '总分

EndType注意:

(1)自定义类型一般在标准模块(.BAS)中定义,默认是Public;在窗体必须是Private。

(2)自定义类型中的元素类型可以是字符串,但应是定长字符串。

(3)不要将自定义类型名和该类型的变量名混淆,前者表示了如同Integer、Single等的类型名,后者VB根据变量的类型分配所需的内存空间,存贮数据。

(4)自定义类型一般和数组结合使用,简化程序的编写。目前六十五页\总数二百六十四页\编于十七点2.自定义类型变量的声明和使用(1)声明形式:

Dim变量名As自定义类型名例DimStudentAsStudType(2)引用:形式:变量名.元素名例表示Student变量中的姓名,第4门课程的成绩,则表示如下:

Student.Name,Student.Mark(4)(3)赋值:

如:Student.Name=“王刚”Student.Mark(4)=98目前六十六页\总数二百六十四页\编于十七点3.3常量与变量一.常量和变量的命名规则常量:在程序运行中其值不可以改变。变量:在程序运行中其存储的值可以改变。

命名规则:1.以字母或汉字开头,后可跟汉字、字母、数字或下划线组合,长度小于等于255个字符;2.不能使用VB中的关键字;3.VB中不区分变量名的大小写.4.为了增加程序的可读性,可在变量名前加一个缩写的前缀来表明该变量的数据类型。如:strMystring、intCount目前六十七页\总数二百六十四页\编于十七点VB6.0的关键字有:

AsBinaryByRefByValDateElseEmptyErrorFalseForFriendGetInputIsLenLetLockMeMidNewNextNothingNullOnOptionOptionalParamArrayPrintPrivatePropertyPublicResumeSeekSetStaticStepStringThenTimeToTrueWithEvents目前六十八页\总数二百六十四页\编于十七点二.常量

(一)直接常量有数值常量(整数、长整数、定点数和浮点数)、字符串常量、布尔常量、日期常量(二)符号常量1.系统提供的常量系统定义常量位于对象库中,可通过“对象浏览器”查看.

例:vbNormal、vbMinimized、vbMaximized、vbblue等

form1.windowsstate=vbmaximized‘将窗口极大化

form1.windowsstate=2‘与上面的语句等价的目前六十九页\总数二百六十四页\编于十七点2.用户声明常量

形式:

Const常量名[AS类型]=表达式省略[AS类型],常量的类型由表达式值的类型决定,也可在常量后加类型符。

表达式:可以是数值常数、字符串常数以及由运算符组成的表达式。对于数值常数除了可用十进制表示外,还可以使用十六进制数(数值前加&H)和八进制数(数值前加&O)。

为使与变量名区分,一般常量名使用大写字母例ConstMAX=100ConstPI=3.14159ConstPI#=3.14159ConstMAXasinteger=&O144目前七十页\总数二百六十四页\编于十七点三.变量1.用Dim语句显式声明变量

形式:Dim变量名[AS类型]Dim变量名类型符例DimiCountAsinteger,sAllsumAssingle

等价于DimiCount%,sAllsum!

对于字符串变量,根据其长度是否固定,有两种方法:

Dim字符串变量名AsStringDim字符串变量名AsString*字符数2.隐式声明

未进行上述的声明而直接使用,其类型为Variant类型。建议不使用。注意:

在通用声明处加OptionExplicit

语句可强制显式声明变量。目前七十一页\总数二百六十四页\编于十七点3.4运算符和表达式一.运算符

1.算术运算符例:5+10mod10\9/3+2^2结果:10取ia=3目前七十二页\总数二百六十四页\编于十七点2.字符串运算符:

&、+

“&”和

+”,都是将两个字符串拼接起来。

"123"+"456"结果"123456""123"&"456"结果"123456"

区别:若+的两旁的操作数均为数值型则进行算术加;若一个为数字字符型,另一个为数值型,则自动将数字字符转换为数值,然后进行算术加;若一个为非数字字符型,另一个为数值型,则出错。&则不管什么类型,强制转换为字符型进行拼接。

例如:"abcdef"&12345'结果为"abcdef12345"

"abcdef"+12345'出错

"123"&456'结果为"123456"

"123"+456'结果为579

12000+“123”&100‘结果为“12123100”

Val(left$(“12345678”,4)+mid$(“12345678”,4,2))‘结果为123445注意:(1)"123"+True'结果为122True转换为数值-1,False转换为数值0(2)使用“&”时,最好在两侧的操作数间加入一个空格。因为Long类型变量的类型符以及八进制、十六进制数值表示法的起始字符也为“&”。目前七十三页\总数二百六十四页\编于十七点3.关系运算符

将两个操作数进行大小比较,结果为逻辑量。

(1)关系运算符的优先级相同;(2)“Like”运算符与通配符:“?”、“*”、“#”、“[字符列表]”、“[!字符列表]”结合使用,常用于模糊查询。其中“?”表示任何单一字符,“*”表示零个或多个字符,“#”表示任何一个数字(0~9),[字符列表]表示字符列表中的任何单一字符,[!字符列表]表示不在字符列表中的任何单一字符。例如,找姓名变量中姓张的学生,则表达式为:姓名Like“张*”,又如找没有张字的学生,表达式为:姓名Like“[!张]”目前七十四页\总数二百六十四页\编于十七点4.逻辑运算符说明:1、Not:进行取反运算;

2、And:操作数均为真时,结果才为真;

3、Or:操作数中有一个为真时,结果为真;

4、Xor:操作数相反时,结果才为真;

5、Eqv:操作数相同时,结果才为真;

6、Imp:第1个操作数为真,第2个为假时,结果才为假,其余结果均为真。

7、优先级:Not>And>OR>Xor>Eqv>Imp目前七十五页\总数二百六十四页\编于十七点如果逻辑运算符对数值进行运算,则以数字的二进制值逐位进行逻辑运算。(1)And运算符常用于屏蔽某些位。(2)Or运算符常用于把某些位置1。(3)连续两次进行Xor运算,可恢复原值。例:10and710or7目前七十六页\总数二百六十四页\编于十七点二.表达式

1.表达式组成

变量、常量、函数、运算符和圆括号

2.书写规则

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

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

(4)表达式从左到右在同一基准上书写,无高低、大小。

3.不同数据类型的转换运算结果的数据类型向精度高的数据类型靠.Integer<Long<Single<Double<Currency4.优先级算术运算符>字符运算符>关系运算符>逻辑运算目前七十七页\总数二百六十四页\编于十七点表达式书写举例sin(45*3.14/180)+(exp(10)+log(10))/sqr(x+y+1)a*b*c*d/e/f/g或a*b*c*d/(e*f*g)目前七十八页\总数二百六十四页\编于十七点例:用人单位招聘秘书:年龄小于40岁的女性,学历专科或本科年龄<40性别=“女”(学历=“专科”学历=“本科”)

And

And

Or比a小,比b大用Ora小数b大数a小数b大数

比a大,比b小用And例:表示算术表达式:正确的VB表达式:3<=xAndx<=7

错误的VB表达式:3<=x<=7或

3<=xOrx<=7考虑:若分别写成:年龄<40And性别=“女”And(学历=“专科”And学历=“本科”)

年龄<40Or性别=“女”Or(学历=“专科”Or学历=“本科”)目前七十九页\总数二百六十四页\编于十七点1.数学函数:Rnd函数返回0和1(包括0但不包括1)之间的双精度随机数.

例:产生1~100的随机整数:Int(Rnd*100)+1

产生100~3000的随机整数:Int(Rnd*2901)+100

随机产生“A”~“Z”的字符:Chr(Int(Rnd*26+65))

注意:

(1)产生一定范围内的随机整数通常表示为:

Int(Rnd*范围)+基数或Int(Rnd*范围+基数)(2)每次运行时,要产生不同序列的随机数,执行Randomize语句。

Randomize[number]

注:函数名后有$符号,表示函数返回值为字符串。三、常用内部函数目前八十页\总数二百六十四页\编于十七点2.转换函数

Chr(66)"B" Asc("B")66Asc(Chr(99))99Chr(Asc("K"))"K"Ucase$("abcdefg")"ABCDEFG“3.日期函数:Date返回系统日期

Time返回系统时间

Now返回系统日期和时间Year返回年份(1)DateAdd增减日期函数(2)DateDiff间隔日期函数三、常用内部函数目前八十一页\总数二百六十四页\编于十七点4.字符串编码及操作函数

(1)字符串编码

Windows系统对字符采用了DBCS编码,中文2字节,西文1字节

VB中字符Unicode编码,任何字符2字节.Len(“中国good”)为6LenB(“中国good”)为12StrConv()进行DBCS与Unicode之间转换.(2)字符串函数

Mid$("ABCDEFG",2,3)"BCD"InStr(2,“EFABCDEFG","EF") 7

注:函数的自变量中有M,表示M=0区分大小写,M=1不区分,省略M区分大小写。目前八十二页\总数二百六十四页\编于十七点5.格式输出函数Format()

功能:Format()可以使数值、日期或字符串按指定的格式输出。格式:Format(表达式[,格式字符串])

其中,表达式:为要格式化的数值、日期和字符串类型表达式。格式字符串:表示按其指定的格式输出表达式的值。格式字符串有三类:

(1)数值格式化:将数值表达式的值按“格式字符串”指定的格式输出。(2)日期和时间格式化(3)字符串格式化格式字符串要加双引号目前八十三页\总数二百六十四页\编于十七点目前八十四页\总数二百六十四页\编于十七点6.Shell函数

功能:Shell函数负责执行一个可执行文件(扩展名为.exe、.com、.bat),返回一个Variant,如果成功,代表这个程序的进程ID,若不成功,则会返回0。

形式:Shell(命令字符串[,窗口类型])

缺省窗口类型最小化为图标。

目前八十五页\总数二百六十四页\编于十七点X=shell(“c:\windows\pbrush.exe”,1)Y=shell(“c:\windows\write.exe”,1)Z=shell(“C:\ProgramFiles\MicrosoftOffice\Office\winword.exe”,1)提示:如果不知道应用程序的路径名,可用Start命令启动程序

i=Shell(start&"calc.exe");i=Shell(start&“vb6.exe“)举例:i=Shell("c:\windows\calc.exe",1)

j=Shell("c:\",1)目前八十六页\总数二百六十四页\编于十七点3.5基本语句3.5.1赋值语句

形式:[LET]变量名=表达式

作用:将表达式的值赋值给变量名.

一般用于给变量赋值或对控件设定属性值.

例:sRate!=0.1Text1.Text="欢迎使用VisualBasic6.0”注意:

1、当表达式的类型与变量的类型不一致时,强制转换成左边的精度。如:iA%=10/3iA中的结果为3

2、虽然赋值号与关系运算符等于号都用“=”表示,VB系统会根据所处的位置自动判断是何种意义的符号。

3、赋值号左边只能是变量,不能是常量或表达式。

4、不能在一句赋值语句中,同时给多个变量赋值。

目前八十七页\总数二百六十四页\编于十七点3.5.2人机交互函数和过程

VB与用户之间的直接交互是通过InputBox()函数、MsgBox()函数和MsgBox过程进行的。

1.InputBox函数

InputBox(提示[,标题][,缺省][,x坐标位置][,y坐标位置])

其中:提示提示信息,标题对话框标题,缺省输入区缺省值函数返回字符类型.

例要在屏幕上显示图示的对话框:目前八十八页\总数二百六十四页\编于十七点相应的语句如下:DimstrNameAsString*40strName=InputBox(“请输入你的姓名”+vbCrLf+“然后单击确定”,“输入框”)也可以使用如下语句:DimstrNameAsString*40,strS1AsString*40strS1=“请输入你的姓名”+Chr(13)+Chr(10)+“然后单击确定”strName=InputBox(strS1,“输入框”,,100,100)当键盘输入“王晓明”后,变量strName获得键盘输入的值.目前八十九页\总数二百六十四页\编于十七点2.MsgBox函数和MsgBox过程

函数形式:变量[%]=MsgBox(提示[,按钮][,标题])

过程形式:MsgBox提示[,按钮][,标题]

按钮值如下:函数返回所选按钮整数值:目前九十页\总数二百六十四页\编于十七点例3.2编一帐号和密码检验程序。要求:

帐号不超过6位数字,有错,清除原内容再输入.

密码输入时在屏幕上以“*”代替;若密码错,显示有关信息,选择“重试”按钮,清除原内容再输入,选择“取消”按钮,停止运行。分析:

帐号6位,MaxLength为6,LostFocus判断数字IsNumeric函数密码PassWordChar为“*”,MsgBox函数设置密码错对话框.目前九十一页\总数二百六十四页\编于十七点3.5.3选择结构

1.If…Then语句(单分支结构)

If<表达式>Then

语句块

EndIf

If<表达式>Then<语句>

例:已知两个数x和y,比较它们的大小,使得x大于y.

Ifx<yThent=xx=yy=tEndIf

或Ifx<yThent=x:x=y:y=t目前九十二页\总数二百六十四页\编于十七点2.If…Then…Else语句(双分支结构)(1)If<表达式>Then

<语句块1>

Else<语句块2>EndIf

(2)If<表达式>Then<语句1>Else<语句2>

计算分段函数单分支结构实现:[ifx=0then]y=cos(x)-x^3+3*xIfx<>0Theny=sin(x)+sqr(x*x+1)

双分支结构实现:

Ifx<>0Theny=sin(x)+sqr(x*x+1)Elsey=cos(x)-x^3+3*xEndIf目前九十三页\总数二百六十四页\编于十七点3.If…Then…ElseIf语句(多分支结构)

形式:

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

语句块n+1]EndIf目前九十四页\总数二百六十四页\编于十七点例

已知变量strC中存放了一个字符,判断该字符是字母字符、数字字符还是其他字符。用多分支结构实现:

IfUcase(strC)>="A"AndUcase(strC)<="Z"Then

PrintstrC+"是字母字符"ElseIfstrC>="0"AndstrC<="9"Then PrintstrC+"是数字字符"Else PrintstrC+"其他字符"EndIf不管有几个分支,依次判断,当某条件满足,执行相应的语句,其余分支不再执行;若条件都不满足,且有Else子句,则执行该语句块,否则什么也不执行。.

ElseIf不能写成

ElseIf。目前九十五页\总数二百六十四页\编于十七点例已知百分制成绩mark,显示对应的五级制成绩哪些正确,哪些错误?正确:方法一、二错误:方法三目前九十六页\总数二百六十四页\编于十七点4.If语句的嵌套

If语句的嵌套是指If或Else后面的语句块中又包含If语句。形式如下:

If<表达式1>Then

If<表达式11>Then…EndIf…EndIf

例已知x,y,z三个数,使得x>y>z用一个IF语句和一个嵌套的IF语句实现Ifx<yThent=x:x=y:y=t

Ify<zThent=y:y=z:z=t

Ifx<yThent=x:x=y:y=tEndIf

EndIfIf语句的嵌套注意事项:书写锯齿型;EndIf与它前面最近的if配对。目前九十七页\总数二百六十四页\编于十七点<表达式列表>:与<变量或表达式>的类型必须相同,可以是下面四种形式之一:表达式例:"A"

一组枚举表达式(用逗号分隔)2,4,6,8

表达式1To表达式2 60To100

Is关系运算符表达式 Is<605.SelectCase语句(情况语句)形式:

SelectCase变量或表达式

Case表达式列表1

语句块1 Case表达式列表2

语句块2 … [CaseElse

语句块n+1] EndSelect变量:只能含有一个表达式:数值型或字符串目前九十八页\总数二百六十四页\编于十七点注意:关键字Is定义条件时,只能是简单的条件,不能用逻辑运算符将两个或多个简单的条件组合在一起。例如“CaseIs>20andIs<40”是不合法的。而“CaseIs<2,12,13,15,Is>20”是正确的。目前九十九页\总数二百六十四页\编于十七点例变量strC中存放了一个字符,判断该字符类型。用多分支结构实现:

IfUcase(strC)>="A"AndUcase(strC)<="Z"Then PrintstrC+"是字母字符"ElseIfstrC>="0"AndstrC<="9"Then PrintstrC+"是数字字符"Else PrintstrC+"其他字符"EndIf用SelectCase语句实现:

SelectCasestrC Case"a"To"z","A"To"Z" PrintstrC+"是字母字符" Case"0"To"9" PrintstrC+"是数字字符" CaseElse PrintstrC+"其他字符"EndSelect目前一百页\总数二百六十四页\编于十七点例:已知坐标点(x,y),判断其落在哪个象限。

哪个能实现,哪个不能实现?方法一

Ifx>0Andy>0ThenPrint"在第一象限" ElseIfx<0Andy>0ThenPrint"在第二象限" ElseIfx<0Andy<0Then

温馨提示

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

评论

0/150

提交评论