




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1VisualBasic程序设计基础敦化市职业教育中心修鹏鹏1VisualBasic程序设计基础敦化市职业教育中心2第一章VisualBasic程序设计概述
1.1概述
1.2运行环境、安装和启动
1.3VB集成开发环境2第一章VisualBasic程序设计概述 1.131.1概述一、VisualBasic简介:
VisualBasic是基于Basic的可视化的程序设计语言。VisualBasic6.0中文版是Microsoft公司最新推出的可视化开发工具,是一种基于Windows操作系统的新型的现代程序设计语言,是一种易于学习、功能强、效率高的编程工具。任何具有初步程序设计基础的人,都能在很短的时间内掌握好VB,并有效地编写出各种Windows程序。VisualBasic6.0包括三个版本:学习版、专业版、企业版、31.1概述4二、VisualBasic主要功能特点:1.具有面向对象的可视化设计工具2.事件驱动的编程机制3.提供了易学易用的应用程序集成开发环境4.结构化的程序设计语言5.支持多种数据库系统的访问6.OLE技术。VB核心就是其对对象的链接与嵌入(OLE)的支持。7.Active技术8.完备的help联机帮助功能三、VisuslBasic6.0新功能特点4二、VisualBasic主要功能特点:51.2运行环境、安装和启动一、运行环境:二、安装:安装文件:setup.exe三、启动:方法:1.双击桌面VB快捷方式。
2.“开始”|程序|MicrosoftVisualStudio6.0|MicrosoftVisualBasic6.03.“开始”|运行|C:\programfiles\MicrosoftVisualStudio\VB98\VB6.exe51.2运行环境、安装和启动6进入VisualBasic6.0窗口6进入VisualBasic6.0窗口71.3VisualBasic6.0集成开发环境71.3VisualBasic6.0集成开发环境81.主窗口
应用程序窗口,由标题栏、菜单栏和工具栏组成。VB的三种工作模式(标题栏总显示当前模式)
(1)设计模式:创建应用程序的大多数工作都是在设计时完成的。在设计时,可以设计窗体、绘制控件、编写代码并使用“属性”窗口来设置或查看属性设置值。
(2)运行模式:代码正在运行的时期,用户可与应用程序交流。可查看代码,但不能改动它。
(3)中断模式:程序在运行的中途被停止执行时。在中断模式下,用户可查看各变量及不是属性的当前值,从而了解程序执行是否正常。还可以修改程序代码,检查、调试、重置、单步执行或继续执行程序。81.主窗口VB的三种工作模式(标题栏总显示当前模式)92.窗体(Form)设计窗口
窗体设计窗口是屏幕中央的主窗口,它可以作为自定义窗口用来设计应用程序的界面。用户可以在窗体中添加控件、图形和图片来创建所希望的外观。每个窗口必须有一个的窗体名字,建立窗体时缺省名为Form1,Form2,...。窗体网格点间距的设置:设计模式-”工具”–”选项”应注意窗体名(代码中使用的标识对象名称)和窗体文件名的区别92.窗体(Form)设计窗口窗体设计窗口是屏10窗体设计窗口窗体名窗体文件名10窗体设计窗口窗体名窗体文件名113.代码(code)窗口
在设计模式中,通过双击窗体或窗体上任何对象或通过“工程资源管理器”窗口中的“查看代码”按钮来打开代码编辑器窗口。代码编辑器是输入应用程序代码的编辑器。代码窗口主要包括:
a.对象列表框
b.过程列表框
c.代码框
d.过程查看按钮
e.全模块查看按钮113.代码(code)窗口在设计模式中,通1212134.属性(properties)窗口
属性是指对象的特征,如大小、标题或颜色等数据。在VisualBasic6.0设计模式中,属性窗口列出了当前选定窗体或控件的属性的值,用户可以对这些属性值进行设置。134.属性(properties)窗口14
工程是指用于创建一个应用程序的文件的集合。工程资源管理器列出了当前工程中的窗体和模块5.工程资源管理器(projectexplorer)窗口14工程是指用于创建一个应用程序的文件的集合。15工程文件的扩展名为.VBP工程资源管理器下面的列表窗口,以层次列表形式组成这个工程的所有文件。主要包括三种类型的文件:窗体文件(.FRM)存储窗体上使用的所有控件对象和有关的属性、对象相应的事件过程、程序代码。标准模块文件(.BAS)所有模块级变量和用户自定义的通用过程(可以被应用程序各处调用的过程)类模块文件(.CLS)包含用户对象的属性及方法。15工程文件的扩展名为.VBP16
工具箱提供一组工具,用于设计时在窗体中放置控件生成应用程序的用户接口。系统启动后缺省的General工具箱就会出现在屏幕左边,上面有常用“部件”6.工具箱(ToolBox)窗口16工具箱提供一组工具,用于设计时在窗体17定制工具箱添加选项卡:对添加的选项卡加控件的方法:
(1)在已有的选项卡中拖动所需控件(2)激活选项卡-”工程”-“部件”
17定制工具箱18
窗体布局窗口显示在屏幕右下角。用户可使用表示屏幕的小图像来布置应用程序中各窗体的位置。这个窗口在多窗体应用程序中很有用,因为这可以指定每个窗体相对于主窗体的位置。
7.窗体布局窗口18窗体布局窗口显示在屏幕右下角。用19立即窗口:中断模式中调试应用程序。对象浏览窗口:可查看工程定义的模块或过程,也可查看对象库、类型库、类、方法、属性及可在过程中使用的常数。19立即窗口:中断模式中调试应用程序。20第二章简单的VisualBasic程序设计
2.1程序设计方法的发展
2.2对象的概念
2.3建立简单的应用程序
2.4窗体和基本控件
2.5工程的管理及环境设置
20第二章简单的VisualBasic程序设计 2.212.1程序设计方法的发展1.初期的程序设计
高运行效率、少占用内存为目标2.结构化程序设计
程序的可读性、可维护性为目标程序=算法+数据结构的面向过程的程序设计3.面向对象的程序设计(OOP)
降低程序的复杂性、提高软件的开法效率和改善工作界面为目标程序=对象+消息的面向对象的程序设计212.1程序设计方法的发展1.初期的程序设计22结构化的分解突出过程(Howtodo?)面向对象的分解突出真实世界和抽象的对象(Whattodo?)目前常用的面向对象语言有:VisualBasic、VisualC++、VisualFoxPro等优点
a.符合人们的思维方法
b.易于软件的维护和功能的增减
c.能用继承的方式减短程序开发时间
d.与可视化技术结合,改善了工作界面22结构化的分解突出过程(Howtodo?)232.2对象的概念一、对象和类1.类:是创建对象实例的模板,是同种对象的集合与抽象,包含了创建对象的属性描述和行为特征的定义.2.对象:
是类的一个实例,继承了类的属性、方法。
Vb中常用的对象有:窗体、控件等。3.控件:以图标的形式放在工具箱中。VB中的控件分为三类:
内部控件(标准控件):如工具箱上的控件,20个
ActiveX控件:“工程/部件”命令加载
可插入对象:Windows应用程序的对象,如Excel工作表。二、对象的建立和编辑:
1.对象的建立:两种方法2.对象的选定:单选、多选
3.复制或删除对象4.对象的命名232.2对象的概念一、对象和类24三、对象的三要素:属性、事件和方法(1)属性
对象的性质,即用来描述和反映对象特征的参数。(2)事件对象的响应称为事件,它发生在用户与应用程序交互时。如单击控件、鼠标移动、键盘按下等。事件过程
指附在该对象上的用户编写的程序代码,是事件的处理程序。事件驱动过程
24三、对象的三要素:属性、事件和方法25VisualBasic程序执行步骤:启动应用程序,装载和显示窗体窗体(或窗体上的控件)等待事件的发生事件发生时,执行对应的事件过程重复执行(2)和(3),直到遇到“END”结束语句结束程序的运行或单击“结束”按钮强制停止程序的运行25VisualBasic程序执行步骤:启动应用程序,装载26(3)方法
对象的动作,即将一些通用的过程编写好并封装起来,作为方法供用户直接调用。对象方法的调用格式:
[对象.]方法[参数名表]例如:在窗体上显示一行文字。
Form1.Print”欢迎使用VisualBasic6.0”26(3)方法
对象的动作,即将一些通用的过272.3建立简单的应用程序设计一个VisualBasic应用程序的通用步骤:
1.设计用户界面的对象
2.设置对象的属性
3.编写对象事件代码
4.保存文件
5.程序运行和调试(解释执行:
或“运行|启动”
或
按F5)
6.建立可执行文件。(编译运行:“文件”|“生成…exe”)272.3建立简单的应用程序设计一个VisualBasi28例:编写一个对输入字符进行转换的
程序转换规则为:将其中的大写字母转换成小写字母,小写字母转换成大写字母,空格不转换,其余转换成“*”。要求每输入一个字符,马上就进行判断和转换。28例:编写一个对输入字符进行转换的
程序转换规则为:将其中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&aaEndSub29PrivateSubText1_KeyPress(K30PrivateSubCommand1_Click()Text1.Text=""Text2.Text=""
EndSubPrivateSubCommand2_Click()EndEndSub30PrivateSubCommand1_Click()31保存和运行程序保存窗体文件保存工程程序的运行(1)编译运行模式——生成.exe
(2)解释运行模式——F531保存和运行程序保存窗体文件322.4窗体和基本控件一、基本属性
1.Name名称属性创建的对象名称,有默认的名.在程序中,控件名是作为对象的标识而引用,不会显示在窗体上。
2.Caption标题属性 该属性决定了控件上显示的内容。
3.Height、width、top和left属性322.4窗体和基本控件一、基本属性334.Enabled属性控件是否可操作.当设置为false时,呈暗淡色,禁止用户进行操作.5.Visible属性控件是否可见.当设置为false时,用户看不到,但控件本身存在。
6.Font属性
Fontname字体Fontsize字体大小Fontbold是否是粗体
Fontitalic是否斜体Fontstrikethru是否加一删除线
Fontunderline是否带下划线
例2.2在窗体上建立两个命令按钮
Command1和Command2,Command2
的Font通过属性窗口设置,其余属性通过代码实现。334.Enabled属性347.Forecolor前景颜色属性设置控件的前景颜色(即正文颜色).其值是一个16进制常数,用户可以在调色板中直接选择所需颜色。8.Backcolor背景颜色属性9.Backstyle背景风格属性
0-transparent:透明显示,即控件背景颜色显示不出来10.BorderStyle边框风格属性
0-None:控件周围没有边框
1-FixedSingle:控件带有单边框。11.Alignment属性控件上正文水平对齐方式
0:正文左对齐
1:右对齐 2:居中12.AutoSize属性控件是否根据正文自动调整大小,False.347.Forecolor前景颜色属性35
例:有关属性的综合应用。对象设置:效果:35例:有关属性的综合应用。36
二、窗体
1.属性:P27StartUpPosition、
MaxButton、MinButtonPicture、BorderStyle(012345)
WindowsState(0-正常、1-最小化、2-最大化)注:Picture属性可在属性窗口设置,也可通过Loadpicture函数用代码来实现。函数格式为:
[对象].Picture=Loadpicture(“文件路径\文件名”)
对象可以是窗体、图片框、图像框,缺省时为窗体。
36372.事件:P28
Click、DblClick、Load、UnLoad
等
Load当装入窗体时激发,通常用于对属性和变量初始化
3.方法:P28Print、Cls、Move、Show、Hide等
当在Form_Load事件中使用Print方法时,必须将该窗体的AutoRedraw设置为True,否则Print方法无效。
例上述属性、Click、DblClick和Load
事件演示。书上例子:P28372.事件:P2838
三、标签Label
功能:用于显示文本(输出)信息,不能作为输入信息的界面。属性:P29
事件:click、Dblclick、Change
例2.5.显示浮雕效果的文字,实现方法:字颜色、标签位置四、文本框TextBox
功能:是一个文本编辑区域可以输入,编辑和显示。
属性:P30Text:正文内容。
MultiLine:是否为多行,默认一行。
Locked:是否可被编辑属性,False,表示为可编辑。
PassWordchar:口令字符。
SelStart,SelLength,SelText:选中文本的起始、长度、内容。
例2.6复制选中的文本38三、标签Label392.常用事件
Change:当改变文本框的Text属性时会引发该事件.KeyPress(KeyAsciiAsInteger):同上,并可返回一个KeyAscii参数
KeyAscii为13,按回车键;为0去除刚输入的字符.LostFocus:当控件失去焦点时发生.GotFocus:当控件获得焦点时发生.3.常用方法
[对象.]SetFocus:是把光标移到指定的文本框对象中(即设置焦点)。4.文本框的应用数据过滤例2.7要求输入合法的数字数据。当输入结束时(按Tab键),对于输入正确的数据,显示正确信息;对输入的非数字数据,则响铃(Beep)、显示错误信息、清除文本框中的内容,并使焦点重新回到文本框。
Text2_LostFocus当输入结束按Tab键时,该事件激发
IsNumeric(Text2):判断是否输入非数字数据.392.常用事件40五、命令按钮CommandButton功能:接受用户输入的命令。
输入命令可以有三种方式:鼠标单击Tab键焦点到该按钮快捷键
1.属性:P33Caption:命令按钮显示的内容,可设置快捷键,例&Ok,显示
OkValue:检查该按钮是否按下.该属性在设计时无效.Picture:按钮可显示图片文件(.bmp和.Ico),当Style为1时有效Style:确定显示的形式.0只能显示文字,1文字、图形均可。ToolTipText:设置工具提示,和Picture结合使用。
2.事件
Click40五、命令按钮CommandButton41六、常用方法Vb中使用方法的语法结构是相同的[对象.]方法[参数列表]1.print方法形式:[对象.]print[{spc(n)|tab(n)}][表达式列表]作用:在对象上输出信息。对象:可以是窗体(form)、图形框(picturebox)、打印机。若省略,则在窗体上输出。41六、常用方法Vb中使用方法的语法结构是相同的42表达式列表开始位置是由对象的currentx和currenty属性决定的,缺省为打印对象的左上角0,0。例2-9:print方法输出图形。PrivateSubForm_Click()Form1.CurrentX=200Form1.CurrentY=550Fori=1To5PrintTab(i+5);String(6-i,"▼");_Spc(6);String(i,"▲")NextiEndSub42表达式列表开始位置是由对象的currentx和curre432.cls方法形式:[对象.]cls(如:picture.cls)作用:用于清除运行时在窗体或图形框中显示的文本或图形。注意:(1)cls方法只清除运行时在窗体或图形框中显示的文本或图形,不清除窗体在设计时的文本或图形。(2)cls方法使用后,currentx和currenty属性被设置为0。432.cls方法形式:[对象.]cls(如:p443.move方法形式:[对象.]move左边距离[,上边距离[,宽度[,高度]]]作用:用于移动窗体或控件,并可改变其大小。对象:可以是窗体及除时钟、菜单外的所有控件,省略对象为窗体。如果对象是窗体,则“左边距离”和“上边距离”以屏幕左边界和上边界为准,否则以窗体的左边界和上边界为准,宽度和高度表示可改变其大小。443.move方法形式:452.5工程的管理一、工程的组成
工程文件包含了一个应用程序的所有文件:工程文件(.vbp):工程组文件(.vbg):窗体文件(.frm):控件及属性、事件过程和自定义过程 窗体的二进制数据文件(.frx),自动产生同名.frx文件。标准模块文件(.bas)类模块文件(.cls) 资源文件(.res) ActiveX控件的文件(.ocx)二、创建、打开和保存工程:“文件”菜单452.5工程的管理一、工程的组成46
三、添加、删除和保存文件:可利用“文件”和“工程”菜单
1.窗体名和窗体文件名概念
窗体名:窗体的Name属性,在代码中用来引用该窗体,同一工程不能有相同的窗体名;
窗体文件名:窗体存放在磁盘上的文件名,该文件包含了该窗体的所有控件属性和代码,同一文件夹不能有相同的文件名。
2.在工程中添加现存的窗体时,只是对该窗体文件的引用纳入工程。因此,如果更改窗体并保存它,会影响包含此窗体文件的任何工程。
3.在工程中删除窗体时,仅将此窗体从工程里删除掉,但是窗体文件仍存在于磁盘上。但是,如果在VB之外删除一个窗体文件,VB不能更新此工程文件,当打开此工程时,将显示一个文件丢失的错误信息。
窗体文件名窗体名46三、添加、删除和保存文件:可利用“文件”和“工程”47四、环境设置“工具”——”选项”1.”编辑器”选项卡2.“通用”选项卡4.对窗体文件改名方法:在“工程资源管理器”中--右击窗体文件--“Form另存为…”
5.保存窗体文件:若只想保存窗体文件而不保存工程文件,可直接在“工程资源管理器”中选定,然后执行“文件”菜单中的相应选项。47四、环境设置“工具”——”选项”4.对窗体文件改名方法:48
第三章VisualBasic语言基础
3.1编码基础
3.2数据类型
3.3常量与变量
3.4运算符和表达式
3.5基本语句
3.6数组
3.7过程
3.8程序调试
48第三章VisualBasic语言基493.1
编码基础一、书写要求:1.VB代码不区分字母的大小写
系统关键字自动转换每个单词的首字母大写;用户自定义行以第一次为准2.语句书写自由
一行可书写几个语句,之间用冒号分隔;一行最多255个字符;一条语句可分若干行书写,用续行符
(空格+下划线)连接3.注释有利于程序的维护和调试
Rem
或单撇号“‘”以及“编辑”工具栏的“设置注释块”;
VB中注释语句会自动变为绿色4.保留行号与标号5.其他注意事项:保留字与变量之间至少有一空格;字母“l”与数字“1”、字母“o”与数字“0”的使用。493.1编码基础一、书写要求:503.2
数据类型
一、标准数据类型:
503.2数据类型一、标准数据类型:51
1.数值数据类型:
IntegerLongSingleDoubleCurrencyByte(1)Integer和Long型用于保存整数(2)Single和Double型用于保存浮点实数(3)Currency型是定点实数或整数(4)Byte字节型用于存储二进制数511.数值数据类型:(1)Integer和Long522.日期(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#等价。
522.日期(Date)数据类型53(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:0053(2)数字序列表示法543.逻辑(布尔型)数据型:Boolean
当逻辑型转换成整型数据时:true–(-1)false—(0)
当其他类型数据转换成逻辑数据时:非0数转换为true,0转换为false4.字符串型:String“”
5.对象数据类型:Object
作为32位(4个字节)地址来存储543.逻辑(布尔型)数据型:Boolean553.3常量与变量一、常量和变量的命名规则常量:在程序运行中其值不可以改变。变量:在程序运行中其存储的值可以改变。
命名规则:1.以字母或汉字开头,后可跟汉字、字母、数字或下划线组合,长度小于等于255个字符;2.不能使用VB中的关键字;3.VB中不区分变量名的大小写.4.为了增加程序的可读性,可在变量名前加一个缩写的前缀来表明该变量的数据类型。如:strMystring、intCount553.3常量与变量一、常量和变量的命名规则56VisualBasic6.0的关键字有:
AsBinaryByRefByValDateElseEmptyErrorFalseForFriendGetInputIsLenLetLockMeMidNewNextNothingNullOnOptionOptionalParamArrayPrintPrivatePropertyPublicResumeSeekSetStaticStepStringThenTimeToTrueWithEvents5657
二、常量
(一)直接常量有数值常量(整数、长整数、定点数和浮点数)、字符串常量、布尔常量、日期常量
(二)符号常量
1.系统提供的常量系统定义常量位于对象库中,可通过“对象浏览器”查看.
例vbNormal、vbMinimized、vbMaximized、vbblue等
form1.windowsstate=vbmaximized‘将窗口极大化
form1.windowsstate=2‘与上面的语句等价的57二、常量582.用户声明常量
形式:
Const常量名[AS类型]=表达式省略[AS类型],常量的类型由表达式值的类型决定,也可在常量后加类型符。
表达式:可以是数值常数、字符串常数以及由运算符组成的表达式。对于数值常数除了可用十进制表示外,还可以使用十六进制数(数值前加&H)和八进制数(数值前加&O)。
为使与变量名区分,一般常量名使用大写字母例ConstMAX=100ConstPI=3.14159ConstPI#=3.14159ConstMAXasinteger=&O144582.用户声明常量59
三、变量
1.用Dim语句显式声明变量
形式:Dim变量名[AS类型]Dim变量名类型符例DimiCountAsinteger,sAllsumAssingle
等价于DimiCount%,sAllsum!
对于字符串变量,根据其长度是否固定,有两种方法:
Dim字符串变量名AsStringDim字符串变量名AsString*字符数
2.隐式声明
未进行上述的声明而直接使用,其类型为Variant类型。建议不使用。注意:
在通用声明处加OptionExplicit
语句可强制显式声明变量。59三、变量603.4运算符和表达式一、运算符
1.算术运算符例:5+10mod10\9/3+2^2结果:10取ia=3603.4运算符和表达式一、运算符取ia=3612.字符串运算符:
&、+
“&”和
“
+”,都是将两个字符串拼接起来。
"123"+"456"结果"123456""123"&"456"结果"123456"
区别:若+的两旁的操作数均为数值型则进行算术加;若一个为数字字符型,另一个为数值型,则自动将数字字符转换为数值,然后进行算术加;若一个为非数字字符型,另一个为数值型,则出错。&则不管什么类型,强制转换为字符型进行拼接。
例如:"abcdef"&12345'结果为"abcdef12345"
"abcdef"+12345'出错
"123"&456'结果为"123456"
"123"+456'结果为579
Val(left$(“12345678”,4)+mid$(“12345678”,4,2))‘结果为123445
注意:(1)"123"+True'结果为122True转换为数值-1,False转换为数值0(2)使用“&”时,最好在两侧的操作数间加入一个空格。因为Long类型变量的类型符以及八进制、十六进制数值表示法的起始字符也为“&”。612.字符串运算符:&、+623.关系运算符
将两个操作数进行大小比较,结果为逻辑量。
62634.逻辑运算符说明:1、Not:进行取反运算;
2、And:操作数均为真时,结果才为真;
3、Or:操作数中有一个为真时,结果为真;
4、Xor:操作数相反时,结果才为真;
5、Eqv:操作数相同时,结果才为真;
6、Imp:第1个操作数为真,第2个为假时,结果才为假,其余结果均为真。
7、优先级:Not>And>OR>Xor>Eqv>Imp634.逻辑运算符说明:1、Not:进行取反运算64如果逻辑运算符对数值进行运算,则以数字的二进制值逐位进行逻辑运算。(1)And运算符常用于屏蔽某些位。(2)Or运算符常用于把某些位置1。(3)连续两次进行Xor运算,可恢复原值。例:10and710or764如果逻辑运算符对数值进行运算,则以数字的二进制值逐位进行65二、表达式
1.表达式组成
变量、常量、函数、运算符和圆括号
2.书写规则
(1)运算符不能相邻。例a+-b是错误的。
(2)乘号不能省略。例x乘以y应写成:x*y(3)括号必须成对出现,均使用圆括号。
(4)表达式从左到右在同一基准上书写,无高低、大小。
3.不同数据类型的转换运算结果的数据类型向精度高的数据类型靠.Integer<Long<Single<Double<Currency4.优先级算术运算符>字符运算符>关系运算符>逻辑运算65二、表达式66表达式书写举例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)66表达式书写举例sin(45*3.14/180)+(exp1.数学函数: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]
注:函数名后有$符号,表示函数返回值为字符串。三、常用内部函数1.数学函数:三、常用内部函数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间隔日期函数三、常用内部函数2.转换函数三、常用内部函数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区分大小写。4.字符串编码及操作函数5.格式输出函数Format()
功能:Format()可以使数值、日期或字符串按指定的格式输出。格式:Format(表达式[,格式字符串])
其中,表达式:为要格式化的数值、日期和字符串类型表达式。格式字符串:表示按其指定的格式输出表达式的值。格式字符串有三类:
(1)数值格式化:将数值表达式的值按“格式字符串”指定的格式输出。(2)日期和时间格式化(3)字符串格式化格式字符串要加双引号5.格式输出函数Format()数组元素敦化职业教育中心课件723.5基本语句3.5.1赋值语句
形式:[LET]变量名=表达式
作用:将表达式的值赋值给变量名.
一般用于给变量赋值或对控件设定属性值.
例:sRate!=0.1Text1.Text="欢迎使用VisualBasic6.0”
注意:
1、当表达式的类型与变量的类型不一致时,强制转换成左边的精度。如:iA%=10/3iA中的结果为3
2、虽然赋值号与关系运算符等于号都用“=”表示,VB系统会根据所处的位置自动判断是何种意义的符号。
3、赋值号左边只能是变量,不能是常量或表达式。
4、不能在一句赋值语句中,同时给多个变量赋值。
723.5基本语句3.5.1赋值语句733.5.2人机交互函数和过程
VB与用户之间的直接交互是通过InputBox()函数、MsgBox()函数和
MsgBox过程进行的。
1.InputBox函数
InputBox(提示[,标题][,缺省][,x坐标位置][,y坐标位置])
其中:提示提示信息,标题对话框标题,缺省输入区缺省值函数返回字符类型.
例要在屏幕上显示图示的对话框:733.5.2人机交互函数和过程74相应的语句如下:DimstrNameAsString*40strName=InputBox(“请输入你的姓名”+vbCrLf+“然后单击确定”,“输入框”)也可以使用如下语句:DimstrNameAsString*40,strS1AsString*40strS1=“请输入你的姓名”+Chr(13)+Chr(10)+“然后单击确定”strName=InputBox(strS1,“输入框”,,100,100)当键盘输入“王晓明”后,变量strName获得键盘输入的值.74相应的语句如下:75
2.
MsgBox函数和MsgBox过程按钮值如下:函数返回所选按钮整数值:7576
例3.2编一帐号和密码检验程序。要求:
帐号不超过6位数字,有错,清除原内容再输入.
密码输入时在屏幕上以“*”代替;若密码错,显示有关信息,选择“重试”按钮,清除原内容再输入,选择“取消”按钮,停止运行。分析:
帐号6位,MaxLength为6,LostFocus判断数字IsNumeric函数密码PassWordChar为“*”,MsgBox函数设置密码错对话框.76例3.2编一帐号和密码检验程序。773.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=t773.5.3选择结构例:已知两个数x和y,比较它782.If…Then…Else语句(双分支结构)
(1)If<表达式>Then
<语句块1>
Else<语句块2>EndIf
(2)If<表达式>Then<语句1>Else<语句2>
计算分段函数782.If…Then…Else语句(双分支结构)793.If…Then…ElseIf语句(多分支结构)
形式:
If<表达式1>Then <语句块1>ElseIf<表达式2>Then <语句块2> … [Else
语句块n+1]EndIf793.If…Then…ElseIf语句(多分支结构)80例
已知变量strC中存放了一个字符,判断该字符是字母字符、数字字符还是其他字符。用多分支结构实现:
IfUcase(strC)>="A"AndUcase(strC)<="Z"Then
PrintstrC+"是字母字符"ElseIfstrC>="0"AndstrC<="9"Then PrintstrC+"是数字字符"Else PrintstrC+"其他字符"EndIf不管有几个分支,依次判断,当某条件满足,执行相应的语句,其余分支不再执行;若条件都不满足,且有Else子句,则执行该语句块,否则什么也不执行。.
ElseIf不能写成
ElseIf。80例已知变量strC中存放了一个字符,判断该字符是字母81例已知百分制成绩mark,显示对应的五级制成绩哪些正确,哪些错误?81例已知百分制成绩mark,显示对应的五级制成绩82
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
EndIf82例已知x,y,z三个数,Ifx<y835.SelectCase语句(情况语句)形式:
SelectCase变量或表达式
Case表达式列表1
语句块1 Case表达式列表2
语句块2 … [CaseElse
语句块n+1] EndSelect变量:只能含有一个表达式:数值型或字符串835.SelectCase语句(情况语句)变量:只能含84例:已知坐标点(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"在第四象限"EndSelect84例:已知坐标点(x,y),判断其落在哪个象限。哪个能实853.5.4循环结构
1.For循环语句(用于循环次数已知)
形式:
For循环变量=初值to终值[Step步长]
语句块
[ExitFor]
语句块
Next循环变量
循环变量<=终值
语句块
ExitFor
语句块
循环变量加步长
T
F
循环变量得初值
循环体例计算1~100的奇数和
Dimi%,s%s=0Fori=1To100step2 s=s+iNexti
853.5.4循环结构循环变量<=终值86>0初值<终值=1时,可省略<0初值>终值=0死循环循环次数要注意:出了循环,循环控制变量值的问题。例程序段:
Fori=2To13Step3循环执行次数
Printi,输出i的值分别为:Nexti25811
Print:Print“I=“,i出了循环输出为:I=14
在循环体内对循环控制变量可多次引用;但最好不要对其赋值,否则影响原来的循环控制规律。步长86>0初值<终值=1时,可省略循环次数要注意:87例
改变循环控制变量对循环的影响。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码字符与它的编码值。
87例改变循环控制变量对循环的影响。例输出可打印的A882.Do…Loop循环语句(用于控制循环次数未知)形式1:
Do{While|Until}<条件>
语句块
[ExitDo
语句块]Loop形式2:
Do
语句块
[ExitDo
语句块] Loop{While|Until}<条件>882.Do…Loop循环语句(用于控制循环次数未知)形式89例
我国有13亿人口,按人口年增长0.8%计算,多少年后我国人口超过26亿。分析:解此问题两种方法,可根据公式:26=13*(1+0.008)n
直接利用标准对数函数求得;也可利用循环求得,程序如下:PrivateSubCommand1_Click()x=13n=0DoWhilex<26x=x*1.008n=n+1LoopPrintn,xEndSub89例我国有13亿人口,按人口年增长0.8%计算,多少年903.While…Wend循环:(类似于DoWhile…Loop)格式为:While<表达式><语句序列>Wend执行过程:先计算表达式的值,如果表达式的值为True,则执行循环体,遇到Wend语句后,返回到While语句并再对条件进行测试,如为True,则继续执行循环体,如为False,则退出循环体。例:计算1+2+3+……+100Dimiasinteger,sasintegeri=1s=0Whilei<=100s=s+ii=i+1Wend
903.While…Wend循环:(类似于DoWhil91本节常见错误1.不循环或死循环的问题
主要是循环条件、循环初值、循环终值、循环步长的设置有问题。2.循环结构中缺少配对的结束语句
For少配对的Next3.循环嵌套时,内外循环交叉4.累加、连乘时,存放累加、连乘结果的变量赋初值问题
(1)一重循环在一重循环中,存放累加、连乘结果的变量初值设置应在循环语句前。(2)多重循环:这要视具体问题分别对待。如:1!+2!+3!+…+n!5.大数相乘产生“溢出”问题91923.5.5其他辅助控制语句
1.GoTo语句形式:GoTo{标号|行号}
作用:无条件地转移到标号或行号指定的那行语句.2.开关语句:On-GoTo语句
3.Exit语句作用:退出某种控制结构的执行。
4.End语句作用:End结束一个程序的运行;其余表示某个结构的结束,与对应的结构语句配对出现。923.5.5其他辅助控制语句936.With语句形式如下:With对象 语句块
EndWith
作用:对某个对象执行一系列的操作,而不用重复指出对象的名称。
WithLabel1
.Height=2000
.Width=2000
.FontSize=22
.Caption="MyLabel"EndWithLabel1.Height=2000Label1.Width=2000Label1.FontSize=22Label1.Caption="MyLabel"
等价936.With语句等价943.6数组1.引例例:若要求100个学生的平均成绩,然后统计高于平均分的人数。
aver=0Fori=1To100mark=InputBox("输入"+i+"位学生的成绩")
aver=aver+markNexti
aver=aver/100但若要统计高于平均分的人数,则无法实现。已有知识解决方法:再重复输入成绩,带来两个问题:(1)输入数据的工作量成倍增加;(2)若本次输入的成绩与上次不同,则统计的结果不正确。解决此问题的根本方法,引入数组,始终保持输入的数据,一次输入,多次使用。943.6数组1.引例95引入数组
dimmark(1to100)asintegerdimiasinteger,n%,aver!n=0fori=1to100aver=aver+mark(i)nexti
aver=aver/100fori=1to100ifmark(i)>averthenn=n+1nexti95引入数组962.数组的概念数组不是一种数据类型,而是一组相同类型的变量的集合。在程序中使用数组的最大好处是用一个数组名代表逻辑上相关的一批数据,用下标表示该数组中的各个元素,和循环语句结合使用,使得程序书写简洁。数组元素:数组中的某一个数据项。数组元素的使用同简单变量的使用。
数组:必须先声明后使用。
两类数组:静态(定长)数组、动态(可变长)数组。962.数组的概念973.静态数组及声明
静态数组:在声明时已确定了数组元素个数。
形式:
Dim数组名(下标1[,下标2…])[As类型]
维数:几个下标为几维数组,最多60维。
下标:
[下界To]上界下界最小为-32768,上界最大为32767,省略下界为0。下标必须为常数,不可以为表达式或变量。
每一维大小:上界-下界+1
数组大小:每一维大小的乘积
As类型:如果省略,默认为变体类型
例:Dimmark(1to100)AsInteger973.静态数组及声明98DimlArray(0To3,0To4)AsLong
共有4×5个元素等价于:DimlArray(3,4)AsLong注意:
(1)下界缺省为0,也可再重新定义数组的缺省下界为1。
OptionBase198DimlArray(0To3,0To99注意:(2)在静态数组声明时的下标只能是常数,而在其他地方出现的数组元素的下标可以是变量,要加以区分。如:
n=Inputbox(“输入n”)
Dimx(n)AsSingle
'错误的声明,下标是变量
x(n)=100
'数组元素的下标可以是变量,但要防止下标越界的错误发生
(3)在数组声明中的下标说明了数组的整体,即每维的大小;而在程序其他地方出现的下标表示数组中的一个元素。两者写法形式相同,但意义不同。例如:Dimx(10)AsInteger '声明了x数组有11个元素
x(10)=100 '对x(10)这个数组元素赋值99注意:1004.动态数组及声明动态数组是指在声明数组时未给出数组的大小(省略括号中的下标),当要使用它时,随时用ReDim语句重新指出数组大小。形式如下:
Dim数组名()ReDim数组名(下标1[,下标2…])[As类型]
例SubForm_Load()Dimx()AsSingle
…n=Inputbox(“输入n”)
ReDimx(n)…EndSub1004.动态数组及声明101注意
Dim、Private、Public变量声明语句是说明性语句,可出现在过程内或通用声明段;ReDim语句是执行语句,只能出现在过程内。在过程中可多次使用ReDim来改变数组的大小和维数。使用ReDim语句会使原来数组中的值丢失,可以在ReDim语句后加Preserve参数来保留数组中的数据。使用Preserve只能改变最后一维的大小,前面几维大小不能改变。ReDim中的下标可以是常量,也可以是有了确定值的变量。静态数组在程序编译时分配存储单元,动态数组在运行时分配存储单元。101注意102例:Redim和Preserve语句的使用Dima()asintegerPrivateSubForm_Click()Dima()AsIntegerReDima(3,2)Fori=0To3Forj=0To2a(i,j)=i*jPrint"a(";i;",";j;")=";a(i,j);""NextjNextiEndSub102例:Redim和Preserve语句的使用103PrivateSubForm_Click()Dima()AsIntegerReDima(3,2)Fori=0To3Forj=0To2a(i,j)=i*jNextjNextiReDimPreservea(3,4)Forj=3To4a(3,j)=j+10NextjFori=0To3Forj=0To4Print"a(";i;",";j;")=";a(i,j);""NextjNextiEndSub103PrivateSubForm_Click()1045.数组的基本操作应掌握的基本操作有:数组初始化、数组输入、输出、求数组中最大(最小)元素及下标、求和、平均值、排序和查找等。A.数组元素的赋初值
(1)用循环
Dimia(1to10)AsInteger
Fori=1To10 ia(i)=0Nexti
(2)Array函数
DimibAsVariantib=Array(“abc”,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护坡安装工程承包合同
- 加气块砌筑劳务分包合同协议书
- 出租汽车承包合同书
- 房地产委托合同协议
- 专利权转让合同签订指
- 墙纸拆除合同协议
- 合同协议斜线
- 种业加盟合同协议书范本
- 电车购车协议合同
- 内贸租船合同协议
- 第八课 良师相伴 亦师亦友
- 提高静脉血栓栓塞症规范预防率-医务科-2023.12.7
- 华为MA5800配置及调试手册
- 山东省济宁市金乡县2023-2024学年八年级下学期4月期中考试数学试题
- 静脉用药调配中心课件
- (2024年)剪映入门教程课件
- 提升服务行业人员的职业道德和职业素养
- 眩晕诊治中国专家共识解读课件
- 按摩椅行业分析及市场前景展望报告
- 2024年上海外服招聘笔试参考题库附带答案详解
- 关于设备性能评估报告
评论
0/150
提交评论