当前位置:文档之家› VB小程序代码

VB小程序代码

VB小程序代码
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%

End Sub

9.判断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

10.判断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

11.判断是否为素数

判断一个整数(>=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

12.切换信号灯

模拟交通信号灯的切换:

在窗体上画出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

13.求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

14.人口达到或超过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

15.输出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

16.水仙花数

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

17.添加成员列表(枚举类型)的方法

添加成员列表(枚举类型)可以用Enum语句:

如:

Public Enum Workdays

Saturday

Sunday

Monday

Tuesday

Wednesday

Thursday

Friday

End Enum

在默认情况下,枚举中的第一个常数被初始化为0,其后的常数则初始化为比起前面的常数大1的数值。

上述的枚举中常数Sunday的值为0。

Public Enum Workdays

Saturday

Sunday=0

Tuesday

Wednesday

Thursday

Friday

Invalid=-1

End Enum

该程序的第一个元素Sunday被赋值为0,Saturday为第一个元素,也被赋值为0,Tuesday 的值为2。

18.显示不同形状

在窗体上显示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

19.写入与清屏

在窗体上画一个文本框,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 Sub

20.选择机型并显示

从窗体上选择机型,并在立即窗口中显示结果:

在窗体上建立四个标签,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

Sub Command2_Click()

End

End Sub

21.用单选按钮改变字体和字号

用单选按钮改变文本框里的字体和字号:

在窗体上建立一个文本框和三个单选按钮。单选按钮的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

22.用复选框给文字加下划线和删除线

用复选框控制文本输入是否“加下划线”和“斜体显示”:

建立三个控件:一个文本框和两个复选框,复选框的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

23.在标签上显示时间

在标签Label上显示系统当前时间:

在窗体上画出一个标签和一个计时器

Private Sub Timer1_Timer()

Label1.FontName="黑体"

Label1.FontSize=36

Label1.Caption=Time$

End Sub

24.找出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

25.找出程序满足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

感谢大家支持以后会有更多的代码上传。

相关主题
文本预览
相关文档 最新文档