资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,1,1,1,变量,变量的定义,程序中若使用变量必须事先向系统申请,在程序中称为变量定义,系统会根据指明的变量的数据类型为其分配相应大小的单元,Dim,变量名,As,数据类型,Dim strUserName As String,Dim intCount As Integer,变量命名规则,必须以字母开头,其他字符可以是字母、数字和下划线,不能包含点号,(.),或类型声明字符,(%, &, !, #, ,或,$),不能使用,vb,关键字,在同一应用范围内唯一,不能超过,255,个字符,1,111变量1,1,2,2,2,2,数据类型,类型名称,存储空间,/,字节,范围,整型,Integer,2,具体参见,P44,,表,4.1,长整型,Long,4,单精度浮点型,Single,4,双精度浮点型,Double,8,货币型,Currency,8,日期时间型,Date,8,布尔型,Boolean,2,字符串,String,字符串长度,对象型,Object,4,变体类型,Variant,16,2222数据类型类型名称存储空间/字节范围整型Integer,2,3,3,3,变量,变量的存储类型,局部变量:在一个过程内部声明的变量,作用范围仅仅在声明该变量的过程中。生存期同声明它的过程,当过程被重新执行时,过程中的局部变量重新被声明,开始一个新的生命周期,静态变量:过程内部的变量,在过程结束后其值被保存下来,直到过程下次被执行时,该变量的值保持不变,3,333变量3,3,4,4,4,变量,变量的存储类型,模块级变量:在模块的“通用声明部分”声明的变量称为模块级变量。模块级变量允许声明它的模块中的各个过程操作,而不允许工程中其他模块中的过程访问或修改。模块级变量存放在静态数据区,其生命期是程序期,声明一定放在模块的“通用声明部分”,即在,Option Explicit,语句之下,所有过程体之前,全局变量:作用范围最广的变量,可以被整个工程的所有模块的所有过程中的代码操作。全局变量可以在工程的任意模块的“通用声明部分”中声明,4,444变量4,4,5,5,5,运算符和表达式,算术表达式,算术运算符和表达式,5,优先级,运算,运算符,举例,结果,高,低,乘方,2 3,8,取负,-,- 2 3,- 8,乘、除,* /,5 * 3 / 2,7.5,整除,5 * 3 2,7,求余,Mod,5 * 3 Mod 2,1,加、减,+ -,10 - 3 + (-2),5,555运算符和表达式5优先级运算运算符举例结果 高乘方 ,5,6,6,6,运算符和表达式,算术表达式,关系运算符和表达式,关系运算附是将运算符左右两边的数据或表达式的结果进行比较,但要求运算符两边的操作数的数据类型应相同,、, =, ,逻辑运算符和表达式,逻辑运算符用来对布尔类型数据进行操作运算,Not,,,And,,,Or,字符串运算符和表达式,将多个字符串或数值连接为一个新的字符串,+,:在拼接中,要求两边的操作数必须为字符串常量或字符串变量,&,:在拼接中可以将各种类型的数据连接起来形成一个新的字符串,6,666运算符和表达式6,6,7,7,7,分支结构程序设计,单分支结构与,Ifthen,语句,单分支结构:条件满足时执行预定的程序片段,之后再继续执行程序;而条件不满足时,什么也不做,继续执行程序,If,表达式,e then,语句段,s,If,表达式,e then,语句段,sEnd if,例,4.5,7,条件,e,语句段,s,True,False,777分支结构程序设计7条件 e语句段 sTrueFalse,7,8,8,8,分支结构程序设计,双分支结构与,Ifthen,语句,双分支结构:条件满足时,执行程序片段,1,;不满足时,执行程序片段,2,。,If,表达式,e then,语句段,s1Else,语句段,s2end if,例,4.6,例,4.7,8,条件,e,语句段,s2,True,False,语句段,s1,888分支结构程序设计8条件 e语句段s2TrueFalse,8,9,9,9,分支结构程序设计,多分支结构,If,表达式,e1 then,语句段,s1elseif,表达式,e2 then,语句段,s2elseif,表达式,sn then,语句段,snelse,语句段,sn,1end if,例,4.8,9,条件,1,块,1,True,False,条件,2,块,2,True,False,条件,n,块,n,True,False,块,n+1,999分支结构程序设计9条件1块1TrueFalse条件2块,9,10,10,10,分支结构程序设计,多分支结构,Select case,语句,Select,Case,Case,语句,1,Case,语句,2,Case,语句,n Case,Else,语句,n+1End Select,10,101010分支结构程序设计10,10,11,11,11,分支结构程序设计,多分支结构,Select case,语句,“测试语句”仅在语句开始时被计算一次,然后将结果值与语句“常量表达式,1”,中的值进行比较运算。若匹配成功,则执行“语句段,s1”,中的语句;如果匹配不成功,则依此与“常量表达式,2”,到“常量表达式,n”,中的值比较,如果与某个表达式中的值相等,则执行相应的,Case,语句之后的语句段。若所有的常量表达式中的值都不匹配,则执行,case else,之后的语句段。,如果有多个,case,语句后面的常量表达式中的值匹配,则只执行第一个与之匹配的,case,语句后面的语句段,某个,case,语句后的语句段结束后,整个,selectcase,语句执行完毕,至少有一条,case,语句,,case else,语句可有可无,,end select,不客缺少,例,4.9,11,111111分支结构程序设计11,11,12,12,12,循环结构程序设计,循环结构与循环语句,当型循环,Do While Loop,是指在某一条件满足时,重复地做某件事情,Do While,表达式,e,语句段,sLoop,当,e,为真的时候,重复执行,s,例,5.1,12,条件表达式,成立?,循环体,False,True,121212循环结构程序设计12条件表达式循环体FalseT,12,13,13,13,循环结构程序设计,循环结构与循环语句,直到型循环,Do Loop While,与,Do WhileLoop,循环的区别在于,直到型循环是先执行循环体,后判断循环条件,而,Do WhileLoop,循环是先判断循环条件,再执行循环体,Do,语句段,sLoop While,表达式,e,重复执行,s,,在条件,e,为真的时候,例,5.2,13,条件表达式,成立?,循环体,False,True,131313循环结构程序设计13条件表达式循环体FalseT,13,14,14,14,循环结构程序设计,循环结构与循环语句,计数型循环,ForNext,循环的次数是可以事先确定的,而循环语句负责控制循环体执行的预定的次数,计数器的三个关联处理,循环开始前赋循环初值,循环体中作计数(经常是,1,或者,1,,并且计数经常安排在循环体最后一句话,即下一层循环之前),循环条件是控制计数器与循环终值作比较,For,控制计数器,I, 初值,To,终值 ,Step,增量 语句段,sNext,Step,增量表示步长,当步长为,1,时,可以省略不写,14,141414循环结构程序设计14,14,15,15,15,循环结构程序设计,循环结构与循环语句,计数型循环,ForNext,15,循环变量,=,初值,循环变量超过终值?,循环体,循环变量增加一个步长,False,True,151515循环结构程序设计15循环变量=初值循环变量超过终,15,16,16,16,循环结构程序设计,循环结构与循环语句,退出循环语句,终止当前循环语句的执行,实现循环的非正常出口退出,Exit For,语句功能:从,ForNext,循环中退出,并可在一条,ForNext,语句中出现多次,For I, 初值,To,终值 ,Step,增量 语句段,1,if,条件表达式,then Exit For End if,语句段,2Next,16,161616循环结构程序设计16,16,17,17,17,循环结构程序设计,循环结构与循环语句,退出循环语句,Exit Do,语句,从,Do,循环中退出,并可在一条,Do,语句中出现多次,Do While,表达式,e,语句段,1,if,条件表达式,the Exit Do End if,语句段,2,Loop,17,171717循环结构程序设计17,17,18,18,18,窗体,作为应用程序界面或用来从用户那里收集信息的对话框或自定义窗口称为窗体,它是设计应用程序交互界面的基础,是,VB,最基本的对象,利用,VB,进行应用程序设计时,窗体对象是交互界面设计的基础框架,是最基本的元素,通过在窗体上放置其它对象才能设计实现应用程序的整体架构,一个应用程序至少包含一个窗体对象,窗体对象有自己的属性、方法和事件集合,通过合理地使用这些属性、方法及事件来描述窗体的外观特征,控制窗体的行为,18,181818窗体18,18,19,19,19,窗体的常用属性,19,属性名称,说明,名称(,Name,),设置窗体的名字,在代码中代表窗体对象,通过该窗体名在代码中引用窗体。这个属性只能通过属性窗口设置,不能在运行时间用代码设置,Caption,设置窗体标题栏的文本内容,即窗体的标题,BackColor,设置窗体的背景颜色,ForeColor,设置窗体的正文或图形的前景颜色,Picture,确定在窗体上是否显式一个图片。可以在属性窗口设置,也可以在运行时间使用,LoadPicture,函数。语句形式:,form1.Picture = loadPicture(“,图片的文件的绝对路径及名称,),Left,和,Top,设置窗体的位置,Width,和,Height,设置窗体的大小,191919窗体的常用属性19属性名称说明名称(Name)设,19,20,20,20,窗体的常用属性,20,属性名称,说明,Moveable,设置在运行时窗体是否可以移动,Font,设置窗体中文本显示时使用的字体,包括字体大小、加粗、斜体等。放置在窗体上的其他控件在默认状态下使用对象设置的,Font,属性。另外,该属性不影响窗体标题栏上的文本的字体,Enable,确定对象能否在运行时接收事件,即设置作用在它身上的事件能否响应,Visible,确定窗体在运行时是否可见。若在运行状态下,某个对象是不可见的,则该对象不能响应事件,MaxButton,和,MinButton,MaxButton,属性设置窗体上是否含有最大化按钮。,MinButton,属性设置窗体上是否含有最小化按钮,WindowState,设置在运行时窗体的显示状态。取值为,0,(,vbNormal,,缺省值)标识正常大小;值为,1,(,vbMinimized,)表示最小化为图标;值为,2,(,vbMaximized,)表示最大化,202020窗体的常用属性20属性名称说明Moveable设,20,21,21,21,窗体的常用方法,21,方法名称,说明,Show,激活窗体。语句形式为:被激活窗体名,.Show,Hide,隐藏窗体。语句形式为:窗体名,.Hide,Cls,清楚窗体上用,Print,方法显示的所有文本内容及用绘图方法如,Line,、,Circle,等方法绘制的图形,但不能清除通过,Picture,属性加载的图片,Print,向窗体上显示信息,212121窗体的常用方法21方法名称说明Show激活窗体。,21,22,22,22,窗体的常用事件,22,方法名称,说明,Load,当窗体被装入内存时,,vb,系统自动出发该事件。对于窗体和窗体上的对象所涉及的所有事件而言,可以粗略地认为窗体的,load,事件是最早被触发的事件,Unload,窗体被关闭后,将触发该事件,Click,在运行时,当用户在窗体的空白区域单击鼠标时,触发该事件,DbClick,在运行时,当用户在窗体的空白区域双击鼠标时,触发该事件。注意:当触发,DbClick,事件时,首先触发,Click,事件,然后才触发,DbClick,事件,Resize,在运行时,当窗体大小改变时,触发该事件,222222窗体的常用事件22方法名称说明Load当窗体被装,22,23,23,23,基本控件,文本框(,TextBox,),文本框控件主要用于显示文本,运行时可编辑其文本内容,在应用程序中,文本框的主要用途:,获取用户的输入信息,向用户输出系统信息,文本框空间中的文本是可以编辑的,其内容既可以在设计时设置,也可以在运行时通过用户的输入或系统的输出设置,23,232323基本控件23,23,24,24,24,基本控件,文本框(,TextBox,),24,属性名称,说明,名称(,Name,),设置当前文本框控件的名字,Text,设置文本框中显示的文本,该属性的设置方法有三种:一是通过“属性窗口”直接设置,Text,属性的初始值;二是在程序代码中设置,语句格式为:文本框名,.Text =,字符串;三是应用系统在运行状态下,由用户在文本框中直接键入信息,Locked,设置文本框中正文是否在运行时可编辑,取值为,True,表示不可编辑,只读;取值为,False,(默认)表示可编辑,MaxLength,设置文本框可以输入的字符数,取值为,0,(默认)表示输入字符数在,2048,个字符之内,取其他值表示输入字符数在该值限定之内,MultiLine,运行文本多行输出或多行输入,ScollBars,设置文本框有无滚动条。取值为,0,(默认)表示没有滚动条;取,1,表示有水平滚动条;取,2,表示有垂直滚动条;取,3,表示同时含有水平滚动条和垂直滚动条。注意:只有,MultiLine,属性为,True,时,,ScollBars,属性的设置才有效,PasswordChar,设置文本框为密码框,242424基本控件24属性名称说明名称(Name)设置当前,24,数组,数组的基本概念,数组数组是可以用来存储,表示具有固定数据、同种数据类型的一组相关联的数,数组元素数组中的每一个数据都成为数组元素,数组类型按照数组的定义,同意数组中的各元素数据类型都是相同的。数组元素的数据类型成为数组的基类型,也称为数组类型,下标、上标变量数组元素在数组中的排列号称为数组的下标,由于每一数组元素是通过名和下标组合起来表示的,为区别于浦东变量,通常称为数组元素为下标变量。同时,也必须说明指定下标才能存取数组元素。,25,数组25,25,数组,数组的基本概念,数组维数数组允许的下标个数称为数组维数,数组相应的称为几维数组,数组基本操作对数组的操作主要通过对数组元素的操作进行的,对数组元素的操作于对各种数据类型的普通变量操作一样;数组中最基本、最常用的操作称为“数组遍历”,即按照一定规律将数组中的每一元素访问一遍,主要用计数器循环技术实现,26,数组26,26,数组,一维数组,一维数组的定义与引用,定义形式,1 Dim,数组名,(,下标下届,To,下标上届,) As,数据类型,Dim a(1 to 13) As Integer,定义形式,2 Dim,数组名,(,下标上届,) As,数据类型,Dim a(14) As Integer,引用形式:数组名,(,下标表达式,)a(20), a(i),a(2 * i -1),27,Dim a(1 to 10) as integer,Dim i as Integer,For i = 1 to 10,a(i) = i * 3,next,数组27Dim a(1 to 10) as integer,27,数组,一维数组,一维数组的定义与引用,一维数组的存储一维数组被存储在内存中的一片连续单元内,数组的第,i,个元素的存储地址可以用“数组起始地址,+,基类型单元长度 *,i”,计算出来。按照“按值存取”方法,可以对数据单元进行方便的存取,28,数组28,28,数组,二维数组,二维数组的定义与引用,定义形式,1 Dim,数组名,(,下届,1 to,上届,1,下届,2 to,上届,2) As,数据类型,Dim a(1 to 3, 1 to 4) as integer,定义形式,2Dim,数组名,(,上届,1,,上届,2) as,数据类型,Dim a(2, 3) as integer,引用形式数组名,(,下标,1,, 下标,2),29,Dim a(1 to 2, 1 to 3) as integer,Dim i as Integer,For i = 1 to 2,for j = 1 to 3,a(i, j) = i * 10 +,Next,next,数组29Dim a(1 to 2, 1 to 3) as i,29,数组,二维数组,二维数组的存储,二维数组各元素也存储在内存的连续空间内。,Vb,中规定二维数组按行优先方式存储,30,数组30,30,数组,动态数组,固定大小的数组,vs,动态数组,声明时固定大小,运行时不可改变大小,使用动态数组:,声明数组,不指定大小,Dim,数组名,() as,数据类型,在执行过程中,重新分配元素,动态申请空间,ReDim,数组名,(,下标上限,),31,Dim a() as integer,ReDim a(9) ,一维数组,For I = 0 to 8,a(i) = I * 10,Next,Intx = 10,Inty =8,ReDim(intx,inty) ,二维数组,数组31Dim a() as integer,31,过程与函数,Vb,应用程序由过程组成,事件过程是对对象事件作出响应的程序段,构成,vb,程序的主题,通用过程,多个不同的事件过程可能需要用一段相同的代码或相似的程序代码,可以把这种代码独立出来,形成一个过程,即通用过程,Vb,中通用过程分为两类,子程序(,sub,过程)和函数(,function,过程),Sub,过程不直接返回值,可以作为独立的基本语句调用,Function,过程要返回一个值,32,过程与函数32,32,过程与函数,事件过程,事件过程就是事件驱动程序,当用户对某个对象发出一个动作时,或作用在某个对象上得事件被触发时,系统自动调用与该对象相关的事件过程执行,事件过程就是响应对象事件时执行的代码段,事件过程与对象相关,附加在窗体控件等对象上,Vb,根据对象的事件集合,自动创建事件过程模板,编程人员不能任意添加或删除,但事件过程完成的功能由编程人员设计完成,是窗体模块的重要组成部分,通常只隶属于窗体模块,默认时是私有的(,private,),33,过程与函数33,33,过程与函数,事件过程,对于事件过程附属于,vb,对象,过程名构成:对象名,_,事件名,控件的事件过程名形式:控件对象名,_,事件名,窗体的事件过程名形式:,Form_,事件名,建议使用,vb,提供的事件过程模板进行程序设计,34,过程与函数34,34,过程与函数,通用过程,在程序设计中将能完成指定功能的程序片段,按一定的形式组织成可被其他过程方便使用的独立程序单位成为通用过程,创建通用过程的目的是实现共享。通用过程的特点是必须由其他事件过程或通用过程调用才能被执行,不能由任何对象的事件直接驱动,通用过程的定义,通用过程分为两类:子过程和函数过程,子过程语法:,private|public sub,过程名,(,形式参数列表,),代码段,end sub,35,过程与函数35,35,过程与函数,通用过程,通用过程的定义,函数过程的语法形式:,private|public function,过程名,(,形式参数列表,) as,返回类型,代码段 过程名,=,返回值,end function,通用过程必须由编程人员创建,包括过程名和过程提的代码,命名要符合与,vb,有关的命名约定,但不受事件过程名的约束,既可以放在窗体模块中,也可以放在标准模块中,(通过,vb,操作界面添加通用过程),36,过程与函数36,36,过程与函数,通用过程,形式参数,过程参数是为了在过程和父程序之间传递数据而设置的,各参数在被父程序调用时才从父程序处获得真正的值,因而在定义函数时参数是“形式”上得值,称为形式参数,函数被调用时形参从父程序处获得的真实值称为实参,实参传递给形参的过程称为实形结合,加上过程处理结果返回父程序的过程统称为过程的参数传递,37,过程与函数37,37,过程与函数,通用过程,形式参数,形式参数的说明,形参之间以,分隔,由于形参是形式上的,因而形参的名字无关紧要,只要符合变量命名规则即可,形参是局部性变量。它只在过程运行期间才分配内存单元给形参,过程返回后形参单元控件被收回,因而它只在过程内才有效,必须说明形参的数据类型。形参的个数必须与父程序的实参一一对应,数据类型完全相同,38,过程与函数38,38,过程与函数,通用过程,子过程的调用,在程序的执行过程中,过程必须通过使用调用语句才能被其他过程调用,才能被执行,子过程调用形式:,call,过程名,(,实参表,),函数的调用,函数可以向父程序返回一个值,而子过程不行,因此可以将函数返回值输出或保持在变量中,若在定义函数时,没有通过,as,子句执行函数返回值数据类型,则默认为变体型(,variant,),使用变量保存返回值的调用形式:变量名,=,函数名,(,实参表,),39,过程与函数39,39,过程与函数,通用过程,参数传递方式,过程调用时会将实参赋给形参,实际调用时既可以将实参的值传给形参(传值方式),也可以将实参的地址传给形参(传址方式),传值和传址有本质区别,ByVal vs. ByRef,40,过程与函数40,40,
展开阅读全文