Get格雅VB实验指导例题.docx
《Get格雅VB实验指导例题.docx》由会员分享,可在线阅读,更多相关《Get格雅VB实验指导例题.docx(49页珍藏版)》请在冰豆网上搜索。
Get格雅VB实验指导例题
VB实验指导例题
实验AVB环境和可视化编程根底
1.
〔1〕运行界面
〔2〕参考代码:
PrivateSubCommand1_Click()
EndSub
2.模仿教材例1.1,将事件过程中自上而下移动改为自右向左移动,也要考虑文字出窗体边界的情况。
〔1〕运行界面
〔2〕参考代码:
PrivateSubCommand1_Click()
Timer1.Interval=0
Callmymove
EndSub
Submymove()
Label1.MoveLabel1.Left-20
EndSub
PrivateSubCommand2_Click()
Timer1.Interval=200
EndSub
PrivateSubTimer1_Timer()
Callmymove
EndSub
3.编写一程序,在文本框中统计在该窗口上鼠标单击的次数。
〔1〕运行界面:
〔2〕编写代码:
PrivateSubForm_Click()
Text1=Val(Text1)+1
EndSub
PrivateSubForm_Load()
Text1.Text=""
EndSub
4.代码:
PrivateSubForm_Click()
Form1.Caption="鼠标单击"
Form1.Picture=LoadPicture("d:
\1.jpg")
EndSub
PrivateSubForm_DblClick()
Form1.Caption="鼠标双击"
=LoadPicture("d:
\2.jpg")
EndSub
PrivateSubForm_Load()
Form1.Picture=LoadPicture("d:
\3.jpg")
EndSub
5.命令按钮、字号、内容和格式的复制练习
〔1〕运行界面
〔2〕参考代码:
PrivateSubCommand1_Click()
Text1.FontName="黑体"
Text1.FontSize=25
EndSub
PrivateSubCommand2_Click()
EndSub
实验B顺序结构
1.编一个华氏温度与摄氏温度之间转换的程序,要求用按钮实现转换。
既单击“华氏转摄氏〞按钮,那么将华氏温度转换为摄氏温度;同样,单击“摄氏转华氏〞按钮,那么将摄氏温度转换为华氏温度。
代码:
PrivateSubCommand1_Click()
Dimf!
c!
f=Val(Text1.Text)
c=5/9*(f-32)
Text2.Text=Format(c,"0.00")
EndSub
PrivateSubCommand2_Click()
Dimf!
c!
c=Val(Text2.Text)
f=9/5*c+32
Text1.Text=Format(f,"0.00")
EndSub
2.〔1〕运行界面
〔2〕参考代码
PrivateSubCommand1_Click()
Label1.Caption=Format(3.14*r*r,".00")
EndSub
PrivateSubCommand2_Click()
r=Val(Text1.Text)
Label2.Caption=Format(3.14*2*r,".00")
EndSub
PrivateSubText1_KeyPress(KeyAsciiAsInteger)
IfKeyAscii=13Then
IfNotIsNumeric(Text1)Then
MsgBox"输入有误,请重输入"
Text1.SelStart=0
Text1.SelLength=Len(Text1.Text)
EndIf
EndIf
EndSub
PrivateSubText1_LostFocus()
IfNotIsNumeric(Text1)Then
MsgBox"输入有非数字字符,请重新输入",,"2-2"
Text1.SelStart=0
Text1.SelLength=Len(Text1.Text)
EndIf
EndSub
3.我国有13亿人口,按人口增长0.8%计算,多少年后我国人口超过26亿。
〔1〕运行界面
〔2〕参考代码
PrivateSubCommand1_Click()
a=Int(Log
(2)/(Log(1+0.008)))+1
Text1.Text=a&"年后,我国人口超过26亿"
EndSub
4.输入一字符串,分别调用Ucase、Len函数将其转换成大写字母并显示其字符串长度
(1)
运行界面
(2)参考代码
PrivateSubCommand1_Click()
Text2.Text=UCase(Text1.Text)
Text3.Text=Len(Text1.Text)
EndSub
5.随机产生一个3位正整数,然后逆序输出,产生的随机数与逆序数同时显示。
例如,产生735,输出是537
〔1〕运行界面
〔2〕参考代码:
PrivateSubCommand1_Click()
x=Int((899+1)*Rnd+100)
a=x\100
b=(xMod100)\10
c=xMod10
Text1.Text=x
Text2.Text=c*100+b*10+a
EndSub
6.使用Mid、Left、Right函数。
在Text1文本框中输入一字符串,在label1、Label2、Label3中显示如图的效果。
(1)
运行界面
〔2〕参考代码:
PrivateSubForm_Click()
Text1.FontSize=16
Label1.FontSize=16
Label2.FontSize=16
Label3.FontSize=16
Text1.Text="VisualBasic程序设计教程(第三版)"
Label1.Caption=Left(Text1.Text,11)
Label2.Caption=Mid(Text1.Text,12,6)
Label3.Caption=Right(Text1.Text,5)
EndSub
7.Print方法练习,显示字符图形。
(1)运行界面
〔2〕参考代码:
〔a〕
PrivateSubCommand1_Click()
Print
Fori=1To5
PrintTab(13-2*i);String(2*i-1,"★");Spc(22-4*i);String(2*i-1,"★")
Nexti
EndSub
PrivateSubCommand2_Click()
EndSub
〔b〕
PrivateSubCommand1_Click()
Print
Fori=1To5
PrintTab(13-2*i);String(2*i-1,"★");String(11-2*i,"☆");String(2*i-1,"★")
Nexti
EndSub
PrivateSubCommand2_Click()
EndSub
8.
用InputBox输入一个正实数,用Print方法在一行上显示出它的平方和平方根、立方和立方根,每个数保存三位小数,其间有间隔。
(1)运行界面
(2)参考代码:
PrivateSubCommand1_Click()
x=Val(InputBox("输入一个正实数"))
Form1.PrintFormat(x*x,".000");Spc(5);Format(Sqr(x),".000");Spc(5);Format(x*x*x,".000");Spc(5);Format(x^(1/3),".000")
EndSub
实验C选择结构
一、实验目的
1掌握逻辑表达式的正确书写形式
2掌握单分支与双分支条件语句的使用。
3掌握多分支条件语句的使用。
4掌握情况语句的使用及其与多分支条件语句之间的区别。
二、实验内容
1、在购置某物品时,假设所标明的价钱x在下述范围内,所付钱y按对应所扣支付:
提示:
此题用多分支结构实现,注意计算公式和条件表达式的正确书写。
实验目的:
掌握多边if语句的正确使用
实验步骤:
1新建新工程
2要求单击窗体提示物品的价钱,最后在窗体上显示所付钱y
代码如下:
PrivateSubForm_Click()
DimxAsSingle,yAsSingle
x=Val(InputBox("请输入物品价钱:
"))
Ifx<1000Then
y=x
ElseIfx>=1000Andx<2000Then
y=0.9*x
ElseIfx>=2000Andx<3000Then
y=0.8*x
ElseIfx>=3000Then
y=0.7*x
EndIf
Print"所付钱为:
";y
EndSub
2、编一程序输入上网的时间并计算上网费用,计算的方法如下:
同时为了鼓励多上网,每月收费最多不超过150元。
提示:
首先利用多分支条件更具三个时间段算出费用,然后再用if语句对超过150元的费用设置为150元。
略:
提示和第一题类似
3、输入x,y,z三个数,按从大到小的次序显示。
实验目的:
掌握单边或嵌套if语句的使用
实验步骤:
1新建工程
2代码如下:
PrivateSubForm_click()
DimxAsInteger,bAsInteger,zAsInteger,dAsInteger
dimx!
y!
z!
x=InputBox("请输入第一个数")
y=InputBox("请输入第二个数")
z=InputBox("请输入第三个数")
Print"排序前";x;Spc(5);y;Spc(5);z
Ifxd=x:
x=y:
y=d
EndIf
Ifyd=y:
y=z:
z=d
EndIf
Ifxd=x:
x=y:
y=d
EndIf
Print"排序后";x;Spc(5);y;Spc(5);z
EndSub
4、利用实验c的思想,随机产生3个整数,按从小到大的顺序显示。
PrivateSubForm_click()
DimxAsInteger,yAsInteger,zAsInteger,dAsInteger
Randomize
x=Int(Rnd*101):
y=Int(Rnd*101):
z=Int(Rnd*101)
Print"排序前";x;Spc(5);y;Spc(5);z
Ifx>yThen
d=x:
x=y:
y=d
EndIf
Ify>zThen
d=y:
y=z:
z=d
EndIf
Ifx>yThen
d=x:
x=y:
y=d
EndIf
Print"排序后";x;Spc(5);y;Spc(5);z
EndSub
5、利用计算机解决古代数学问题“鸡兔同笼问题〞。
即在同一笼子里有总数为m只鸡和兔,鸡和兔的总脚数为n只,求鸡和兔各有多少只?
实验目的:
掌握if语句使用,分析解题中出现的可能情况,防止出现不合理的结果,提高解决实际问题的能力。
实验步骤:
1创立新工程界面如上
2代码如下:
PrivateSubForm_Load()
Label1.Caption="输入总只数"
Label2.Caption="输入总脚数"
Label3.Caption="求得鸡数"
Label4.Caption="求得兔数"
Text1.Text=""
Text2.Text=""
Text3.Text=""
Text4.Text=""
EndSub
PrivateSubForm_Load()
Label1.Caption="输入总只数"
Label2.Caption="输入总脚数"
Label3.Caption="求得鸡数"
Label4.Caption="求得兔数"
Text1.Text=""
Text2.Text=""
Text3.Text=""
Text4.Text=""
EndSub
PrivateSubText2_LostFocus()
Dimm%,n%,y%
m=Val(Text1)
n=Val(Text2)
IfnMod2<>0Then
MsgBox("脚数必定为偶数")
Text2=""
Else
y=n/2-m
Ify<0Then
MsgBox"脚数必须>=2倍的头数,",vbOKOnly,"sy2-5"
Text2=""
Else
x=m-y
Text3=x
Text4=y
EndIf
EndIf
EndSub
6、输入一元二次方程ax2+bx+c=0的系数a,b,c,计算并输出一元二次方程的连个根x1,x2.
实验步骤:
1创立一个新的工程
2代码如下:
PrivateSubCommand1_Click()
DimaAsSingle,bAsSingle,cAsSingle
a=Val(Text1.Text)
b=Val(Text2.Text)
c=Val(Text3.Text)
Ifa<>0Then
delta=b^2-4*a*c
re=-b/(2*a)
Ifdelta>0Then
sb=Sqr(delta)/(2*a)
Text4.Text=Str(re+sb)
Text5.Text=Str(re-sb)
ElseIfdelta=0Then
Text4.Text=Str(re)
Text5.Text=Str(re)
Else
xb=Sqr(-delta)/(2*a)
Text4.Text=Str(re)&"+"&Str(xb)&"i"
Text5.Text=Str(re)&"-"&Str(xb)&"i"
EndIf
Else
Ifb<>0Then
ygz=-b/c
Text4.Text=Str(ygz)
Else
Text4.Text="方程无意义!
"
EndIf
EndIf
EndSub
PrivateSubCommand2_Click()
End
EndSub
PrivateSubForm_Load()
Text1="":
Text2=""
Text3="":
Text4=""
Text5=""
EndSub
7、编一模拟袖珍计算器的完整程序,。
要求:
输入两个操作数和一个操作符,根据操作符决定所做的运算。
实验目的:
掌握selectcase语句的使用
1新建一个工程
2代码如下:
PrivateSubCommand1_Click()
op=Trim(Text3.Text)
SelectCaseop
Case"+"
Text4.Text=Val(Text1)+Val(Text2)
Case"-"
Text4.Text=Val(Text1)-Val(Text2)
Case"*"
Text4.Text=Val(Text1)*Val(Text2)
Case"/"
IfVal(Text2)=0Then
MsgBox"除数不能是零!
,重新输入"
Text2=""
Else
Text4.Text=Val(Text1)/Val(Text2)
EndIf
EndSelect
EndSub
PrivateSubCommand2_Click()
End
EndSub
PrivateSubForm_Load()
Text1.Text="":
Text2.Text=""
Text3.Text="":
Text4.Text=""
EndSub
PrivateSubCommand2_Click()
End
EndSub
PrivateSubForm_Load()
Text1.Text="":
Text2.Text=""
Text3.Text="":
Text4.Text=""
EndSub
8、输入一个数字〔1~7〕,分别通过select语句和choose函数两种方法用英文显示对应的星期一~星期日
实验D循环结构
一、实验目的
1掌握for语句的使用
2掌握Do语句的各种形式的使用
3掌握如何控制循环条件,防止死循环或不循环
二、实验内容
实验目的:
掌握单循环结构以及tab、trim函数的使用。
1、利用单循环结构显示如下图的界面
实验步骤:
1创立一个新的工程
2代码如下
PrivateSubForm_Click()
Fori=1To9
PrintTab(10-i);String(2*i-1,Trim(Str(i)))
Nexti
EndSub
2、用单循环实现如图的界面
实验步骤
1创立一个新的工程
2主要代码如下:
Fori=1To9
PrintTab(i);String(2*(10-i),Trim(Chr(i+64)))
Nexti
3、计算s=1+1/2+1/4+1/7+1/11+1/16+1/22+1/29+…..当第i项的值<10-4时结束。
提示:
找出规律,第i项的分母是前一项的分母加i开始计数。
可利用for循环结构的循环控制变量获得项数,当某项到达规定的精度时退出循环。
实验目的:
利用循环,计算局部级数和。
实验步骤:
1创立一个新的工程,窗体布局如右图
2代码如下:
PrivateSubCommand1_Click()
Dims!
t!
i&
s=1:
t=1:
i=i
t=t+i
s=s+1/t
i=i+1
Loop
Print"Dowhile结构";s,i-1;"项"
EndSub
PrivateSubCommand2_Click()
Dims!
t!
i&
s=1:
t=1
Fori=1To100000
t=t+i
s=s+1/t
If1/t<0.00001ThenExitFor
Nexti
Print"for结构";s,i;"项"
EndSub
4、计算
的近似值,
的计算公式为:
=
实验步骤:
1新建一个工程
2代码如下:
注意溢出问题
PrivateSubForm_Click()
DimiAsLong,sAsDouble
s=2
n%=Val(InputBox("输入n的值:
"))
Fori=1Ton
s=s*(((2*i)^2)/((2*i-1)*(2*i+1)))
Nexti
Print"当n为:
";n;"时计算结果为";s
EndSub
5、求sn=a+aa+aaa+aaaa+....+aaa(n个a),其中a是一个随机数产生的1~9〔包括1,9〕中的一个正整数,n是一个随机产生的5~10〔包括5,10〕中的一个数。
实验目的:
学会根据问题的要求找规律、写通项;掌握循环的正确使用。
实验步骤:
1新建一个工程
2代码如下:
PrivateSubForm_Click()
Dims!
t!
i!
a%,n%
a=Int(Rnd*9+1)
n=Int(Rnd*6+5)
Print"a="&a;"n="&n
t=0:
s=0
Fori=1Ton
t=t*10+a
s=s+t
Printt;
Nexti
Print"s=";s
EndSub
6、编一程序,显示出所有的水仙花数。
所谓水仙花数,是指一个3位数,其各位数字立方和等于数字本身。
提示:
解该题的方法有两种:
1利用三重循环,将三个数连接成一个3位数进行判断。
实验步骤:
1新建一个工程
2代码如下:
PrivateSubForm_Click()
Dimi%,j%,k%
Fori=1To9
Forj=0To9
Fork=0To9
a=i^3+j^3+k^3
b=i&j&k
Ifa=Val(b)Then
Printb&"是水仙花数"
EndIf
Nextk
Nextj
Nexti
EndSub
2利用单循环将一个3位数逐位别离后进行判断。
实验步骤:
1新建一个工程
2代码如下:
PrivateSubForm_Click()
Form1.FontSize=24
Forn=100To999
a=Int(n/100)'a\100
b=Int((n-a*100)/10)'(amod100)\10
c=n-(a*100+b*10)'amod10
p=a^3+b^3+