图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