永发信息网

【vb计算器代码】在VB中计算器的代码(要求0到9的加减乘除运算)只要0...

答案:2  悬赏:80  手机版
解决时间 2021-03-03 02:22
  • 提问者网友:抽煙菂渘情少年
  • 2021-03-02 09:21
【vb计算器代码】在VB中计算器的代码(要求0到9的加减乘除运算)只要0...
最佳答案
  • 五星知识达人网友:逐風
  • 2021-03-02 09:57
【答案】 Dim Num1 As Double
  Dim Num2 As Double
  Dim Equal As Double
  Dim M As Double
  Dim Equal2 As Integer
  Dim StrNum1 As String
  Dim StrNum2 As String
  Dim FirstPoint As Boolean
  Dim FirstNum As Boolean
  Private Sub Command1_Click(Index As Integer) '数字输入
  Select Case Index
  Case 0 To 9
  StrNum1 = LTrim(StrNum1) + LTrim(Str(Index))
  Do While Left(LTrim(StrNum1), 1) = 0 '去掉高位数字0
  StrNum1 = Mid(StrNum1, 2)
  Loop
  If Left(LTrim(StrNum1), 1) = . Then StrNum1 = 0 + LTrim(StrNum1)
  Text1.Text = StrNum1 '数字显示
  Case 10
  If FirstPoint Then '小数点的输入
  StrNum1 = LTrim(StrNum1) + LTrim(.)
  Do While Left(LTrim(StrNum1), 1) = 0 '去掉高位数字0
  StrNum1 = Mid(StrNum1, 2)
  Loop
  If Left(LTrim(StrNum1), 1) = . Then StrNum1 = 0 + LTrim(StrNum1)
  Text1.Text = StrNum1 '数字显示
  FirstPoint = False
  Text1.Text = StrNum1
  End If
  Case 11
  StrNum1 = Text1.Text '退格
  If Len(StrNum1) > 0 Then
  StrNum1 = Left(StrNum1, Len(StrNum1) - 1) '每一次退格,从字符串后面去掉一个字符
  Text1.Text = StrNum1
  Else
  Text1.Text = 0.0
  End If
  If InStr(StrNum1, .) = 0 Then FirstPoint = True '若字符串中没有小数点,把小数点开关打开
  Case 12 '清零
  StrNum1 =
  StrNum2 =
  Text1.Text = 0.0
  aa =
  Equal = 0
  Num1 = 0
  Num2 = 0
  FirstPoint = True '小数点开关
  FirstNum = True '第一个数开关
  Case 13 '正负符号
  If Val(StrNum1) > 0 Then
  StrNum1 = - + LTrim(StrNum1)
  Else
  StrNum1 = Abs(Val(StrNum1))
  End If
  Text1.Text = StrNum1
  Case 14 '电源开关
  End
  End Select
  End Sub
  Private Sub Command2_Click(Index As Integer) '+-*/运算
  Equal2 = Index '=号开关
  If FirstNum Then '存第一个数,其中FirstNum为开关
  StrNum2 = StrNum1
  StrNum1 =
  FirstNum = False
  FirstPoint = True '小数点开,以便输入第二个数
  Else '若不是第一个数进入下面的+-*/运算
  Select Case Index
  Case 0 '0为加法
  Num1 = Val(StrNum2) 'Num1存第一个数
  Num2 = Val(StrNum1) 'Num2存第二个数
  Equal = Num1 + Num2 'Equal存结果
  StrNum2 = Str(Equal) 'StrNum2返回结果,以便下次让Num1存结果
  StrNum1 = 'StrNum1清空,以便下次数字输入
  aa = Str(Equal)
  If Left(LTrim(aa), 1) = - And Left(LTrim(aa), 2) = -. Then aa = -0 + LTrim(Abs(Equal))
  If Left(LTrim(aa), 1) = . Then aa = 0 + LTrim(aa)
  Text1.Text = aa '显示结果
  FirstPoint = True '小数点开
  Case 1 '1为减法
  Num1 = Val(StrNum2)
  Num2 = Val(StrNum1)
  Equal = Num1 - Num2
  StrNum2 = Str(Equal)
  StrNum1 =
  aa = Str(Equal)
  If Left(LTrim(aa), 1) = - And Left(LTrim(aa), 2) = -. Then aa = -0 + LTrim(Abs(Equal))
  If Left(LTrim(aa), 1) = . Then aa = 0 + LTrim(aa)
  Text1.Text = aa
  FirstPoint = True
  Case 2 '为乖法
  Num1 = Val(StrNum2)
  If StrNum1 = Then '便于+-*/之间切换
  Num2 = 1
  Else
  Num2 = Val(StrNum1)
  End If
  Equal = Num1 * Num2
  StrNum2 = Str(Equal)
  StrNum1 =
  aa = Str(Equal)
  If Left(LTrim(aa), 1) = - And Left(LTrim(aa), 2) = -. Then aa = -0 + LTrim(Abs(Equal))
  If Left(LTrim(aa), 1) = . Then aa = 0 + LTrim(aa)
  Text1.Text = aa
  FirstPoint = True
  Case 3 '3为除法
  Num1 = Val(StrNum2) 'Num1存第一个数
  If StrNum1 = Then
  Num2 = 1
  Else
  Num2 = Val(StrNum1)
  End If
  Equal = Num1 / Num2
  StrNum2 = Str(Equal) 'Num2存第二个数
  StrNum1 =
  aa = Str(Equal)
  If Left(LTrim(aa), 1) = - And Left(LTrim(aa), 2) = -. Then aa = -0 + LTrim(Abs(Equal))
  If Left(LTrim(aa), 1) = . Then aa = 0 + LTrim(aa)
  Text1.Text = aa
  FirstPoint = True
  End Select
  End If
  End Sub
  Private Sub Command3_Click() '=号运算
  FirstNum = True '第一个数关,关掉连继+-*/
  Select Case Equal2 'Equal2为=号按键判断+-*/哪种运算
  Case 0 '+运算
  If StrNum2 = Then
  Num1 = Equal
  Else
  Num1 = Val(StrNum2)
  End If
  Num2 = Val(Text1.Text)
  Equal = Num1 + Num2
  StrNum1 = '返回结果
  aa = Str(Equal)
  If Left(LTrim(aa), 1) = - And Left(LTrim(aa), 2) = -. Then aa = -0 + LTrim(Abs(Equal))
  If Left(LTrim(aa), 1) = . Then aa = 0 + LTrim(aa)
  Text1.Text = aa '显示结果
  FirstPoint = True '小数点开
  Case 1 '-运算
  If StrNum2 = Then
  Num1 = Equal
  Else
  Num1 = Val(StrNum2)
  End If
  Num2 = Val(Text1.Text)
  Equal = Num1 - Num2
  StrNum1 =
  aa = Str(Equal)
  If Left(LTrim(aa), 1) = - And Left(LTrim(aa), 2) = -. Then aa = -0 + LTrim(Abs(Equal))
  If Left(LTrim(aa), 1) = . Then aa = 0 + LTrim(aa)
  Text1.Text = aa
  FirstPoint = True
  Case 2 '*运算
  If StrNum2 = Then
  Num1 = Equal
  Else
  Num1 = Val(StrNum2)
  End If
  If StrNum1 = Then
  Num2 = 1
  Else
  Num2 = Val(Text1.Text)
  End If
  Equal = Num1 * Num2
  StrNum1 =
  aa = Str(Equal)
  If Left(LTrim(aa), 1) = - And Left(LTrim(aa), 2) = -. Then aa = -0 + LTrim(Abs(Equal))
  If Left(LTrim(aa), 1) = . Then aa = 0 + LTrim(aa)
  Text1.Text = aa
  FirstPoint = True
  Case 3 '/运算
  If StrNum2 = Then
  Num1 = Equal
  Else
  Num1 = Val(StrNum2)
  End If
  If StrNum1 = Then
  Num2 = 1
  Else
  Num2 = Val(Text1.Text)
  End If
  Equal = Num1 / Num2
  StrNum1 =
  aa = Str(Equal)
  If Left(LTrim(aa), 1) = - And Left(LTrim(aa), 2) = -. Then aa = -0 + LTrim(Abs(Equal))
  If Left(LTrim(aa), 1) = . Then aa = 0 + LTrim(aa)
  Text1.Text = aa
  FirstPoint = True
  End Select
  End Sub
  Private Sub Command4_Click() '开方运算
  aa = Val(Text1.Text)
  StrNum1 =
  If aa >= 0 Then
  aa = Str(Sqr(aa))
  If Left(LTrim(aa), 1) = . Then aa = 0 + LTrim(aa)
  Text1.Text = aa
  Else
  MsgBox 被开方数少于零
  End If
  End Sub
  Private Sub Command7_Click() '倒数运算
  aa = Val(Text1.Text)
  StrNum1 =
  aa = Str(1 / aa)
  If Left(LTrim(aa), 1) = - And Left(LTrim(aa), 2) = -. Then aa = -0 + LTrim(Abs(Equal))
  If Left(LTrim(aa), 1) = . Then aa = 0 + LTrim(aa)
  Text1.Text = aa
  End Sub
  Private Sub Command8_Click(Index As Integer) '存贮器操作
  Select Case Index
  Case 0 'MC,存贮器清零
  Text2.Text =
  M = 0
  Case 1 'MR,显示存贮器内容
全部回答
  • 1楼网友:拜訪者
  • 2021-03-02 10:36
感谢回答,我学习了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯