为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

VB小程序代码

2012-05-01 18页 doc 78KB 216阅读

用户头像

is_903844

暂无简介

举报
VB小程序代码1. 打印负数并分别计算正负数只和: 有如下10个数: -2,73,82,-76,-1,24,321,-25,89,-20(也可以定位其他数值) 打印出其中的每个负数,分别计算并输出正数和负数的和。 程序如下: Sub Form_Click() Dim number AS Integer NegativeSum=0:PostiveSum=0 For i=1 To 10 number=InputBox("Enter data: ") If number<0 Then ...
VB小程序代码
1. 打印负数并分别计算正负数只和: 有如下10个数: -2,73,82,-76,-1,24,321,-25,89,-20(也可以定位其他数值) 打印出其中的每个负数,分别计算并输出正数和负数的和。 程序如下: Sub Form_Click() Dim number AS Integer NegativeSum=0:PostiveSum=0 For i=1 To 10 number=InputBox("Enter data: ") If number<0 Then Print number; NegativeSum=NegativeSum+number Else PostiveSum=PostiveSum+number End If Next i print print "NegativeSum=";NegativeSum Print "PostiveSum=";PostiveSum End Sub 2. 打印九九表: 在窗体上打印九九表: 程序如下: Print Sub Form_Click() FontSize=12 Print Tab(30);"9*9 Table" Print:Print '输出两个空行 Print "* "; For i=1 To 9 Print Tab(i*6);i; '打印横行序号 Next i For j=1 To 9 Print j;" "; '打印竖行序号 For k=1 To j temp=j*k Print Tab(k*6);temp;" "; '打印乘积 Next k Print '输出一个空行 Next j End Sub 3. 打印人员名册 打印人员名册: Private Sub Form_Click() Print:Print FontName="魏碑" FontSize=16 Print "姓名";Tab(8);"年龄";Tab(16);"职务";Tab(24);"单位";Tab(32);"籍贯" Print Print "张得功";Tab(8);"25";Tab(16);"科长";Tab(24);"劳动科";Tab(32);"北京" Print "李德生";Tab(8);"32";Tab(16);"处长";Tab(24);"科研处";Tab(32);"上海" End Sub 4. 单选按钮设置字体类型和大小 单选按钮设置字体类型和大小: 在窗体上画出两个框架,每个框架内分别画两个单选按钮,然后画两个命令按钮和一个文本框。 编写时间过程如下: Ptivate Sub Form_Load() Form1.Caption="框架用法示例" Command1.Caption="确定" Command2.Caption="结束" Frame1.Caption="字体类型" Frame2.Caption="字体大小" Option1.Caption="魏碑" Option2.Caption="幼圆" Option3.Caption="16" Option4.Caption="24" Text1.Text="Visual Basic 程序设计" End Sub Private Sub Command1.Click_() If Optoion1 Then Text1.FontName="魏碑" Else Text1.FontName="幼圆" End IF If Option3 Then Text1.FontSize=16 Else Text1.FontSize=24 End If End Sub Private Sub Command2.Click_() End End Sub 5. 计算存款利息 计算存款利息: 本金p为10000,年利率为0.125,每年计息一次,求10年的本利和是多少。 Sub Form_Click() Dim p As Currency p=10000:r=0.125 t=1 Again If t>10 Then GoTo 100 i=p*r p=p+i t=t+1 GoTo Again 100 Print p End Sub 说明:这里的“Again:”是标号,“100”是行号。 6. 交换两个列表框的项目 交换两个列表框的项目。其中一个列表框的项目按字母升序排列,另一个列表框的项目按项目加入的先后顺序排列。当双击某个项目时,该项目从列表框中消失,并出现在在另一个列表框中: Private Sub Form_Load() List1.FontSize=14 List2.FontSize=14 List1.AddItem "IBM" List1.AddItem "Compad" List1.AddItem "HP" List1.AddItem "FUJI" List1.AddItem "Digital" List1.AddItem "长城" List1.AddItem "联想" List1.AddItem "Canon" List1.AddItem "四通" List1.AddItem "Acer" List1.AddItem "Nec" List1.AddItem "NCR" End Sub Private Sub List1_DbClick() List2.AddItem List1.Text List1.RemoveItem List1.ListIndex End Sub Private Sub List2_DbClick() List1.AddItem List2.Text List2.RemoveItem List2.ListIndex End Sub 7. 交换图片 交换两个图片框中的图形: 在窗体上建立三个图片框Picture1、Picture2、Picture3,其中两个在上,一个在下。 Private Sub Form_Click() '交换位图 Picture3.Picture=Picture1.Picture Picture1.Picture=Picture2.Picture Picture2.Picture=Picture3.Picture '把第三个图片框设置为空 Picture3.Picture=LoadPicture() End Sub Private Sub Form_Load '装入位图 Picture1.Picture=LoadPicture _ ("C:\Documents and Settings\All Users\Documents\My Pictures\1.jpg") '可自行改变路径 Picture2.Picture=LoadPicture _ ("C:\Documents and Settings\All Users\Documents\My Pictures\2.jpd") '可自行改变路径 End Sub 8. 冒泡排序 从键盘上输入10个整数,用冒泡法排序(Bubble Sort)法对这十个数从小到大排序: 在窗体上建立一个命令按钮,并把Caption属性设置为“Click Here to Start” 编写程序如下: Sub Command1_Click() Static number(1 To 10) AS Integer '定义数组number为整形 Msg$="Enter Number for Sort:" MsgStile$="Sort Demo" For i%=1 To 10 number(i%)=InputBox(Msg$,MsgTile$) Next i% For i%=10 To 2 Step -1 For j%=1 To i%-1 If number(j%)=number(j%+1) Then t=number(j%+1) number(j%+1)=number(j%) number(j%)=t End If Next j% Next i% For i%=1 To 10 Print number(i%) Next i% 9. End Sub 10. 判断0~9数据类型--奇数或偶数 判断字母大小写及0~9数据类型--奇数或偶数: Sub Form_Click() Dim Msg,UserInput Msg="Please enter a letter or number from 0 though 9." UserInput=InputBox(Msg) If Len(UserInput)<>0 Then Select Case Asc(UserInput) '返回ASCII码 Case 65 To 90 '大写字母 Msg="You entered the uppercase letter" Msg=Msg&Chr(Asc(UserInput))&"!" Case 97 To 122 '小写字母 Msg="You entered the lowercase letter" Msg=Msg&Chr(Asc(UserInput))&"!" Case Else Msg="You did not enter a letter or a number." End Select Else Select Case CDbl(UserInput) '转换为双精度数值 Case 1,3,5,7,9 Msg=UserInput&"is an odd number" '奇数 Case 0,2,4,6,8 Msg=UserInput&"is an odd number" '偶数 Case Else '出界 Msg="You entered a number ouside" Msg=Msg&"the requested range" End Select End If MsgBox Msg End Sub 11. 判断100~200的所有偶数可以分解为两个素数之和 判断100~200的所有偶数可以分解为两个素数之和。 Function nf(n As Integer) As Boolean '判断n是否为素数 Dim s As Boolean Dim I As Integer s = False For I = 2 To Int(Sqr(n)) '如果能被2 ~Int(Sqr(n))中任何一个数整除,则不是素数,跳出For循环 If n Mod I = 0 Then Exit For End If Next I If I > Int(Sqr(n)) Then '如果正常跳出For循环,则I跳出循环For后的值应该是N,所以满足这个条件 s = True '当I是素数时s=true End If nf = s '当I是素数时, nf=true,否则 nf=false End Function Private Sub form_click() Dim t As Boolean Dim q As Boolean Dim I As Integer Dim j As Integer Dim a As Integer For I = 100 To 200 Step 2 For j = 2 To I / 2 'I一定可分解为一个大于它一半的数和小于它一半的数 t = nf(j) '调用Funtion(函数)nf,判断i是否是素数,把nf的值(true或flase)赋值给变量t If t = True Then '如果t是true 就往下执行,否则就执行到 End if(2)后面的next j语句 q = nf(I - j) '调用Funtion(函数)nf,判断i-j是否是素数,把nf的值(true或flase)赋值给变量q If q = True Then '如果q是true(说明i-j是素数) 就往下执行,否则就跳到 End if(1),继续执行j循环 Print j, I - j '当q是true和t是True同时满足时,说明I的确能分解为两个素数,就打出 j 和 I-j 的值 Exit For '跳出j循环,判断下一个偶数 End If '(1) End If '(2) Next j Next I End Sub 12. 判断是否为素数 判断一个整数(>=3)是否为素数: 提示:如果一个(>=3的)整数可以将n被2到√n(n的平方根)之间的所有整数除,如果都除不尽,则n为素数()质数,否则n为非素数(合数)。 编写程序如下: Sub Form_Click() Dim n As Integer n=InputBox("请输入一个正整数(>=3):") k=Int(Spr(n)) '取不大于n的平方根的最大整数 i=2 Swit=0 While i<=k And Swit=0 If n Mod i=0 Then Swit=1 Else i=i+1 End If Wend If Swit=0 Then Print n;"是一个素数" Else Print n;"不是素数" End If End Sub 说明:这里的Swit是一个标志变量。Swit=0标志着n未被任何一个正整数整除过;如果被整除过,则Swit=1。 上述程序也可以写成: 用For…….Next语句: Sub Form_Click() Dim I as Integer,N As Integer N=val(InputBox("")) For I=2 to int(Sqr(N)) If N Mod I=0 Then Exit For Next I If I >int(Sqr(N)) Then Print N & "是素数" Else Print N & "不是素数" End If End Sub 用While….Wend循环: Sub Form_Click() Dim I As Integer, N As Integer N = Val(InputBox("")) I = 2 c = Int(Sqr(N)) Do While I <= c If N Mod I = 0 Then Exit Do I = I + 1 '在For以外的 Loop If I > c Then Print N & "是素数" Else Print N & "不是素数" End If End Sub 法2: 一个数n是素数的条件:不能被2 ~ n-1整除 用For…….Next语句 Sub Form_Click() Dim I as Integer,N As Integer N=val(InputBox("")) For I=2 to N-1 If N Mod I=0 Then Exit For '如果能被2 ~ N-1中任何一个数整除,则不是素数,跳出For循环 Next I If I >= N Then'如果正常跳出For循环,则I跳出循环For后的值应该是N,所以满足这个条件 Print N & "是素数" Else Print N & "不是素数" End If End Sub 13. 切换信号灯 模拟交通信号灯的切换: 在窗体上画出3个图像框和两个命令按钮Command1(切换信号)和Command2(结束程序)。三个图像框分别装有红、绿、蓝三的信号标志的图片。 编写如下事件过程: Private Sub Form_Load() Image2.Visible=Flase Image3.Visible=Flase End Sub Private Sub Command1_Click() If Image1.Visible=True Then Image1.Visible=False Image2.Visible=Ture ElseIf Image2.Visible=Ture Then Image2.Visible=False Image3.Visible=True Else Image3.Visible=False Image2.Visible=True End If End Sub Private Sub Commdan2_Click() End End Sub 14. 求N! 求N的阶乘N!(N为自然数): 程序如下: Sub Form_Click() Dim N As Integer N=InputBox("enter N:") k=1 For i=1 To N k=k*i Next i Print N;"N!=";k End Sub 该程序也可以写成: Sub Form_Click() Dim N As Integer N=InputBox("enter N:") k=1:m=1 For i=1 To N k=k*i:m=m+1 Next i Print N;"N!=";k End Sub 程序也可以这样写: Private Sub command1_Click() Dim I As Integer, f As Double, n As Integer n = InputBox("输入一个自然数:", "输入提示", "") f = 1 For I = 1 To n Step 1 f = f * I Next I Text1.Text = f End Sub Private Sub Command2_Click() End End Sub 15. 人口达到或超过70亿所需年数 假设目前世界人口约为60亿,如果以每年1.4%的速度增长,多少年后世界人口达到60亿或超过60亿? 程序如下: Sub Form_Click() Dim p AS Double Dim r AS Single Dim n AS Integer P=6000000000# r=0.014 n=0 Do Until p>=7000000000# p=p*(1+r) n=n+1 Loop Print n;"年后世界人口达到";p End Sub 上述所用是“Do Until……Loop”循环结构。 该程序若改用“Do……Loop Until”循环,则程序为: Sub Form_Click() Dim p AS Double Dim r AS Single Dim n AS Integer P=6000000000# r=0.014 n=0 Do p=p*(1+r) n=n+1 Loop Until p>=7000000000# Print n;"年后世界人口达到";p End Sub 16. 输出100~300之间的所有素数 输出100~300间的所有素数: 程序如下: Sub Form_Click() For n=101 To 300 step 2 k=Int(Spr(n)) '取不大于n的平方根的最大整数 i=2 Swit=0 While i<=k And Swit=0 If n Mod i=0 Then Swit=1 Else i=i+1 End If Wend If Swit=0 Then d=d+1 If d Mod 5=0 Then '输出5个数字后换行 Print n;" "; Print Else Print n;" " End If End If Next n End Sub 17. 水仙花数 Visual Basic 的"水仙花数"实现代码: 说明:水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153)   三位的水仙花数共有4个:153,370,371,407;   四位的水仙花数共有3个:1634,8208,9474;   五位的水仙花数共有3个:54748,92727,93084;   六位的水仙花数只有1个:548834;   七位的水仙花数共有4个:1741725,4210818,9800817,9926315;   八位的水仙花数共有3个:24678050,24678051,88593477   ……   …… 编写如下事件过程: Private Sub Form_Click() Dim a, b, c As Integer 'a(个)b(十)c(百) For a = 0 To 9 For b = 0 To 9 For c = 1 To 9 If a ^ 3 + b ^ 3 + c ^ 3 = a + 10 * b + 100 * c Then MsgBox 100 * c + 10 * b + a '或写成 Print 100 * c + 10 * b + a End If Next c Next b Next a End Sub 18. 添加成员列表(枚举类型)的方法 添加成员列表(枚举类型)可以用Enum语句: 如: Public Enum Workdays Saturday Sunday Monday Tuesday Wednesday Thursday Friday End Enum 在默认情况下,枚举中的第一个常数被初始化为0,其后的常数则初始化为比起前面的常数大1的数值。 上述的枚举中常数Sunday的值为0。 Public Enum Workdays Saturday Sunday=0 Monday Tuesday Wednesday Thursday Friday Invalid=-1 End Enum 该程序的第一个元素Sunday被赋值为0,Saturday为第一个元素,也被赋值为0,Tuesday的值为2。 19. 显示不同形状 在窗体上显示6中不同是形状: Private Sub Form_Click() FontSize=12 CurrentX=350 Print "0"; For i=1 To 5 Shape1(i).Left=Shape1(i-1).Left+1050 Shape1(i).Shape=1 Shape1(i).Visible=True CurrentX=CrrentX+750 Print i; Next i End Sub 20. 写入与清屏 在窗体上画一个文本框,Caption属性为空;再画三个命令按钮,Caption属性分别为“单击此按钮输入”、“清屏”和“结束” 。 双击Command1进入代码窗口,输入以下程序代码: Private Sub Command1_Click() Text1.FontSize=20 Text1.Text="欢迎进入VB世界" End Sub Private Sub Command2_Click() Text1.Text="" End Sub Private Sub Command13_Click() End End Sub 21. 选择机型并显示 从窗体上选择机型,并在立即窗口中显示结果: 在窗体上建立四个标签,Caption属性分别为:“机型”、“CPU主频”、“内存”和“硬盘”;建立四个组合框,Style属性分别为:1、2、2和0;建立两个命令按钮,Caption属性分别为:“确定”和“取消” ,Default属性都是True。 编写如下事件过程: Sub Form_Load() Combol1.AddItem "IBM" Combol1.AddItem "Compad" Combol1.AddItem "方正" Combol1.AddItem "联想" Combol1.AddItem "HP" Combol1.AddItem "Acer" Combol1.AddItem "DEC" Combol2.AddItem "奔腾3 900" Combol2.AddItem "奔腾3 933" Combol2.AddItem "奔腾3 1.0G" Combol2.AddItem "奔腾4 1.2G" Combol2.AddItem "奔腾4 1.5G"、 Combol2.AddItem "奔腾4 1.7G" Combol2.AddItem "奔腾4 2.0G" Combol3.AddItem "64MB" Combol3.AddItem "128MB" Combol3.AddItem "256MB" Combol4.AddItem "10GB" Combol4.AddItem "20GB" Combol4.AddItem "32GB" Combol4.AddItem "32GB" Combol4.AddItem "40GB" Combol4.AddItem "60GB" End Sub Sub Command1_Click() Debug.Print "你所选的机型为:" Debug.Print "机型:";Combo1 Debug.Print "CPU: ";Combo2 Debug.Print "内存";Combo3 Debug.Print "硬盘";Combo4 End Sub Sub Command2_Click() End End Sub 22. 用单选按钮改变字体和字号 用单选按钮改变文本框里的字体和字号: 在窗体上建立一个文本框和三个单选按钮。单选按钮的Caption属性分别为“FontName:Roman”、“FontName:Modern”和“FontName:Courier”;Name属性分别为“Roman”、“Modern”和“Courier”; 文本框的Name属性为“Display”。 编写如下事件过程: Private Sub Courier_Click() Display.FontSize=18 Display.FontName="Couier" End Sub Private Sub Modern_Click() Display.FontSize=20 Display.FontName="Modern" End Sub Private Sub Form_Roman() Display.FontSize=24 Display.FontName="Times New Roman" End Sub 23. 用复选框给文字加下划线和删除线 用复选框控制文本输入是否“加下划线”和“斜体显示”: 建立三个控件:一个文本框和两个复选框,复选框的Caption属性分别为“加下划线”和“斜体显示”。编写如下事件过程: '双击窗体 Private Sub Form_Load() Display.FontSize=20 End Sub '双击文本框 Private Sub Display_Change() '把文本框的Name属性改为Display且字号为20 If UnderOn.Vale=1 Then Display.FontUnderline=True ElseIF ItalicOn.value=True Then Display.FontItalic=True End If End Sub '双击“斜体显示”复选框 Private Sub ItalicOn_Click() '把复选框的Name属性改为ItalicOn If ItalicOn.Value=1 Then Display.FontItalic=True Else Display.FontItalic=False End If End Sub '双击“加下划线”复选框 Private Sub UnderOn_Click() '把复选框的Name属性改为UnderOn If UnderOn.Value=1 Then Display.FontUnderline=True Else Display.FontUnderline=False End If End Sub 24. 在标签上显示时间 在标签Label上显示系统当前时间: 在窗体上画出一个标签和一个计时器 Private Sub Timer1_Timer() Label1.FontName="黑体" Label1.FontSize=36 Label1.Caption=Time$ End Sub 25. 找出100至500之间满足该数等于两个素数之积的所有整数 找出100至500之间满足该数等于两个素数之积的所有整数,显示在列表框: Private Sub Command1_Click() Dim a(500) As long , i As long , j As long , flag As long Dim b() As long , c() As long n = 0 For i = 2 To 500 flag = 0 For j = 2 To i - 1 If i Mod j = 0 Then flag = 1 End If Next j If flag = 0 Then n = n + 1 ReDim Preserve b(n) b(n) = i End If Next i For i = 1 To n For j = 1 To n If b(i) * b(j) > 100 And b(i) * b(j) < 500 Then List1.AddItem b(i) * b(j) & "=" & b(i) & "*" & b(j) End If Next j Next i End Sub 26. 找出程序满足5M+7N=128的两个素数M和N 用VB找出程序满足5M+7N=128的两个素数M和N: Private Sub Command1_Click() Dim m As Integer, n As Integer For m = 1 To 25 For n = 1 To 18 If 5 * m + 7 * n = 128 And s(m) And s(n) Then Text1.Text = "m=" & m & "n=" & n End If Next n Next m End Sub Private Sub Command2_Click() Text1.Text = "" Command1.SetFocus End Sub Private Function s(x) As Boolean Dim i As Integer For i = 2 To Sqr(x) If x Mod i = o Then s = False Else: s = True End If Next i End Function Private Sub Command3_Click() End End Sub 感谢大家支持 以后会有更多的代码上传。
/
本文档为【VB小程序代码】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索