一.项目名称
简易计算器
二.实现目标
1. 能够完成浮点数的简单四则运算(加,减,乘,除)
2. 能够实现退格和清除功能;
3. 防止小数点出现在首位
4. 小数点不能重复输入;
5. 算式须符合四则运算规则。
三.控件属性列表
各个属性修改后得到如图所示的界面
四.功能实现
1. 调用函数
1)Left (a,M) 从左边开始取值,取的位数为M位。
e.g: Text1.Text = Left(Text1.Text, Len(Text1.Text) - 1)’实现退格功能
2)InStr([start, ]string1, string2[, compare]) 指定一字符串在另一字符串中最先出现的位置。
e.g: c = InStr(Text1.Text, ".") ‘instr查找某字符串在另一个字符串中首次出现的位置并将值赋给c,配合If判断实现判断小数点位置,防止小数点出现在首位
3)len(s)字符串s的长度。
e.g: Len(Text1)
2.容错功能
通过IF判断和Command6实现部分容错功能
3.源代码如下
Dim a As Single, b As Single, c As Single, fh As String ’定义变量a,b为单精度变量,用以储存数;定义fh变量为字符型变量,储存运算符号
Private Sub Command1_Click(Index As Integer)
Text1.Text = Text1.Text & Command1(Index).Caption ’输入数字并在text上显示出来
End Sub
Private Sub Command2_Click(Index As Integer) ’输入运算符
a = Text1.Text
fh = Command2(Index).Caption
Text1.Text = ""
End Sub
Private Sub Command3_Click() ’退格实现
Text1.Text = Left(Text1.Text, Len(Text1.Text) - 1)
End Sub
Private Sub Command4_Click() ’小数点
Text1.Text = Text1.Text + "."
c = InStr(Text1.Text, ".") ’instr查找某字符串在另一个字符串中首次出现的位置并将值赋给c
If (c < 2) Then
Text1.Text = "错误,小数点不能在首位,请在在点击CE后重新输入整个算式"
End If ’判断小数点位置,防止小数点出现在首位
Dim w As Integer ’小数点的个数
w = 0
For i = 1 To Len(Text1) ’循环,len函数求出字符串的长度
Select Case Mid(Text1, i, 1) ’texe1中从第i个字符开始取,每次取一个字符
Case "." ’判断所取字符是不是“.”
w = w + 1 ’1则w+1,0继续
End Select ’通过循环计小数点存在个数赋值给w
Next
If (w >= 2) Then
Text1.Text = "错误,出现&w&个小数点,请在在点击CE后重新输入整个算式"
End If ’判断小数点个数,防止出现多个小数点
End Sub
Private Sub Command5_Click() ’运算
b = Text1.Text
Select Case fh
Case "+"
Text1.Text = a + b
Case "-"
Text1.Text = a - b
Case "*"
Text1.Text = a * b
Case "/"
If (b = 0) Then
Text1.Text = "错误,分母不能为0,请在在点击CE后重新输入整个算式"
Else
Text1.Text = a / b
End If
End Select
End Sub
Private Sub Command6_Click() ’CE作用:变量全部清零
Text1.Text = ""
a = 0
b = 0
fh = ""
End Sub
Private Sub Command7_Click() ’正负号转换
Text1.Text = 0 - Text1.Text
End Sub
五.不足之处
1.只支持鼠标点击输入
2.容错能力有待改进
1.)未给a赋值,直接点击等号,运算符,正负号转换,会报错关闭(实时错误:13)
2.)text1.text未赋值前点击退格,会报错关闭(实时错误:5)
3.功能有待加强,MS,MR,M+,M-,%,开平方等功能未实现-
??张素博11/20/2011