(最新版)VB程序设计实验报告
更新时间:2024-04-03 02:12:01 阅读量: 综合文库 文档下载
湖北文理学院
VB程序设计课程
实验报告
学 院 物电学院 专 业 自动化 班 级 1211 学 号 姓 名 王亮 任课教师 王福林
实验一、VB控制结构
一、实验目的
1. 掌握选择语句的使用 2. 掌握循环语句的使用
二、实验内容
1、选择语句
程序1:创建应用程序。要求:单击窗体可弹出输入框,任意输入三个数,然后按从小到大的顺序输出到窗体上。
程序2:创建应用程序。要求:单击窗体可弹出一输入框,任意输入一个正整数,在窗体上显示该整数是否为素数的字样。
2、循环语句
程序3:创建应用程序。要求:单击窗体可显示一个由“*”组成的平行四边形图案。
程序4:创建应用程序,其功能是显示所有的水仙花数。
三、实验记录
程序1如下:
Private Sub Command1_Click()
Dim a As Integer, b As Integer, c As Integer, t As Integer '定义a,b,c,t为整形变量
Cls '清屏 a = Val(InputBox(\请输入第1个数:\给a赋值 b = Val(InputBox(\请输入第2个数:\给b赋值 c = Val(InputBox(\请输入第3个数:\给c赋值
If a > b Then t = a: a = b: b = t '如果a>b,把a的值赋给t,b的值赋给a,t的值赋给b
If b > c Then '嵌套,如果b>c
t = b: b = c: c = t '把b的值赋给t,b的值赋给c,t的值赋给c
If a > b Then '再次嵌套,如果a>b t = a '把a的值赋给t a = b 'b的值赋给a b = t 't的值赋给b End If End If
Print a; \、\、\输出 a \、\、\End Sub
Private Sub Command2_Click()
End '退出程序 End Sub 程序2如下:
Private Sub Command1_Click()
Dim i As Integer, k As Integer, n As Integer '定义整形变量i,k,n n = Val(InputBox(\任意输入一个整数:\给n输入值 i = 2 'i初始值为2 k = Int(n / 2) '为整形的二分之一n的值赋给k Do While i <= k '当i小于且等于k If n Mod i = 0 Then '如果n模除i为0 Exit Do '退出循环 Else
i = i + 1 '否则i加1 End If Loop
If i > k Then Print n; \是素数\不是素数\如果i大于k,输出n的值是素数,否则输出n的值不是素数
End Sub
Private Sub Command2_Click()
End ' 退出程序 End Sub 程序3如下:
Private Sub Form_Click()
Dim m As Integer, n As Integer '定义整形变量m,n Cls '清屏 Print
For m = 1 To 6 'm赋初始值为1,当m大于6停止 Print Tab(15 - m); '第15 - m列开始输出
For n = 1 To 8 'n赋初始值为1,当n大于6停止 Print \输出* Next n
Print \输出空格 Next m End Sub 程序4如下:
Private Sub Command1_Click()
Dim i As Integer, m As Integer, n As Integer, k As Integer, sxh As Intege '定义整形变量i,m,n,k,sxk
For i = 100 To 999 'i赋初始值为100,当i大于999,停止循环 m = i \\ 100 'i除以100,结果赋给m
n = (i Mod 100) \\ 10 'i模除100后的值再除以10,最后结果赋给n k = i Mod 10 'i模除10后的值赋给k sxh = m ^ 3 + n ^ 3 + k ^ 3 'sxh作算术运算 If sxh = i Then '如果sxh等于i Print i, '输出i的值 End If Next i
End Sub
Private Sub Command2_Click()
End '程序结束 End Sub
四、实验总结
实验二、窗体和标准控件
一、实验目的
1.掌握命令按钮、标签及文本框控件的使用方法 2.掌握复选框、单选按钮及框架控件的使用方法 3.掌握列表框和组合框控件的使用方法 4.掌握滚动条和定时器控件的使用方法
二、实验内容
1、命令按钮、标签及文本框控件的使用方法
程序1:在窗体上建立两个标签、两个文本框和两个命令按钮,运行界面如左图所示。要求在运行时,两个文本框中的内容均不允许用户编辑;如果用户在“原文”的文本框中选定所需的内容,单击“复制”命令按钮,则在“输出”文本框中输出选定的内容;如果单击“结束”命令按钮,则结束程序的运行。
程序2:建立如下图所示的窗体,要求程序能对输入的“性别”和“邮政编码”、“电话号码”进行校验(性别只允许输入“男”或“女”,邮政编码必须是6位数字,电话号码必须是8位数字)。如果输入的数据不符号要求,则清空相应的文本框,并将插入点置于该框中。所有的校验工作可以在单击“退出”按钮后进行,此时,程序检查所有文本框,如有空白或内容错误,要求继续输入,否则结束程序。
2、复选框、单选按钮及框架控件的使用
程序3:在窗体中有一个标签,内有若干文字,要求通过窗体中的复选框或单选按钮确定标签中文字的字体(宋体或黑体)、字号(10号或12号)和字形(是否粗体、是否斜体),请建立应用程序。
3、列表框和组合框控件的使用
程序4:编写程序。要求:程序运行初期,在窗体左边的列表框中生成10个由小到大排列的10到100之间的随机整数,单击窗体中“右移”按钮,则左边列表框的10个数移动到右边的列表框中,并由大到小排列,此时“左移”按钮变为有效。单击“左移”按钮,右边列表框中的数又被移到左边的列表框中。单击“退出”按钮或按ESC键,可退出程序。窗体示意图如下。
程序5:建立应用程序,窗体如下图所示,有一个简单组合框、三个命令按钮、一个文本框和一个标签。要求:
? 单击“添加”按钮可将输入的内容添加到组合框中 ? 单击“删除”按钮可删除组合框中选定的项目
? 单击“统计人数”按钮,可将组合框中的项目总数输出到右边的文本框 ? 单击“退出”或按ESC键退出程序
4、滚动条和定时器控件的使用
程序6:编写程序,运行时的界面如下图所示。要求:无论是拖动滚动条上的滚动框,还是单击滚动箭头(数值递增或递减1)或滚动条(数值递增或递减10),均可以在相应的标签中反映当前数值,并动态计算出均值;单击“Reset”按钮,可将各滚动条上的滚动框复位。
程序7:利用定时器控件设计一个数字式时钟应用程序。
三、实验记录
程序1如下:
Private Sub Form_Load()
Text1.Text = \文本框是一个多功能控件,可以显示或者接收用户输入的文本信息。\给文本框指定内容 End Sub
Private Sub Command1_Click()
Text2.Text = Text1.SelText '在Text1中选定文本赋给Text2 End Sub
Private Sub Command2_Click()
End '程序结束 End Sub 程序2如下:
Private Sub Command1_Click()
If Text1 = \
'如果Text1没有输入,当前的激活文本区(焦点)在Text1
Text1.SetFocus
Exit Sub '退出过程 End If
If Text2 = \
'如果Text2没有输入,当前的激活文本区(焦点)在Text2
Text2.SetFocus
Exit Sub '退出过程 End If
If Text3 = \
'如果Text3没有输入,当前的激活文本区(焦点)在Text3
Text3.SetFocus
Exit Sub '退出过程 End If
If Text4 = \
'如果Text4没有输入,当前的激活文本区(焦点)在Text4
Text4.SetFocus
Exit Sub '退出过程 End If
If Text5 = \
'如果Text5没有输入,当前的激活文本区(焦点)在Text5
Text5.SetFocus
Exit Sub '退出过程 End If
End '退出程序 End Sub
Private Sub Text2_LostFocus()
If Text2.Text <> \如果Text2有输入
If Text2.Text <> \男\女\
'如果Text2输入的内容不是“男”和“女”
Text2.Text = \则Text2不输出
Text2.SetFocus '当前的激活文本区(焦点)在Text2 End If End If End Sub
Private Sub Text4_LostFocus()
If Text4.Text <> \如果Text4有输入
If Len(Text4.Text) <> 6 Or Not IsNumeric(Text4.Text) Then '如果Text4输入的内容不是数值或者字符串的长度不为6 Text4.Text=\则Text4不输出
Text4.SetFocus '当前的激活文本区(焦点)在Text4 End If End If End Sub
Private Sub Text5_LostFocus()
If Text5.Text <> \如果Text5有输入
If Len(Text5.Text) <> 8 Or Not IsNumeric(Text5.Text) Then '如果Text5输入的内容不是数值或者字符串的长度不为8 Text5.Text=\则Text5不输出
Text5.SetFocus '当前的激活文本区(焦点)在Text5 End If End If End Sub
程序3界面设计(程序设计界面和运行结果界面): 程序3如下:
Private Sub Option1_Click()
Text1.FontName = \宋体\中的内容为宋体 End Sub
Private Sub Option2_Click()
Text1.FontName = \黑体\中的内容为黑体 End Sub
Private Sub Option3_Click()
Text1.FontSize = 10 'Text1中的内容为字号大小为10号 End Sub
Private Sub Option4_Click()
Text1.FontSize = 12 'Text1中的内容为字号大小为12号 End Sub
Private Sub Check1_Click()
If Check1.Value = 1 Then '如果Check1被选中 Text1.FontBold = True 'Text1中的内容变为粗体 Else
Text1.FontBold = False 'Text1中的内容不变 End If End Sub
Private Sub Check2_Click()
If Check2.Value = 1 Then '如果Check2被选中 Text1.FontItalic = True 'Text1中的内容变为斜体 Else
Text1.FontItalic = False 'Text1中的内容不变 End If End Sub 程序4如下:
Private Sub Command1_Click()
Dim i As Integer, Last As Integer '定义i和Last为整型变量 Last = List1.ListCount - 1
'将List1.ListCount - 1 中被选中的内容赋給Last For i = 0 To Last '统计i大于Last 时停止循环
List2.AddItem List1.List(Last - i)
'将List2中被选中的内容添加到List1中 List1.RemoveItem Last - i '将List1中被选中的内容删除Last - i个 Next i
Command1.Enabled = False 'Command1按钮无效 Command2.Enabled = True 'Command2按钮有效 End Sub
Private Sub Command2_Click()
Dim i As Integer, Last As Integer '定义i和Last为整型变量 Last = List2.ListCount - 1
'将List2.ListCount - 1 中被选中的内容赋給Last For i = 0 To Last '统计i大于Last 时停止循环 List1.AddItem List2.List(Last - i)
'将List1中被选中的内容添加到List2 List2.RemoveItem Last - i '将List2中被选中的内容删除Last - i个 Next i
Command1.Enabled = True 'Command1按钮有效 Command2.Enabled = False 'Command2按钮无效 End Sub
Private Sub Command3_Click()
Unload Me '程序退出 End Sub
Private Sub Form_Load() Dim i As Integer
For i = 0 To 9 '统计i大于9 时停止循环 Randomize
List1.AddItem Int((90 * Rnd) + 10) '给List1中添加内容 Next i End Sub 程序5如下:
Private Sub Combo1_Change()
If Combo1.Text <> \如果Combo1输入内容不为空 Command1.Enabled = True 'Command1按钮点击有效 Command1.Default = True 'Command1为默认按钮 Else
Command1.Enabled = False '否则,Command1按钮点击无效,成灰色状态 End If End Sub
Private Sub Combo1_Click()
Command2.Enabled = True 'Command2按钮点击有效 Command2.Default = True 'Command2为默认按钮 Combo1.SetFocus '赋焦点光标在停放Combo1里 End Sub
Private Sub Command1_Click()
Combo1.AddItem Combo1.Text '添加内容到Combo1中
Combo1.Text = \输入内容为空 Combo1.SetFocus '赋焦点光标在停放Combo1里 End Sub
Private Sub Command2_Click()
x = Combo1.ListIndex '将Combo1中的内容赋給x Combo1.RemoveItem x '将Combo1中的内容中的x删除 If x < Combo1.ListCount Then '如果x小于Combo1.ListCount中的值
Combo1.ListIndex = x '将x中的内容赋給Combo1 Else
If x > 0 Then '否则,如果x大于0 Combo1.ListIndex = x - 1 'x-1赋给Combo1 Else
Command2.Enabled = False '否则,Command2按钮点击无效 Command2.Default = False 'Command2不为默认按钮 End If End If
Text1.SetFocus '赋焦点光标在停放text1里 End Sub
Private Sub Command3_Click()
Text1.Text = Combo1.ListCount '将Combo1中的内容赋給Text1 Combo1.SetFocus '赋焦点光标在停放Combo1里 End Sub
Private Sub Command4_Click()
End '程序结束 End Sub 程序6如下:
Private Sub Command1_Click()
HScroll1.Value = 0 '将数值0赋给滚动条HScroll1
HScroll2.Value = 0 '将数值0赋给滚动条HScroll2 HScroll3.Value = 0 '将数值0赋给滚动条HScroll3 End Sub
Private Sub HScroll1_Change() Label5.Caption = HScroll1.Value
'滚动条HScroll的数值显示在标签Label5上 Average '求其平均值 End Sub
Private Sub HScroll2_Change()
Label6.Caption = HScroll2.Value
'滚动条HScrol2的数值显示在标签Label6上 Average '求其平均值 End Sub
Private Sub HScroll3_Change()
Label7.Caption = HScroll3.Value
'滚动条HScrol3的数值显示在标签Label7上 Average '求其平均值 End Sub
Private Sub Average()
Dim Temp As Double '定义双精度变量Temp
Temp = (HScroll1.Value + HScroll2.Value + HScroll3.Value) / 3 '将滚动条HScroll,HScroll2,HScroll3的平均值之和除以3,结果赋给Temp Label8.Caption = CStr(Temp) 'Temp的均值显示在标签Label8上 End Sub 程序7如下:
Private Sub Form_Load()
Label1.Caption = Time '在窗体上,将现在的时间赋给标签Label1 End Sub
Private Sub Timer1_Timer() Label1.Caption = Time
'在时间控件Time1把现在的时间显示在标签Label1上 End Sub
四、实验总结
实验三、过程
一、实验目的
1.掌握过程的定义和调用的方法 2.掌握典型问题的算法求解
二、实验内容
1、过程的定义和调用
程序1:创建应用程序,要求对输入的非负整数m和n,如果m>=n,则显示组合数的值,否则显示数据出错。
二、典型问题的算法
程序2:利用下列两式求得圆周率π的近似值,忽略级数式中绝对值小于0.000001的项。
x3x5x7x9tanx?x?????...以及
3579?1程序3:如下图所示,求2-200之间的所有素数,要求每输出五个数据换一行。
程序4:利用随机函数产生20个-500到500的随机整数(包括-500和500),单击窗体时,在窗体上输出这20个数,同时在窗体上显示输出从大到小排好序的这些数。要求以每行5个数的格式显示,如下图所示。
三、实验记录
程序1如下:
Private Sub Command1_Click()
If Text1.Text = \ '如果Text1没有输入或者不是字符串 MsgBox \请输入一个非负整数!\提示\
'弹出消息框标题为“提示”,内容为\请输入一个非负整数!\ Exit Sub '退出过程 End If
If Text2.Text = \ '如果Text2没有输入或者不是字符串 MsgBox \请输入一个非负整数!\提示\
'弹出消息框标题为“提示”,内容为\请输入一个非负整数!\ Text2.SetFocus '此刻焦点指在Text2 Exit Sub '退出过程 End If
If CInt(Text1.Text) > CInt(Text2.Text) Then
'如果输入Text1的整形函数值大于Text2的整形函数值 MsgBox \数据出错,请重新输入!\警告\
'弹出消息框标题为“警告”,内容为\数据出错。请重新输入!\ Text1.Text=\不输出 Text2.Text=\不输出 Text1.SetFocus '此刻焦点指在Text1 Exit Sub '退出过程 End If
n=CInt(Text1.Text) 'Text1的整形函数值赋给n m=CInt(Text2.Text) 'Text2的整形函数值赋给m Text3.Text = CStr(Fac(m) / Fac(n) / Fac(m - n))
'组合数做运算,利用阶乘 End Sub
Private Function Fac(ByVal n As Integer) As Double
'函数的调用,定义双精度变量Fac(),整形变量n Dim i As Integer, Temp As Double '定义整形变量i, Temp Temp=1 'Temp初值为1 For i = 1 To n '做循环 Temp = Temp * i '做乘积运算 Next i
Fac = Temp '把Temp的值赋给Fac End Function '结束函数 Private Sub Command2_Click()
End '结束程序 End Sub 程序2如下:
Private Sub Form_Click()
Dim Pi As Double '定义双精度变量Pi Pi = 6 * Arctan(1 / Sqr(3)) 'Pi的等式 Print Pi '输出Pi End Sub
Private Function Arctan(ByVal x As Double) As Double
'函数的调用,定义双精度变量 Arctan(),双精度变量x Dim m As Long, Temp As Double, s As Double
'定义长整形变量m,双精度变量Temp,s Temp = 0 'Temp初值赋为0 s = x '把x的值赋给s m = 1 'm的初值赋为1
Do While Abs(s) >= 0.000001
'做循环,级数式中绝对值大于等于0.000001的项,小于则停止循环。
Temp = Temp + s 'Temp二次赋值 m = m + 2 'm加2
s = -1 * x * x * s / m * (m - 2) 's是的方程式运算 Loop
Arctan = Temp '把temp的值赋给 Arctan End Function 程序3如下:
Private Sub Form_Click()
Dim I As Integer, M As Integer '定义整形变量I、M M = 0 'M的初值赋为0
For I = 2 To 200 'I的初值赋为2,做加法循环,超出200则停止循环 If Prime(I) Then '用Prime判断I是否是素数,如果I是素数 Print I, '输出I M = M + 1 'M加1
If M Mod 5 = 0 Then Print '如果M模除5,余数为0,则换行 End If Next I End Sub
Private Function Prime(x) As Boolean '函数过程的调用 Dim I As Integer '定义整形变量I Prime = True 'x为素数,返回True For I = 2 To Int(Sqr(x))
'I的初值赋为2,做加法循环,超出Sqr(x)则停止循环 If x Mod I = 0 Then '如果x模除I,余数为0 Prime = False '则x不是素数,返回False Exit For '退出循环 End If Next I End Function 程序4如下:
Private Sub Form_Click()
Dim x(20) As Integer, M As Integer, Temp As Integer
'定义整形变量x(20)、M、 Temp Dim I As Integer, J As Integer '定义整形变量I、J M = 0 'M的初值赋为0 For I = 1 To 20 '做循环 Randomize '随机化
x(I) = Int(Rnd * 1001 - 500)
'随机函数产生20个-500到500的随机整数赋给x(I) Print x(I), '输出x(I) M = M + 1 ' M加1
If M Mod 5 = 0 Then Print '如果M模除5,余数为0,则换行 Next I
For I = 1 To 19 ’再做循环,I超出19则停止循环 For J = 1 To 20 - I '内循环,J = 1 ,当J超过20 - I停止循环 If x(J + 1) < x(J) Then '如果x(J + 1) 小于 x(J) Temp = x(J): x(J) = x(J + 1): x(J + 1) = Temp '交换值 End If Next J Next I
Print '输出空格
For I = 1 To 20 '做循环,I超出20则停止循环 Print x(I), '输出x(I) M = M + 1 ' M加1
If M Mod 5 = 0 Then Print '如果M模除5,余数为0,则换行 Next I End Sub
四、实验总结
实验四、图形方法和图形控件
一、实验目的
1. 掌握使用图形方法绘制典型的图形 2. 了解图片框和图像控件的区别 3. 掌握图片框和图像控件的使用方法 4. 掌握直线控件和形状控件的使用方法 5. 了解图像处理的基本方法
二、实验内容
1、图形方法的应用
程序1:在窗体上绘制-π到π的正弦曲线,如下图所示。
2、图片框控件和图像控件的使用
程序2:在窗体上左右各放置一个大小相同的图片框和图像框,修改它们的边框式样(BordeStyle属性),使它们的边框一栏。通过Picture属性装入一个同样的位图文件(.bmp),观察两个控件的变化以及其中图形的差异。若装入的是图元文件(.wmf),则图片框和图像控件中的图形又会怎样?
程序3:创建应用程序,利用图片框浏览大幅面图形。在窗体放置两个图片框,一个垂直滚动条和一个水平滚动条,如下图所示。在第二个图片框中装入一个大图形,利用两个滚动条改变第二个图片框在第一个图片框中的位置,实现对整幅图形的浏览。
程序4:创建一个测试图像控件特性的应用程序:单击窗体上的“放大”、“缩小”按钮,能使图像框中的图形放大或缩小。
3、直线控件和形状控件的使用
程序5:建立如下图所示的应用程序,通过命令按钮控制直线控件的旋转和形状控件的形状、位置等的变化,掌握直线和形状控件的特点和使用方法。
4、图像处理
程序6:创建应用程序:通过使输出的文本产生微移后叠加,在图片框中输
出有立体效果的文本,如下图所示。
三、实验记录
程序1如下:
Private Sub Form_Click() Const Pi = 3.
Cls '清屏
Form1.ScaleTop = 1.5 '窗体左上角y轴的坐标值为1.5 Form1.ScaleLeft = -1.5 * Pi '窗体左上角x轴的坐标值为-1.5*Pi Form1.ScaleHeight = -3 'y轴刻度总数为-3 Form1.ScaleWidth = 3 * Pi 'x轴刻度总数为3 * Pi For t = -Pi To Pi Step 0.001
't的初始值为-Pi,步长为0.001,当t大于Pi时,停止循环 x = t '将t赋给x y = Sin(t) '将Sin(t)赋给y PSet (x, y) '在(x, y处画点 Next t End Sub 程序2如下:
Private Sub Form_Click()
Image1.Picture = LoadPicture(\作业用图1.jpg\给图像框装入图片 Picture1.Picture = LoadPicture(\作业用图1.jpg\给图片框装入图片 End Sub 程序3如下:
Private Sub Form_Load() '窗体的初始化 frmwidth = Form1.ScaleWidth frmheight = Form1.ScaleHeight
Picture1.Move 0, 0, frmwidth - VScroll1.Width, frmheight - HScroll1.Height Picture2.Move 0, 0
正在阅读:
(最新版)VB程序设计实验报告04-03
数字信号处理实验指导书汇总04-22
党组织书记、校长讲思政课讲义稿(疫情防控主题)范文08-03
调查中的小插曲作文800字02-05
截单 截关 截港 开船10-03
外婆的手作文700字07-06
我爱你,中国作文500字07-06
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 最新版
- 程序设计
- 实验
- 报告
- 2014年山东大学生物化学真题
- 孔子学院汉语教师队伍发展现状及存在的问题
- 人防设计说明(全专业)
- 部编新人教版小学语文二年级上册第二次月考试卷
- 教科版小学品德与社会四年级下册教案全集
- 浅谈《五行测日学》的意义与用途
- 生产实习教学的特点组织形式和教学环节 - 图文
- 对应法解题
- 试谈皮亚杰理论与维果斯基理论的比较
- 人物形象分析教学设计
- 企业客户资源管理系统的设计与实现 - 图文
- 2016-2020年生物识别技术行业深度分析及“十三五”发展规划指导
- 常规KPI指标与改进KPI指标
- YCT384安全生产标准化知识宣贯试题(含答案)
- ANSYS使用简介
- 银行员工违规行为处罚管理办法
- 钢筋混凝土电化学阴极保护的历史
- 年产1万吨白酒工厂设计说明书
- 旅游景点毕业设计 - 图文
- 小农水施工组织设计