求用VB编写的简易计算器(只有加减乘除,按ESC键清除)的源码

3个月前 (10-01 20:22)阅读2回复0
路人甲
路人甲
  • 管理员
  • 注册排名2
  • 经验值82275
  • 级别管理员
  • 主题16455
  • 回复0
楼主

  Option Explicit

Dim strNumber As String

Dim strPoint As String

Dim dblNum1 As Double

Dim intOperator As Integer

'清除结果

Private Sub cmdGT_Click()

txtDisplay。

  Text = "0。"

strNumber = ""

strPoint = "。"

intOperator = 7

End Sub

'输入数字

Private Sub cmdNumber_Click(Index As Integer)

strNumber = strNumber & cmdNumber(Index)。

  Caption

txtDisplay。Text = strNumber & strPoint

End Sub

Private Sub cmdOnOff_Click()

End

End Sub

'运算过程

Private Sub cmdOperator_Click(Index As Integer)

Dim dblnum2 As Double

'是第一次单击运算符时,将输入的值先赋给第一个数,否则赋值给第二个数进行运算

If intOperator = 7 Then

dblNum1 = CDbl(txtDisplay。

  Text)

Else

dblnum2 = CDbl(Val(txtDisplay。Text))

'根据输入的符号进行运算

'求普通运算

Select Case intOperator

Case 0

dblNum1 = dblNum1 dblnum2

Case 1

dblNum1 = dblNum1 - dblnum2

Case 2

dblNum1 = dblNum1 * dblnum2

Case 3

If dblnum2 0 Then

dblNum1 = dblNum1 / dblnum2

Else

MsgBox "除数不能为“0”!请重新输入除数。

  ", vbOKOnly vbInformation, "除零错误"

Index = intOperator

End If

Case 6

dblNum1 = dblNum1 * dblnum2 / 100

End Select

End If

'取得当前输入的运算符,以做下次运算

intOperator = Index

strNumber = ""

txtDisplay = CStr(dblNum1)

'判断是否为文本框中的数字加点

If Not txtDisplay Like "*。

  *" Then

txtDisplay。Text = txtDisplay。Text & "。"

End If

End Sub

Private Sub cmdPoint_Click()

strNumber = strNumber & strPoint

strPoint = ""

End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

'使被按下的数字键的对应按钮取得焦点

Select Case KeyCode

Case 48 To 57

cmdNumber(KeyCode - 48)。

  SetFocus

Case 96 To 105

cmdNumber(KeyCode - 96)。SetFocus

Case Else

'使按下的符号键对应的按钮取得焦点

If KeyCode = 107 Or (Shift = vbShiftMask And KeyCode = 187) Then

cmdOperator(0)。

  SetFocus

cmdOperator_Click (0)

ElseIf KeyCode = 109 Or KeyCode = 189 Then

cmdOperator(1)。

  SetFocus

cmdOperator_Click (1)

ElseIf KeyCode = 106 Or (Shift = vbShiftMask And KeyCode = 56) Then

cmdOperator(2)。

  SetFocus

cmdOperator_Click (2)

ElseIf KeyCode = 111 Or KeyCode = 191 Then

cmdOperator(3)。

  SetFocus

cmdOperator_Click (3)

ElseIf KeyCode = 13 Then

cmdOperator(7)。

  SetFocus

cmdOperator_Click (7)

ElseIf KeyCode = 8 Then

cmdGT。

  SetFocus

Call cmdGT_Click

End If

End Select

End Sub

Private Sub Form_KeyPress(KeyAscii As Integer)

'将合法的数据输入到文本框

Select Case KeyAscii

Case 48 To 58

'调用数字键点击处理程序

cmdNumber_Click KeyAscii - 48

KeyAscii = 0

Case 46

'调用小数点输入

cmdPoint_Click

KeyAscii = 0

Case 13

'当敲击回车时,不能触发Form的 KeyUp 事件,因此在这里设置文本框的焦点

txtDisplay。

  SetFocus

Case Else

KeyAscii = 0

End Select

End Sub

Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)

txtDisplay。

  SetFocus

End Sub

Private Sub Form_Load()

strNumber = ""

strPoint = "。"

intOperator = 7

End Sub Private Sub txtDisplay_KeyPress(KeyAscii As Integer)

If KeyAscii = 27 Then '按下ESC

txtDisplay。

  Text = ""

End If

End Sub。

0
回帖

求用VB编写的简易计算器(只有加减乘除,按ESC键清除)的源码 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息