vb循环结构程序设计课件_第1页
vb循环结构程序设计课件_第2页
vb循环结构程序设计课件_第3页
vb循环结构程序设计课件_第4页
vb循环结构程序设计课件_第5页
已阅读5页,还剩102页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、vb循环结构程序设计 1 vb循环结构程序设计 2 n心理专家与经济学家会问的问题心理专家与经济学家会问的问题 n想象一下,如果有一张足够大、足够柔韧想象一下,如果有一张足够大、足够柔韧 的纸,把它折叠的纸,把它折叠42次,会产生什么效果?次,会产生什么效果? 你觉得会有多高?一个冰箱?一层楼?还你觉得会有多高?一个冰箱?一层楼?还 是一栋摩天大厦?是一栋摩天大厦? vb循环结构程序设计 3 n一张厚度一张厚度0.1毫米的纸,折叠毫米的纸,折叠42次就可以厚次就可以厚 到到43万公里万公里超出了地球到月球超出了地球到月球38万万 公里的距离公里的距离 n0.1*242 = 4398046511

2、10.4 n 43.9804*104 (万)(万) *103 (公里)(公里) *103(毫米)(毫米) vb循环结构程序设计 4 5-0循环折纸问题循环折纸问题 n一张厚度一张厚度0.1毫米的纸,折叠多少次就可以毫米的纸,折叠多少次就可以 达到或超过珠穆朗玛峰的达到或超过珠穆朗玛峰的8848米的高度?米的高度? vb循环结构程序设计 5 5-0循环折纸问题循环折纸问题 n一张厚度一张厚度0.1毫米的纸,折叠毫米的纸,折叠 27 次就可以次就可以 达到或超过珠穆朗玛峰的达到或超过珠穆朗玛峰的8848米的高度?米的高度? Private Sub Command1_Click() d = Val(

3、Text1.Text) limit = Val(Text2.Text) n = 0 Do While d = limit d = 2 * d n = n + 1 Loop Text3.Text = n Text4.Text = Int(d * 100 + 0.5) / 100 End Sub vb循环结构程序设计 6 n其他常见的循环问题其他常见的循环问题 n求累加和求累加和 123. 100 n使用计算器加数用于运动会累计分数或商使用计算器加数用于运动会累计分数或商 店累计营业额等。店累计营业额等。 vb循环结构程序设计 7 5.15.1循环结构程序设计的概念循环结构程序设计的概念P102P

4、102 nLoop Structure ProgrammingLoop Structure Programming n循环是指在程序设计中,从某处开始有规律地反循环是指在程序设计中,从某处开始有规律地反 复执行某一程序块的现象,复执行某一程序块的现象, n重复执行的程序块称为重复执行的程序块称为“循环体循环体”。 n VBVB循环结构语句:循环结构语句: nDoLoopDoLoop nWhileWendWhileWend nForNextForNext n5 52 Do.Loop2 Do.Loop语句语句 n前测型循环结构与后测型循环结构。前测型循环结构与后测型循环结构。 vb循环结构程序设计

5、 8 5 52 21 1 前测当型前测当型DoLoopDoLoop循环循环 nFront Test Do.Loop Loop Front Test Do.Loop Loop n首先判断条件,当条件为真(首先判断条件,当条件为真(TrueTrue)时执行循环体,)时执行循环体, 接着执行接着执行Loop Loop 语句语句, , 控制转到控制转到Do,Do,再次测试条再次测试条 件件, , 当条件为假(当条件为假(FalseFalse)时,终止循环)时,终止循环, ,执行执行 LoopLoop语句后的语句。语句后的语句。 n其语法为其语法为 DoDoWhileWhile(条件)(条件) (循环体

6、语句列)(循环体语句列) LoopLoop n说明:说明: n(l l)(循环体语句列)是一条或多条命令(循环)(循环体语句列)是一条或多条命令(循环 体),条件为体),条件为TrueTrue它们将被重复执行。它们将被重复执行。 计算计算“条件条件”的值的值 条件真?条件真? 执行循环体执行循环体 假假 真真 vb循环结构程序设计 9 求累加和求累加和 n例例5 5l l 求累加和求累加和 1 12 23 3. . 100 100 (如图(如图 5 52 2) 。 nS1=0+1S1=0+1 nS2=S1+2S2=S1+2 nS3=S2+3S3=S2+3 nS4=S3+4S4=S3+4 n n

7、S100=S99+100S100=S99+100 nS=0+1S=0+1(0+1)(0+1) nS=S+2 S=S+2 (0+1+2)(0+1+2) nS=S+3 S=S+3 (0+1+2+3)(0+1+2+3) nS=S+4 S=S+4 (0+1+2+3+4)(0+1+2+3+4) n nS=S+100 S=S+100 (0+1+2+3+4+100)(0+1+2+3+4+100) S=S+S=S+ n n n=n+1n=n+1 nS S :累加器:累加器, ,采用累加的方法,存放累采用累加的方法,存放累 加的和(开始为加的和(开始为0 0),), nn n :计数器:计数器, ,存放存放“加

8、数加数” ” ,从,从1 1开始开始 到到100100为止。为止。 vb循环结构程序设计 10 求累加和求累加和 n例例5 5l l 求累加和求累加和 1 12 23 3.100100 (如图(如图 )。)。 n流程图如图所示流程图如图所示 n n+1 S S+n 输出输出S 当当n=100 n 1 计数器赋初值计数器赋初值 S 0 累加器赋初值累加器赋初值 vb循环结构程序设计 11 设计步骤如下:设计步骤如下: 设计窗体界面设计窗体界面 命令按钮的命令按钮的ClickClick事件代码;事件代码; Private Sub command1_Click()Private Sub comman

9、d1_Click() Dim s As Integer, n As IntegerDim s As Integer, n As Integer s = 0: n = 1s = 0: n = 1 Do While n = 100Do While n = 100 s = s + ns = s + n n = n + 1n = n + 1 LoopLoop Label2.Caption = 1+2+3+.+l00= I For I = 0 To 3 Step -1.5 Print I Next Print After For :; I 01.53 初值送循环变量初值送循环变量 循环变量的值超过终值?

10、循环变量的值超过终值? 执行循环体中各个语句执行循环体中各个语句 循环变量的值加步长值循环变量的值加步长值 NextNext后的语句后的语句 是 否 vb循环结构程序设计 32 求整除的自然数求整除的自然数 n【例【例5 55 5显示显示10001000以内的所有能被以内的所有能被3737整除整除 的自然数(如图的自然数(如图5-l3 5-l3 所示)。所示)。 nn n从从1 1到到10001000,如果,如果n n被被3737整除整除: : n Mod 37 =0n Mod 37 =0 n设计步骤如下:设计步骤如下: n(1 1)窗体界面的设计与属)窗体界面的设计与属 性设置。增加一个文本

11、框性设置。增加一个文本框 Text1Text1、其其MultiLineMultiLine属性为属性为 “True”, True”, 其其ScrollBarsScrollBars属属 性为性为“2-Vertical”2-Vertical” n一个命令按钮一个命令按钮Command1Command1和和 一个框架一个框架Frame1Frame1。 vb循环结构程序设计 33 (2 2)编写代码。)编写代码。 n编写命令按钮的编写命令按钮的ClickClick事件代码:事件代码: Private Sub Command1_Click()Private Sub Command1_Click() a =

12、 a = For n = For n = 1 1 To To 10001000 If n Mod 37 = 0 Then If n Mod 37 = 0 Then a a = = a For j = 1 To 2 * i - 1 Print *; Next j Next i End Sub 不换行不换行 vb循环结构程序设计 40 5 54 4 列表框与组合框列表框与组合框 nList Box List1.Text; List1.ListIndex Print 项目数:项目数:; List1.ListCount End Sub n删除选中项目操作删除选中项目操作 Private Sub Com

13、mand2_Click() k = Val(InputBox(输入索引值输入索引值) Cls Print 删除的项目内容删除的项目内容; List1.List(k) List1.RemoveItem k End Sub vb循环结构程序设计 46 求求“同构数同构数” n【例【例5 58 8】“同构数同构数”是指这样的整数:它恰好是指这样的整数:它恰好 出现在其平方数的右端,例如出现在其平方数的右端,例如 1 1和和 5 5就是这样的就是这样的 数。试找出数。试找出 l l99999999之间的全部之间的全部“同构数同构数”(如(如 图图5-175-17所示)。所示)。 n分析:分析:l l位

14、同构数位同构数 n n应满应满 足条件:足条件:n nn2 Mod 10n2 Mod 10, n2 2位同构数位同构数 n n应满足条件:应满足条件: n nn 2 Mod l00,n 2 Mod l00, n3 3位同构数位同构数 n n应满足条件:应满足条件: n nn2 MOd 1000n2 MOd 1000, n4 4位同构数位同构数 n n应满足条件:应满足条件: n nn2 MOd 10000, n2 MOd 10000, n流程图如图流程图如图5-l8 5-l8 所示。所示。 vb循环结构程序设计 47 n窗体界面的设计参见图窗体界面的设计参见图5 51717,ClickClic

15、k事件代码事件代码 Private Sub Command1_Click()Private Sub Command1_Click() List1.ClearList1.Clear For n = 1 To 9999For n = 1 To 9999 Select Case nSelect Case n Case n 2 Mod 10Case n 2 Mod 10 List1.AddItem Format(n, ) & Format(n 2, List1.AddItem Format(n, ) & Format(n 2, ) Case n 2 Mod 100Case n 2 Mod 100 Li

16、st1.AddItem Format(n, ) & Format(n 2, List1.AddItem Format(n, ) & Format(n 2, ) Case n 2 Mod 1000Case n 2 Mod 1000 List1.AddItem Format(n, ) & Format(n 2, List1.AddItem Format(n, ) & Format(n 2, ) Case n 2 Mod 10000Case n 2 Mod 10000 List1.AddItem Format(n, ) & Format(n 2, List1.AddItem Format(n, )

17、& Format(n 2, ) End SelectEnd Select NextNext End SubEnd Sub vb循环结构程序设计 48 n【例【例5 59 9小学生做加减法的算术练习程序。小学生做加减法的算术练习程序。 n计算机连续地随机给出两位数的加减法算术题,计算机连续地随机给出两位数的加减法算术题, 要求学生回答,答对的打要求学生回答,答对的打“ ”,答错的打,答错的打“ ”。 n将做过的题目存放在列表框中备查,并随时给出将做过的题目存放在列表框中备查,并随时给出 答题的正确率(如图答题的正确率(如图5 51919所示)。所示)。 n分析:随机函数分析:随机函数RndRnd

18、返回一个返回一个00,l l)之间的随机)之间的随机 小数,小数, n为了生成某个范围内的随机整数,可以使用公式:为了生成某个范围内的随机整数,可以使用公式: nInt( Int( 最大值最大值- -最小值十最小值十1 1)* * Rnd+ Rnd+最小值)最小值) n其中,最大值和最小值为指定范围中的最大、最其中,最大值和最小值为指定范围中的最大、最 小数。小数。 vb循环结构程序设计 49 设计步骤如下:设计步骤如下: n(1 1)建立应用程序用户)建立应用程序用户 界面。界面。 n窗体设计器,首先增加一窗体设计器,首先增加一 个标签个标签Label1Label1(显示题(显示题 目)、一

19、个文本框目)、一个文本框Text1Text1 (输入答案)、一个列表(输入答案)、一个列表 框框List1List1(保存做过的题(保存做过的题 目)、一个命令按钮目)、一个命令按钮 Command1Command1、一个图像、一个图像 Image1Image1以及一个框架以及一个框架 Frame1Frame1。 n激活激活Frame1Frame1后,在其中增后,在其中增 加两个标签,加两个标签, vb循环结构程序设计 50 n(2 2)设置对象属性,表)设置对象属性,表5 53 3 属性的设置属性的设置 n n对象对象 属性属性属性值属性值说明说明 n nForm1 Tag 0.0 Form

20、1 Tag 0.0 存放题目总数存放题目总数 n nList1 Tag 0.0 List1 Tag 0.0 存放答对的题数存放答对的题数 n vb循环结构程序设计 51 n(3 3)编写代码。出题部)编写代码。出题部 分由窗体的激活分由窗体的激活 (ActivateActivate)事件代码)事件代码 完成:完成: Private Sub Form_Activate()Private Sub Form_Activate() Randomize (Time)Randomize (Time) a = Int(10 + 90 a = Int(10 + 90 * * Rnd) Rnd) b = Int

21、(10 + 90 b = Int(10 + 90 * * Rnd) Rnd) p = Int(2 p = Int(2 * * Rnd) Rnd) Select Case pSelect Case p Case 0Case 0 Label1.Caption = a & + & b Label1.Caption = a & + & b & “ = & “ = Text1.Tag = a + bText1.Tag = a + b 将本题答案放入将本题答案放入Text1.TagText1.Tag中中 Case 1Case 1 If a b Then t = a: a = b: If a b Then

22、t = a: a = b: b = tb = t Label1.Caption = a & - & Label1.Caption = a & - & b & = b & = Text1.Tag = a - bText1.Tag = a - b 将本题答案放入将本题答案放入Text1.TagText1.Tag中中 End SelectEnd Select Form1.Tag = Form1.Tag + 1Form1.Tag = Form1.Tag + 1 Text1.SelStart = 0Text1.SelStart = 0 Text1.Text = Text1.Text = End SubE

23、nd Sub vb循环结构程序设计 52 n答题部分由文本框的按住(答题部分由文本框的按住(KeyPressKeyPress)事件代码完成:)事件代码完成: Private Sub Text1_KeyPress(KeyAscii As Integer)Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 ThenIf KeyAscii = 13 Then fm = ! fm = ! If Val(Text1.Text) = Text1.Tag Then If Val(Text1.Text) = Text1.Tag Th

24、en Item = Format(Label1.Caption & Text1.Text, fm) & D Item = Format(Label1.Caption & Text1.Text, fm) & D List1.Tag = List1.Tag + 1 List1.Tag = List1.Tag + 1 Else Else Item = Format(Label1.Caption & Text1.Text, fm) & X Item = Format(Label1.Caption & Text1.Text, fm) & X End If End If List1.AddItem Ite

25、m, 0 List1.AddItem Item, 0 将题目和回答插入到列表框中的第将题目和回答插入到列表框中的第1 1项项 Label2.Caption = Label2.Caption = 共共 & Form1.Tag & & Form1.Tag & 题题, & Chr(13) & , & Chr(13) & 正确率为:正确率为: Label3.Caption = Format(List1.Tag / Form1.Tag, #0.0#%)Label3.Caption = Format(List1.Tag / Form1.Tag, #0.0#%) Form_Activate Form_Act

26、ivate 调用出题代码调用出题代码 End IfEnd If End SubEnd Sub vb循环结构程序设计 53 3 3选择和移动数据选择和移动数据 n【例【例5 51010】利用循环结构和列表框控件,】利用循环结构和列表框控件, 设计的设计的“选项移动选项移动”窗体窗体指由两个列指由两个列 表框和表框和4 4个命令按钮所构成的窗口,在个命令按钮所构成的窗口,在 WindowsWindows中常见(图中常见(图5 52121)。)。 vb循环结构程序设计 54 表表5-4 5-4 属性设置属性设置 对对 象象属属 性性属性值属性值说说 明明 List1List1 Multiselect

27、Multiselect0- None0- None不能多项选择不能多项选择 StyleStyle1-Checkbox1-Checkbox风格风格 List2List2MultiselectMultiselect2- Extended2- Extended扩展多项选择扩展多项选择 有错误有错误 vb循环结构程序设计 55 说明:说明: n(1 1)列表框的)列表框的MultiselectMultiselect属性决定了用户是否能属性决定了用户是否能 够选择多项数据:够选择多项数据: nMultiselectMultiselect0-None 0-None 不能不能 nMultlselectMul

28、tlselectl-Simple l-Simple 简单多重简单多重 nMultiselectMultiselect2-Extended 2-Extended 扩展多重扩展多重 n(2 2)简单或扩展的多重选择。)简单或扩展的多重选择。 n简单多选简单多选可以可以多次选择多项选项(直接单击鼠标左键),多次选择多项选项(直接单击鼠标左键), n扩展多选扩展多选允许用户可以一次选择相邻的多项选项允许用户可以一次选择相邻的多项选项 (ShiftShift十单击鼠标左键)或逐条选择不相邻的多项选项十单击鼠标左键)或逐条选择不相邻的多项选项 (CtrlCtrl十单击鼠标左键)十单击鼠标左键) n(3 3

29、)List1.Selected(i)List1.Selected(i)TrueTrue表示列表框表示列表框 List1List1 中的第中的第 i i1 1项选项被选中。项选项被选中。 n(4 4)List1.List(i)List1.List(i)表示列表框表示列表框List1List1中第中第i+1i+1项的值。项的值。 vb循环结构程序设计 56 (2 2)编写事件代码。)编写事件代码。 n编写窗体的读入(编写窗体的读入(LoadLoad)事件代码:)事件代码: Private Sub Form_Load()Private Sub Form_Load() List1.AddItem Li

30、st1.AddItem 电冰箱电冰箱 List1.AddItem List1.AddItem 洗衣机洗衣机 List1.AddItem List1.AddItem 彩色电视机彩色电视机 List1.AddItem List1.AddItem 组合音响组合音响 List1.AddItem List1.AddItem 影碟机影碟机 List1.AddItem List1.AddItem 电水壶电水壶 List1.AddItem List1.AddItem 饮水机饮水机 List1.AddItem List1.AddItem 微波炉微波炉 List1.AddItem List1.AddItem 照相

31、机照相机 End SubEnd Sub vb循环结构程序设计 57 编写命令按钮的编写命令按钮的ClickClick事件代码:事件代码: 右侧右侧List2List2增加增加List1List1所选项(部分增)所选项(部分增) Private Sub Command1_Click()Private Sub Command1_Click() i = 0i = 0 Do While Do While i List1.ListCounti List1.ListCount If List1.Selected(i) = True Then If List1.Selected(i) = True Then

32、 List2.AddItem List1.List(i) List2.AddItem List1.List(i) List1.RemoveItem i List1.RemoveItem i Else Else i = i + 1 i = i + 1 End If End If LoopLoop End SubEnd Sub i=List1.ListCount-1i=List1.ListCount-1 vb循环结构程序设计 58 右侧右侧List2List2增加全部增加全部List1List1项项( (全部增全部增) ) Private Sub Command2_Click()Private S

33、ub Command2_Click() For i = 0 To List1.ListCount-1For i = 0 To List1.ListCount-1 List2.AddItem List1.List(i) List2.AddItem List1.List(i) Next iNext i List1.ClearList1.Clear End SubEnd Sub vb循环结构程序设计 59 右侧右侧List2List2增加全部增加全部List1List1项项( (全部增全部增) ) Private Sub Command2_Click()Private Sub Command2_Cl

34、ick() For i = 0 To List1.ListCount - 1For i = 0 To List1.ListCount - 1 List2.AddItem List1.List(i) List2.AddItem List1.List(i) Next iNext i List1.ClearList1.Clear End SubEnd Sub 右侧右侧List2List2删除本身所选项删除本身所选项(部(部 分删)分删) Private Sub Command3_Click()Private Sub Command3_Click() i = 0i = 0 Do While i Lis

35、t2.ListCountDo While i List2.ListCount If List2.Selected(i) = True ThenIf List2.Selected(i) = True Then List1.AddItem List2.List(i) List1.AddItem List2.List(i) List2.RemoveItem i List2.RemoveItem i Else Else i = i + 1 i = i + 1 End If End If Loop Loop End SubEnd Sub vb循环结构程序设计 60 右侧右侧List2List2删除本身全

36、部删除本身全部项(全部删)项(全部删) Private Sub Command4_Click()Private Sub Command4_Click() For i = 0 To List2.ListCount - 1For i = 0 To List2.ListCount - 1 List1.AddItem List2.List(i) List1.AddItem List2.List(i) Next iNext i List2.ClearList2.Clear End SubEnd Sub vb循环结构程序设计 61 5.4.2 5.4.2 组合框组合框 (ComboBox)(ComboBo

37、x) n文本框文本框+ +列表框列表框: :兼有兼有TextBoxTextBox和和ListBoxListBox两者的功能,两者的功能, n有有3 3种形式的组合框:更改控件的种形式的组合框:更改控件的StyleStyle属性属性 n下拉组合下拉组合框:框:StyleStyle属性为属性为0 0Dropdown ComboDropdown Combo默认值默认值 n将文本框和下拉列表框组合在一起,用户从中列表框选择一个将文本框和下拉列表框组合在一起,用户从中列表框选择一个 选项,该选项就会进入文本框。选项,该选项就会进入文本框。 n简单组合简单组合框:框: StyleStyle属性为属性为l

38、lSimple ComboSimple Combo n上面文本框与下面列表框(总是被显示)简单地组合在一起,上面文本框与下面列表框(总是被显示)简单地组合在一起, 注意使用时拖动开注意使用时拖动开 n下拉列表框下拉列表框: StyleStyle属性为属性为2 2Dropdown ListDropdown List n一般只能看到一个选项,用户可以通过单击向下按钮可显示可一般只能看到一个选项,用户可以通过单击向下按钮可显示可 滚动的下拉列表框。滚动的下拉列表框。 vb循环结构程序设计 62 1 1下拉列表框下拉列表框 nDropdown ComboDropdown Combo n【例【例5 51

39、111】将例】将例5 59 9算算 术练习中的列表框改为术练习中的列表框改为 组合框(下拉列表框),组合框(下拉列表框), 如图如图5 52222 n对象属性见表对象属性见表5 55 5。 n n对对 象象 属属 性性 属性值属性值 说说 明明 n nCombo1Style 2- Dropdown List Combo1Style 2- Dropdown List 下拉列表框下拉列表框 n n Tag 0.0 Tag 0.0 存放答对的题数存放答对的题数 n n另外,增加一个命令按钮(重置)另外,增加一个命令按钮(重置)Command2Command2。 vb循环结构程序设计 63 n(3 3

40、)编写代码。出题部)编写代码。出题部 分由窗体的激活分由窗体的激活 (ActivateActivate)事件代码)事件代码 完成:完成: Private Sub Form_Activate()Private Sub Form_Activate() Randomize (Time)Randomize (Time) a = Int(10 + 90 a = Int(10 + 90 * * Rnd) Rnd) b = Int(10 + 90 b = Int(10 + 90 * * Rnd) Rnd) p = Int(2 p = Int(2 * * Rnd) Rnd) Select Case pSele

41、ct Case p Case 0Case 0 Label1.Caption = a & + & b Label1.Caption = a & + & b & “ = & “ = Text1.Tag = a + bText1.Tag = a + b 将本题答案放入将本题答案放入Text1.TagText1.Tag中中 Case 1Case 1 If a b Then t = a: a = b: If a b Then t = a: a = b: b = tb = t Label1.Caption = a & - & Label1.Caption = a & - & b & = b & = Tex

42、t1.Tag = a - bText1.Tag = a - b 将本题答案放入将本题答案放入Text1.TagText1.Tag中中 End SelectEnd Select Form1.Tag = Form1.Tag + 1Form1.Tag = Form1.Tag + 1 Text1.SelStart = 0Text1.SelStart = 0 Text1.Text = Text1.Text = End SubEnd Sub 10991099 Rnd 0Rnd 0,1)1) * *9090 IntInt +10+10 vb循环结构程序设计 64 n修改文本框修改文本框 Text1Text1

43、的按健(的按健(KeyPressKeyPress)事件代码:)事件代码: Private Sub Text1_KeyPress(KeyAscii As Integer)Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 ThenIf KeyAscii = 13 Then fm = ! fm = ! If Val(Text1.Text) = Text1.Tag Then If Val(Text1.Text) = Text1.Tag Then Item = Format(Label1.Caption & Text1.Te

44、xt, fm) & Item = Format(Label1.Caption & Text1.Text, fm) & Combo1.Tag = Combo1.Tag + 1 Combo1.Tag = Combo1.Tag + 1 Else Else Item = Format(Label1.Caption & Text1.Text, fm) & Item = Format(Label1.Caption & Text1.Text, fm) & End IfEnd If Combo1.AddItem Item, 0Combo1.AddItem Item, 0 Combo1.ListIndex =

45、0 Combo1.ListIndex = 0 Label2.Caption = Label2.Caption = 共共 & Form1.Tag & & Form1.Tag & 题题, & Chr(13) & , & Chr(13) & 正正 确率为:确率为: Label3.Caption = Format(Combo1.Tag / Form1.Tag, #0.0#%)Label3.Caption = Format(Combo1.Tag / Form1.Tag, #0.0#%) Form_ActivateForm_Activate End IfEnd If End SubEnd Sub vb循环

46、结构程序设计 65 编写命令按钮编写命令按钮Command2Command2的的ClickClick代码:代码: Private Sub Command2_Click()Private Sub Command2_Click() Form1.Tag = 0#Form1.Tag = 0# Combo1.Tag = 0#Combo1.Tag = 0# Combo1.ClearCombo1.Clear Label3.CaptionLabel3.Caption 欢迎重新开始欢迎重新开始! Label2.Caption = Label2.Caption = Form_ActivateForm_Activa

47、te Text1.SetFocusText1.SetFocus End SubEnd Sub n其他代码同例其他代码同例5- 95- 9。 n修改修改ComboBox1ComboBox1的的StyleStyle属性属性 nl lSimple ComboSimple Combo(简单组合框):(简单组合框): n0 0Dropdown ComboDropdown Combo(下拉组合框):(下拉组合框): vb循环结构程序设计 66 2 2简单组合框简单组合框 Simple ComboSimple Combo n简单组合框中的列表框总是被显示出来,比列表简单组合框中的列表框总是被显示出来,比列表

48、 框多了一个文本框可供输入。框多了一个文本框可供输入。 n【例例5 51212】“简易抽奖机简易抽奖机”。在组合框中输入号。在组合框中输入号 码,按码,按“开始开始”按钮可以得到中奖的号码(如图按钮可以得到中奖的号码(如图5 5 2323所示)。所示)。 vb循环结构程序设计 67 2 2简单组合框简单组合框 Simple ComboSimple Combo n【例【例5 51212】“简易抽奖机简易抽奖机” ” 。 n设计步骤如下:设计步骤如下: n(1 1)建立应用程序用户界面与设置对象属性。选)建立应用程序用户界面与设置对象属性。选 择择“新建新建”工程,进入窗体设计器,工程,进入窗体设

49、计器, n首先增加一个用作容器的框架首先增加一个用作容器的框架Frame1Frame1,选中,选中 Frame1Frame1,在其中增加一个组合框,在其中增加一个组合框Combo1Combo1、一个标、一个标 签签Label1Label1和一个命令按钮和一个命令按钮Command1Command1。 n将将Combo1Combo1的的 StyleStyle属性改为:属性改为:l lSimple ComboSimple Combo, n其他属性的设置参见图其他属性的设置参见图5 52424。 vb循环结构程序设计 68 vb循环结构程序设计 69 n编写组合框编写组合框Combo1Combo1的

50、按的按键键(KeyPressKeyPress)事件代码:)事件代码: Private Sub Combo1_KeyPress(KeyAscii As Private Sub Combo1_KeyPress(KeyAscii As Integer)Integer) If KeyAsciiIf KeyAscii13 Then 13 Then Combo1.AddItem Combo1.Text, 0Combo1.AddItem Combo1.Text, 0 Combo1.SelStart = 0Combo1.SelStart = 0 Combo1.SelLength = Len(Combo1.Te

51、xt)Combo1.SelLength = Len(Combo1.Text) End IfEnd If If KeyAsciiIf KeyAscii27 Then27 Then按(按(EscEsc)键后,移去选)键后,移去选 项项 If Combo1.ListIndex -1 ThenIf Combo1.ListIndex -1 Then Combo1.RemoveItem Combo1.ListIndexCombo1.RemoveItem Combo1.ListIndex End IfEnd If End IfEnd If End SubEnd Sub vb循环结构程序设计 70 n编写命令

52、按钮编写命令按钮Command1Command1的的ClickClick事件代码,使之可以事件代码,使之可以 随机地抽取奖号:随机地抽取奖号: nPrivate Sub Command1_Click()Private Sub Command1_Click() nRandomizeRandomize nn = Combo1.ListCountn = Combo1.ListCount na = Int(Rnd a = Int(Rnd * * n) n) nCombo1.ListIndex = aCombo1.ListIndex = a nMsgBoxMsgBox中奖的号码是:中奖的号码是: & C

53、hr(13)& & Chr(13)& Combo1.Text,0,Combo1.Text,0,恭喜!恭喜! nEnd SubEnd Sub vb循环结构程序设计 71 3 3下拉组合框下拉组合框 Dropdown ListDropdown List n下拉组合框看起来像是在标准的文本框右边加了下拉组合框看起来像是在标准的文本框右边加了 个下拉箭头,用鼠标单击该箭头就在文本框下打个下拉箭头,用鼠标单击该箭头就在文本框下打 开一个列表。用户从中选择一个选项,该选项就开一个列表。用户从中选择一个选项,该选项就 会进入文本框。会进入文本框。 n【例【例5 51313】在例】在例5 51212中使用下拉

54、组合框,可以中使用下拉组合框,可以 更加节省空间(如图更加节省空间(如图5 52525所示)。所示)。 n设计步骤如下:设计步骤如下: n(1 1)窗体设计器首先增加一个用作容器的框架)窗体设计器首先增加一个用作容器的框架 Frame1Frame1,选中,选中Frame1Frame1,在其中增加一个组合框,在其中增加一个组合框 Combo1Combo1,一个文本框,一个文本框Text1Text1,两个标签,两个标签Label1Label1、 Label2Label2,一个命令按钮,一个命令按钮Command1Command1和一个图像控件和一个图像控件 Image1Image1。 n组合框的属

55、性取默认值,组合框的属性取默认值, vb循环结构程序设计 72 vb循环结构程序设计 73 n编写组合框编写组合框Combo1Combo1的按键(的按键(KeyPressKeyPress)事件代码:)事件代码: Private Sub Combo1_(KeyAscii As Integer)Private Sub Combo1_(KeyAscii As Integer) If KeyAsciiIf KeyAscii13 Then13 Then Combo1.AddItem Combo1.Text, 0Combo1.AddItem Combo1.Text, 0 Combo1.SelStart =

56、 0Combo1.SelStart = 0 Combo1.SelLength = Len(Combo1.Text)Combo1.SelLength = Len(Combo1.Text) Text1.Text = Combo1.ListCountText1.Text = Combo1.ListCount End IfEnd If If KeyAscii = 27 ThenIf KeyAscii = 27 Then If Combo1.ListIndex -l ThenIf Combo1.ListIndex -l Then Combo1.RemoveItem Combo1.ListIndexCom

57、bo1.RemoveItem Combo1.ListIndex Text1.Text = Combo1.ListCountText1.Text = Combo1.ListCount End IfEnd If End IfEnd If End SubEnd Sub vb循环结构程序设计 74 算法举例算法举例-5-14-5-14水仙花数水仙花数 nAlgorithm Examples Algorithm Examples n【例【例5 51414】“水仙花数水仙花数”是指一个是指一个3 3位整数,其位整数,其 各位数字的立方和等于该数本身,各位数字的立方和等于该数本身, n如:如: 153153

58、1 13 35 53 33 33 3 n编写程序,输出所有的编写程序,输出所有的“水仙花数水仙花数”,如图,如图5 52626 所示。所示。 n分析:此题的关键是把任意分析:此题的关键是把任意3 3位数的每一位数分离位数的每一位数分离 出来。出来。 n设设a a,b b,c c分别是分别是3 3位整数位整数n n的百位数、十位数、个的百位数、十位数、个 位数,则位数,则 a=Int(n/l00)a=Int(n/l00)或或 n100n100 b=Int(n-ab=Int(n-a* *l00)/l0)l00)/l0)或或n10 Mod 10n10 Mod 10或或(n Mod 100)10(n

59、Mod 100)10 c=n-ac=n-a* *l00-bl00-b* *l0l0或或n Mod 10n Mod 10 vb循环结构程序设计 75 n命令按钮的命令按钮的ClickClick事件代码:事件代码: Private Sub Command1_Click()Private Sub Command1_Click() Dim p As IntegerDim p As Integer List1.ClearList1.Clear For n = 100 To 999For n = 100 To 999 a = Int(n / 100)a = Int(n / 100) b = Int(n -

60、 a b = Int(n - a * * 100) / 10) 100) / 10) c = n - (a c = n - (a * * 100 + b 100 + b * * 10) 10) p = a 3 + b 3 + c 3p = a 3 + b 3 + c 3 If p = n Then List1.AddItem pIf p = n Then List1.AddItem p NextNext End SubEnd Sub If n = a 3 + b 3 + c 3 Then List1.AddItem n vb循环结构程序设计 76 5-155-15趣味数学题趣味数学题 n【例【

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论