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”循环结构。

相关主题
相关文档
最新文档