版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录第1章可视化编程与VB开发环境第2章VB简单应用程序的设计第3章VB程序设计语言基础第4章VB过程第5章VB窗体与常用控件第6章键盘与鼠标的控制第7章菜单与工具栏第8章文件管理第9章图形处理与多媒体第10章
数据库应用程序的开发3.1模块与代码窗口3.2VB中的数据与运算3.3标准函数第一章节目录3.4输入与输出3.5程序流程控制第一节原子结构1掌握VB中的数据类型、常量与变量的使用能熟练地使用数组、常用标准函数与人机对话函数。熟悉程序的3种基本控制结构,能根据实际情况进行一般的程序设计。学会在VB中的代码编制方法学习目标3.1模块与代码窗口模块:VB程序代码的容器(举例子“模块与代码窗口.vbp))窗体模块窗体窗体模块窗体模块文件:.frm包含窗体各个对象的说明与相应的事件过程、方法程序代码只能被本窗体所调用窗体的添加标准模块类模块(选学)3.1模块与代码窗口模块:VB程序代码的容器标准模块程序代码的共享,可以包含全局变量、常量及外部过程文件名:.BAS标准模块的添加类模块类:创建对象的模板自定义类:包含对象、属性、方法等等。文件名:.CLS3.1模块与代码窗口过程:VB程序代码的组织单元具有特定书写格式、包含一组具有特定功能的代码集合事件过程:由用户或系统引发了某种事件后,所执行的相应代码来完成相应的功能(举例子)通用过程:由可被共享的代码构成,不属于任何一个窗体,但可以被多个窗体所共享(举例子)3.1模块与代码窗口代码窗口及其使用打开双击需编写代码的对象(窗体或控件)工程资源管理器右击窗体或控件代码查看一个过程所有过程3.1模块与代码窗口代码窗口及其使用智能化编辑自动语法检查自动格式编排自动编码3.1模块与代码窗口编码规则与注释编码规则不区分大小写,由系统自动进行转换同一行上可以书写多条语句,但语句间必须用“:”分隔(举例子)每行的字符最多可达1024个字符,续行符“_”(举例子)数字除了可以用默认的十进制表示外,还可以用其他进制:&H9A、&O76(举例子)代码的缩排处理3.1模块与代码窗口PrivateSubForm_Click()DimintA(10)AsIntegerDimiAsIntegerFori=0To10intA(i)=1 '对每个数组元素赋初值1PrintintA(i) '输出数组元素的值NextiEndSub3.1模块与代码窗口编码规则与注释注释:“’”在代码行的尾部加,但不能出现在续行符后。注释单独为一行或几行,每行前都必须有注释符利用编辑工具栏对某一个程序段整个加上注释,主要用于程序的调试3.2VB中的数据与运算数据类型Integer或%Long或&Single或!Double或#currency或@bytestring或$booleandatevariantobject3.2VB中的数据与运算1、整数
定义:不带小数点和指数符号的数。特点:数精确表示,但数范围有限。类型:整型Integer或%(默认)长整型Long或&。形式:±n[&]
例:123、123%、123&、+123正确的整数
123.0、1,230错误3.2VB中的数据与运算2、实数:
定义:带小数点或指数符号的数。特点:数精不精确表示,但数范围大。类型:单精度Single或!,双精度Double或#。形式:尾数[E|D指数]
其中:E表示单精度指数符号、D表示单精度指数符号尾数可以整数(必须要求指数)也可以小数例:123.45、123.45!、0.12345E+3、
12345E-2、0.12345D+3都是同值实数3.2VB中的数据与运算3、逻辑型数据(Boolean)
逻辑型数据只有两个值:真(True)和假(False)注意:当把数值型数据转换为逻辑型数据时,0转换为False,非0值转换为True。当把逻辑型数据转换为数值型数据时,False转换为0,True转换为-1。思考:?Tag=6<8
3.2VB中的数据与运算5、字符串型数据(String)形式:"字符串"例:"abc""ABC""计算机""12.34""3+2"""(空串)注意:如果字符串本身包括双引号,可用连续两 个双引号表示。例:要打印以下字符串:
"Youmuststudyhard",hesaid.
在程序中需要将该字符串表示成:"""Youmuststudyhard"",hesaid."3.2VB中的数据与运算引入:圆的面积计算:S=3.14×R2其中:r、s是变量,3.14是常量常量:在程序运行中不变的量直接常量其常数值直接反映了其类型符号常量用户声明,便于程序阅读或修改Const符号常量名[As类型]=表达式
例如:
ConstPI=3.14159系统常量系统提供许多内部常量
例如:vbCrLf
回车/换行组合符3.2VB中的数据与运算变量:在程序运行中其存储的值可以改变变量名命名规则:必须以字母或汉字开头,由字母、汉字、数字或下划线组成,长度小于等于255个字符不能使用VB中的关键字VB不区分变量名的大小写,一般变量名首字母用大写,其余用小写字母表示;常量全部用大写字母非法变量名3xy '数字开头y-z '不允许出现减号WangPing '不允许出现空格Dim ' VB.NET的关键字Cos '标准函数名3.2VB中的数据与运算变量的声明(1)用Dim语句显式声明变量
Dim
变量名[As类型]As部分缺省,创建的变量为变体类型注意:一条Dim语句可同时定义多个变量,但每个变量应有类型说明,否则为变体型。例如:Dimm,nAsInteger,x,yAsSingle
则创建了变体型变量m、x,整型变量n和单精度型变量y3.2VB中的数据与运算变量的声明(2)隐式声明(默认)不声明直接使用。为可变类型,易出错、浪费空间(3)强制显式声明在模块的声明段中使用语句:OptionExplicit设置:工具→选项→编辑器→要求变量声明,则在后续模块中自动插入
OptionExplicit3.2VB中的数据与运算变量的声明(4)类型声明符整型:%长整型:&单精度:!双精度:#货币型:@字符型:$3.2VB中的数据与运算例:DimSumAsLongDimAddressAsString‘不定长度DimNoAsString*8‘固定长度8DimNum,TotalAsInteger‘Num为可变类型DimAverageAsSingleDimaasintegerDima%DimBasinteger,stnameasstringDimB%,stname$3.2VB中的数据与运算运算符与表达式算术运算(设ia=3)
3.2VB中的数据与运算运算符与表达式算术运算(设ia=3)
例:5+10mod10\9/3+2^2结果:10
注意:对算术运算符两边的操作数应是数值型,若是数字字符或逻辑型,则自动转换成数值类型后再运算。例如:30-True结果是31,逻辑量True转为数值-1,False转为数值0False+10+"4"结果是143.2VB中的数据与运算运算符与表达式字符串运算&
两旁的操作数可任意,转换成字符型后再连接+
两旁的操作数应均为字符型;
1)数值型:则进行算术加运算
2)一个为数字字符,另一个为数值,自动将数 字字符转换为数值后进行算术加
3)一个为非数字字符,另一个为数值型,出错例如:
操作结果操作结果"ab"&123"ab123" "ab"
+12出错"12"&
456"12456" "12"+
456468"12"&True"12True" "12"+
True113.2VB中的数据与运算运算符与表达式关系运算关系运算符是双目运算符,作用是对两个操作数进行大小比较,若关系成立,则返回True,否则返回False。操作数可以是数值型、字符型。运算符例结果="ABCDE"="ABR"False>"ABCDE">"ABR"False>="bc">="abcde
"True<23<3False<="23"<"3"
True<>"abc"<>"abcde
"True3.2VB中的数据与运算运算符与表达式逻辑运算逻辑运算符除Not是单目运算符外,其余都是双目运算符,作用是将操作数进行逻辑运算,结果是逻辑值True或False。3.2VB中的数据与运算表达式组成:变量、常量、函数、运算符和圆括号书写规则:运算符不能相邻例a+-b是错误的乘号不能省略例x乘以y应写成:x*y括号必须成对出现(均使用圆括号)表达式从左到右在同一基准上书写,无高低、大小不同数据类型的转换运算结果的数据类型向精度高的数据类型靠
Integer<Long<Single<Double<Currency优先级算术运算符>=字符运算符>关系运算符>逻辑运算3.2VB中的数据与运算表达式表达式举例a*b*c*d/e/f/g或
a*b*c*d/(e*f*g)
sin(45*3.14/180)+(exp(10)+log(10))/sqr(x+y+1)例逻辑表达式书写,选拔优秀生的条件为:年龄(Age)小于19岁,三门课总分(Total)高于285分,其中有一门为100分,如果其表达式写为:Age<19AndTotal>285And(Mark1=100OrMark2=100OrMark3=100)如果取消括号有何问题?请读者考虑。
3.2VB中的数据与运算数组定义:具有相同名字、下标值不同的一组变量数组:不是一种数据类型,而是一组相同类型的变量的集合作用:用一个数组名代表逻辑上相关的一批数据,用下标表示该数组中的各个元素,和循环语句结合使用,使得程序书写简洁分类:静态数组、动态数组使用:必须先声明后使用3.2VB中的数据与运算数组静态数组:数组的维数与下标的范围在声明时就已经确定声明:Dim数组名(([下标1下界To]
上界1,([下标下界2To]
上界2…)
[As类型]说明:下标下界缺省为0,下标上界为常数。数组大小为:下标上界-下标下界+1。下标数决定了数组的维数,数组的大小为每一维大小的乘积。3.2VB中的数据与运算数组例:Dimmark(99)AsInteger
一维定长整型数组mark,共有100个元素,下标范围为0To99mark数组的各元素是mark(0),mark(1),…,mark(99)mark数组内存分配如下:每个数组元素有一个唯一的顺序号,下标不能超出数组声明时的上、下界范围,否则会产生“下标越界”错误。数组元素的使用规则与同类型的简单变量相同mark(99)mark(98)…mark(2)mark(1)mark(0)3.2VB中的数据与运算数组例Dimx(2,4)AsLong二维数组
x;共占据3×5个长整型变量的空间x(1,4)x(1,3)x(1,2)x(1,1)x(1,0)x(2,4)x(2,3)x(2,2)x(2,1)x(2,0)x(0,4)x(0,3)x(0,2)x(0,1)x(0,0)3.2VB中的数据与运算数组动态数组:声明数组时不指明下标的大小(省略括号中的下标),当需要使用时,再用ReDim语句重新定义其大小使用步骤声明:Dim
数组名()As数据类型重新分配:ReDim
数组名
(下标[,下标2…])例:DimintRs()AsInteger
ReDimintRs(x+1) ‘x是一个整型变量3.2VB中的数据与运算数组动态数组使用说明Dim
是说明语句,可出现在程序的任何地方,而ReDim
是执行语句,只能在过程中在过程中可多次使用ReDim语句来改变数组的大小,但不能改变维数和类型可在ReDim
后加Preserve参数用来保留数组中的数据,若使用Preserve参数后,只能改变最后一维的大小。3.2VB中的数据与运算数组数组的使用数组元素的赋值:数组名(下标)=表达式数组元素的访问:变量名=数组名(下标)通常与循环语句联合使用【例3-2】数组的使用。PrivateSubForm_Click()DimintA(10)AsIntegerDimiAsIntegerFori=0To10intA(i)=1 '对每个数组元素赋初值1PrintintA(i) ‘输出数组元素的值NextiEndSub3.3标准函数VB函数:标准(内部)函数用户自定义函数内部函数数学函数转换函数字符串函数日期函数格式输出函数调用函数的形式:函数名[(参数列表)]3.3标准函数数学函数-43Int(-3.5)Int(3.5)取小于或等于N的最大整数Int(N)2.3Log(10)自然对数Log(N)-33Fix(-3.5)Fix(3.9)取整Fix(N)20.086Exp(3)enExp(N)1Cos(0)余弦函数Cos(N)3.5Abs(-3.5)取绝对值Abs(N)结果实例含义函数名3.3标准函数数学函数0Tan(0)正切函数Tan(N)3Sqr(9)平方根Sqr(N)-1Sgn(-3.5)符号函数Sgn(N)0Sin(0)正弦函数Sin(N)-44Round(-3.5)Round(3.5)四舍五入取整Round(N)[0,1)之间的数Rnd产生随机数Rnd[(N)]结果实例含义函数名Rnd函数返回0和1(包括0但不包括1)之间的双精度随机数.每次运行时,要产生不同序列的随机数,先执行Randomize语句。产生a~b的之间的随机整数:Int(Rnd*(b-a)+a)3.3标准函数转换函数"ABC"Ucase$("abc")小写字母转为大写字母Ucase(C)"144"Oct$(100)十进制转换成八进制Oct](N)"123.45"Str$(123.45)数值转换为字符串Str(N)123Val("123AB")数字字符串转换为数值Val(C)"abc"Lcase$("ABC")大写字母转为小写字母Lcase$(C)64Hex(100)十进制转换成十六进制Hex(N)"A"Chr$(65)ASCII码值转换成字符Chr(N)2003-11-13CDate("2003/11/13")转换成日期型CDate65Asc("A")字符转换成ASCII码值Asc(C)结果实例功能
函数名3.3标准函数字符串函数"BCD"Mid("ABCDE",2,3)取字符子串Mid(C,N1[,N2])"ABCD"Trim("ABCD")去掉字符串两边空格Trim(C)"A3AB3"Replace("ACDABCD","CD","3")用C2替代C1Replace(C,C1,C2)""Space(3)产生N个空格的字符串
Space(N)4Len("AB教育")字符串长度Len(C)"ABC"Left("ABCDE",3)取字符串左边n个字符Left(C,N)7InStr(2,"EFABCDEFG","EF")从n开始,在C1中找C2InStr([N,]C1,C2[,M])结果实例说明
函数名3.3标准函数字符串函数"ABCD"TRim(“ABCD")去掉字符串两边的空格TRim(C)"DCBA"StrReverse("ABCD")将字符串反序StrReverse(C)"AAA"String(3,"ABC")重复首字符n次String(N,C)S(0)="123"S(1)=“ab"S=Split("123,ab",",")将字符串分隔成字符数组。与Join作用相反Split(C[,D])“"Space(3)产生n个空格的字符串Space(N)"ABCD"RTrim("ABCD")去掉字符串右边空格RTrim(C)“BCD"Right("ABCD",3)取字符串右边n个字符Right(C,N)结果实例说明
函数名3.3标准函数日期函数Second(#1:12:56PM#)返回秒(0~59)Second(C|N)Time返回系统时间Time[()]Year(365)返回年代号(1753~2078)Year(C|N)Now返回系统日期和时间NowMonth("2003,05,01")返回月份代号(1~12)Month(C|N)Minute(#1:12:56PM#)返回分钟(0~59)Minute(C|N)Hour(#1:12:56PM#)返回小时(0~24)Hour(C|N)Day("2003,05,01")返回日期代号(1~31)Day(C|N)Date返回系统日期Date[()]实例说明
函数名例计算从当前日期到2007年6月30日有多少天?表达式为:DateDiff("d",Now,#6/30/2007#)3.3标准函数Shell函数作用:调用各种应用程序。格式:
Shell(命令字符串[,窗口类型])说明:命令字符串为要执行的应用程序名(包括路径),必须是可执行文件(.com、.exe、.bat)。窗口类型表示执行应用程序的窗口状态,0~4,6的整型数值,1表示正常窗口状态。函数调用成功返回一个任务标识ID,不成功,则返回0。
例
i=Shell("calc.exe")
3.4输入与输出数据的输入:InputBox函数引例:
strName=Inputbox("请输入要查找的姓名:","输入")语句格式InputBox(prompt[,title][,default][,xpos][,ypos])3.4输入与输出数据的输入:InputBox函数语句格式InputBox(prompt[,title][,default][,xpos][,ypos])使用注意提示文字的最大长度为1024个字符,自动换行,需要强行换行可使用vbCrLf常量默认情况下该函数的返回值为字符串型按“取消”按钮,用于将输入的值作废,相当于按ESC键,此时将返回一个空串每次调用该函数只能输入一个值3.4输入与输出数据的输出MsgBox函数或命令格式MsgBox(prompt[,buttons][,title])Buttons参数设置“按钮数目值”+“图标类型值”+“缺省按钮值”+“模式值”取值:直接用4个取值相加
或用4个内部常量相加intRet=MsgBox(“继续吗?”,VbYesNoCancel+VbQuestion,“询问“)intRet=MsgBox("继续吗?",3+32,"询问“) 3.4输入与输出参
数内部常量取
值描
述按钮数目VbOKOnlyVbOKCancelVbAbortRetryIgnoreVbYesNoCancelVbYesNoVbRetryCancel012345只显示确定按钮(缺省)显示确定与取消按钮显示终止、重试与忽略按钮显示是、否与取消按钮显示是与否按钮显示重试与取消按钮图标类型VbCriticalVbQuestionVbExclamationVbInformation16324864显示关键信息图标(红色STOP标志)显示询问信息图标(?)显示警告信息图标(!)显示普通信息图标(i)缺省按钮VbDefaultButton1VbDefaultButton2VbDefaultButton30256512第一个按钮为缺省按钮第二个按钮为缺省按钮第三个按钮为缺省按钮模式VbApplicationModelVbSystemModel04096应用模式(缺省)系统模式3.4输入与输出数据的输出MsgBox函数或命令执行方式:命令方式或函数方式函数方式返回值:响应按钮名内部常量返回值确定取消终止重试忽略是否VbOkVbCancelVbAbortVbRetryVbIgnoreVbYesVbNo12345673.4输入与输出Print方法格式[object].Print[{Spc(n)|Tab(n)}expression][,|;]说明输出目标:立即窗口、指定窗体、图片框或打印机Expression:表达式列表,以逗号或分号隔开标准格式与紧凑格式换行的控制Spc(n)空格函数,Tab(n)定位函数3.4输入与输出Print方法举例:Debug.Print"欢迎来到奇妙的VB世界!";"您好!"'在立即窗口输出Form1.Print"2+3=";2+3 '在指定窗体上以紧凑格式输出Print '输出一个空行PrintTab(12),"WelcometoVB!“'在当前窗体的第12列输出3.5程序流程控制VB具有结构化程序设计的三种程序控制结构,即顺序结构、选择结构、循环结构,是程序设计的基础。顺序结构各语句按出现的先后次序执行赋值语句和输入/输出语句等bABa用传统流程图表示为3.5程序流程控制顺序结构赋值语句和输入/输出语句等形式:变量名=表达式
[对象名.]属性名=表达式计算表达式的值,再将此值赋给变量或对象的属性
n=n+1
'计数累加Text1.Text
=
""
'清除文本框的内容Text1.Text
=
"欢迎使用VB"3.5程序流程控制顺序结构赋值语句注意“=”符号有两个意义
赋值号、关系运算符等号形式相同,系统会根据所处的位置判断符号的意义。赋值号左边只能是变量,不能是常量、常数符号、表达式。3.5程序流程控制选择结构计算机要处理的问题往往是复杂多变的,仅采用顺序结构是不够的。VB中主要通过If条件语句和Select情况语句来实现。它们都是对条件进行判断,根据判断结果,选择执行不同的分支。3.5程序流程控制选择结构If条件语句.If…Then语句(单分支结构)
If<表达式>Then
语句块(可以是一句或多句语句)
EndIf或
If<表达式>Then<语句>表达式:关系表达式、逻辑表达式,算术表达式。表达式值按非零为True,零为False进行判断。该语句的作用是当表达式的值为True,执行Then后面的语句块,否则不做任何操作。IF演示3.5程序流程控制例:已知两个数x和y,比较它们的大小,使得x大于y
Ifx<yThent=xx=yy=tEndIf
或Ifx<yThent=x:x=y:y=t
简单If形式无EndIf时,只能是一句语句或语句间用冒号分隔,而且必须在一行上书写。
3.5程序流程控制选择结构If条件语句If…Then…Else语句If表达式
Then
语句块1Else
语句块2EndIf或If表达式
Then
语句1
Else
语句23.5程序流程控制选择结构If条件语句双分支结构例计算分段函数
单分支
y=cos(x)-x^3+3*x结构实现Ifx<>0Theny=sin(x)+sqrt(x*x+1)
Ifx<>0Then
双分支
y=sin(x)+sqr(x*x+1)Else结构实现
y=cos(x)-x^3+3*xEndIf3.5程序流程控制选择结构If条件语句If…Then…ElseIf语句
If表达式1Then
语句块1
ElseIf表达式2Then
语句块2 …
[Else
语句块n+1]
EndIf3.5程序流程控制选择结构If条件语句【例3-3】根据学生的成绩显示不同的评语。sngCj=InputBox("请输入学生的成绩:","输入成绩")IfsngCj>=85ThenMsgBox("成绩优秀")ElseIfsngCj>=60AndsngCj<85ThenMsgBox("成绩合格")ElseMsgBox("成绩较差")EndIf3.5程序流程控制选择结构IIf函数IIf(表达式,表达式为真时的值,表达式为假时的值)IIf函数是If…Then…Else结构的简洁表示例如,将x,y中大的数,放入Tmax变量中:Tmax=IIf(x>y,x,y)该语句与如下语句等价
:Ifx>yThenTmax=xElseTmax=y
3.5程序流程控制选择结构SelectCase语句SelectCase
变量或表达式
Case表达式列表1
语句块1Case表达式列表2
语句块2 …[CaseElse
语句块n+1]EndSelect表达式列表与变量或表达式的类型必须相同,是下面4种形式之一:表达式例:"A"一组用逗号分隔的枚举值
2,4,6,8
表达式1To表达式260To100Is关系运算符表达式Is<603.5程序流程控制选择结构SelectCase语句【例3-4】例3-3用选择结构sngCj=InputBox("请输入学生的成绩:","输入成绩")SelectCasesngCjCase85To100MsgBox("成绩优秀")Case60To84MsgBox("成绩合格")CaseElseMsgBox("成绩较差")EndSelect3.5程序流程控制循环结构计算机最擅长的功能之一就是按规定的条件,重复执行某些操作。例如,按照人口某增长率,对人口增长统计;根据各课程的学分、绩点和学生的成绩,统计每个学生的平均绩点等。这类问题都可通过循环结构来方便地实现。VB中提供了主要两类循环语句:For循环语句(一般已知循环次数);Do条件型循环语句(一般未知循环次数).3.5程序流程控制循环结构Do循环:
用于控制循环次数未知的循环结构形式1:Do{While|Until}<条件>
语句块
[ExitDo
语句块]Loop形式1为先判断后执行,有可能一次也不执行;形式2为先执行后判断,至少执行一次。形式2:Do
语句块
[ExitDo
语句块]Loop{While|Until}<条件>3.5程序流程控制循环结构Do循环:
用于控制循环次数未知的循环结构3.5程序流程控制循环结构【例3-5】在例3-4中,只能判断一次成绩,现在利用循环将其改成反复输入,直到按回车键结束DoWhileTrue sngcj=In
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 温州市雁荡山导游词(3篇)
- 防水粘结功能层的各种方案比较
- 房产买卖合同
- 新接管项目物业管理工作的方案
- 图文印刷制作服务合同
- 产品环境影响评估合同
- 养老机构临时托管合同模板
- 养老机构食品安全协议
- 社会服务岗位聘用合同模板
- 政府法律顾问团协议书
- DV-PV培训课件:设计验证和生产确认
- GCP-试题含答案及答案2020版
- 坐骨神经痛及治疗课件
- 消防安全主题班会课件(共17张ppt)
- 福建省福州市长乐区2022-2023学年八年级上学期期中英语试题(含答案解析)
- 部编版语文教材全套目录小学到高中(2022年)
- JB∕T 13919-2020 低噪声内燃机电站通用规范
- 小学生血液知识讲座课件
- 水土保持工程用表
- 2022年全国小学生天文知识竞赛考试题(含答案)
- 农村一二三产业融合发展课件
评论
0/150
提交评论