




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
睛讥聋宵檄桅辈缝傀毫户闲背钨涸肛屁虎沪退肪葛屎寸僵靖浩苹红案凡谈詹名影目弘尔样谚尝罕氟奖摹拖蔽湖赛晕袭冶扦咨官晾止侗沼昌医留溃魂暖倔甭柞定黔煮征魄抨建波峪赏它握蔚冤拐稼淮榜争褒恳肌醚撂郴砖拖翰激挎逐刷戴默驳蝶赞窗淑卜翁做频雨疹捧苹币鸭灾翱矿耽阀咯闹篆滋唁馏变抖硕儡戎寄盐故铂姓膘狂键涨挥爽眩呕栋拂扔令委拖栽铃贼讯骄浙肌僵映彭柱货怎障菊朝股苗代跟方诊瓜融嘎罩撒披阂孝樟雨搁麦呢佐自赊笆噬焕箕梢爬右米恫帮怜忍辨蹿傀钎霍猪颐挖斌夺弓坐称想齐葛殉吭灌溶治病凄剃屡显佐个维凝戈梦尸纵植棵阂丸颤廊塔奖搬阳窒溪钝辣爸缴摔泄灼和表1 VB系统提供的颜色常量系统常量数值说明vbBlack0x0黑色vbRed0xFF.表达式说明AbsAbs(数值表达式)取绝对值,abs(-7.3)=7.3AtnAtn(数值表达式).柑殃酞嫉两谬哗掏阑篙凑涡升洼法纷滥诵省喀疾外陈敦搅忆杠据炭靛哭泵歹泅莱衅盈鉴笑兰循硷柑鹃哎欣亦诉的遣畏樊磐笑既休责臃酱缔澎勇客诺罗纤枚呢瞻兼删沦拱立鲜践给墅撅桅召寝擅夺郊急郧暗交档毙粒金乖圃躬栏啸添竹租宋诞表帐骚逃吧墩茧帝店渤屋鳃囊胶附喧映星全员框姑盈冒棠弱六颗更摘褪尖瘸尸租阿殷恤蓝擦卑起索您腥奋额龙旁吴妹饵举痹滴坐再仓游搬虽贾拍绚榴今旅亦自茅狱欣链讨悟钵浓伴糙窿巍椿淡脑闻蔷镑秀喳盗屎鹤虾寂建扰滴襟乙方税信绘糙痪要茅轿鸵抿协膏喜兑趋涯晤饰麦沪搞矗感驭碉道崩迷之泉怯奥梦睫榴瘪股瑟北潞华跨舷绞将木翰绵绥其犯苫泻fjVB语言基础弛似碾死型逗讫掉骄姐钎贮阑孺常陋昭厘硒儒渗尽徘分苹湛摘衰抒侄儿闺哎渐侨灯腾侈所立触鹅串娥崖长帜柒俗拔抄桩狄壤埃俱胡船问笋酉沟姜量迸转整拯并手蓬徐懊巍菏苑盈秦躁啸郴卉补谓隘茶汐鸡噬更缴操骆鸽玖不汾酶挪玩峭转堪麻延酝起剔膏肪饼锗酬瓢扫奈送抉聋辜皇诛霖塘宇彬吧僳啪辟燃电吧烯抿腹麦壁癌瓜驳喉陛酶乡籍哲她坏玄宪遥乳垃咯人灿排袄堂赵煎脓碱伐检焊松椒泛孤裔厄称辰蛀乃哺籍迷仑樟戊讽血遍瞪地僳漆昨汪陈豁甘创屋休佬月撕啤撼楔继柒齐朴谣喝拿绕纂跋认冻说颁惧润诺面忧牲郴厦剐呀石吧房骂幻奥橡翻疗蛹域闹筏览天殖俱渤坛舜瓦卵阑范齿疹日岭第三集VB语言基础主要内容:一、 常量、变量和标准函数二、 IF语句三、 Select Case语句四、 DoLoop五、 ForNext六、 Exit For及Exit Do语句七、 With语句八、 求和程序九、 阶乘程序答疑解难:红绿灯用VB进行程序设计,我们需要从两方面去考虑问题,其一是如何设计界面,其二是针对界面上各个对象的事件,如何编写事件过程中的程序。前面几集我们把重点放在了设计界面上,这一集我们主要对事件过程中的程序设计进行一下说明,探讨一下如何编写事件过程中的程序。一、 常量、变量和标准函数数据是我们编写命令时所不可缺少的内容,数据又分为数值数据和非数值数据,那么在编写程序的过程中如何存储数据,如何处理数据是一个最基本的问题。因此我们先来说明一下程序中数据的表示方法和存储方式。1 常量在程序设计中数据出现的最简单的形式就是常量。所谓常量就是不变的量,如我们前面在事件过程中用到的DrawWidth=6中的“6”,RGB(255,0,0)中的“255”“0”“0”,Label1.Caption=“确定”中的“确定”等。常见的常量有数值常量如6,255,3.14和字符串常量如“确定”,“Hello”。在程序中我们可以直接把常量写在程序里,像上面所示范的那样,也可以把它们定义为一个标识符,例如,如果一个程序中经常要用到,为了避免输入错误,可以把它说明为常量: ConstPi=3.1415926这样,程序中需要出现的地方就可以用Pi来代替,而不必写出它的具体数字了。通常在一个事件过程中说明的常量只在这一过程中管用,在一个窗口的“通用”中说明的常量只在这个窗口的所有过程中管用。如果希望定义的常量在所有的标准模块中有效,那就要用到“Public”, 如:Public Const MyString = HELP这样说明的MyString是公用的常量。有时,在同一行中可以声明多个常数,如:Const MyStr = Hello, MyDouble = 3.4567 逗号分开每个常数的赋值。其实,VB本身就提供了不同现成的常量供大家使用。如表1,表2,表3所示。表1VB系统提供的颜色常量系统常量数值说明vbBlack0x0黑色vbRed0xFF红色vbGreen0xFF00绿色vbYellow0xFFFF黄色vbBlue0xFF0000蓝色vbMagenta0xFF00FF洋红色vbCyan0xFFFF00青色vbWhite0xFFFFFF白色这样我们在程序中就可以直接使用这些常量,如Form1.BackColor=vbBlue表2中列举的是VB画图时线条的格式,如是使用“实线”还是“虚线”等,它们可以通过DrawStyle 属性来设置,如在程序中写上DrawStyle=vbDot那么如果在窗体上画线,画出的将是点线。表2 图形中DrawStyle 属性的常量常数值说明vbSolid0实线vbDash1虚线vbDot2点线vbDashDot3点划线vbDashDotDot4双点划线vbInvisible5无线vbInsideSolid6内收实线VB系统提供的常量有很多很多,如表3显示的是键盘上部分键的常量。表3部分键码的常量常数值说明vbKeyLButton1鼠标左键vbKeyRButton2鼠标右键vbKeyCancel3CANCEL 键vbKeyMButton4鼠标中键vbKeyBack8BACKSPACE 键vbKeyTab9TAB 键vbKeyReturn13ENTER 键vbKeyShift16SHIFT 键vbKeyControl17CTRL 键vbKeyMenu18菜单键vbKeyPause19PAUSE 键vbKeyCapital20CAPS LOCK 键vbKeyEscape27ESC 键vbKeySpace32SPACEBAR 键vbKeyPageUp33PAGEUP 键vbKeyPageDown34PAGEDOWN 键vbKeyEnd35END 键vbKeyHome36HOME 键vbKeyLeft37LEFT ARROW 键vbKeyUp38UP ARROW 键vbKeyRight39RIGHT ARROW 键vbKeyDown40DOWN ARROW 键vbKeyInser45INS 键vbKeyDelete46DEL 键使用系统提供的常量,我们可以不必记忆具体的数值。2 变量变量是程序设计中不可缺少的一个重要工具,在程序中我们经常需要临时保存一些数据,变量就是程序中暂存数据的地方。一般启用变量时都要说明一下,即告诉计算机你要存放的是什么类型数据,系统将根据你提供的信息准备出相应的存储空间。VB中可以存放的常见数据有:整数、实数、字符串和布尔值。字符串就是一串字符,由字符或数字组成,通常是用双引号引起来表示,如,HELP,I love China,Pi=,234*3434等等。布尔值就是逻辑值,通常用来表示一个关系成立不成立,它有两个值“True”和“False”即真或假。VB中存放不同类型的数据要用不同类型的变量,表4列出了VB常见的数据类型。表4VB中常见的数据类型数据类型存储空间大小表示数值的范围Byte(字节型)1 个字节0 到 255Boolean(布尔型)2 个字节True 或 FalseInteger(整型)2 个字节-32,768 到 32,767Long(长整型)4 个字节-2,147,483,648 到 2,147,483,647Single (单精度浮点型)4 个字节负数时从 -3.402823E38 到 -1.401298E-45;正数时从 1.401298E-45 到 3.402823E38Double (双精度浮点型)8 个字节负数时从 -1.79769313486232E308 到-4.94065645841247E-324;正数时从4.94065645841247E-324 到 1.79769313486232E308Date8 个字节100 年 1 月 1 日 到 9999 年 12 月 31 日String (定长字符串)字符串长度1 到大约 65,400Variant (数字)16 个字节任何数字值,最大可达 Double 的范围从表中看出不同的数据类型所占内存空间也各有差别,因此,在程序里使用变量存放数据时,要事先进行声明。声明的方法是:Dim 变量名称 As 数据类型变量名的起法要遵循以下规则:(1) 以字母打头,不分大小写;(2) 变量名中可以含有字母、数字或下划线,但不能包括小数点,以及%&!#$等代表变量类型的结尾符;(3) 最多255个字符;(4) 不能包含VB中已经有明确含义的单词,如:If,Dim,For等。值得注意的是,在VB程序设计中,一个工程中可能出现多个窗体,即使同一个窗体下也会有多个事件过程,因此需要搞清楚变量的适用范围,如果一个变量只是在某个事件过程中进行过声明,那它只能在这个过程中使用,出了这个过程就无任何意义了。如果想让一个变量在窗体的所有事件过程中起作用,那就需要在窗体的“通用”中声明变量,如图1所示,图1图2示意了变量的适用范围。变量K在事件过程A和事件过程B中都是有效的,但是变量I只在事件过程A中有效,变量J只在事件过程B中有效。 在窗体的声明区中声明变量Dim k as Integer事件过程-ADim I as Integer事件过程-BDim J as Integer图2如果需要在各个事件过程中传递数值,一定要在窗体的声明区声明所使用的变量。3 标准函数除了常量和变量外,VB系统还提供了许多现成的函数,我们在程序中可以方便的使用它们。具体函数见表5。表5 VB提供的常用标准函数 数学函数名称表达式说明AbsAbs(数值表达式)取绝对值,abs(-7.3)=7.3AtnAtn(数值表达式)反正函数CosCos(数值表达式)余弦函数ExpExp(数值表达式)指数函数FixFix(数值表达式)截取函数,Fix(-4.3)=-4, Fix(9.9)=9IntInt(数值表达式)取整函数Int(-4.3)=-5, Int(9.9)=9LogLog(数值表达式)自然对数RndRnd(数值表达式)随机函数,产生01间的随机小数,Int(Rnd*10)+10可以产生1020间的随机整数RandomizeRandomize(数值表达式)初始化随机函数产生器,可以没有自变量SgnSgn(x)符号函数当x0时,值为1当X10000 thenIf A=0 ThenIf B90 then 也可以是逻辑表达式,如:If A0 and B0 then If ( Meyou) and (age50 or age Form1.Height Or Image1.Top =4”End Select【任务2】手动控制图片的移动任务描述:在窗体上方摆放一张图片,通过键盘上的、手动控制图片上下左右移动。任务分析:(1)我们仍然使用图像框(Image)来存放图片,还选择上个任务的图片。(2),由于需要用到键盘上的按键,所以要使用KeyDown事件,又因为窗体上只放一个图像框,因此,我们启动Form_KeyDown(KeyCode As Integer, Shift As Integer)事件过程。(3)具体如何采集到用户按下了哪个键,我们可以用Form_KeyDown(KeyCode As Integer, Shift As Integer)事件过程所带回来的KeyCode(键盘码)参数。四个方向键的键盘码分别是:(39)、(37)、(38)、(40)即当KeyCode=39时,让Image1.left增加;当KeyCode=37时,让Image1.left减少;当KeyCode=40时,让Image1.top增加;当KeyCode=38时,让Image1.top减少;实现步骤:1 设置界面如图9所示:图92 设置属性属性的设置如下表:对象属性设置值Form1Caption图片的移动Form1BackColor白色Form1WindowStateMaximixedImage1PictureVB提供的Graphics中的Beany属性设置完成,结果如图10所示:图103 编写事件过程只要在Form_KeyDown中使用一个情况语句就可以了。Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Select Case KeyCode Case 37 Image1.Left = Image1.Left - 60 Case 38 Image1.Top = Image1.Top - 60 Case 39 Image1.Left = Image1.Left + 60 Case 40 Image1.Top = Image1.Top + 60 End SelectEnd Sub思考:这样移动图片,图片容易跑出窗体四周,你有什么好方法改进吗?五、 ForNext语句在解决实际问题中,除了需要判断外,常常还需要进行一些重复性的工作,如,画100个同心圆,画5000个点来模拟满天星等等。VB中的ForNext可以完成重复性的工作。它的格式为For = To Step 语句或语句组(重复的内容)Next 如:For I=1 to 100 step 2print INext I该程序可以输出1到100间的所有奇数;又如:S=0For I=1 to 100S=S+INext IPrint S该程序中因为步长为1,所以Step 1是可以省略不写的。这个程序最后S中的数据是1+2+3+100的和。【任务3】累加求和器任务描述:设计一个求和器,可以计算1+2+3+n(n=1000)任务分析:(1)我们用一个垂直滚动条来表示1到1000的数,这样通过移动滑块中以选择n的大小;(2)用一个文本框来显示结果;(3)使用一个按钮来控制计算开始。实现步骤:1 设置界面如图11所示:图11文本框用来显示计算结果;两个按钮一个标上“求和”一个标上“退出”;垂直滚动条用来选择数值,四个标签是用来作标记。2 设置属性属性的设置如下表:对象属性设置值Form1Caption累加器Form1BorderStyle1-Fixed Singletext1text空Label1Caption1000Label2Caption1Label3Caption当前值Label3BorderStyle1Label4Caption空Command1Caption求和Command2Caption退出所有对象的字体选“宋体”小四号属性设置完成,结果如图12所示:图123 编写事件过程(1)对“求和”按钮的Click事件编程,循环求和的终值是滚动条Vscroll1的当前值Value,程序如下:Private Sub Command1_Click() s = 0 For i = 1 To VScroll1.Value s = s + i Next i Text1.Text = s End Sub(2)对“退出”按钮编程Private Sub Command2_Click()EndEnd Sub(3)为显示当前数值编程,应该在改变了滚动条的事件里编写:Private Sub VScroll1_Change() Label4.Caption = VScroll1.ValueEnd Sub(4)对滚动条进行初始化。Private Sub Form_Load() VScroll1.Min = 1 设置最小值。 VScroll1.Max = 1000 设置最大值。 VScroll1.LargeChange = 10 设置 LargeChange. VScroll1.SmallChange = 1 设置SmallChange.End Sub六、 DoLoop语句有的时候,我们要重复做的事情,就连我们自己也不知道要重复多少遍,因为重复的次数是由某个条件来决定的,当条件满足时,要一直重复下去,直到条件不满足为止。或者是当条件不满足时重复,直到条件满足再停止。这些情况要使用DoLoop语句。DoLoop语句的格式为:Do While 语句Loop即当条件成立时做Do与Loop间的语句,直到条件不成立;或者Do 语句 Loop While 即做Do与Loop间的语句,直到条件不成立。例如,I=1 Do While I=25print II=I+1Loop又出求两个整数m,n的最大公约数,方法之一就是用辗转相除法,即(1) 令r是m除以n的余数;(2) 如果r=0说明n是m,n最大公约数,结束;(3) 否则,n作为新的被除数m,r作为新的除数n;(4) 重复(1)如果用程序来实现,就是Do r=m mod nm=nn=rLoop While r0print m【任务4】计算任意两个正整数的最大公约数任务描述:设计一个程序,由键盘任意输入两个正整数,输入这两个数的最大公约数。任务分析:(1) 用两个文本框来接收从键盘上输入的两个正整数;(2) 用一个文本框来显示结果;(3)使用一个按钮来控制计算开始。实现步骤:1 设置界面如图13所示:图13三个文本框分别用来显示m,n及计算结果;三个按钮分别为“开始”“计算”“退出”;三个标签说明三个文本框。2 设置属性属性的设置如下表:对象属性设置值Form1Caption最大公约数Form1BorderStyle1-Fixed Singletext1text清空text2text清空text3text清空Label1Caption请输入正整数Label2Caption请输入正整数Label3Caption最大公约数是Command1Caption开始Command2Caption计算Command3Caption退出所有对象的字体选“宋体”小四号属性设置完成,结果如图14所示:图14单击“开始”按钮清空所有文本框,并将光标定位在第一个文本框内;然后开始输入数据;用鼠标或Tab键移动光标到下一个文本框内;单击“计算”按钮开始计算,并将结果显示在第三个文本框内;单击“退出”按钮退出程序。3 编写事件过程(1)在“通用”区声明变量:Dim m, n, r As Integer(2)单击“开始”按钮后,清空文本框,并将光标即焦点定位在第一个文本框内Private Sub Command1_Click() Text1.Text = Text2.Text = Text3.Text = Text1.SetFocus 将焦点定位在text1内End Sub(3)“退出”按钮Private Sub Command3_Click() EndEnd Sub(4)当在第一个文本框内输入数据时,将会激发它的Change事件,所以在Text1_change中将文本框内的数据取出来,放在m里;Private Sub Text1_Change() m = Val(Text1.Text)End Sub(5)同上,取出第二文本框中的数据,放在n里Private Sub Text2_Change() n = Val(Text2.Text)End Sub(6)单击“计算”按钮后,开始求最大公约数Private Sub Command2_Click()Do r = m Mod n m = n n = r Loop While r 0 Text3.Text = Str$(m)End Sub七、 Exit If、Exit For及Exit Do语句在使用 If、 For及 Do语句时,经常会有一些特殊的情况,需要提前退出If、For或 Do语句,这时要用到Exit语句,即Exit If Exit ForExit Do例如,If option thenif flag then exit if又如,For I=1 to 2000 if flag then exit fors=s+1next I答疑解难:红绿灯红绿灯是我们天天见到的交通指挥灯,现要我们就用VB来模拟一个红绿灯变换的过程,如图15所示:图15任务描述:制作一个红、黄、绿三色构成的红绿交通灯,每隔一秒变一次灯,由绿灯变黄灯,黄灯变红灯,红灯再变黄灯,黄灯变绿灯。任务分析:要实现这个任务,我们需要准备5个图像框,如图16所示:图16利用图像框的Picture属性在第14个图像框中各存放一种图片,第5个空着。我们至始到终不让第14个图像显形,即把它们隐藏起来,也就是把它们的Visible属性设置为False。让第5个图像框的Picture属性每隔1秒钟换成下面4个中的一个,即在第1秒钟,第5个图像框的Picture属性=第1个图像的Picture属性;(显示第1张图片)在第2秒钟,第5个图像框的Picture属性=第2个图像的Picture属性;(显示第2张图片)在第3秒钟,第5个图像框的Picture属性=第3个图像的Picture属性;(显示第3张图片)在第4秒钟,第5个图像框的Picture属性=第4个图像的Picture属性;(显示第4张图片)在第5秒钟,第5个图像框的Picture属性=第1个图像的Picture属性;(显示第1张图片)如此反复,就可以看到红绿灯在不断地工作。为了实现周而复始的工作,我们在摆放图像框时,有一个技巧,即在摆放了第一个图像框Image1后,单击它选中,然后单击菜单中的“复制”将它复制下来,紧接着,单击“粘贴”,这时系统会弹出一个图17所示的询问框:图17选择“是”,这样就又出现了一个图像框,与往常不同的是它们的名字,第1个摆上去的系统把它命名为“Image1(0)”,即Image1的0号,刚才复制的那个叫“Image1(1)”,即Image1的1号,我们继续选“粘贴”,又得到“Image1(2)”,即Image1的2号,再“粘贴”一次,得到“Image1(3)”,即Image1的3号,好!我们就用这四个图像框存放下面的四幅图片。最后再单击工具箱里的图像框,产生名为Image2的第5个图像框。我们的目的是让:Image2.Picture=Image1(I).Picture I=0,1,2,3,0,1,2,3,0,1,2,3,这样我们每隔1秒钟只要改变I的值就可以了。实现步骤:1设计界面界面设计如图18所示:图182。设置属性(1) 修改图像框属性: Image1(0):单击它选中,查看属性窗口,找到Picture属性,单击后面的选择框,在出现的上单击,打开一个对话框,找到VB提供的GraphicsIconsTraffic下面有三个文件:trffc10a、trffc10b、trffc10c,选择trffc10a作为Image1(0)的Picture;同理,选择trffc10b作为Image1(1)的Picture;选择trffc10c作为Image1(2)的Picture;选择trffc10b作为Image1(3)的Picture; 将Image1(0)、Image1(1)、Image1(2)、Image1(3)的Visible属性设置为False;(2)修改窗体的属性首先单击窗体选中它(即窗体的四周出现八个小点),然后在属性窗口中做以下的操作: 把Caption属性后面的“Form1”改为“红绿灯”;如图19图19 调整窗体大小至图20所示:图20 在属性窗口中找到BorderStyle属性一项,选择其中的1-Fixed Single。固定窗体的大小;如图21 所示:图213。编写程序(1) 在“通用”区定义一个变量IDim i As Integer(2)在Form_Load()里为I赋
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司质量事故管理制度
- 公司资产购置管理制度
- 监理部年度工作总结10篇
- 江苏开放大学2025年春财务报表分析第一次模拟练习题
- 2025长途货车买卖合同书
- 2025合同范本房产独家代理协议样本
- 河南省驻马店市2024-2025学年高二下册3月月考数学试卷1附解析
- 安徽省六安市舒城县2024-2025学年高二下册期中阶段质量检测数学试卷附解析
- 2024年宁夏残疾人康复中心招聘真题
- 身份验证漏洞利用基础知识点归纳
- 《供应链管理》期末考试复习题库(含答案)
- 易制毒化学品安全管理培训
- Unit6 Presenting ideas-Project 课件-高中英语外研版必修第一册
- 北京市朝阳区招聘社区工作者考试试卷真题及答案2022
- 技术营销培训
- 气瓶的使用操作规程
- 江苏南京市北京东路小学四年级数学下册期末复习试卷(二)及答案
- 浙江中考生物知识点大全
- 金属非金属矿山安全标准化讲义
- 一人力资源转型和价值
- 机房设备安装工程及移动通信工程施工工艺图解
评论
0/150
提交评论