(最新版)VB程序设计实验报告

更新时间:2024-01-17 09:39: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

本文来源:https://www.bwwdw.com/article/fw2o.html

Top