VB上机练习题.docx
《VB上机练习题.docx》由会员分享,可在线阅读,更多相关《VB上机练习题.docx(43页珍藏版)》请在冰豆网上搜索。
VB上机练习题
Text2
Text1
1.新建工程,界面如下图,将窗体名称改为f1,标题属性为“我的第一个工程”,Text2允许多行,三个命令按钮名称分别为C1、C2、C3,单击C1按钮将Text1的字体改为黑体,Text2的字体改为隶书。
单击C2按钮将Text1的文字颜色改为红色,Text2的背景颜色改为蓝色。
单击C3按钮结束程序运行。
PrivateSubCommand1_Click()
Text1.Font=黑体
EndSub
PrivateSubCommand2_Click()
Text1.ForeColor=vbRed
Text2.ForeColor=vbBlue
EndSub
PrivateSubCommand3_Click()
End
EndSub
2.新建工程,界面如上图,运行时,鼠标在“改变窗体颜色”按钮上按下时使窗体背景色变为红色,鼠标抬起时使窗体背景色变为绿色。
鼠标在窗体空白地方按下时使Text1的内容为“在窗体上按下了鼠标”,鼠标抬起时使Text1的内容为“在窗体上抬起了鼠标”。
PrivateSubCommand1_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
Form1.BackColor=vbRed
EndSub
PrivateSubCommand1_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
Form1.BackColor=vbGreen
EndSub
PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
Text1.Text="在窗体上按下了鼠标"
EndSub
PrivateSubForm_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
Text1.Text="在窗体上抬起了鼠标"
EndSub
3.新建工程,界面如下图,运行时,在文本框Text1中输入内容的同时,在文本框Text2、Text3中显示相同的内容,但字体不同(字体自定)。
PrivateSubCommand1_Click()
Text1.Text=""
Text2.Text=""
Text3.Text=""
EndSub
PrivateSubCommand2_Click()
End
EndSub
PrivateSubText1_Change()
Text2.Text=Text1.Text
Text3.Text=Text1.Text
EndSub
注:
“字体不同”可以在属性那调“Font”
4.设计一个窗体,如上图所示。
当单击某个命令按钮时,对文本框中的文字完成相应的设置。
其中,每单击一次“增大”或“缩小”按钮将使文本框中的文字增大或缩小5磅,“粗体”按钮将使文本框中的文字加粗,“斜体”按钮将使文本框中的文字倾斜,“下划线”按钮将使文本框中的文字加下划线,“删除线”按钮将使文本框中的文字加删除线。
PrivateSubCommand1_Click()
Text1.FontSize=Text1.FontSize+5
EndSub
PrivateSubCommand2_Click()
Text1.FontSize=Text1.FontSize-5
EndSub
PrivateSubCommand3_Click()
Text1.FontBold=True
EndSub
PrivateSubCommand4_Click()
Text1.FontItalic=True
EndSub
PrivateSubCommand5_Click()
Text1.FontUnderline=True
EndSub
PrivateSubCommand6_Click()
Text1.FontStrikethru=True
EndSub
5.设计一个窗体,如下图所示。
程序中将π定义成符号常量(用Const),运行时,输入底面半径r和圆柱高h,然后单击“计算”命令按钮,在相应文本框中显示计算结果。
运算结果为只读。
PrivateSubCommand1_Click()
Constpi=3.14
h=Val(Text1)
r=Val(Text2)
Text3.Text=pi*r^2
Text4.Text=2*pi*r*h
Text5.Text=pi*r^2*h
EndSub
6.设计界面如上图所示。
单击“出题”按钮,产生任意两个【1,100】之间的随机整数于Text1、Text2中,单击“计算”按钮,求两个数的和。
运算结果为只读。
PrivateSubCommand1_Click()
Text1.Text=Int(100*Rnd+1)
Text2.Text=Int(100*Rnd+1)
EndSub
PrivateSubCommand2_Click()
a=Val(Text1.Text)
b=Val(Text1.Text)
Text3.Text=a+b
EndSub
7.设计一个数字钟表程序,界面如图所示。
运行时单击窗体,显示当前的年月日星期及时间。
PrivateSubForm_Click()
Label2.Caption=Year(Now)
Label4.Caption=Month(Now)
Label6.Caption=Day(Now)
Label9.Caption=Weekday(Now)
Label11.Caption=Time
EndSub
8.设计一个数学函数程序,界面如图所示。
程序运行时,在文本框中输入任意数值,单击相应按钮标签中显示结果。
文本框始终处于选中状态。
PrivateSubCommand1_Click()
Label3.Caption=Abs(Val(Text1))
Text1.SetFocus
Text1.SelStart=0
Text1.SelLength=Len(Text1.Text)
EndSub
PrivateSubCommand2_Click()
Label3.Caption=Sqr(Val(Text1))
Text1.SetFocus
Text1.SelStart=0
Text1.SelLength=Len(Text1.Text)
EndSub
PrivateSubCommand3_Click()
Label3.Caption=Fix(Val(Text1))
Text1.SetFocus
Text1.SelStart=0
Text1.SelLength=Len(Text1.Text)
EndSub
PrivateSubCommand4_Click()
Label3.Caption=Int(Val(Text1))
Text1.SetFocus
Text1.SelStart=0
Text1.SelLength=Len(Text1.Text)
EndSub
PrivateSubCommand5_Click()
Label3.Caption=Sgn(Val(Text1))
Text1.SetFocus
Text1.SelStart=0
Text1.SelLength=Len(Text1.Text)
EndSub
9.设计一工程,在文本框中输入一整数,单击“判断”按钮,判断能否同时被3、5、7整除,若能用MsgBox函数显示“能同时被3、5、7整除”,否则显示“不能整除”。
PrivateSubCommand1_Click()
a=Val(Text1)
IfaMod3=0AndaMod5=0AndaMod7=0Then
MsgBox"能同时被3、5、7整除"
Else
MsgBox"不能整除"
EndIf
EndSub
10.设计一个计算购书价钱的程序,界面如下图所示。
为了提高运行速度,设置Tab键序,使得输入完单价后,焦点定位到输入数量文本框中。
单击“计算总价”或用访问键,算出总价。
总价文本框要求为只读属性。
完成相应功能。
PrivateSubCommand1_Click()
a=Val(Text1)
b=Val(Text2)
Text3.Text=a*b
EndSub
PrivateSubCommand2_Click()
End
EndSub
11.设计一工程,界面如上图所示。
程序运行,单击“计算”,求出对应角度的三角函数的绝对值于文本框Text2中,同时要求选中文本框Text1内容,以便继续输入。
PrivateSubCommand1_Click()
a=Val(Text1)
b=a*3.14/180
c=Abs(Sin(b))
d=Abs(Cos(b))
Text2.Text=Text2.Text&a&Space(10)&Format(c,"0.000")_
&Space(10)&Format(d,"0.000")&vbCrLf
Text1.SetFocus
Text1.SelStart=0
Text1.SelLength=Len(Text1.Text)
EndSub
12.设计一个程序,用户界面如下图所示。
程序运行后,单击“计算”,求出应付款额;单击“清除”,清除所有文本框内容。
PrivateSubCommand1_Click()
a=Val(Text1)
b=Val(Text2)
c=Val(Text3)
Text4.Text=a*b*c
EndSub
PrivateSubCommand2_Click()
Text1.Text=""
Text2.Text=""
Text3.Text=""
Text4.Text=""
EndSub
13.输入一个学生的学号和考试成绩,然后按如图格式在图片框中输出学号、考试成绩及评语,评语:
90~100优秀;80~89良好;70~79中等;60~69及格;0~59不及格。
PrivateSubCommand1_Click()
a=Val(Text2)
SelectCasea
Case90To100
h="优秀"
Case80To89
h="良好"
Case70To79
h="中等"
Case60To69
h="及格"
Case0To59
h="不及格"
EndSelect
Picture1.Print
Picture1.Print"学号:
"&Text1.Text
Picture1.Print
Picture1.Print"分数:
"&a&Space(3)&h
EndSub
14.设计一个窗体Forml,界面如上图所示。
编写适当的事件过程,程序运行后在第一个文本框中输入圆的半径,单击“计算”按钮,分别在第二个和第三个文本框中显示圆的面积和周长。
PrivateSubCommand1_Click()
a=Val(Text1)
Text2.Text=a^2*3.14
Text3.Text=2*a*3.14
EndSub
15.设计一个程序,用户界面如下图所示。
程序运行后,单击Command1按钮,求出最大、最小数。
PrivateSubCommand1_Click()
a=Val(Text1):
b=Val(Text2):
c=Val(Text3)
Ifaa=b:
b=t
Ifaa=c:
c=t
Ifbb=c:
c=t
Text4.Text=a
Text5.Text=c
EndSub
16.界面如下图所示。
编写适当的事件过程,程序运行后在三个文本框中分别输入三角形的边长值,单击“判断并计算”按钮,判断它们是否能组成三角形,若能组成三角形在Text4中显示三角形的面积,否则在Text4中显示“FALSE”。
PrivateSubCommand1_Click()
a=Val(Text1):
b=Val(Text2):
c=Val(Text3)
Ifa+bcOrAbs(a-c)>bOrAbs(b-c)>aThen
Text4.Text="FALSE"
Else
h=(a+b+c)/2
s=Sqr(h*(h-a)*(h-b)*(h-c))
Text4.Text=Format(s,"0.00")
EndIf
EndSub
17.设计一个程序运行界面如下图所示,将输入的三个不同数,按从小到大的顺序排列。
PrivateSubCommand1_Click()
a=Val(Text1):
b=Val(Text2):
c=Val(Text3)
Ifaa=b:
b=t
Ifaa=c:
c=t
Ifbb=c:
c=t
Text1.Text=c:
Text2.Text=b:
Text3.Text=a
EndSub
18.在窗体上画两个命令按钮分别求11+22+33+44+……+nn小于100000最大值和
的累加和并将结果输出到Label1和Label2中。
PrivateSubCommand1_Click()
n=0:
s=0
Do
n=n+1
s=s+n^n
Label1.Caption=s
LoopUntils>100000
EndSub
PrivateSubCommand2_Click()
s=0
Fori=1To20
n=1
Fork=1Toi
n=n*k
Nextk
s=s+n
Nexti
Label2.Caption=s
EndSub
19.在窗体上画两个文本框输入a和n的值(a和n均为一位数字),单击命令按钮输出Sn=a+aa+aaa+aaaa+…+aa…a(最后一项n个a,例如3+33+333+3333)的值于标签中。
PrivateSubCommand1_Click()
a=Text1.text
n=Val(Text2)
Sn=0
Fori=1Ton
b=String(i,a)
Sn=Sn+Val(b)
Nexti
Label1.Caption=Sn
EndSub
20.单击命令按钮将3到200之间的所有奇数显示在列表框中。
PrivateSubCommand1_Click()
Fori=3To200Step2
List1.AddItemi
Nexti
EndSub
21.在窗体上画一文本框用于输入n值,画两个命令按钮分别求下述表达式的值
S1=
S2=1×3×5×7×…×(2n-1)并将S1、S2的结果输出到图片框。
PrivateSubCommand1_Click()
n=Val(Text1)
s=0
Fori=1Ton
s=s+(-1)^(i+1)/(2*i-1)
Nexti
S2=1
Fori=1Ton
S2=S2*(2*n-1)
Nexti
Picture1.Print4*s
Picture1.PrintS2
EndSub
22.在文本框T1中打印100~999之间的所有水仙花数。
(该数为各位数字的立方和。
例如:
153=13+53+33)
PrivateSubCommand1_Click()
Fori=100To999
a=Fix(i/100)
b=Fix(i/10)-a*10
c=i-Fix(i/10)*10
Ifa^3+b^3+c^3=iThenT1.Text=T1.Text&i&vbCrLf
Nexti
EndSub
23.有一数列,它的头2个数为0、1,以后的每个数都是其前2个数之和。
编程在文本框T1中输出所有这些数列,直到第30个数或最后一项等于1000为止,同时在另一文本框中输出它们的和。
PrivateSubCommand1_Click()
a=0:
b=1:
s=0
Text1.Text=a&vbCrLf&b&vbCrLf
Fori=1To14
s=s+a+b
a=a+b
b=a+b
Text1.Text=Text1.Text&a&vbCrLf&b&vbCrLf
Nexti
Text2.Text=s
EndSub
24.设计如下图所示界面,单击时输出相应结果,2~N之间素数在列表框中输出,要求判断素数用过程实现。
Functionh(aAsInteger)AsBoolean
DimmAsInteger,sAsBoolean
m=0
Fori=2To(a-1)
IfaModi=0Thenm=m+1
Nexti
Ifm=0Thens=TrueElses=False
h=s
EndFunction
PrivateSubCommand1_Click()
DimaAsInteger
a=Val(Text1)
Ifh(a)=FalseThen
Text2.Text="不是素数"
Else
Text2.Text="是素数"
EndIf
EndSub
PrivateSubCommand2_Click()
DimiAsInteger
a=Val(Text1)
Fori=2Toa
Ifh(i)=TrueThenList1.AddItemi
Nexti
EndSub
25.界面如上图,单击各按钮时输入行数,按此行数在窗体上显示不同的图形(参考教材练习6-15)。
PrivateSubCommand1_Click()
Cls
a=Val(InputBox("请输入行数"))
Fori=1Toa
PrintTab(i);String(a,"*")
Nexti
EndSub
PrivateSubCommand2_Click()
Cls
a=Val(InputBox("请输入行数"))
Fori=1Toa
PrintTab(a-i+1);String(2*i-1,"*")
Nexti
EndSub
PrivateSubCommand3_Click()
Cls
a=Val(InputBox("请输入行数"))
Fori=aTo1Step-1
PrintTab(a-i+1);String(2*i-1,"*")
Nexti
EndSub
PrivateSubCommand4_Click()
Cls
a=Val(InputBox("请输入行数"))
Fori=aTo1Step-1
PrintTab(a-i+1);String(2*i-1,"*");_
Space(3);String(2*(a-i)+1,"*")
Nexti
EndSub
26.设计如下图所示界面,单击时输出N!
和1!
+2!
+…+N!
结果,要求N!
用过程实现。
Functionh(nAsInteger)AsInteger
DimsAsInteger
s=1
Fori=1Ton
s=s*i
Nexti
h=s
EndFunction
PrivateSubCommand1_Click()
DimnAsInteger
n=Val(Text1)
Text2.Text=h(n)
EndSub
PrivateSubCommand2_Click()
DimnAsInteger
m=Val(Text1)
s=0
Forn=1Tom
s=s+h(n)
Nextn
Text3.Text=s
EndSub
27.编写一个程序,输出一个5*5的矩阵,该矩阵主、负对角线上元素均为1,其余元素均为2,执行结果如上图所示。
OptionBase1
DimA(5,5)AsInteger
PrivateSubForm_Click()
Fori=1To5
Forj=1To5
A(i,j)=2
Ifi=jThenA(i,j)=1
Ifi+j=6ThenA(i,j)=1
Nextj,i
Fori=1To5
CurrentY=i*300
Forj=1To5
CurrentX=j*300
PrintA(i,j);
Nextj,i
EndSub
28.界面如下图所示。