VB小练习.docx
《VB小练习.docx》由会员分享,可在线阅读,更多相关《VB小练习.docx(12页珍藏版)》请在冰豆网上搜索。
VB小练习
1.在名称为Form1的窗体上,画一个名称为Label1的标签,其标题为“计算机等级考试”,字体为宋体,字号为12,且能根据标题内容自动调整标签的大小。
再画2个名称分别为Command1、Command2,标题分别为“缩小”和“还原”的命令按钮。
要求:
编写适当的事件过程,使得单击“缩小”按钮,Label1中所显示的标题内容自动减小2个字号;单击“还原”按钮,Label1中所显示的标题内容的大小自动恢复到12号。
PrivateSubCommand1_Click()
Label1.FontSize=Label1.FontSize-2
EndSub
PrivateSubCommand2_Click()
Label1.FontSize=12
EndSub
2.在名称为Form1的窗体上画1个名称为Text1,内容为“计算机”的文本框,且显示为小四号字,再画3个命令按钮,名称分别为“Command1”、“Command2”、“Command3”,标题分别是“居左”、“居中”、“居右”,使得单击“居左”按钮时,文本框的内容靠左对齐;单击“居中”按钮时,文本框的内容居中对齐;单击“居右”按钮时,文本框的内容靠右对齐。
运行效果如图所示。
PrivateSubCommand1_Click()
Text1.Alignment=0
EndSub
PrivateSubCommand2_Click()
Text1.Alignment=2
EndSub
PrivateSubCommand3_Click()
Text1.Alignment=1
EndSub
3.窗体上有一个单选按钮数组,请利用属性窗口,为单选按钮依次添加标题为“北京”、“上海”、“广州”;再添加一个标题为“显示”的命令按钮,如图2.18.3所示。
程序的功能是在运行时,如果选中一个单选按钮后,单击“显示”按钮,则根据单选按钮的选中情况,在窗体上显示“我的出生地是北京”、“我的出生地是上海”或“我的出生地是广州”。
创建option数组
PrivateSubCommand1_Click()
Fori=0To2
IfOption1(i)ThenPrint"我的出生地是"&Option1(i).Caption
Nexti
EndSub
4.在名称为Form1的窗体上画一个标签名称为L1,标题为“业余爱好”,再画一个名称为Ch1
的复选框数组,含3个复选框,它们的Index属性分别为0、1、2,标题依次为“体育”、“音乐”、“美术”,请设置复选框的属性,使其初始状态如下所示:
PrivateSubForm_Load()
Ch1(0).Value=1
Ch1
(1).Value=False
Ch1
(1).Enabled=False
EndSub5.在名称为Form1的窗体上画一个名称为HS的水平滚动条,最大值为100,最小值为1。
再画一个名称为List1的列表框,在属性窗口中输入列表项的值,分别是1000、1500、2000,如图2.1.2所示。
请编写适当的程序,使得运行程序时,当选择列表框中的某一项,将水平滚动条的长度改变为所选中的值。
PrivateSubForm_Load()
List1.Clear
List1.AddItem1000
List1.AddItem1500
List1.AddItem2000
EndSub
PrivateSubList1_Click()
IfList1.ListIndex>-1ThenHS.Width=Val(List1.Text)
EndSub
6.在名称为Form1的窗体上画一个名称为CD1的通用对话框,通过属性窗口设置CD1的初始路径为C:
\,默认的文件名为None,标题为“保存等级考试”, 如图2.5.1所示。
解题思路
启动VisualBasic系统,创建一个Form1窗体。
在VB“工程”菜单栏中选择“部件”,选择microsoftcommondialogcontrol6.0
在该窗体上画一个通用对话框控件,通过其属性窗口将名称设为CD1,DialogTitle属性设为“保存等级考试”,FileName属性设为None,InitDir属性设为c:
\。
在PrivateSubForm_Load()事件过程中加入语句:
PrivateSubForm_Load()
CD1.ShowSave
EndSub
7.在名称为Form1,标题为“菜单”的窗体上,设计满足如下要求的菜单。
1.产生20个0~1000的随机整数,然后统计出这20个整数中大于500的所有整数之和。
程序运行后,单击命令按钮,即可求出这些整数的和,并在窗体上显示出来。
OptionBase1
PrivateSubCommand1_Click()
Dima(20)AsInteger,sumAsInteger
Randomize
Fori=1To20
a(i)=Int(Rnd*1001)
Printa(i);
Ifa(i)>500Thensum=sum+a(i)
IfiMod5=0ThenPrint
Nexti
Print"大于500的所有整数为:
";sum
EndSub
2.编写程序,单击命令按钮,即可计算出0至1000范围内不能被7整除的整数的个数,并在文本框中显示出来。
PrivateSubCommand1_Click()
DimiAsInteger,nAsInteger
Fori=0To1000
IfiMod7<>0Thenn=n+1
Nexti
Text1.Text=Str(n)
EndSub
3.编写程序随机产生30个0至1000的整数,如果不采用数组,请找出其中的最小值。
界面如图所示。
PrivateSubCommand1_Click()
DimminAsInteger,iAsInteger,nAsInteger
Randomize
min=1000
Fori=1To30
n=Int(Rnd*1001)
Printn;
IfiMod5=0ThenPrint
IfnNexti
Print"最小值为:
";min
EndSub
4.编写程序,单击“输入整数”按钮,利用InputBox函数输入一个整数,并在窗体上显示此整数的所有不同因子和因子个数。
图1是输入53后的结果,图2输入100的结果。
PrivateSubCommand1_Click()
Dimn%,i%,j%
n=InputBox("请输入一个整数")
Fori=1Ton-1
IfnModi=0Then
Printi
j=j+1
EndIf
Nexti
Print"因子数="&j
EndSub
5.程序功能是在文本框中输入一个整数n,单击命令按钮,则找出的数字按以下规律排列:
每个数是前面2个数之和,最后1个数是满足上述规律的最大的小于n的数,第一项和第二项的值为1。
如输入10,则显示的数字有:
1、1、2、3、5、8。
PrivateSubCommand1_Click()
n=Val(Text1.Text)
i=1
j=1
Printi
Printj
DoWhilei+jk=i+j
i=j
j=k
Printk
Loop
EndSub6.最大公约数和最小公倍数。
输入两个整数,求出两者的最大公约数和最小公倍数。
PrivateSubForm_Click()
n1=InputBox("请输入一个正整数n")
m1=InputBox("请输入一个正整数m")
Ifm1>n1Then
m=m1:
n=n1
Else
m=n1:
n=m1
EndIf
r=mModn
DoWhiler<>0
m=n:
n=r:
r=mModn
Loop
Print"两数的最大公约数为:
";n
Print"两数的最小公倍数为:
";m1*n1/n
EndSub
7.输入一个正整数,判断其是否为素数(只能被1和自身整除的正整数)。
PrivateSubCommand1_Click()
n=Val(Text1.Text)
Fori=2Ton-1
IfnModi<>0Then
Label1.Caption=n&"是素数"
Else
Label1.Caption=n&"不是素数"
EndIf
Nexti
EndSub1.请设计窗体界面,实现排序。
单击“产生”按钮时,在Text1中显示10个10~50之间的随机数;单击“排序”后,在Text2中显示排序之后的结果。
要求:
定义一个sub子过程,用于实现对1维数组的排序功能。
Dima(10)AsInteger
Subpx(b%())
n=UBound(b)
Fori=nTo2Step-1
Forj=1Ton-1
Ifb(j)>b(j+1)Then
t=b(j)
b(j)=b(j+1)
b(j+1)=t
EndIf
Nextj
Nexti
EndSub
PrivateSubCommand1_Click()
Text1.Text=""
Randomize
Fori=1To10
a(i)=Int(Rnd*41+10)
Text1.Text=Text1.Text&a(i)&""
Nexti
EndSub
PrivateSubCommand2_Click()
Text2.Text=""
Callpx(a%())
Fori=1To10
Text2.Text=Text2.Text&a(i)&""
Nexti
EndSub2.请设计窗体界面,实现产生30个0~1000的整数,放入一个数组,然后输出其中的最小值。
要求:
定义一个函数过程Fmin,用于实现对一维数组最小值的查找。
FunctionFmin(aAsInteger,bAsInteger)AsInteger
IfaFmin=a
Else
Fmin=b
EndIf
EndFunction
PrivateSubCommand1_Click()
DimxAsInteger,yAsInteger
Randomize
x=1000
Fori=1To30
y=Int(Rnd*1001)
x=Fmin(x,y)
Nexti
Printx
EndSub3.请在窗体上添加一个列表框,2个按钮和一个标签,实现:
单击“产生数据”:
在列表框中添加20个3位的随机整数。
单击“统计个数”:
在标签中显示其中水仙花的个数(一个数的值等于该数的各位数字的立方和时,此数被称为水仙花数,如153)。
要求:
定义一个过程judge,用于判断一个整数是否为水仙花数。
Dima(20)AsInteger
Subjudge(b%(),h%)
n=UBound(b)
Fori=1Ton
o=b(i)\100
p=(b(i)-100*o)\10
q=b(i)-100*o-10*p
Ifo^3+p^3+q^3=b(i)Then
h=h+1
EndIf
Nexti
EndSub
PrivateSubCommand1_Click()
List1.Clear
Randomize
Fori=1To20
a(i)=Int(Rnd*900+100)
List1.AddItem(a(i))
Nexti
EndSub
PrivateSubCommand2_Click()
DimxAsInteger
Calljudge(a(),x)
Label1.Caption="水仙花的个数是"&x
EndSub
4.假定在当前目录下有一个名为file1.txt文本文件,其中有若干行文本,请编写程序将文件中的内容按行显示在一个多行文本框中。
PrivateSubCommand1_Click()
Text1.Text=""
Open"D:
\file1.txt"ForInputAs#1
DoWhileNotEOF
(1)
LineInput#1,inputdata
Text1.Text=Text1.Text+inputdata+vbCrLf
Loop
Close#1
EndSub