用VB做简易计算器
《VB》课内实验报告
学生姓名:
及学号:
学院:
班级: 数学101
课程名称:VB
实验题目:控件数组的应用
指导教师
姓名及职称:
2012年03月28日
目录
一、实验目的 (1)
二、实验内容 (1)
三、实验要点及说明 (1)
四、实现方法 (1)
五、实验结果 (2)
六、源程序清单 (2)
七、思考及总结 (4)
一、实验目的
1.掌握动态数组与静态数组的使用方法。
2.掌握控件数组的添加、删除以及使用方法。
3.掌握If语句、Select Case语句以及循环语句的使用。
4.掌握控件数组中索引号(Index)的作用。
二、实验内容
1.制作计算器,完成十进制的加减乘除运算。
2.随机产生15个不重复的A-Z(包括A,Z)的大写字母,存放在字符数组中。
三、实验要点及说明
1.利用数组控件完成计算器的制作。
(1)设计界面及设置属性
界面设计中的显示部分要求用标签实现;
运算符、数字分别使用控件数组实现;
(2)编写代码图3-1 设计界面程序代码的任务是单击数字按钮和运算符按钮实现十进制的常规运算,同时要求做到实现正负号的转变、结果的标准输出以及除法中除数的检查等功能。
2.界面设计部分要求能够体现出字符数组中的内容,且实现随机不重复显示的功能,具体参数不做要求。
四、实现方法
运行环境:Visual Basic运行开发环境;
1.VB6.0窗体的属性设置
运用复制的方法建立两个建立控件数组,编写代码。
2. 设置窗体的属性,添加一个文本框MultiLine属性设置成True,编写代码。
五、实验结果
1. 能够完成十进制的加减乘除运算,可以判断被除数是否为零,如果为零,弹出对话框提示错误。
2.单击窗体随机出现15个不同的字母。
六、源程序清单
1、源程序:
Option Explicit ‘对所有变量进行显式声明
Dim Num1 As Single, Num2 As Single ‘声明Num1,Num2为单精度浮点型变量
Dim Flag As Boolean ‘声明Flag为布尔变量
Dim Cul As Integer ‘声明Cul为整型变量
Private Sub Command1_Click(Index As Integer) ‘Command1的单击事件
Num1 = Val(Text1.Text) ‘Text1中的值赋给Num1
Flag = True ‘Flag为真
Cul = Index
End Sub
Private Sub _Click() ‘Command4的单击事件If InStr(Text1.Text, ".") = 0 And Text1.Text <> "" Then ‘如果Text1中没Text1.Text = Text1.Text + "." 有"."并且不为空,就在Text1中加一个"."
End If
End Sub
Private Sub Command2_Click(Index As Integer)
If Flag Then Text1.Text = "": Flag = False ‘如果Flag为真则Text1赋为空
Text1.Text = Text1.Text + Command2(Index).Caption ‘如果为假Text1加
End Sub Command2(Index) Private Sub Command5_Click() ‘Command5的单击事件的单击事件Text1.Text = "" ‘清空Text1,Num1, Num2的值
Num1 = 0
Num2 = 0
End Sub
Private Sub Command6_Click() ‘Command6的单击事件Dim result As Single ‘声明result为单精度浮点型变量
Num2 = Val(Text1.Text) ‘Text1中的值赋给Num2
Flag = True ‘Flag b变为真
Select Case Cul ‘Select循环
Case 0: result = Num1 + Num2
Case 1: result = Num1 - Num2
Case 2: result = Num1 * Num2
Case 3:
If Num2 <> 0 Then ‘若分母为零提示
result = Num1 / Num2
Else
MsgBox "出错!被0除!"
End If
End Select
If result \ 1 <> result Then ‘如果result \ 1不等于result那么在result前
Text1.Text = Format(result, "0.#") 加”0.”赋给Text1.Text
Else
Text1.Text = Str(result) ‘否则直接将result转化成字符串赋给Text1.Text
End If
End Sub
Private Sub Command3_Click() ‘Command3的单击事件If Text1.Text <> "" Then ‘如果Text1.Text不是空的
If InStr( Text1.Text, "-") = 0 Then ‘Text1.Text中不包含"-"
Text1.Text = "-" + Text1.Text ‘把"-" Text1.Text连接后赋给Text1.Text Else
Text1.Text = Right(Text1.Text, Len(Text1.Text) - 1)
End If ‘取Text1.Text中长度减1的字符赋给Text1.Text End If
End Sub
2、源程序
Private Sub Form_Click() ‘Form的单击事件Dim s(1 To 15) As String * 1, c As String * 1 ‘声明s,c为定长字符串
Dim Found As Boolean ‘声明Found为布尔变量
s(1) = chr(Int(Rnd * 26 + 65)) ‘将一随机字符赋给s(1)
n = 2
Do While n <= 15 ‘循环条件n<=15
c = chr(Int(Rn
d * 26 + 65)) ‘将一随机字符赋给c
Found = False
For j = 1 To n – 1 ‘For循环
If s(j) = c Then Found = True
Next j
If Not Found Then ‘Found为假,进行下两行语句
s(n) = c
n = n + 1
End If
Loop
For i = 1 To 15 ‘循环输出s(i)到Text1.Text中Text1.Text = Text1.Text & s(i)
Next i
End Sub
七、思考及总结