VisualBasic程序设计实验指导书实验代码.docx
《VisualBasic程序设计实验指导书实验代码.docx》由会员分享,可在线阅读,更多相关《VisualBasic程序设计实验指导书实验代码.docx(43页珍藏版)》请在冰豆网上搜索。
![VisualBasic程序设计实验指导书实验代码.docx](https://file1.bdocx.com/fileroot1/2023-7/9/b80f542b-8326-4a52-adda-10aa5bddc8f8/b80f542b-8326-4a52-adda-10aa5bddc8f81.gif)
VisualBasic程序设计实验指导书实验代码
第一章
三、编程题
第2题.设计由用户在文本框Text1中输入圆的半径,在文本框Text2和文本框Text3中分别显示圆的周长和面积程序。
PrivateSubCommand1_Click()'计算按钮
Text3.Text=3.14159*Text1.Text^2
Text2.Text=2*3.14159*Text1.Text
EndSub
PrivateSubCommand2_Click()'清除按钮
Text1.Text=""
Text2.Text=""
Text3.Text=""
Text1.SetFocus'文本框获得焦点
EndSub
PrivateSubCommand3_Click()'结束按钮
End
EndSub
PrivateSubForm_Load()'也可以在属性窗口设置以下几个属性
Label1.Caption="请输入圆半径计算圆周长和面积"
Label2.Caption="输入圆半径"
Label3.Caption="圆的周长是"
EndSub
第3题.在文本框中输入一个字符串,对字符串进行字体的放大或缩小
PrivateSubCommand1_Click()'放大按钮
Text1.FontSize=30
Command1.Enabled=False
Command2.Enabled=True
Command3.Enabled=True
EndSub
PrivateSubCommand2_Click()'缩小按钮
Text1.FontSize=6
Command2.Enabled=False
Command3.Enabled=True
Command1.Enabled=True
EndSub
PrivateSubCommand3_Click()'还原按钮
Text1.FontSize=9
Command3.Enabled=False
Command1.Enabled=True
Command2.Enabled=True
EndSub
第5题.编一程序,单击“加边框”按钮,在标签框四周加上边框;单击“隐藏”按钮。
使边框不可见;单击“移动”按钮,使边框从当前位置向右移动500Twip,向下移动600Twip。
PrivateSubCommand1_Click()'加边框按钮
Label1.Visible=True
Label1.BorderStyle=1
EndSub
PrivateSubCommand2_Click()'移动按钮
Label1.Left=Label1.Left+500
Label1.Top=Label1.Top+500
'Label1.MoveLabel1.Left+500,Label1.Top+600'或者用Move方法进行移动也可。
Label1.Visible=True
EndSub
PrivateSubCommand3_Click()'隐藏按钮
Label1.Visible=False
EndSub
第7题.在文本框中输入正方体的边长,计算正方体的体积,表面积和周长。
PrivateSubText1_Change()
Label5.Caption=Val(Text1.Text^3)
Label6.Caption=6*Val(Text1.Text)^2
Label7.Caption=12*Val(Text1.Text)
EndSub
PrivateSubText1_LostFocus()
Label5.Caption=Val(Text1.Text)^3
Label6.Caption=6*Val(Text1.Text)^2
Text2.Text=12*Val(Text1.Text)
Label7.Caption=12*Val(Text1.Text)
EndSub
PrivateSubText1_KeyPress(KeyAsciiAsInteger)
IfKeyAscii=13Then
Label5.Caption=Val(Text1.Text)^3
Label6.Caption=6*Val(Text1.Text)^2
Text2.Text=12*Val(Text1.Text)
Label7.Caption=12*Val(Text1.Text)
Text1.SetFocus
EndIf
EndSub
第二章
.在窗体上使用Print方法显示图2.5所示的界面。
然后修改界面和代码,在图形框中用Print方法显示相同的内容。
PrivateSubForm_Click()
Form1.FontItalic=True
Form1.Print"Italic->VisualBasic"
Form1.FontName="楷体_gb2312"
Form1.Print"楷体->程序设计语言"
Form1.FontName="隶书"
Form1.Print"隶书->程序设计语言"
Form1.FontName="@黑体"
Form1.Print"旋转->程序设计语言"
EndSub
在图形框中输出内容的事件过程代码为:
PrivateSubForm_Click()
picture1.FontItalic=True
picture1.Print"Italic->VisualBasic"
picture1.FontName="楷体_gb2312"
picture1.Print"楷体->程序设计语言"
picture1.FontName="隶书"
picture1.Print"隶书->程序设计语言"
picture1.FontName="@隶书"
picture1.Print"旋转->程序设计语言"
EndSub
4.编程序,在图形框中输出指定范围内(范围由文本框输入)的3个随机整数和这三个随机整数和的平方根,平方根保留四位小数。
运行界面如图2.7所示。
PrivateSubCommand1_Click()
a=Val(Text1)'m为下界
b=Val(Text2)'n为上界
'以下c,d,e为产生的随机数
c=Int(Rnd()*(b-a+1)+a)'rnd()能随机产生0~1之间小数(不包括1)。
d=Int(Rnd()*(b-a+1)+a)'int()函数是取整函数,返回参数的整数部分值
e=Int(Rnd()*(b-a+1)+a)
s=Sqr(c+d+e)'sqr()函数是开平方函数
Picture1.Printc,d,e'结果在图形框picture1中打印,逗号作为打印分隔符。
Picture1.Print"三个数和的平方根=";Format(s,"#.####")
'分号分隔符为紧凑输出,format()函数设定输出表达式s的格式。
EndSub
PrivateSubCommand2_Click()
Text1=""
Text2=""
Picture1.Cls'清除图形框中的显示结果
EndSub
PrivateSubCommand3_Click()'结束
End
EndSub
6.在文本框中输入一字符串,对字符串进行放大或缩小,运行界面如图2.9所示。
提示:
(1)单击“放大”按钮,将文本框中的字符串放大2~4倍,放大倍数通过随机函数产生,倍数表达式为:
Int(Rnd*3+2)。
(2)为了使每次运行时产生不同的放大倍数,程序运行时先执行Randomize语句。
(3)同样,单击“缩小”按钮,将文本框中的字符串缩小1~3倍,缩小的倍数也通过上述方式产生。
(4)单击“还原”按钮,字体大小恢复成初始状态(字体为9磅),此时,“放大”、“缩小”按钮变成可操作状态。
(5)不能连续进行放大或缩小操作。
执行放大后,“放大”按钮呈暗淡色(不可操作),“缩小”、“还原”按钮有效。
同样执行了缩小操作后,“缩小”按钮不可操作,而“放大”、“还原”按钮有效。
PrivateSubCommand1_Click()
Randomize'初始化随机数生成器,使之产生不同规律随机数
n=Int(Rnd*3+2)'产生放大倍数(2~4倍)存入n变量中
Text1.FontSize=Text1.FontSize*n'Text1的字号在原来基础上增大n倍
Command1.Enabled=False'当前按钮呈灰色,不可用
Command2.Enabled=True
Command3.Enabled=True
EndSub
PrivateSubCommand2_Click()
Randomize'初始化随机数生成器,使之产生不同规律随机数
n=Int(Rnd*3+1)'产生缩小的倍数(1~3倍)存入n变量中
Text1.FontSize=Text1.FontSize\n'字号为整数,所以选用整除运算符“\”
Command1.Enabled=True
Command2.Enabled=False
Command3.Enabled=True
EndSub
PrivateSubCommand3_Click()
Text1.FontSize=9'还原字号为9磅
Command1.Enabled=True
Command2.Enabled=True
Command3.Enabled=False
EndSub
8.利用Shell函数执行对应的应用程序,单击窗体上的“记事本”按钮图标,执行记事本应用程序;单击窗体上的“画图”按钮图标,执行画图应用程序;单击窗体上的“计算器”按钮图标,执行计算器应用程序。
设计界面如图2.11所示。
提示:
(1)“记事本”、“画图”、“计算器”(NotePad.exe、Mspaint.exe、Calc.exe)是Windows的应用程序,可以通过“开始”菜单的“查找”命令,找到该文件。
找到后可用快捷菜单的“属性”来显示该文件的路径和文件名,将其复制下来用于Shell函数中。
(2)图标可以自行选择,也可以自已制作。
“记事本”的图标可通过“开始”→“程序”→“附件”→“画图”,单击鼠标右键,在快捷菜单的“属性”选择“更改图标”;通过按组合键“Alt+Print+Screen”复制到剪贴板;打开画图程序,粘贴剪贴板内容,截取所需的图标,以位图文件保存到磁盘;最后对命令按钮的Picture属性加入对应的图形文件。
有关shell()函数的使用参考实验书P16.
PrivateSubCommand1_Click()
i=Shell("C:
\windows\system32\notepad.exe",1)
EndSub
PrivateSubCommand2_Click()
i=Shell("C:
\windows\system32\mspaint.exe",1)
EndSub
PrivateSubCommand3_Click()
i=Shell("C:
\windows\system32\calc.exe",1)
EndSub
第三章
.单击“除法”命令按钮,计算两个数的除法(取两位小数)、整除和求余。
单击“清除”按钮,清除所有文本框的内容,并使焦点回到Text1文本框。
单击“结束”按钮,结束程序运行。
PrivateSubCommand1_Click()
Dimm%,n%
m=Val(Text1.Text)
n=Val(Text2.Text)
ifn<>0then
Text3.Text=Format(m/n,"0.00")‘用Format函数设置了除法结果保留2位小数
Text4.Text=m\n
Text5.Text=mModn‘注意mod运算符左、右必须至少有一空格
else
msgbox("除数n不能为0,请重新输入!
")
endif
EndSub
PrivateSubCommand2_Click()
Text1.Text=""
Text2=""
Text3=""
Text4=""
Text5=""
EndSub
PrivateSubCommand3_Click()
End
EndSub
4.用InputBox函数,从键盘上输入圆半径,求出圆面积、球表面积和球体积。
计算圆面积、球表面积、球体积的公式分别为:
πr2、4πr2、4/3πr3。
运行界面如图3.12所示。
PrivateSubCommand1_Click()
Constpi=3.14159‘定义常量pi
r=InputBox("输入圆半径","输入框",,100,100)
s1=pi*r^2
s2=4*pi*r^2
v=4/3*pi*r^3
Picture1.Printr‘在图形框输出
Picture2.Prints1
Picture3.Prints2
Picture4.Printv
EndSub
6.编一个华氏温度与摄氏温度之间的转换程序。
用InputBox函数输入一个温度(把输入的温度赋予一个窗体级变量);当单击“转为华氏”按钮,则将摄氏温度转换成华氏温度;单击“转为摄氏”按钮,则将华氏温度转换成摄氏温度。
转换公式为:
F=9/5*C+32摄氏温度转换成华氏温度,F为华氏温度。
C=5/9*(F-32)华氏温度转换成摄氏温度,C为摄氏温度。
参考代码如下:
DimaAsSingle‘定义窗体级模块变量a,作用域为整个窗体模块各个事件过程。
PrivateSubForm_Load()‘在窗体装入时输入a值。
a=InputBox("请输入温度"+Chr(13)+Chr(10)+"输入","输入框",,100,100)
EndSub
PrivateSubCommand1_Click()‘单击Command1按钮为求摄氏温度
Text1.Text=5/9*(a-32)
EndSub
PrivateSubCommand2_Click()‘单击Command2按钮为求华氏温度
Text2.Text=9/5*a+32
EndSub
8.设计一个收款计算程序,用户输入商品的“单价”、“数量”和“折扣”后,单击“计算”按钮或按回车键显示应付款。
PrivateSubCommand1_Click()
Label5.Caption=Text1*Text2*(1-Text3)‘注意数据类型会自动转换为数值型
EndSub
PrivateSubCommand2_Click()
Text1.Text=""
Text2.Text=""
Text3.Text=""
Label5.Caption=""
EndSub
第四章
.用InputBox函数输入三角形三边a、b、c,判断是否能构成三角形,能构成三角形,求出三角形的面积。
否则用MsgBox显示“不能构成三角形”的信息。
计算公式如下:
P=(a+b+c)/2
S=sqr(p*(p-a)*(p-b)*(p-c))
要求:
对输入的数据用IsNumeric函数对三条边进行测试,若输入非数字字符,显示“输入错误!
重新输入”。
只有三边都是数字字符才转换成数值,计算三角形的面积(保留三位小数)。
界面设计如图4.7所示。
PrivateSubCommand1_Click()
PrivateSubCommand1_Click()
a=InputBox("a")
DoWhileNotIsNumeric(a)
MsgBox("输入错误,重新输入")
a=InputBox("a")
Loop
Text1=a
a=Val(a)
b=InputBox("b")
DoWhileNotIsNumeric(b)
MsgBox("输入错误,重新输入")
b=InputBox("b")
Loop
Text2=b
b=Val(b)
c=InputBox("c")
DoWhileNotIsNumeric(c)
MsgBox("输入错误,重新输入")
c=InputBox("c")
Loop
Text3=c
c=Val(c)
Ifa+b>cAndAbs(a-b)p=(a+b+c)/2
s=Sqr(p*(p-a)*(p-b)*(p-c))
Label5.Caption=Format(s,"0.000")
Else
MsgBox"不能构成三角形",20
Command2.Value=True
EndIf
EndSub
PrivateSubCommand2_Click()
Text1.Text=""
Text2.Text=""
Text3.Text=""
Label5.Caption=""
EndSub
2.编一模拟袖珍计算器的完整程序,运行界面如图4.8所示。
要求:
(1)输入两个操作数和一个算术运算符,根据算术运算符决定所做的运算。
(2)为了保证程序的正常运行,对输入的运算数和运算符需进行检验,如在规定范围以外(输入操作数非法、运算符非法或除数为零),利用MsgBox函数或过程显示出错误信息。
(3)若输入错误,清除错的输入内容,利用SetFocus方法使焦点定位后再输入。
(4)当窗体上有多个具有焦点属性的控件时,为了确定程序运行时,使每一次按Tab键时焦点按操作数、运算符、命令按钮的次序定位,可以对每个控件的TabIndex属性设置。
(5)对多个文本框的输入数据用(LostFocus)进行测试,应防止出现争夺焦点。
可以在测试过程中使用如下判断语句。
IfNotIsNumeric(Text2)AndText2<>""Then
参考代码如下:
Dima,b
PrivateSubCommand2_Click()
Text1="":
Text2=""
Text3="":
Text4=""
EndSub
PrivateSubText1_lostfocus()
IfNotIsNumeric(Text1)Then
MsgBox"操作数非法,重新输入!
",16
Text1=""
Text1.SetFocus
Else
a=Val(Text1)
EndIf
EndSub
PrivateSubText2_lostfocus()
IfNotIsNumeric(Text2)AndText2<>""Then
MsgBox"操作数非法,重新输入!
",16
Text2=""
Text2.SetFocus
Else
b=Val(Text2)
EndIf
EndSub
PrivateSubCommand1_Click()
p=Text3
SelectCasep
Case"+"
Text4=a+b
Case"-"
Text4=a-b
Case"*"
Text4=a*b
Case"/"
Ifb=0Then
MsgBox"零为非法数,重新输入!
",16
Text2=""
Text2.SetFocus
Else
b=Val(Text2)
Text4=a/b
EndIf
CaseElse
MsgBox"运算符有错,重新输入!
",16,"出错信息"
Text3=""
Text3.SetFocus
EndSelect
EndSub
6.编制程序,用InputBox函数输入学生三门功课的成绩M1、M2、M3,计算某个学生奖学金的等级。
奖学金评定标准如下:
一等奖:
符合下列条件之一的可得一等奖。
(1)平均分大于95分者。
(2)有两门成绩是100分,且第三门功课成绩不低于80分者。
二等奖:
符合下列条件之一的可得二等奖。
(1)平均分大于90分者。
(2)有一门成绩是100分,且其他功课成绩不低于75分者。
三等奖:
各门功课成绩不低于70分者。
符合条件者就高不就低,只能获得高的那一项奖学金,在窗体上显示获奖的等级。
第一种方案:
在窗体上画一图形框picture1,不排序直接判断
PrivateSubPicture1_Click()
m1=Val(InputBox("请输入第一门功课成绩","输入框",,100,100))
m2=Val(InputBox("请输入第二门功课成绩","输入框",,100,100))
m3=Val(InputBox("请输入第三门功课成绩","输入框",,100,100))
If(m1+m2+m3)/3>95Or((m1=100Andm2=100Andm3>=80)Or(m1=100Andm3=100Andm2>=80)Or(m2=100Andm3=100Andm1>=80))Then
Picture1.Print"获得一等奖学金"
ElseIf(m1+m2+m3)/3>90Or((m1=100Andm2>=75Andm3>=75)Or(m2=100Andm1>=75Andm3>=75)Or(m3=100Andm1>=75Andm2>75))Then
Picture1.Print"获得二等奖学金"
ElseIfm1>=70Andm2>=70Andm3>=70Then
Picture1.Print"获得三等奖学金"
Else
Picture1.Print"什么都没有"
EndIf
EndSub
第二种改进方案:
在窗