VB小程序代码实例.docx
《VB小程序代码实例.docx》由会员分享,可在线阅读,更多相关《VB小程序代码实例.docx(23页珍藏版)》请在冰豆网上搜索。
![VB小程序代码实例.docx](https://file1.bdocx.com/fileroot1/2022-12/12/992d5922-b49c-4da3-82b9-f835b6b95649/992d5922-b49c-4da3-82b9-f835b6b956491.gif)
VB小程序代码实例
1.打印负数并分别计算正负数只和:
有如下10个数:
-2,73,82,-76,-1,24,321,-25,89,-20(也可以定位其他数值)
打印出其中的每个负数,分别计算并输出正数和负数的和。
程序如下:
SubForm_Click()
DimnumberASInteger
NegativeSum=0:
PostiveSum=0
Fori=1To10
number=InputBox("Enterdata:
")
Ifnumber<0Then
Printnumber;
NegativeSum=NegativeSum+number
Else
PostiveSum=PostiveSum+number
EndIf
Nexti
print
print"NegativeSum=";NegativeSum
Print"PostiveSum=";PostiveSum
EndSub
2.打印九九表:
在窗体上打印九九表:
程序如下:
PrintSubForm_Click()
FontSize=12
PrintTab(30);"9*9Table"
Print:
Print'输出两个空行
Print"*";
Fori=1To9
PrintTab(i*6);i;'打印横行序号
Nexti
Forj=1To9
Printj;"";'打印竖行序号
Fork=1Toj
temp=j*k
PrintTab(k*6);temp;"";'打印乘积
Nextk
Print'输出一个空行
Nextj
EndSub
3.打印人员名册
打印人员名册:
PrivateSubForm_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);"上海"
EndSub
4.单选按钮设置字体类型和大小
单选按钮设置字体类型和大小:
在窗体上画出两个框架,每个框架内分别画两个单选按钮,然后画两个命令按钮和一个文本框。
编写时间过程如下:
PtivateSubForm_Load()
Form1.Caption="框架用法示例"
Command1.Caption="确定"
Command2.Caption="结束"
Frame1.Caption="字体类型"
Frame2.Caption="字体大小"
Option1.Caption="魏碑"
Option2.Caption="幼圆"
Option3.Caption="16"
Option4.Caption="24"
Text1.Text="VisualBasic程序设计"
EndSub
PrivateSubCommand1.Click_()
IfOptoion1Then
Text1.FontName="魏碑"
Else
Text1.FontName="幼圆"
EndIF
IfOption3Then
Text1.FontSize=16
Else
Text1.FontSize=24
EndIf
EndSub
PrivateSubCommand2.Click_()
End
EndSub
5.计算存款利息
计算存款利息:
本金p为10000,年利率为0.125,每年计息一次,求10年的本利和是多少。
SubForm_Click()
DimpAsCurrency
p=10000:
r=0.125
t=1
Again
Ift>10ThenGoTo100
i=p*r
p=p+i
t=t+1
GoToAgain
100
Printp
EndSub
说明:
这里的“Again:
”是标号,“100”是行号。
6.交换两个列表框的项目
交换两个列表框的项目。
其中一个列表框的项目按字母升序排列,另一个列表框的项目按项目加入的先后顺序排列。
当双击某个项目时,该项目从列表框中消失,并出现在在另一个列表框中:
PrivateSubForm_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"
EndSub
PrivateSubList1_DbClick()
List2.AddItemList1.Text
List1.RemoveItemList1.ListIndex
EndSub
PrivateSubList2_DbClick()
List1.AddItemList2.Text
List2.RemoveItemList2.ListIndex
EndSub
7.交换图片
交换两个图片框中的图形:
在窗体上建立三个图片框Picture1、Picture2、Picture3,其中两个在上,一个在下。
PrivateSubForm_Click()
'交换位图
Picture3.Picture=Picture1.Picture
Picture1.Picture=Picture2.Picture
Picture2.Picture=Picture3.Picture
'把第三个图片框设置为空
Picture3.Picture=LoadPicture()
EndSub
PrivateSubForm_Load
'装入位图
Picture1.Picture=LoadPicture_
("C:
\DocumentsandSettings\AllUsers\Documents\MyPictures\1.jpg")'可自行改变路径
Picture2.Picture=LoadPicture_
("C:
\DocumentsandSettings\AllUsers\Documents\MyPictures\2.jpd")'可自行改变路径
EndSub
8.冒泡排序
从键盘上输入10个整数,用冒泡法排序(BubbleSort)法对这十个数从小到大排序:
在窗体上建立一个命令按钮,并把Caption属性设置为“ClickHeretoStart”
编写程序如下:
SubCommand1_Click()
Staticnumber(1To10)ASInteger'定义数组number为整形
Msg$="EnterNumberforSort:
"
MsgStile$="SortDemo"
Fori%=1To10
number(i%)=InputBox(Msg$,MsgTile$)
Nexti%
Fori%=10To2Step-1
Forj%=1Toi%-1
Ifnumber(j%)=number(j%+1)Then
t=number(j%+1)
number(j%+1)=number(j%)
number(j%)=t
EndIf
Nextj%
Nexti%
Fori%=1To10
Printnumber(i%)
Nexti%
EndSub
9.判断0~9数据类型--奇数或偶数
判断字母大小写及0~9数据类型--奇数或偶数:
SubForm_Click()
DimMsg,UserInput
Msg="Pleaseenteraletterornumberfrom0though9."
UserInput=InputBox(Msg)
IfLen(UserInput)<>0Then
SelectCaseAsc(UserInput)'返回ASCII码
Case65To90'大写字母
Msg="Youenteredtheuppercaseletter"
Msg=Msg&Chr(Asc(UserInput))&"!
"
Case97To122'小写字母
Msg="Youenteredthelowercaseletter"
Msg=Msg&Chr(Asc(UserInput))&"!
"
CaseElse
Msg="Youdidnotenteraletteroranumber."
EndSelect
Else
SelectCaseCDbl(UserInput)'转换为双精度数值
Case1,3,5,7,9
Msg=UserInput&"isanoddnumber"'奇数
Case0,2,4,6,8
Msg=UserInput&"isanoddnumber"'偶数
CaseElse'出界
Msg="Youenteredanumberouside"
Msg=Msg&"therequestedrange"
EndSelect
EndIf
MsgBoxMsg
EndSub
10.判断100~200的所有偶数可以分解为两个素数之和
判断100~200的所有偶数可以分解为两个素数之和。
Functionnf(nAsInteger)AsBoolean'判断n是否为素数
DimsAsBoolean
DimIAsInteger
s=False
ForI=2ToInt(Sqr(n))'如果能被2~Int(Sqr(n))中任何一个数整除,则不是素数,跳出For循环
IfnModI=0Then
ExitFor
EndIf
NextI
IfI>Int(Sqr(n))Then'如果正常跳出For循环,则I跳出循环For后的值应该是N,所以满足这个条件
s=True'当I是素数时s=true
EndIf
nf=s'当I是素数时,nf=true,否则nf=false
EndFunction
PrivateSubform_click()
DimtAsBoolean
DimqAsBoolean
DimIAsInteger
DimjAsInteger
DimaAsInteger
ForI=100To200Step2
Forj=2ToI/2'I一定可分解为一个大于它一半的数和小于它一半的数
t=nf(j)'调用Funtion(函数)nf,判断i是否是素数,把nf的值(true或flase)赋值给变量t
Ift=TrueThen'如果t是true就往下执行,否则就执行到Endif
(2)后面的nextj语句
q=nf(I-j)'调用Funtion(函数)nf,判断i-j是否是素数,把nf的值(true或flase)赋值给变量q
Ifq=TrueThen'如果q是true(说明i-j是素数)就往下执行,否则就跳到Endif
(1),继续执行j循环
Printj,I-j'当q是true和t是True同时满足时,说明I的确能分解为两个素数,就打出j和I-j的值
ExitFor'跳出j循环,判断下一个偶数
EndIf'
(1)
EndIf'
(2)
Nextj
NextI
EndSub
11.判断是否为素数
判断一个整数(>=3)是否为素数:
提示:
如果一个(>=3的)整数可以将n被2到√n(n的平方根)之间的所有整数除,如果都除不尽,则n为素数()质数,否则n为非素数(合数)。
编写程序如下:
SubForm_Click()
DimnAsInteger
n=InputBox("请输入一个正整数(>=3):
")
k=Int(Spr(n))'取不大于n的平方根的最大整数
i=2
Swit=0
Whilei<=kAndSwit=0
IfnModi=0Then
Swit=1
Else
i=i+1
EndIf
Wend
IfSwit=0Then
Printn;"是一个素数"
Else
Printn;"不是素数"
EndIf
EndSub
说明:
这里的Swit是一个标志变量。
Swit=0标志着n未被任何一个正整数整除过;如果被整除过,则Swit=1。
上述程序也可以写成:
用For…….Next语句:
SubForm_Click()
DimIasInteger,NAsInteger
N=val(InputBox(""))
ForI=2toint(Sqr(N))
IfNModI=0ThenExitFor
NextI
IfI>int(Sqr(N))Then
PrintN&"是素数"
Else
PrintN&"不是素数"
EndIf
EndSub
用While….Wend循环:
SubForm_Click()
DimIAsInteger,NAsInteger
N=Val(InputBox(""))
I=2
c=Int(Sqr(N))
DoWhileI<=c
IfNModI=0ThenExitDo
I=I+1'在For以外的
Loop
IfI>cThen
PrintN&"是素数"
Else
PrintN&"不是素数"
EndIf
EndSub
法2:
一个数n是素数的条件:
不能被2~n-1整除
用For…….Next语句
SubForm_Click()
DimIasInteger,NAsInteger
N=val(InputBox(""))
ForI=2toN-1
IfNModI=0ThenExitFor'如果能被2~N-1中任何一个数整除,则不是素数,跳出For循环
NextI
IfI>=NThen'如果正常跳出For循环,则I跳出循环For后的值应该是N,所以满足这个条件
PrintN&"是素数"
Else
PrintN&"不是素数"
EndIf
EndSub
12.切换信号灯
模拟交通信号灯的切换:
在窗体上画出3个图像框和两个命令按钮Command1(切换信号)和Command2(结束程序)。
三个图像框分别装有红、绿、蓝三的信号标志的图片。
编写如下事件过程:
PrivateSubForm_Load()
Image2.Visible=Flase
Image3.Visible=Flase
EndSub
PrivateSubCommand1_Click()
IfImage1.Visible=TrueThen
Image1.Visible=False
Image2.Visible=Ture
ElseIfImage2.Visible=TureThen
Image2.Visible=False
Image3.Visible=True
Else
Image3.Visible=False
Image2.Visible=True
EndIf
EndSub
PrivateSubCommdan2_Click()
End
EndSub
13.求N!
求N的阶乘N!
(N为自然数):
程序如下:
SubForm_Click()
DimNAsInteger
N=InputBox("enterN:
")
k=1
Fori=1ToN
k=k*i
Nexti
PrintN;"N!
=";k
EndSub
该程序也可以写成:
SubForm_Click()
DimNAsInteger
N=InputBox("enterN:
")
k=1:
m=1
Fori=1ToN
k=k*i:
m=m+1
Nexti
PrintN;"N!
=";k
EndSub
程序也可以这样写:
PrivateSubcommand1_Click()
DimIAsInteger,fAsDouble,nAsInteger
n=InputBox("输入一个自然数:
","输入提示","")
f=1
ForI=1TonStep1
f=f*INextIText1.Text=f
EndSub
PrivateSubCommand2_Click()
End
EndSub
14.人口达到或超过70亿所需年数
假设目前世界人口约为60亿,如果以每年1.4%的速度增长,多少年后世界人口达到60亿或超过60亿?
程序如下:
SubForm_Click()
DimpASDouble
DimrASSingle
DimnASInteger
P=6000000000#
r=0.014
n=0
DoUntilp>=7000000000#
p=p*(1+r)
n=n+1
Loop
Printn;"年后世界人口达到";p
EndSub
上述所用是“DoUntil……Loop”循环结构。
该程序若改用“Do……LoopUntil”循环,则程序为:
SubForm_Click()
DimpASDouble
DimrASSingle
DimnASInteger
P=6000000000#
r=0.014
n=0
Do
p=p*(1+r)
n=n+1
LoopUntilp>=7000000000#
Printn;"年后世界人口达到";p
EndSub
15.输出100~300之间的所有素数
输出100~300间的所有素数:
程序如下:
SubForm_Click()
Forn=101To300step2
k=Int(Spr(n))'取不大于n的平方根的最大整数
i=2
Swit=0
Whilei<=kAndSwit=0
IfnModi=0Then
Swit=1
Else
i=i+1
EndIf
Wend
IfSwit=0Then
d=d+1
IfdMod5=0Then'输出5个数字后换行
Printn;"";
Print
Else
Printn;""
EndIf
EndIf
Nextn
EndSub
16.水仙花数
VisualBasic的"水仙花数"实现代码:
说明:
水仙花数是指一个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
……
……
编写如下事件过程:
PrivateSubForm_Click()
Dima,b,cAsInteger'a(个)b(十)c(百)
Fora=0To9
Forb=0To9
Forc=1To9
Ifa^3+b^3+c^3=a+10*b+100*cThen
MsgBox100*c+10*b+a'或写成Print100*c+10*b+a
EndIf
Nextc
Nextb
Nexta
EndSub
17.添加成员列表(枚举类型)的方法
添加成员列表(枚举类型)可以用Enum语句:
如:
PublicEnumWorkdays
Saturday
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
EndEnum
在默认情况下,枚举中的第一个常数被初始化为0,其后的常数则初始化为比起前面的常数大1的数值。
上述的枚举中常数Sunday的值为0。
PublicEnumWorkdays
Saturday
Sunday=0
Monday
Tuesday
Wednesday
Thursday
Friday
Invalid=-1
EndEnum
该程序的第一个元素Sunday被赋值为0,Saturday为第一个元素,也被赋值为0,Tuesday的值为2。
18.显示不同形状
在窗体上显示6中不同是形状:
PrivateSubForm_Click()
FontSize=12
CurrentX=350
Print"0";
Fori=1To5
Shape1(i).Left=Shape1(i-1).Left+1050
Shape1(i).Shape=1
Shape1(i).Visible=True
Curre