《VB》实验指导书讲解 下载本文

图1-5 Welcome程序的运行效果

(9)选择“运行/启动”菜单,在开发环境下运行该程序,运行效果如图1-5所示。 (10)选择“文件/保存工程”菜单,或单击工具栏上的“保存工程”按钮,保存窗体文件Form l .frm和工程文件Welcome.vbp。

(11)选择“文件/生存”菜单,创建该程序的可执行文件。

1.3.2. 按所示界面设计一个加法器。

在窗体上添加三个标签控件Label1~label3,将其caption属性分别改为“加数”,“被加数”和“和”,三个文本框控件Text1~Text3,和三个命令按钮Command1~Command3,将其caption属性分别改为“相加”,“清除”和“退出”

代码提示:

Private Sub Command1_Click()

Text3.Text = Val(Text1.Text) + Val(Text2.Text) End Sub

Private Sub Command2_Click() Text1.Text = \Text2.Text = \Text3.Text = \End Sub

Private Sub Command3_Click() End End Sub

1.3.3计算两个随便输入数据的和、差、积。

代码提示:

Dim a As String Dim b As String

Private Sub Form_Click()

a = InputBox$(\输入A的值\ b = InputBox$(\输入B的值\ x = Val(a)

6

y = Val(b) Print Print

Print \两数之和=\ Print \两数之差=\ Print \两数之积=\End Sub

1.3.4求水仙花数

算法分析:

设有1个3位数abc,若这个数等于3位数的立方和,则这个数被称为“水仙花数”,既符合条件100 * a + 10 * b + c = a ^ 3 + b ^ 3 + c ^ 3的三位数abc称为“水仙花数”。用3个变量a,b,c分别表示3位数的百位、十位和个位数,分别采用3个循环语句For/Next、Do While/Loop和Do Until/Loop进行判断,若符合条件,则在窗体上打印该数。

代码提示:

Private Sub Command1_Click() Dim a%, b%, c As Integer For a = 1 To 9 b = 0

Do While b <= 9 c = 0 Do Until c > 9

If a ^ 3 + b ^ 3 + c ^ 3 = 100 * a + 10 * b + c Then Print \水仙花数\ End If c = c + 1 Loop b = b + 1 Loop Next a End Sub

1.3.5模拟袖珍计算器的

按照下图设计界面

在窗体上添加4个标签控件Label1~Label4,其Caption属性分别为“操作数1”,“运算符”,“操作数2”“结果”,4个文本框Text1~Text4,将其name(名称)属性分别设置成“TxtOp1”, “TxtCalculate”, “TxtOp2”和“TxtResult”,三个命令按钮Command1~Command3,将其name(名称)属性分别改成“CmdOperation”,“CmdClear” 和“CmdExit” ,caption属性分别改为“计算”,“清除”和“退出”

代码提示:

7

Private Sub CmdClear_Click()

TxtOp1.Text = \ TxtOp2 = \ TxtCalculate = \ TxtResult = \ TxtOp1.SetFocus End Sub

Private Sub CmdExit_Click() End End Sub

Private Sub CmdOperation_Click() Dim op1, op2, result

'判断操作数1输入是否合法 If (IsNumeric(TxtOp1.Text)) Then op1 = Val(TxtOp1.Text) Else

MsgBox \操作数1必须为数值\ TxtOp1.SetFocus End If

'判断操作数2输入是否合法 If (IsNumeric(TxtOp2.Text)) Then op2 = Val(TxtOp2.Text) Else

MsgBox \操作数2必须为数值\ TxtOp2.SetFocus End If

Select Case Trim(TxtCalculate.Text) Case \

result = op1 + op2 Case \

result = op1 - op2 Case \

result = op1 * op2 Case \

If op2 = 0 Then

MsgBox \分母不能为零,请重新输入\ TxtOp2.Text = \ TxtOp2.SetFocus Else

result = op1 / op2 End If Case Else

MsgBox \运算符输入不正确,请重新输入\ TxtCalculate.Text = \ TxtCalculate.SetFocus End Select

TxtResult = result End Sub

1.4思考题

1.VB提供了哪些标准数据类型?

2.VB中输入数据和输出数据有哪几种方式?

3.试分析If — Then — Else结构和Select Case结构的异同点。

8

实验2 数组与过程

2.1 实验目的

掌握数组的概念及基本操作;掌握控件数组的概念和使用方法;掌握Sub过程和Function过程的定义及其调用方法;掌握参数传递的两种方式:传值调用和传址调用。

2.2 相关知识

数组:数组的概念(数组与数组元素、数组的类型、数组的维数、数组的形式):固定大小的数组(数组的声明、数组的使用):动态数组(创建动态数组、保留动态数组的内容);控件数组(件数组的概念、控件数组的建立、控件数组的使用)。

过程:Sub过程(事件过程与通用过程、通用过程的创建、通用过程的调用):Function 过程(Function 过程的定义、Function 过程的调用、查看过程);向过程传递参数(形式参数与实际参数、按值传递与按地址传递、使用参数、传递数组);过程的嵌套与递归调用(过程的嵌套、过程的递归)。

2.3实验项目

2.3.1求矩阵元素的平均值,以及高于平均值的元素及其行列号。

按照下图设计界面,在窗体中添加一个图片框Picture1和一个框架Frame1,选中Frame1,在其中增加一个标签Label1和两个命令按钮command1和command2,将其caption属性改为输入和计算。

参考代码:

Dim a(6, 6) As Integer, av As Single Private Sub Command1_Click() Dim n As Integer, m As Integer For n = 1 To 6 For m = 1 To 6

a(n, m) = Int(Rnd * 90 + 10) Next Next

Picture1.Cls

Picture1.CurrentY = 80 For n = 1 To 6 For m = 1 To 6

Picture1.Print Format(a(n, m), \ Next

Picture1.Print Picture1.Print Next End Sub

Private Sub Command2_Click() s = 0

For n = 1 To 6 For m = 1 To 6 s = s + a(n, m)

9

Next Next

av = s / (6 * 6)

Label1.Caption = \平均值= \ p = \

For n = 1 To 6 For m = 1 To 6

If a(n, m) > av Then

p = p & \ End If Next Next

MsgBox p, 0, \大于平均值的元素是\End Sub

2.3.2 设计一个简易计算器,如图2-1所示。

分析:程序中的按钮分为两类:数字类和运算符类,可以分别使用命令按钮控件数组。 设计步骤如下:

(1)建立应用程序用户界面与设置对象属性。

选择新建工程,进入窗体设计器,首先增加一个框架控件Frame1,选中Frame1后,在其中增加一个文本框控件Text1、两个命令按钮控件数组Command1 (0)~Command1(10) 和Command2(0)~Command2(4)。并设置属性如表2-1所示。

图2-1简易计算器 表2-1属性设置

对象 Textl 属性 Caption Alignment Locked Command l(0)-Commandl(10) Command2(0)-Command2(4) (2) 实验参考源代码

首先在模块的“通用”段声明变量:

Dim v As Boolean ’是否第1次按运算符

10

属性值 1-Rigth Justify True 依次为0,1,2,3,4,5,6,7,8,9和小数点 依次为 +, - , * , /, = Caption Caption