【VB】 写小计算器
发布时间:2020-12-17 08:19:57 所属栏目:百科 来源:网络整理
导读:Dim Num1,Num2 As SingleDim StrNum1,StrNum2 As StringDim FirstNum As Boolean '判断是否是数字开头Dim PointFlag As Boolean '判断是否已有小数点Dim Runsign As Integer '储存运算符号Dim SignFlag As Boolean '判断是否已有运算符号Sub Run() Num1 = Va
Dim Num1,Num2 As Single Dim StrNum1,StrNum2 As String Dim FirstNum As Boolean '判断是否是数字开头 Dim PointFlag As Boolean '判断是否已有小数点 Dim Runsign As Integer '储存运算符号 Dim SignFlag As Boolean '判断是否已有运算符号 Sub Run() Num1 = Val(StrNum2) Num2 = Val(StrNum1) Select Case Runsign Case 1 '加 equal = Num1 + Num2 Case 2 '减 equal = Num1 - Num2 Case 3 '乘 equal = Num1 * Num2 Case 4 '除 equal = Num1 / Num2 End Select StrNum2 = Str(equal) StrNum1 = StrNum2 Text1.Text = StrNum2 End Sub Sub ClearData() Num1 = 0 Num2 = 0 StrNum1 = "" StrNum2 = "" FirstNum = True PointFlag = False Runsign = 0 SignFlag = False Text1.Text = "0." End Sub Private Sub Form_Load() '给变量赋初值 Num1 = 0 Num2 = 0 StrNum1 = "" StrNum2 = "" FirstNum = True PointFlag = False Runsign = 0 SignFlag = False End Sub Private Sub Command1_Click(Index As Integer) Select Case Index Case 0 To 9 If FirstNum Then 'FirstNum=True 处理第一次数字输入 StrNum1 = Str(Index) '实型转字符型 FirstNum = False '赋初值为假,输入一个数字后标记是否首字符为假 Else '非初赋值 StrNum1 = StrNum1 + Str(Index) '从第二次输入开始往后面写字符 End If Text1.Text = StrNum1 '显示 Case 10 If Not PointFlag Then 'PointFlag=False 处理第一次点击"." If FirstNum Then 'FirstNum=True,还没有输入数字的时候 StrNum1 = "0." FirstNum = False '输入"."后,标记是否首字符为假 Else StrNum1 = StrNum1 + "." '前面已有输入的时候往后一位添加"." End If ' Else 'PointFlag=True 已有小数点 ' Exit Sub '退出单击事件 End If PointFlag = True Text1.Text = StrNum1 Case 12 To 15 FirstNum = True '还原标记值,使下一次可以输入新数据 PointFlag = False '使可输入"." If SignFlag Then 'SignFlag=True 前面已有运算符未运算 Call Run '调用过程 Else '首次输入运算符 SignFlag = True StrNum2 = StrNum1 '把字符串1复制给字符串2 StrNum1 = "" '字符串1清空 End If Runsign = Index - 11 '储存键入的运算符 Case 11 '等号 If Not SignFlag Then 'SignFlag=False 还没有运算符的时候直接显示StrNum1 Text1.Text = StrNum1 equal = Val(StrNum1) FirstNum = True PointFlag = False Else Call Run SignFlag = False End If Case Else '清除按钮 Call ClearData End Select End Sub (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |