《命令按钮与函数》PPT课件.ppt
第3章 命令按钮与函数,(时间:2次课,4学时),第3章 命令按钮与函数,教学提示:本章介绍VB常用的标准函数、表达式和命令按钮,VB常用标准函数和表达式是程序设计语言基础。各种函数,如三角函数、对数函数、日期函数等都是通过函数名调用。在学习中要注意函数的功能和调用方法。所有高级语言表达式都有一定的书写规范,学习中要注意VB表达式和日常运算式在书写上的不同之处。命令按钮是VB程序设计最常使用的控件,程序中出现最多的事件过程是命令按钮的事件过程。教学目标:掌握常用的字符串函数、转换函数、数学函数、日期时间函数、随机函数和输入函数的用法。掌握算数运算符、关系运算符、逻辑运算符的和VB表达式的作用和书写规范。会编写命令按钮的事件过程。,第3章 命令按钮与函数,引例3.1 计算面积和周长 3.1 运算符和表达式 3.2 常用标准函数 3.3 命令按钮(CommandButton)控件 3.4 综合运用,3.1 运算符和表达式,3.1.1 算术运算符和算术表达式3.1.2 字符串运算符和字符串表达式3.1.3 关系运算符和关系表达式3.1.4 逻辑运算符和逻辑表达式 3.1.5 日期运算符和日期表达式3.1.6 运算符的优先级,3.1.1 算术运算符和算术表达式,在VB中,算术运算符有:乘方号()、取负号(-)、乘号(*)、除号(/)、整除号()、求余运算符(Mod)、加号(+)和减号(-)。运算运算符算术表达式举例 说明乘方23结果为8 ab表示a的b次方取负-(-10)结果为10 单目运算,-a表示对a取负乘法*2*4结果为8 乘法运算,乘法和(/)除法是同级运算除法/3/2结果为1.5 除法运算整除32结果为1(整除)运算的结果仅保留整数求余Mod3 Mod 2结果为1 结果是两数相除后的余数加法+3+2结果为5 加法和减法是同级运算减法-3-2结果为1,算术表达式的计算是根据算术运算符的优先级完成的,同级从左到右顺序完成计算。例如:Private Sub Command1_Click()Print 9 3*3 End Sub 输出结果为1。因为先计算乘法,再完成整除99的运算。Private Sub Command1_Click()Print 9/3*3 End Sub 输出结果为9。因为同级运算,从左至右顺序完成。,3.1.2 字符串运算符和字符串表达式,在VB中,字符串运算符有:加号(+)和字符串连接运算符号(&)。两个运算符的作用相同,都是将两个字符串连接成一个字符串。例如:可视化&程序设计 结果仍是一个字符串:可视化程序设计可视化+程序设计 结果仍是一个字符串:可视化程序设计 加号(+),究竟完成加法运算还是字符串的连接,取决于参加运算的两个操作数,当两个操作数都是数值类型时完成加法运算。当两个操作数都是字符串类型时完成字符串的连接运算。要区分数值型和字符串类型,如:123+456 结果仍是一个字符串:123456,3.1.3 关系运算符和关系表达式,在VB中,关系运算符有:大于号()、小于号(=)、小于等于号(或)。关系运算符也称比较运算符,用来对两个相同类型的数据或表达式进行值的比较,关系运算的结果是布尔型的,结果值True表示真,False表示假。关系表达式的一般格式:表达式 关系运算符 表达式,运算运算符 关系表达式举例 说明大于 32+2结果为False 先计算2+2小于=A=a结果为False 小写大于大写小于等于或#12/19/2003#结果为True日期靠后的为大,3.1.4 逻辑运算符和逻辑表达式,在VB中,常用的逻辑运算符有:非(Not)、与(And)、或(Or)和异或(Xor)。逻辑运算符,用来对两个逻辑量进行运算,运算的结果是逻辑型的,结果值True表示真,False表示假。逻辑表达式的一般格式:表达式 逻辑运算符 表达式,运算 运算符 逻辑表达式非 Not Not(53)结果为False与 And True And True结果为True或 Or False Or False结果为False 异或 Xor True Xor False结果为True,例如:A+B=C And X=Y 是逻辑表达式,在求解该表达式时,先完成算术运算,再解决关系运算,最后进行逻辑运算。整个表达式的含义是,当A+B等于C并且X等于Y时,该表达式的结果为真。例如:Not L1 And Not L2 是逻辑表达式,在求解该表达式时,先解决逻辑非运算,再进行逻辑与运算。整个表达式的含义是,当L1和L2都为假时,该表达式的结果为真。,3.1.5 日期运算符和日期表达式,日期型数据只有加“+”和减“-”两个运算符。两个日期型数据相减,结果是一个整数,即两个日期相差的天数,如:#12/31/1999#-#12/29/1999#,结果为2;日期型数据加上(或减去)一个整型数据(表示天数),结果仍为日期型数据,表示向后推算的日期(向前推算的日期)如:#12/31/20003#+2,结果为#01/02/2004#。,3.1.6 运算符的优先级,在含有各种运算符混合运算的表达式中,运算符运算优先级规定为:首先进行数值运算和字符串运算,其次进行关系运算,最后完成逻辑运算,同级运算自左到右顺序完成,括号可以改变优先顺序。在表达式中只能使用小括号,不能使用中括号或大括号,并且也同样要求括号是半角英文符号。例如:,3.2 常用标准函数,3.2.1 常用数学函数3.2.2 常用转换函数3.2.3 常用字符串函数3.2.4 常用日期时间函数3.2.5 InputBox函数,3.2.1 常用数学函数,常用数学函数主要包括三角函数、指数函数、对数函数、平方根函数、绝对值函数等,函数说明 举例 结果Sin(n)计算n的正弦值Sin(0)0Cos(n)计算n的余弦值Cos(0)1Tan(N)计算N的正切值Tan(0)0Abs(N)计算N的绝对值Abs(-2)2Atn(N)计算N的反正切值Atn(0)0Exp(N)计算e的N次幂Exp(0)1Log(N)计算N的自然对数Log(1)0Sgn(N)计算N的符号值Sgn(-2)-1Sqr(N)计算N的平方根Sqr(4)2Rnd(N)产生0,1)之间随机数Rnd0,1),运行下面程序,会发现运行程序输出的3个随机数确实随机并满足在01之间。但再次运行该程序会发现所产生的3个随机数和上次的完全相同。Private Sub Command1_Click()Print Rnd:Print Rnd:Print Rnd End Sub,在调用随机函数之前先使用Randomize语句,此后再使用随机函数便可产生逼真的随机数。Private Sub Command1_Click()Randomize Print Rnd:Print Rnd:Print Rnd End Sub下面程序演示了,函数的自变量是另一个函数。Private Sub Command1_Click()Print Sqr(Abs(-4)End Sub,3.2.2 常用转换函数,常用转换函数主要包括数值型数据与字符型数据之间的转换,以及数值型数据之间的转换。,函数说明 举例 结果Asc(C)将字符转换成ASCII编码Asc(A)65Chr(N)将ASCII编码转换成字符Chr(65)AFix(n)返回n的整数部分 Fix(5.6)5 Int(n)返回不大于n最大整数 Int(5.6)5 Str(N)将数值型量转换为字符型量 Str(123)123Val(C)将字符串转换为数值型量 Val(123)123,常用Val函数把输入的数字字符串转换成数值,用Str函数把要输出的数值转换成字符串。Option ExplicitPrivate Sub Command1_Click()Const Vg=300000000#Const Pi=3.1415 Dim OA,AB,OB,S1 OA=Vg/3000/2 AB=OA*Sin(30*Pi/180)OB=OA*Cos(30*Pi/180)S1=Pi*OB*OB Print 飞机的高度是:+Str(AB)+m Print 雷达仰角为30,搜索面积是:+Str(S1)+m2End Sub,Asc和Chr是一对互逆函数,Asc只能计算一个字符串首字符的ASCII编码,Chr是计算ASCII编码对应的字符,控制字符可以使用Chr函数输入。Private Sub Command1_Click()Print Chr(Asc(A)Print Asc(ABCDEF)Print Trim(Str(Asc(ABCDEF)Print 显示在上一行+Chr(13)+Chr(10)+显示在下一行End Sub,3.2.3 常用字符串函数,在字符存储和处理中,VB 6.0采用了Unicode编码。Unicode编码将一个汉字和一个西文字符都视为一个字符,占用两个字节存储。,函数 说明 举例 结果Ltrim(C)删除字符串左边的前导空格Ltrim(“abc)abcRtrim(C)删除字符串右边的尾随空格Rtrim(abc)abcTrim(C)删除字符串前导和尾随的空格Trim(“abc)abcLeft(C,N)从字符串的左边取出N个字符Left(abc,2)abRight(C,N)从字符串的右边取出N个字符Right(abc,2)bcMid(C,M,N)从字符串的M位右取出N个字符Mid(abcd,2,2)bcInStr(C1,C2)返回字符串2在字符串1的位置InStr(abc,bc)2Len(C)返回字符串的长度 Len(abc)3Space(N)产生N个空格字符组成的字符串Space(2)“Lcase(C)大写字母转换成小写字母Lcase(AbC)abcUcase(C)小写字母转换成大写字母Ucase(abc)ABC,Private Sub Command1_Click()str1=字符串函数与运算 str2=Mid(str1,4,2)Print str2 n=InStr(str1,str2)Print n Print InStr(str1,字符子串)Print str1+的长度是+Str(Len(str1)Print UCase(abCDef)Print LCase(abCDef)Print LCase(abCDef)+Space(3)+UCase(abCDef)End Sub,3.2.4 常用日期时间函数,函数 说明 举例 结果Date 系统当前的日期(年-月-日)Date 2004-02-20Hour(D)小时(023)Hour(Now)8Day(D)月中第几日(131)Day(Now)20Month(D)月份(112)Month(Now)2MonthName(N)中文月份 MonthName(2)二月Now系统当前的日期和时间 Now 04-02-20 8:20:11Time系统当前的时间(hh:mm:ss)Time 8:20:11Weekday(D)星期几(17),1表示星期日 Weekday(Now)7Year(D)年份(yyyy)Year(Now)2006,3.2.5 InputBox函数,InputBox函数返回一个字符串。在调用InputBox函数时,系统将弹出一个对话框,该对话框能接收用户输入数据。InputBox函数一般格式如下:InputBox(提示信息,标题,默认值),Private Sub Command1_Click()Dim Mj,Dj Mj=Val(InputBox(商品房面积)Dj=Val(InputBox(每平米价格)Print 商品房面积;Mj Print 每平米价格;Dj Print 商品房价格;Dj*Mj;元End Sub,3.3 命令按钮(CommandButton)控件,3.3.1 命令按钮概述3.3.2 命令按钮属性3.3.3 命令按钮事件,3.3.1 命令按钮概述,命令按钮是最常使用的控件之一。命令按钮最多设置的属性是Caption,一般使用【属性】窗格设置该属性,以便修改命令按钮的标题。命令按钮最常使用的事件是Click。在程序设计时,将单击某一命令按钮时所要实现的功能写成代码片段,形成一个Click事件过程。这样,当用户单击按钮后,程序就会调用Click事件过程,从而完成相应的操作。,3.3.2 命令按钮属性,1.Name(名称)属性 在程序中它是识别命令按钮的标识符。窗体中第一个建立的命令按钮默认名称是Command1,后续的命令按钮默认名称分别是Command2、Command3等。名称属性为只读属性。只读属性的含义是,这样的属性只允许在界面设计时修改,在程序中不能修改这样的属性。2.Caption属性 Caption属性是字符串类型,是显示在命令按钮上的标题。既可以在界面设计时通过【属性】窗格修改,也可以使用代码设置。,3.Default属性 Default属性是布尔类型,当命令按钮的Default属性设置为True时,按回车键等效于用鼠标单击该按钮。一个窗体只能有一个命令按钮的Default属性设置为True。命令按钮的Default属性默认值为False。4.Cancel属性 Cancel属性是布尔类型,当命令按钮的Cancel属性设置为True时,按Esc键等效于用鼠标单击该按钮。一个窗体只能有一个命令按钮的Cancel属性设置为True。命令按钮的Cancel属性默认值为False。,5.Style属性和Picture属性 Style属性决定命令按钮的外观,只能取0或1。当此属性设置为0时,表示标准命令按钮,该按钮只能显示文字,并且不能改变背景颜色和前景颜色,更不能显示图标。当此属性设置为1时,表示图形命令按钮,图形按钮既能显示文字,又能改变背景颜色和前景颜色,还能显示图标。命令按钮的Picture属性同窗体的Picture属性,用来显示图形。一般命令按钮上使用的图形文件(*.ico和*.cur)。类似有DisabledPicture用于设置被禁止操作时命令按钮显示的图标,DownPicture用于设置被按下状态时命令按钮显示的图标,6.ToolTipText属性ToolTipText属性是字符串类型,用于设置命令按钮的提示信息,运行程序过程中,若鼠标指向命令按钮并停留时,显示命令按钮ToolTipText的字符串。7.Enabled属性 Enabled属性是布尔类型,用于设置命令按钮是否可以操作,运行程序时,若命令按钮的Enabled属性设置为False,命令按钮呈灰色,此时命令按钮禁止操作。当命令按钮的Enabled属性设置为True时,允许用户操作命令按钮。命令按钮的Enabled属性默认值为True。,8.Visible属性 Visible属性是布尔类型,用于设置命令按钮是否可见。若命令按钮的Visible属性设置为False,命令按钮不可见,此时也无法对命令按钮进行操作。当命令按钮的Visible属性设置为True时,命令按钮可见。命令按钮的Visible属性默认值为True。9.其他属性 和窗体类似,命令按钮也有和大小、位置有关的属性,有Height、Left、Top和Width。不同的是,窗体的Left和Top是相对于屏幕,命令按钮的Left和Top是相对于窗体。另外,命令按钮有标题,因此有与Font相关的属性。,例3.3 学习和游戏 设计一个窗体,在窗体上添加两个命令按钮。运行程序时,按Alt+D键或按回车键等效于单击【学习】在窗体输出“现在我要学习!”。按Alt+C键或按Esc键等效于单击【游戏】在窗体输出“现在我要游戏!”,例3.4 开始和结束 设计一个窗体,在窗体上添加两个命令按钮。运行程序时,【开始】可以操作,【结束】不能操作,单击【开始】在窗体输出开始时间,此后【开始】不能操作,【结束】可以操作。单击【结束】在窗体输出结束时间,此后,命令按钮状态恢复成原始状态。用鼠标指向命令按钮并停留时,显示提示信息。,3.3.3 命令按钮事件,1.MouseDown事件 按下鼠标任意按钮时,所触发的事件称为MouseDown事件。MouseDown事件与Click事件不同,Click事件是用鼠标左键单击命令按钮所触发的事件,MouseDown事件不管是用鼠标左键还是鼠标右键,只要按下鼠标键就能触发该事件;Click事件包括鼠标键的动作有按下和抬起,MouseDown事件包括鼠标键的动作只有按下而无抬起。,2.MouseUp事件释放鼠标按钮时,所触发的事件称为MouseUp事件。类似于MouseDown事件,鼠标左键和鼠标右键都能触发该事件,该事件包括鼠标键的动作只有抬起。3.MouseMove 事件 鼠标光标在某一个对象上的移动或停留时,触发的事件称为MouseMove事件。,3.4 综合运用,例3.5 按下和抬起命令按钮 设计一个窗体,在窗体上添加一个命令按钮。运行程序时,命令按钮被按下时,命令按钮显示一幅图片,同时在窗体输出“你按下了鼠标键”。抬起命令按钮时,命令按钮显示另一幅图片,同时在窗体输出“你抬起了鼠标键”。例3.6 年月日和时间 设计一个窗体,在窗体上添加4个命令按钮。运行程序时,单击【年份】【月份】【日期】和【时间】可分别在窗体显示系统的年份、月份、日期和时间。单击窗体,清除窗体上显示的所有信息。,