资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,VB程序设计复习关键点,第1页,第一章 VB概述,属性(Property):,指对象性质、特征。,方法(Method):,指对象能执行动作。,事件(Event):,指能够被对象识别动作。,程序代码中使用以下格式语句来改变属性值:,对象名.属性属性值,经过以下格式为变量赋值:,变量对象名.属性,使用方法格式:控件名.方法,VB采取事件驱动编程方式,事件过程普通格式:,Private Sub 控件名_事件名(参数表),(程序代码),End Sub,第2页,第二章 创建用户界面,窗体类相关属性、方法和事件,属性,方法,事件,Name,Caption,Backcolor Forecolor,Enabled,Visible,Font,Left Top,Width Height,Hide,Show,Print,Cls,Click,Load,Active,Deactive,第3页,第二章 创建用户界面,控件类名,属性,方法,事件,文本框,TextBox,Name,Text,PasswordChar,MultiLine,SetFocus,Change,KeyPress,标签,Lable,Caption,AutoSize,命令按钮,Command Button,Caption,Enabled,SetFocus,Click,第4页,第二章 创建用户界面,控件类名,属性,方法,事件,列表框,ListBox,List,ListCount,ListIndex,Text,AddItem,Clear,RemoveItem,Click,组合框,ComboBox,Style,Text,AddItem,Clear,RemoveItem,Click,图象控件,Image,图片框控件,PictureBox,Picture,Autosize,Print,Cls,Click,第5页,第二章 创建用户界面,控件类名,属性,方法,事件,选项按钮,OptionButton,复选框,CheckBox,Caption,Value,Click,框架,Frame,Caption,水平滚动条,Hscrollbar,垂直滚动条,Vscrollbar,Value,Max和Min,LargeChange,SmallChange,Change,计时器,Timer,Interval,Timer,第6页,第三章 VB语言基础,VB应用程序,窗体文件,标准模块文件,申明部分,事件过程,通用过程,全局申明部分,模块申明部分,通用过程,类模块文件,第7页,第三章 VB语言基础,语句:,VB程序最基本成份,一个语句可经过,续行,符号“_”(一个空格加一个下划线)分成多行写;,多个语句也可经过,分行,符号“:”(冒号)写在一行上。,注释语句:格式一:Rem ,格式二:,第8页,第三章 VB语言基础,整型数,浮点型数,整型,长整型,单精度数,双精度数,程序运行中取值一直保持不变数据称为“常量”,数值常量:,八进制数(数字前加&O)和十六进制(数字前加&H),E或D,其中以E分隔数为单精度数,以D分隔数为双精度数,字符常量:用引号括起来一串字符,逻辑型常量:只有True(真)和False(假)两个取值,日期型常量:用#作为界定符,mm/dd/yy表示日期,hh:mm:ss表示时间,符号常量:以符号形式表示常量,Public|Private Const As Type=,第9页,第三章 VB语言基础,以符号形式出现在程序中,且取值能够发生改变数据称为,“变量”,,变量名命名规则以下:,必须以字母开头,长度不超出255个字符,在,作用域,内必须唯一,字符串内不得包含,点号,和用于类型说明符号,、&、!、$,,也不能有空格,不得使用系统,保留字,(如End Private Sub),第10页,第三章 VB语言基础,变量说明语句,局部变量(包含静态变量)在过程中申明,Static|Dim As,窗体/模块级变量在模块“通用”部分申明,Private|Dim As,全局变量在模块“通用”部分申明,Public As,第11页,第三章 VB语言基础,变量初始值,:当对一个变量进行说明后,系统会自动为其赋一个默认初始值。,数值,型数据初值为0;,字符型数据初值为空串“”;,逻辑型数据初值为,False;,日期型数据初值为1899-12-30,0:00:00,一条语句申明多个变量:,必须对每个变量都逐一申明,例:Dim x,y as Integer,第12页,第三章 VB语言基础,变量赋值:,变量名=表示式,隐式说明,类型说明符(P47,表3-4),例:k,%,=1:Country,$,=“China”,定长字符串说明:,Private|Dim|Static|Public,As String,*,例:Dim String1 As String,*,10,第13页,第三章 VB语言基础,Option Explicit语句,功效:系统自动检验模块中全部未加,显式说明,变量,一旦发觉便产生犯错信息提醒使用者更正错误。该语句应在模块通用说明部分输入,强制显式说明好处:,一个变量假如不被定义,会被看成,变体类型,来进行处理,从而降低程序效率;,变量定义之后,若事后使用了错误变量名,则系统检测到错误变量名时会发觉其没有被申明,便会提醒用户输入错误。,第14页,第三章 VB语言基础,算术运算符,加(+)、减(-)、乘(*)、除(/)、整除()、取余(Mod)、乘方()、字符串连接(&),优先级,:,-(负号)*和/Mod+和-&,关系运算符:、=、,逻辑运算符:非(Not)、与(And)、或(Or)、异或(Xor),优先级:Not And Or Xor,第15页,第三章 VB语言基础,运算规则:,先,算术运算,,再,关系运算,,最终,逻辑运算,()可用来改变运算优先次序,不一样数据类型数据进行运算:结果为,存放长度较长,数据类型,但,除法运算结果都为双精度型,要注意表示式可能溢出情况,第16页,第三章 VB语言基础,公共函数:VB系统已预先定义好完成某特定功效程序段,公共函数可供编程者直接调用使用。,算术函数(P50 表3-6),字符函数(P51 表3-7),转换函数(P51 表3-8),日期与时间函数(P52 表3-8),第17页,第三章 VB语言基础,格式化函数,format$(,fmt$),格式控制字符:,数位控制符,:#、0,标点控制符,:.、,,指数输出控制符,:E+、E-,符号控制符,:%、$、-、+,例:,X=123456.78,Print Format(x,”00000000.0000”),Print Format(x,”#,#,#.#”),00123456.7800,123,456.8,第18页,第四章 算法基础及VB基本语句,任何算法都可由以下三种基本结构实现:次序结构、分支结构、循环结构,语句1,语句2,条件满足?,语句块1,语句块2,True,False,语句块,True,False,条件,第19页,第四章 算法基础及VB基本语句,分支结构,If 条件成立 Then,A组语句,Else,B组语句,End If,注意:,语句体和Then或Else不能够写在同一行,2.当分支结构中A组或者B组语句仅有一条时,可省略“End If”,但必须将全部语句写在同一行:,If 条件成立 Then Else,第20页,第四章 算法基础及VB基本语句,多分支结构,If,条件1,Then,语句块1,ElseIf,条件2,Then,语句块2,ElseIf,条件n,Then,语句块n,Else,语句块n+1,End If,Select Case,测试表示式,Case,测试项1,语句块1,Case,测试项2,语句块2,Case Else,语句块n1,End Select,第21页,第四章 算法基础及VB基本语句,条件?,循环体,True,False,条件?,循环体,False,True,Do,While ,Loop,Do,Loop,While,“当(while)型”循环条件成立时,执行循环体,第22页,第四章 算法基础及VB基本语句,条件?,循环体,False,True,条件?,循环体,True,False,“直到(Until)型”循环条件成立时,结束循环,Do,Until ,Loop,Do,Loop,Until,第23页,第四章 算法基础及VB基本语句,For-Next循环,For=To Step,循环体,Next ,注意:,计数变量应为,整型或单精度型,,初值、终值和步长值为对应类型表示式;,步长值能够为正,也可为负,省略时,默认步长值为1,;,第24页,第四章 算法基础及VB基本语句,Exit Do 用于直接退出循环,可在任意Do-Loop结构循环体中出现,普通形式为:,If 条件成立 Then Exit Do,循环体中可出现Exit For语句,用于无条件退出循环,第25页,第四章 算法基础及VB基本语句,赋值语句普通形式为:,var=,其中:var表示某个,变量名或属性名,赋值语句,左边不能是表示式或常量,第26页,第四章 算法基础及VB基本语句,变量(数值型)表示式(数值型),将表示式值类型先转换为变量类型再赋值,变量(字符型)表示式(数值型),将表示式值先转换为,数字字符,再赋给变量,变量(逻辑型)表示式(数值型),非零值,转换为,True,赋给变量,,0值,转换为,False,赋给变量,变量(数值型)表示式(逻辑型),True,转换为,1,赋给变量,,False,转换为,0,赋给变量,变量(字符型)表示式(逻辑型),True转化为“True”赋给变量,False转化为“False”赋给变量,变量(数值型)表示式(字符型),报错,第27页,第四章 算法基础及VB基本语句,InputBox函数,v=InputBox$(,),MsgBox函数,MsgBox(Prompt,Button,Title,HelpFile,Context),1.等同为一个方法使用,不加括号;,例:MsgBox 非法数据!,警告,2.使用Print 方法,例:,Print,MsgBox(非法数据!,警告),3.需要用户响应结果,将函数返回结果(P63,表43)赋给一个变量,例:Response=MsgBox(真删除该项吗?,4+48,提醒信息),第28页,第五章 数组,数组:一组含有,相同类型,有序变量集合,数组必须,先定义后使用,。数组定义:,Public|Private|Static|Dim 数组名(To,,To,),As 类型,说明:,TO 决定了每一维大小,下界指下标最小值,上界指下标最大值,默认下界是从0开始,若想使下标从1开始,可在模块“通用”部分中使用语句“Option Base 1”,上、下界必须是,常量,或,常量表示式,,,不得是变量,,上、下界应是整数,若不是,则自动四舍五入,第29页,第五章 数组,返回上、下界函数:,UBound(,数组名,d):返回数组某维维上界值,LBound(数组名,d):返回数组某维维下界值,Erase:初始化固定大小数组元素(依据数组类型给元素赋初值),或释放动态数组存放空间。,For Each Element In,语句组,Exit For,语句组,Next Element,说明:Element必须是个,Variant,变量,它逐一代表数组中每一个元素。,第30页,第五章 数组,数组元素赋值,经过循环逐一给数组元素赋值(用InputBox函数),变体变量名=Array(n1,n2,.),数组元素输出,按矩阵格式输出数组,数组元素引用,经过数组名和下标来引用,但元素下标一定要在定义上下界范围之内,不然便会报出“数组越界”错误。,第31页,第五章 数组,动态数组,Dim 数组名()as 类型,ReDim Preserve(维界定义),控件数组:由一组含有相同名称同类型控件组成,每个控件共享同一事件过程,控件数组中每个控件都由其下标属性,Index,标识,控件数组第一个元素下标为0,第32页,第五章 数组,Load object(index),Unload object(index),用于添加和删除控件数组中控件,但添加和删除控件只能针对现有控件数组操作,index能够跳序;,Unload语句只能删除由Load语句添加控件;,由Load语句添加控件,其Visible 属性为False,所以要在程序中将刚装载控件Visible属性设置为True,才能在窗体上可见;另外,新控件大小、位置与原控件一样,隐藏在其背后,所以还要重新设置它Top、Left等属性;,第33页,第五章 数组,排序,选择法排序,直接排序,冒泡排序,直接插入排序,二分查找,第34页,第五章 数组,选择法排序:,For i=1 to N-1,For j=i+1 to N,If,A(i)A(j),Then,TEMP=A(i),A(i)=A(j),A(j)=TEMP,End If,Next j,Next i,第35页,第五章 数组,冒泡排序,For i=1 to n-1,For j=1 to n-i,If,a(j)a(j+1),Then,TEMP=A(j),A(j)=A(j+1),A(j+1)=TEMP,End If,Next j,Next i,第36页,将待排序N个数据存放在数组SORT中,首先将SORT(1)认为已排序子序列,然后依次将SORT(2)、SORT(3)、SORT(N)插入到已排好序子数列中。每插入一个元素都依次进行以下三个操作。,1.先将待插元素SORT(I)放入变量Temp中;,2.寻找插入位置:将temp依次与SORT(I-1)、SORT(I-2)、进行比较,一旦SORT(k)temp,则停顿比较,插入位置即是SORT(K)之后;,3.空出位置,将元素插入:将SORT(k+1)至SORT(I-1)元素依次后移一位,再将变量temp值放入SORT(K+1)中;,注意:为防止元素值丢失,必须先将SORT(I-1)赋给SORT(I),SORT(I-2)赋给 SORT(I-1),直至 SORT(K+1)赋给 SORT(K+2).,重复上述操作,将每个元素都插入到指定位置中。,例8-11:直接插入排序法从小到大次序。,第37页,3,6,1,5,4,3,6,1,5,4,6,1,6,5,6,5,4,6,3,Temp,2,2,6,5,4,3,2,排序前,排序后,直接排序示例,第38页,Private Sub insertion(sort()As Integer),Dim k As Integer,i As Integer,temp As Integer,Ub As Integer,Ub=UBound(sort),For i=2 To Ub,temp=sort(i),k=i-1,Do While temp sort(k),sort(k+1)=sort(k),k=k-1,If k=0 Then Exit Do,Loop,sort(k+1)=temp,Next i,End Sub,取待排序元素,一边比较,一边后移,temp比已排序全部元素都小则结束,寻找第一个比temp小元素位置,为temp插入位置,K指向前一个元素,第39页,分析:二分查找是一个快捷有效查找方法,使用二分查找前提是数据序列已排好序。,假设有n个数已经按照从小到大次序排列,并存放在数组A中,设Left为查找区间下界下标,初值为1;Right为查找区间上界,初值为n;设需要查找数为x;二分查找算法以下:,(1)求出查找区间中间位置Mid=Int(Left+Right)/2),(2)若A(Mid)=x,则找到,结束比较,(3)若A(Mid)x,则表明x在A(Left)到A(Mid-1)区间内,查找区间缩小二分之一,设置Right=Mid-1,(5)重复执行以上操作,(6)结束循环条件有两个:已经找到;,找不到-LeftRight,二分查找,第40页,3,4,1,11,10,5,9,6,7,8,x=8,Left,Right,Mid,Left,Right,Mid,Right,Left,Mid,2,3,1,11,10,4,9,6,7,8,x=5,Left,Right,Mid,Mid,Right,Left,Mid,Left,Left,Mid,Left,Mid,第41页,Left=,LBound(a),Right=,UBound(a),x=InputBox(请输入要查找数据),Do While,Left=Right,Mid=Int(Left+Right)/2),If a(Mid)=x Then,Exit Do,ElseIf a(Mid)x Then,Left=Mid+1,Else,Right=Mid-1,End If,Loop,If,Left=Right,Then,Print 要查找;x;是A(;Mid;),Else,Print 没找到!;x,End If,二分查找,第42页,第八章 过程,过程,Sub过程,Function过程,Property过程,事件过程,通用过程,窗体事件过程,控件事件过程,公有过程,私有过程,第43页,第八章 过程,窗体事件过程普通形式以下:,Private Sub Form_事件名(参数列表),局部变量和常数申明,语句块,End Sub,窗体事件过程,Initialize Load Activate Gotfocus,窗体事件过程名中不使用其详细名称,而固定用Form,窗体事件固定为“Private”,说明它是模块级,第44页,第八章 过程,控件事件过程普通形式以下:,Private Sub 控件名_事件名(参数列表),局部变量和常数申明,语句块,End Sub,控件事件过程名中必须使用其详细名称,控件事件固定有“Private”关键字,说明它是模块级,第45页,第八章 过程,通用过程,Private|Public Static Sub(),End Sub,缺省作用域申明时,系统默认为Public;,在一个窗体模块中调用另一窗体模块公有过程时,需以“窗体名.公有过程名”形式调用;,Exit Sub能够提前退出过程调用,过程不能嵌套定义,第46页,第八章 过程,Function过程特点是返回一个值,,Function过程形式以下:,Private|Public Function(参数列表)As,End Function,函数体中一定要有对函数名赋值语句,函数名=表示式,函数体内可有Exit Function语句无条件退出函数过程,第47页,第八章 过程,Sub过程调用,Call (实参表),过程名 实参1,实参2,,调用Function过程普通形式以下:,var=,(实在参数表),Call,(实在参数表),实在参数表,第48页,第八章 过程,形参:指过程定义时出现过程或函数名后括号中参数,形参为ByVal,指明参数传递方式是传值;,形参为 ByRef,指明参数传递方式是传地址或称为“引用”,实参:指调用过程函数时,出现在过程函数名后括号中参数,在调用一个有参数过程时,首先进行“形实结合”,实参按,“位置”,向形参传值或传地址;,实在参数和形式参数,要求,个数一样,位置对应,类型一致,,不然会犯错;,第49页,第八章 过程,若调用过程时实参为,常量或表示式,,则不论形参定义是按值传递还是按地址传递,系统都是按,传值方式,传递,调用函数或过程时,将单个变量转换成表示式方法:将变量放在一对括号中。,第50页,第八章 过程,数组作为形式参数,申明数组格式为:,()As ,数组参数只能,按地址传递,,即不能用ByVal来说明数组参数,定义数组形参时不能说明数组维数和下标改变范围;,调用过程时,对应实参也必须是数组,但只需要数组名,无须后跟括号,且数据类型也要一致;,第51页,第八章 过程,递归过程:在过程中经过调用本身来完成某一特定任务过程,递归过程执行过程:逐层调用,逐层返回,第52页,第八章 过程,变量作用域,作用域,关键字,申明位置,全局变量,Public,在模块通用部分,模块级变量,Private和Dim,在模块通用部分,局部|过程级变量,Dim,在过程中,静态变量,Static,在过程中,第53页,
展开阅读全文