VB基础教程入门全篇精讲_第1页
VB基础教程入门全篇精讲_第2页
VB基础教程入门全篇精讲_第3页
VB基础教程入门全篇精讲_第4页
VB基础教程入门全篇精讲_第5页
已阅读5页,还剩261页未读 继续免费阅读

下载本文档

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

文档简介

VisualBasic程序设计(6.0版)皖南医学院计算机教研室毕迎春1课程要求期末考核要求:理论考试期末评分比例:平常成果30%+期末成果70%

2第一章VisualBasic程序设计概述

1.1概述

1.2运行环境、安装和启动

1.3VB集成开发环境31.1概述一、VB简介:VisualBasic是基于Basic的可视化的程序设计语言。VisualBasic6.0中文版是Microsoft公司最新推出的可视化开发工具,是一种基于Windows操作系统的新型的现代程序设计语言,是一种易于学习、功能强、效率高的编程工具。任何具有初步程序设计基础的人,都能在很短的时间内驾驭好VB,并有效地编写出各种Windows程序。VB6.0包括三个版本:学习版、专业版、企业版4二、VB主要功能特点:1.具有面对对象的可视化设计工具2.事务驱动的编程机制3.供应了易学易用的应用程序集成开发环境4.结构化的程序设计语言5.支持多种数据库系统的访问6.OLE技术。VB核心就是其对对象的链接与嵌入(OLE)的支持。7.Active技术8.完备的help联机帮助功能三、VB6.0新功能特点51.2运行环境、安装和启动一、运行环境:二、安装:安装文件:setup.exe三、启动:方法:1、双击桌面VB快捷方式。2、“起先”|程序|MicrosoftVisualStudio6.0|MicrosoftVisualBasic6.03、“起先”|运行|C:\programfiles\MicrosoftVisualStudio\VB98\VB6.exe6进入VB6.0窗口71.3VB集成开发环境81.主窗口应用程序窗口,由标题栏、菜单栏和工具栏组成VB的三种工作模式(标题栏总显示当前模式)(1)设计模式:创建应用程序的大多数工作都是在设计时完成的。在设计时,可以设计窗体、绘制控件、编写代码并运用“属性”窗口来设置或查看属性设置值。(2)运行模式:代码正在运行的时期,用户可与应用程序沟通。可查看代码,但不能改动它。(3)中断模式:程序在运行的中途被停止执行时。在中断模式下,用户可查看各变量及不是属性的当前值,从而了解程序执行是否正常。还可以修改程序代码,检查、调试、重置、单步执行或接着执行程序。92.窗体(Form)设计窗口窗体设计窗口是屏幕中心的主窗口,它可以作为自定义窗口用来设计应用程序的界面。用户可以在窗体中添加控件、图形和图片来创建所希望的外观。每个窗口必需有一个的窗体名字,建立窗体时缺省名为Form1,Form2,...。窗体网格点间距的设置:设计模式-”工具”–”选项”应留意窗体名(代码中运用的标识对象名称)和窗体文件名的区分10窗体设计窗口窗体名窗体文件名113.代码(code)窗口在设计模式中,通过双击窗体或窗体上任何对象或通过“工程资源管理器”窗口中的“查看代码”按钮来打开代码编辑器窗口。代码编辑器是输入应用程序代码的编辑器。

代码窗口主要包括:a.对象列表框b.过程列表框c.代码框d.过程查看按钮

e.全模块查看按钮12134.属性(properties)窗口

属性是指对象的特征,如大小、标题或颜色等数据。在VisualBasic6.0设计模式中,属性窗口列出了当前选定窗体或控件的属性的值,用户可以对这些属性值进行设置。14

工程是指用于创建一个应用程序的文件的集合。工程资源管理器列出了当前工程中的窗体和模块5.工程资源管理器(projectexplorer)窗口15工程文件的扩展名为.VBP工程资源管理器下面的列表窗口,以层次列表形式组成这个工程的全部文件。主要包括三种类型的文件:窗体文件(.FRM)存储窗体上运用的全部控件对象和有关的属性、对象相应的事务过程、程序代码。标准模块文件(.BAS)全部模块级变量和用户自定义的通用过程(可以被应用程序各处调用的过程)类模块文件(.CLS)包含用户对象的属性及方法。16工具箱供应一组工具,用于设计时在窗体中放置控件生成应用程序的用户接口。系统启动后缺省的General工具箱就会出现在屏幕左边,上面有常用“部件”6.工具箱(ToolBox)窗口17定制工具箱添加选项卡:对添加的选项卡加控件的方法:

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

18窗体布局窗口显示在屏幕右下角。用户可运用表示屏幕的小图像来布置应用程序中各窗体的位置。这个窗口在多窗体应用程序中很有用,因为这可以指定每个窗体相对于主窗体的位置。7.窗体布局窗口19立刻窗口:中断模式中调试应用程序。对象阅读窗口:可查看工程定义的模块或过程,也可查看对象库、类型库、类、方法、属性及可在过程中运用的常数。20其次章简洁的VB程序设计 2.1程序设计方法的发展 2.2对象的概念 2.3建立简洁的应用程序 2.4窗体和基本控件 2.5工程的管理及环境设置2.6制作成安装盘2.7运用帮助系统

212.1程序设计方法的发展1.初期的程序设计高运行效率、少占用内存为目标2.结构化程序设计 程序的可读性、可维护性为目标程序=算法+数据结构的面对过程的程序设计3.面对对象的程序设计(OOP)降低程序的困难性、提高软件的开法效率和改善工作界面为目标程序=对象+消息的面对对象的程序设计22结构化的分解突出过程(Howtodo?)面对对象的分解突出真实世界和抽象的对象(Whattodo?)目前常用的面对对象语言有:VisualBasic、VisualC++、VisualFoxPro等优点a.符合人们的思维方法b.易于软件的维护和功能的增减c.能用继承的方式减短程序开发时间d.与可视化技术结合,改善了工作界面232.2对象的概念一、对象和类1、类:是创建对象实例的模板,是同种对象的集合与抽象,包含了创建对象的属性描述和行为特征的定义.2、对象:是类的一个实例,继承了类的属性、方法。Vb中常用的对象有:窗体、控件等。3、控件:以图标的形式放在工具箱中。VB中的控件分为三类:内部控件(标准控件):如工具箱上的控件,20个ActiveX控件:“工程/部件”叮嘱加载可插入对象:Windows应用程序的对象,如Excel工作表。二、对象的建立和编辑:1、对象的建立:两种方法2、对象的选定:单选、多选3、复制或删除对象4、对象的命名24三、对象的三要素:属性、事务和方法(1)属性对象的性质,即用来描述和反映对象特征的参数。(2)事务对象的响应称为事务,它发生在用户与应用程序交互时。如单击控件、鼠标移动、键盘按下等。事务过程指附在该对象上的用户编写的程序代码,是事务的处理程序。事务驱动过程是图形用户界面的本质,由用户限制而代码作出响应。25VB程序执行步骤:启动应用程序,装载和显示窗体窗体(或窗体上的控件)等待事务的发生事务发生时,执行对应的事务过程重复执行(2)和(3),直到遇到“END”结束语句结束程序的运行或单击“结束”按钮强制停止程序的运行26(3)方法

对象的动作,即将一些通用的过程编写好并封装起来,作为方法供用户干脆调用。对象方法的调用格式:[对象.]方法[参数名表]例如:在窗体上显示一行文字。Form1.Print”欢迎运用VisualBasic6.0”272.3建立简洁的应用程序设计一个VB应用程序的通用步骤:1.设计用户界面的对象2.设置对象的属性3.编写对象事务代码4.保存文件5.程序运行和调试(说明执行:或“运行|启动”或按F5)6.建立可执行文件。(编译运行:“文件”|“生成…exe”)28例2.1编写一个对输入字符进行转换的程序转换规则为:将其中的大写字母转换成小写字母,小写字母转换成大写字母,空格不转换,其余转换成“*”。要求每输入一个字符,马上就进行推断和转换。29PrivateSubText1_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&aaEndSub30PrivateSubCommand1_Click()Text1.Text=""Text2.Text=""

EndSubPrivateSubCommand2_Click()End

EndSub312.3.4保存和运行程序保存窗体文件保存工程程序的运行(1)编译运行模式——生成.exe(2)说明运行模式——F5322.4窗体和基本控件一、基本属性1.Name名称属性创建的对象名称,有默认的名.在程序中,控件名是作为对象的标识而引用,不会显示在窗体上。2.Caption标题属性 该属性确定了控件上显示的内容。3.Height、width、top和left属性334.Enabled属性控件是否可操作.当设置为false时,呈暗淡色,禁止用户进行操作.5.Visible属性控件是否可见.当设置为false时,用户看不到,但控件本身存在。6.Font属性Fontname字体Fontsize字体大小Fontbold是否是粗体 Fontitalic是否斜体Fontstrikethru是否加一删除线Fontunderline是否带下划线

例2.2在窗体上建立两个叮嘱按钮Command1和Command2,Command2的Font通过属性窗口设置,其余属性通过代码实现。347.Forecolor前景颜色属性设置控件的前景颜色(即正文颜色).其值是一个16进制常数,用户可以在调色板中干脆选择所需颜色。8.Backcolor背景颜色属性9.Backstyle背景风格属性0-transparent:透亮显示,即控件背景颜色显示不出来10.BorderStyle边框风格属性0-None:控件四周没有边框1-FixedSingle:控件带有单边框。11.Alignment属性控件上正文水平对齐方式0:正文左对齐1:右对齐 2:居中12.AutoSize属性控件是否依据正文自动调整大小,False.3513.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键,该控件起作用。36例:有关属性的综合应用。对象设置:效果:37二、窗体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、两者的不同在于:属性设置时设置的图片,会被保存起来并与窗体同时加载,而运行时加载的图片,不和应用程序一起保存。382.事务:P28Click、DblClick、Load、UnLoad等Load当装入窗体时激发,通常用于对属性和变量初始化3.方法:P28Print、Cls、Move、Show、Hide等当在Form_Load事务中运用Print方法时,必需将该窗体的AutoRedraw设置为True,否则Print方法无效。

例上述属性、Click、DblClick和Load事务演示。书上例子:P2839三.标签Label1、功能:用于显示文本(输出)信息,不能作为输入信息的界面。2、属性:P293、事务:click、Dblclick、Change例2.5.显示浮雕效果的文字,实现方法:字颜色、标签位置书上例子:P29四.文本框TextBox功能:是一个文本编辑区域,可以输入,编辑和显示正文内容。1、属性:P30Text:正文内容Maxlength:设置正文的最多字符个数,0随意长度值.MultiLine:是否为多行,默认一行.FALSEScrollBars:当MultiLine为True时,该属性才有效,表示滚动条的形式0-None、1-Horizontal、2-Vertical、3-Both。Locked:是否可被编辑属性,False,表示为可编辑。PassWordchar:口令字符.Text属性返回输入的数据,屏幕显示该字符,SelStart,SelLength,SelText:选中文本的起始、长度、内容。例2.6复制选中的文本402.常用事务Change:当变更文本框的Text属性时会引发该事务.KeyPress(KeyAsciiAsInteger):同上,并可返回一个KeyAscii参数KeyAscii为13,按回车键;为0去除刚输入的字符.LostFocus:当控件失去焦点时发生.GotFocus:当控件获得焦点时发生.3.常用方法[对象.]SetFocus:是把光标移到指定的文本框对象中(即设置焦点)。4.文本框的应用数据过滤例2.7要求输入合法的数字数据。当输入结束时(按Tab键),对于输入正确的数据,显示正确信息;对输入的非数字数据,则响铃(Beep)、显示错误信息、清除文本框中的内容,并使焦点重新回到文本框。Text2_LostFocus当输入结束按Tab键时,该事务激发IsNumeric(Text2):推断是否输入非数字数据.Text2.SetFocus:使焦点重新回到文本框书上例子:P3241五.叮嘱按钮CommandButton功能:接受用户输入的叮嘱。输入叮嘱可以有三种方式:鼠标单击Tab键焦点到该按钮快捷键1.属性:P33Caption:叮嘱按钮显示的内容,可设置快捷键,例&Ok,显示OkValue:检查该按钮是否按下.该属性在设计时无效.Picture:按钮可显示图片文件(.bmp和.Ico),当Style为1时有效Style:确定显示的形式.0只能显示文字,1文字、图形均可。ToolTipText:设置工具提示,和Picture结合运用。2.事务Click423.应用:例2.8建立一个允许剪切、复制和粘贴的简洁便笺板程序。可增加内容:利用MouseMove事务确定叮嘱按钮的有效性,即当选中内容,“剪切”、“复制”按钮有效,否则无效。43DimstAsStringPrivateSubcmdcopy_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=FalseEndSub44Subtxtnoteedit_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)Iftxtnoteedit.SelText<>""Thencmdcopy.Enabled=Truecmdcut.Enabled=Truecmdpaste.Enabled=FalseElsecmdcopy.Enabled=Falsecmdcut.Enabled=Falsecmdpaste.Enabled=TrueEndIfEndSub45六、常用方法Vb中运用方法的语法结构是相同的[对象.]方法[参数列表]1.print方法形式:[对象.]print[{spc(n)|tab(n)}][表达式列表]作用:在对象上输出信息。对象:可以是窗体(form)、图形框(picturebox)、打印机。若省略,则在窗体上输出。46表达式列表起先位置是由对象的currentx和currenty属性确定的,缺省为打印对象的左上角0,0。例2-9:print方法输出图形。PrivateSubForm_Click()Form1.CurrentX=200Form1.CurrentY=550Fori=1To5PrintTab(i+5);String(6-i,"▼");_Spc(6);String(i,"▲")NextiEndSub472、cls方法形式:[对象.]cls(如:picture.cls)作用:用于清除运行时在窗体或图形框中显示的文本或图形。留意:(1)cls方法只清除运行时在窗体或图形框中显示的文本或图形,不清除窗体在设计时的文本或图形。(2)cls方法运用后,currentx和currenty属性被设置为0。483、move方法形式:[对象.]move左边距离[,上边距离[,宽度[,高度]]]作用:用于移动窗体或控件,并可变更其大小。对象:可以是窗体及除时钟、菜单外的全部控件,省略对象为窗体。假如对象是窗体,则“左边距离”和“上边距离”以屏幕左边界和上边界为准,否则以窗体的左边界和上边界为准,宽度和高度表示可变更其大小。49例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\2EndSub50七、应用举例例2-11:依据房产商供应的信息,购房者选择房型、面积、单价、按揭期等信息,编写计算每月支付贷款的程序。程序由两个窗体构成,第一个窗体输入或选择买房的数据,该窗体由列表框选择数据、标签显示数据、文本框输入数据;其次个窗体显示房屋的平面图,该窗体仅有一个图形控件。512.5工程的管理一、工程的组成工程文件包含了一个应用程序的全部文件:工程文件(.vbp):工程组文件(.vbg):窗体文件(.frm):控件及属性、事务过程和自定义过程 窗体的二进制数据文件(.frx),自动产生同名.frx文件。标准模块文件(.bas)类模块文件(.cls) 资源文件(.res) ActiveX控件的文件(.ocx)二、创建、打开和保存工程:“文件”菜单52三.添加、删除和保存文件:可利用“文件”和“工程”菜单

1、窗体名和窗体文件名概念窗体名:窗体的Name属性,在代码中用来引用该窗体,同一工程不能有相同的窗体名;窗体文件名:窗体存放在磁盘上的文件名,该文件包含了该窗体的全部控件属性和代码,同一文件夹不能有相同的文件名。2、在工程中添加现存的窗体时,只是对该窗体文件的引用纳入工程。因此,假如更改窗体并保存它,会影响包含此窗体文件的任何工程。3、在工程中删除窗体时,仅将此窗体从工程里删除掉,但是窗体文件仍存在于磁盘上。但是,假如在VB之外删除一个窗体文件,VB不能更新此工程文件,当打开此工程时,将显示一个文件丢失的错误信息。

窗体文件名窗体名53四、环境设置“工具”——”选项”1.”编辑器”选项卡2、“通用”选项卡4、对窗体文件改名方法:在“工程资源管理器”中--右击窗体文件--“Form另存为…”

5、保存窗体文件:若只想保存窗体文件而不保存工程文件,可干脆在“工程资源管理器”中选定,然后执行“文件”菜单中的相应选项。542.6制作成安装盘2.6.1运用打包和绽开向导打包:把工程中用到的各种类型的文件(包括工程自身的文件、必要的系统文件和安装主文件)进行打包压缩后,存放到特定的书目下。绽开:把打包的文件绽开到用户可以携带的用来安装的软盘、光盘等介质。管理脚本:记录打包或绽开过程中的设置,便于以后做同样的操作。系统的压缩文件以.cab扩展名保存。2.6.2检测安装程序55第三章VB语言基础

3.1编码基础

3.2数据类型

3.3常量与变量

3.4运算符和表达式

3.5基本语句

3.6数组

3.7过程

3.8常用算法举例

3.9程序调试

563.1编码基础一、书写要求:1.VB代码不区分字母的大小写系统关键字自动转换每个单词的首字母大写;用户自定义行以第一次为准2.语句书写自由一行可书写几个语句,之间用冒号分隔;一行最多255个字符;一条语句可分若干行书写,用续行符(空格+下划线)连接3.注释有利于程序的维护和调试Rem或单撇号“‘”以及“编辑”工具栏的“设置注释块”;VB中注释语句会自动变为绿色4.保留行号与标号5.其他留意事项:保留字与变量之间至少有一空格;字母“l”与数字“1”、字母“o”与数字“0”的运用。573.2数据类型

一、标准数据类型:

581、数值数据类型:IntegerLongSingleDoubleCurrencyByte(1)Integer和Long型用于保存整数(2)Single和Double型用于保存浮点实数(3)Currency型是定点实数或整数(4)Byte字节型用于存储二进制数592、日期(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#等均为合法日期格式。60(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:00613、逻辑(布尔型)数据型:Boolean当逻辑型转换成整型数据时:true–(-1)false—(0)

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

5、对象数据类型:Object作为32位(4个字节)地址来存储626、变体类型:Variant是全部未定义的变量的缺省数据类型,它可以包括标准数据类型,还包含四个特殊的数据:empty(空)表示未指定确定的数据null(无效)表示数据不合法Error(出错)指出过程中出现了一个错误条件Nothing(无指向)表示数据还没有指向一个具体对象Vartype:检测变体型变量中保存的数值类型如:dimtVartype(t)或Vartype(667)63二、自定义类型让用户自己定义的数据类型,由若干个标准数据类型组成。是一组不同类型变量的集合。相当于C语言中的结构类型;Pascal中的记录类型。1.自定义类型的定义

形式如下:

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

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

EndType其中:元素名:表示自定义类型中的一个成员下标:表示数组类型名:为标准类型64例如,以下定义了一个有关学生信息的自定义类型:TypeStudType NoAsInteger '学号 NameAsString*20 '姓名 SexAsString*1 '性别 Mark(1To4)AsSingle '4门课程成果 TotalAsSingle '总分EndType留意:(1)自定义类型一般在标准模块(.BAS)中定义,默认是Public;在窗体必需是Private。(2)自定义类型中的元素类型可以是字符串,但应是定长字符串。(3)不要将自定义类型名和该类型的变量名混淆,前者表示了犹如Integer、Single等的类型名,后者VB依据变量的类型支配所需的内存空间,存贮数据。(4)自定义类型一般和数组结合运用,简化程序的编写。652.自定义类型变量的声明和运用(1)声明形式:Dim变量名As自定义类型名例DimStudentAsStudType(2)引用:形式:变量名.元素名例表示Student变量中的姓名,第4门课程的成果,则表示如下: Student.Name,Student.Mark(4)(3)赋值:如:Student.Name=“王刚”Student.Mark(4)=98663.3常量与变量一.常量和变量的命名规则常量:在程序运行中其值不行以变更。变量:在程序运行中其存储的值可以变更。命名规则:1.以字母或汉字开头,后可跟汉字、字母、数字或下划线组合,长度小于等于255个字符;2.不能运用VB中的关键字;3.VB中不区分变量名的大小写.4.为了增加程序的可读性,可在变量名前加一个缩写的前缀来表明该变量的数据类型。如:strMystring、intCount67VB6.0的关键字有:AsBinaryByRefByValDateElseEmptyErrorFalseForFriendGetInputIsLenLetLockMeMidNewNextNothingNullOnOptionOptionalParamArrayPrintPrivatePropertyPublicResumeSeekSetStaticStepStringThenTimeToTrueWithEvents68二.常量(一)干脆常量有数值常量(整数、长整数、定点数和浮点数)、字符串常量、布尔常量、日期常量(二)符号常量1.系统供应的常量系统定义常量位于对象库中,可通过“对象阅读器”查看.例:vbNormal、vbMinimized、vbMaximized、vbblue等form1.windowsstate=vbmaximized‘将窗口极大化form1.windowsstate=2‘与上面的语句等价的692.用户声明常量形式:Const常量名[AS类型]=表达式省略[AS类型],常量的类型由表达式值的类型确定,也可在常量后加类型符。表达式:可以是数值常数、字符串常数以及由运算符组成的表达式。对于数值常数除了可用十进制表示外,还可以运用十六进制数(数值前加&H)和八进制数(数值前加&O)。 为使与变量名区分,一般常量名运用大写字母例ConstMAX=100ConstPI=3.14159ConstPI#=3.14159ConstMAXasinteger=&O14470三.变量1.用Dim语句显式声明变量形式:Dim变量名[AS类型]Dim变量名类型符例DimiCountAsinteger,sAllsumAssingle等价于DimiCount%,sAllsum!对于字符串变量,依据其长度是否固定,有两种方法:Dim字符串变量名AsStringDim字符串变量名AsString*字符数2.隐式声明未进行上述的声明而干脆运用,其类型为Variant类型。建议不运用。留意:在通用声明处加OptionExplicit语句可强制显式声明变量。713.4运算符和表达式一.运算符

1.算术运算符例:5+10mod10\9/3+2^2结果:10取ia=3722.字符串运算符:&、+“&”和“+”,都是将两个字符串拼接起来。"123"+"456"结果"123456""123"&"456"结果"123456"区分:若+的两旁的操作数均为数值型则进行算术加;若一个为数字字符型,另一个为数值型,则自动将数字字符转换为数值,然后进行算术加;若一个为非数字字符型,另一个为数值型,则出错。&则不管什么类型,强制转换为字符型进行拼接。例如:"abcdef"&12345'结果为"abcdef12345""abcdef"+12345'出错"123"&456'结果为"123456""123"+456'结果为57912000+“123”&100‘结果为“12123100”Val(left$(“12345678”,4)+mid$(“12345678”,4,2))‘结果为123445留意:(1)"123"+True'结果为122True转换为数值-1,False转换为数值0(2)运用“&”时,最好在两侧的操作数间加入一个空格。因为Long类型变量的类型符以及八进制、十六进制数值表示法的起始字符也为“&”。733.关系运算符

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

(1)关系运算符的优先级相同;(2)“Like”运算符与通配符:“?”、“*”、“#”、“[字符列表]”、“[!字符列表]”结合运用,常用于模糊查询。其中“?”表示任何单一字符,“*”表示零个或多个字符,“#”表示任何一个数字(0~9),[字符列表]表示字符列表中的任何单一字符,[!字符列表]表示不在字符列表中的任何单一字符。例如,找姓名变量中姓张的学生,则表达式为:姓名Like“张*”,又如找没有张字的学生,表达式为:姓名Like“[!张]”744.逻辑运算符说明:1、Not:进行取反运算;2、And:操作数均为真时,结果才为真;3、Or:操作数中有一个为真时,结果为真;4、Xor:操作数相反时,结果才为真;5、Eqv:操作数相同时,结果才为真;6、Imp:第1个操作数为真,第2个为假时,结果才为假,其余结果均为真。7、优先级:Not>And>OR>Xor>Eqv>Imp75假如逻辑运算符对数值进行运算,则以数字的二进制值逐位进行逻辑运算。(1)And运算符常用于屏蔽某些位。(2)Or运算符常用于把某些位置1。(3)连续两次进行Xor运算,可复原原值。例:10and710or776二.表达式1.表达式组成变量、常量、函数、运算符和圆括号2.书写规则(1)运算符不能相邻。例a+-b是错误的。(2)乘号不能省略。例x乘以y应写成:x*y(3)括号必需成对出现,均运用圆括号。(4)表达式从左到右在同一基准上书写,无凹凸、大小。3.不同数据类型的转换运算结果的数据类型向精度高的数据类型靠.Integer<Long<Single<Double<Currency4.优先级算术运算符>字符运算符>关系运算符>逻辑运算77表达式书写举例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)78例:用人单位聘请秘书:年龄小于40岁的女性,学历专科或本科年龄<40性别=“女”(学历=“专科”学历=“本科”)AndAndOr比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学历=“本科”)791.数学函数: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]注:函数名后有$符号,表示函数返回值为字符串。三、常用内部函数802.转换函数

Chr(66)"B" Asc("B")66Asc(Chr(99))99Chr(Asc("K"))"K"Ucase$("abcdefg")"ABCDEFG“3.日期函数:Date返回系统日期Time返回系统时间Now返回系统日期和时间Year返回年份(1)DateAdd增减日期函数(2)DateDiff间隔日期函数三、常用内部函数814.字符串编码及操作函数(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区分大小写。825.格式输出函数Format()

功能:Format()可以使数值、日期或字符串按指定的格式输出。格式:Format(表达式[,格式字符串])其中,表达式:为要格式化的数值、日期和字符串类型表达式。格式字符串:表示按其指定的格式输出表达式的值。格式字符串有三类:(1)数值格式化:将数值表达式的值按“格式字符串”指定的格式输出。(2)日期和时间格式化(3)字符串格式化格式字符串要加双引号83846.Shell函数 功能:Shell函数负责执行一个可执行文件(扩展名为.exe、、.bat),返回一个Variant,假如成功,代表这个程序的进程ID,若不成功,则会返回0。形式:Shell(叮嘱字符串[,窗口类型])缺省窗口类型最小化为图标。

85X=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:\command",1)863.5基本语句3.5.1赋值语句形式:[LET]变量名=表达式作用:将表达式的值赋值给变量名.一般用于给变量赋值或对控件设定属性值.例:sRate!=0.1Text1.Text="欢迎运用VisualBasic6.0”留意:1、当表达式的类型与变量的类型不一样时,强制转换成左边的精度。如:iA%=10/3iA中的结果为32、虽然赋值号与关系运算符等于号都用“=”表示,VB系统会依据所处的位置自动推断是何种意义的符号。3、赋值号左边只能是变量,不能是常量或表达式。4、不能在一句赋值语句中,同时给多个变量赋值。873.5.2人机交互函数和过程VB与用户之间的干脆交互是通过InputBox()函数、MsgBox()函数和MsgBox过程进行的。1.InputBox函数InputBox(提示[,标题][,缺省][,x坐标位置][,y坐标位置])其中:提示提示信息,标题对话框标题,缺省输入区缺省值函数返回字符类型.例要在屏幕上显示图示的对话框:88相应的语句如下:DimstrNameAsString*40strName=InputBox(“请输入你的姓名”+vbCrLf+“然后单击确定”,“输入框”)也可以运用如下语句:DimstrNameAsString*40,strS1AsString*40strS1=“请输入你的姓名”+Chr(13)+Chr(10)+“然后单击确定”strName=InputBox(strS1,“输入框”,,100,100)当键盘输入“王晓明”后,变量strName获得键盘输入的值.892.MsgBox函数和MsgBox过程

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

按钮值如下:函数返回所选按钮整数值:90例3.2编一帐号和密码检验程序。要求:帐号不超过6位数字,有错,清除原内容再输入.密码输入时在屏幕上以“*”代替;若密码错,显示有关信息,选择“重试”按钮,清除原内容再输入,选择“取消”按钮,停止运行。分析:帐号6位,MaxLength为6,LostFocus推断数字IsNumeric函数密码PassWordChar为“*”,MsgBox函数设置密码错对话框.913.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=t922.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*xEndIf933.If…Then…ElseIf语句(多分支结构)

形式:

If<表达式1>Then <语句块1>ElseIf<表达式2>Then <语句块2> … [Else语句块n+1]EndIf94例已知变量strC中存放了一个字符,推断该字符是字母字符、数字字符还是其他字符。用多分支结构实现:IfUcase(strC)>="A"AndUcase(strC)<="Z"Then PrintstrC+"是字母字符"ElseIfstrC>="0"AndstrC<="9"Then PrintstrC+"是数字字符"Else PrintstrC+"其他字符"EndIf不管有几个分支,依次推断,当某条件满足,执行相应的语句,其余分支不再执行;若条件都不满足,且有Else子句,则执行该语句块,否则什么也不执行。.ElseIf不能写成ElseIf。95例已知百分制成果mark,显示对应的五级制成果哪些正确,哪些错误?正确:方法一、二错误:方法三964.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配对。97<表达式列表>:与<变量或表达式>的类型必需相同,可以是下面四种形式之一:表达式例:"A"一组枚举表达式(用逗号分隔)2,4,6,8表达式1To表达式2 60To100 Is关系运算符表达式 Is<605.SelectCase语句(状况语句)形式: SelectCase变量或表达式 Case表达式列表1 语句块1 Case表达式列表2 语句块2 … [CaseElse 语句块n+1] EndSelect变量:只能含有一个表达式:数值型或字符串98留意:关键字Is定义条件时,只能是简洁的条件,不能用逻辑运算符将两个或多个简洁的条件组合在一起。例如“CaseIs>20andIs<40”是不合法的。而“CaseIs<2,12,13,15,Is>20”是正确的。99例变量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+"其他字符"EndSelect100例:已知坐标点(x,y),推断其落在哪个象限。哪个能实现,哪个不能实现?方法一 Ifx>0Andy>0ThenPrint"在第一象限" ElseIfx<0Andy>0ThenPrint"在其次象限" ElseIfx<0Andy<0ThenPrint"在第三象限" ElseIfx>0Andy<0ThenPrint"在第四象限" EndIf 方法二SelectCasex,yCasex>0Andy>0 Print"在第一象限"Casex<0Andy>0 Print"在其次象限"Casex<0Andy<0 Print"在第三象限"Casex>0Andy<0 Print"在第四象限"EndSelect方法二代码错误:1.SelectCase后不能出现多个变量;2.Case后不能出现变量及有关运算符。比较:SelectCase结构清晰,但运用受到限制,因此,凡是对多个变量的条件推断只能用If的多分支结构来实现。101例由计算机来当一年级的算术老师,要求给出一系列的1~10的操作数和运算符,学生输入该题的答案,计算机依据学生的答案推断正确与否,当结束时给出成果。分析:产生1~10操作数,可通过Int(10*Rnd+1)实现

设置的控件名Label1 Text1

Picture1 Command11026.条件函数

(1)IIf函数形式是:

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

(2)Switch函数形式是:Switch(条件表达式1,条件表达式1为True时的值[,条件表达式2,条件表达式2为True时的值……])103(3)Choose函数形式是:Choose(数字类型变量,值为1的返回值,值为2的返回值……)例如:Nop是1-4的值,转换成+、-、×、÷运算符Op=Choose(Nop,“+","-","×","÷")当值为1,返回字符串“+”,然后放入Op变量中,值为2,返回字符串“-”,依次类推;当Nop是1-4的非整数,系统自动取Nop的整数方法在推断;若Nop不在1-4之间,函数返回Null值。1041.在选择结构中缺少配对的结束语句对多行式的If块语句中,应有配对的EndIf语句结束。2.多边选择ElseIf关键字的书写和条件表达式的表示ElseIf不要写成ElseIf;多个条件表达式次序问题3.SelectCase语句的运用SelectCase后不能出现多个变量;Case子句后不能出现变量本节常见错误1053.5.4循环结构1.For循环语句(一般用于循环次数已知)形式

For循环变量=初值to终值[Step步长] 语句块 [ExitFor] 语句块Next循环变量

循环变量<=终值

语句块

ExitFor

语句块

循环变量加步长

T

F

循环变量得初值

循环体例计算1~100的奇数和Dimi%,s%等价于:Dimi%,s%s=0 s=0:i=1Fori=1To100step2 re:Ifi<=100Thens=s+i s=s+iNexti i=i+2 GoTore EndIf106>0初值<终值=1时,可省略<0初值>终值=0死循环循环次数要留意:出了循环,循环限制变量值的问题。例程序段:Fori=2To13Step3循环执行次数Printi,输出i的值分别为:Nexti25811Print:Print“I=“,i出了循环输出为:I=14在循环体内对循环限制变量可多次引用;但最好不要对其赋值,否则影响原来的循环限制规律。步长107例变更循环限制变量对循环的影响。PrivateSubCommand1_Click()j=0Fori=1To20Step2i=i+3j=j+1Print"第";j;"次循环i=";iNextiPrint"退出循环后i=";iEndSub正常状况:i=1,3,5,7,9,11,13,15,17,19现在:i=4,9,14,19例

输出可打印的ASCII码字符与它的编码值。

1082.Do…Loop循环语句(用于限制循环次数未知)形式1:Do{While|Until}<条件>语句块[ExitDo语句块]Loop形式2:

Do 语句块 [ExitDo 语句块] Loop{While|Until}<条件>109例我国有13亿人口,按人口年增长0.8%计算,多少年后我国人口超过26亿。分析:解此问题两种方法,可依据公式:26=13*(1+0.008)n干脆利用标准对数函数求得;也可利用循环求得,程序如下:PrivateSubCommand1_Click()x=13n=0DoWhilex<26x=x*1.008n=n+1LoopPrintn,xEndSub110例用辗转相除法求两自然数m,n的最大公约数和最小公倍数。分析:求最大公约数的算法思想:(1)对于已知两数m,n,使得m>n;(2)m除以n得余数r;(3)若r=0,则n为最大公约数结束;否则执行(4);(4)mn,nr,再重复执行(2)。

例求m=14,n=6的最大公约数.

Ifm<nThent=m:m=n:n=tr=mmodnDoWhile(r<>0)m=nn=rr=mmodnLoopPrint"最大公约数=",nmnr1462

620辗转相减法

m=m-nm>nn=n-mn>m

m、n为公约数m=nDoWhilem<>nmn

Ifm>nThen146m=m–n86Else26n=n–m24EndIf22Loop1113、While…Wend循环:(类似于DoWhile…Loop)格式为:While<表达式>

温馨提示

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

评论

0/150

提交评论