程式實例:ch7_9              -
' 小算盤程式設計                -
' -----------------------------------------------
Dim LastInput As String    ' 輸入資料類別
Dim NumOp   As Integer   ' 資料數量
Dim PreOp   As String    ' 運算符號
Dim DeFlag          ' 是否是小數點
Dim Op1            ' 資料1值
Dim Op2            ' 資料2值
' -----------------------------------------------
'  依據運算符號執行運算            -
' -----------------------------------------------
Private Sub Calculation()
Select Case PreOp
Case "+"          ' 加法
    Op1 = Val(Op1) + Val(Op2)
  Case "-"          ' 減法
    Op1 = Val(Op1) - Val(Op2)
  Case "X"          ' 乘法
    Op1 = Val(Op1) * Val(Op2)
  Case "/"          ' 除法
    If Val(Op2) = 0 Then
      MsgBox "除數不可為0", 48, "小算盤"
    Else
      Op1 = Val(Op1) / Val(Op2)
    End If
  Case "="          ' 等號
    Op1 = Op2
End Select
Label1.Caption = Op1      ' 結果輸出
NumOp = 1           ' 運算元數降為1
End Sub
' -----------------------------------------------
'  物件名稱:cmd0    事件名稱:Click    -
' 處理按 0 鈕                  -
' -----------------------------------------------
Private Sub command10_Click()
Number (0)
End Sub
' -----------------------------------------------
'  物件名稱:cmd1    事件名稱:Click    -
' 處理按 1 鈕                  -
' -----------------------------------------------
Private Sub command1_Click()
Number (1)
End Sub
' -----------------------------------------------
'  物件名稱:cmd2    事件名稱:Click    -
' 處理按 2 鈕                  -
' -----------------------------------------------
Private Sub command2_Click()
Number (2)
End Sub
Private Sub Command20_Click()
End
End Sub
' -----------------------------------------------
'  物件名稱:cmd3    事件名稱:Click    -
' 處理按 3 鈕                  -
' -----------------------------------------------
Private Sub command3_Click()
Number (3)
End Sub
' -----------------------------------------------
'  物件名稱:cmd4    事件名稱:Click    -
' 處理按 4 鈕                  -
' -----------------------------------------------
Private Sub command4_Click()
Number (4)
End Sub
' -----------------------------------------------
'  物件名稱:cmd5    事件名稱:Click    -
' 處理按 5 鈕                  -
' -----------------------------------------------
Private Sub command5_Click()
Number (5)
End Sub
' -----------------------------------------------
'  物件名稱:cmd6    事件名稱:Click    -
' 處理按 6 鈕                  -
' -----------------------------------------------
Private Sub command6_Click()
Number (6)
End Sub
' -----------------------------------------------
'  物件名稱:cmd7    事件名稱:Click    -
' 處理按 7 鈕                  -
' -----------------------------------------------
Private Sub command7_Click()
Number (7)
End Sub
' -----------------------------------------------
'  物件名稱:cmd8    事件名稱:Click    -
' 處理按 8 鈕                  -
' -----------------------------------------------
Private Sub command8_Click()
Number (8)
End Sub
' -----------------------------------------------
'  物件名稱:cmd9    事件名稱:Click    -
' 處理按 9 鈕                  -
' -----------------------------------------------
Private Sub command9_Click()
Number (9)
End Sub
' -----------------------------------------------
'  物件名稱:cmdC    事件名稱:Click    -
' 處理按 C 鈕                  -
' -----------------------------------------------
Private Sub command12_Click()
Form_Load
End Sub
' -----------------------------------------------
'  物件名稱:cmdCE   事件名稱:Click    -
' 處理按 CE 鈕                 -
' -----------------------------------------------
Private Sub command16_Click()
Label1.Caption = "0."
DeFlag = False
LastInput = "運算符號"
End Sub
' -----------------------------------------------
'  物件名稱:cmdDecimal 事件名稱:Click    -
' 處理按 . 鈕                  -
' -----------------------------------------------
Private Sub command11_Click()
If LastInput = "負值" Then
Label1.Caption = "-0."
ElseIf LastInput <> "數字" Then
Label1.Caption = "0."
End If
DeFlag = True
LastInput = "數字"
End Sub
' -----------------------------------------------
'  物件名稱:cmdDiv   事件名稱:Click    -
' 處理按 / 鈕                  -
' -----------------------------------------------
Private Sub command18_Click()
If LastInput = "數字" Then
NumOp = NumOp + 1
End If
Select Case NumOp
Case 1
    Op1 = Label1.Caption
  Case 2
    Op2 = Label1.Caption
    Calculation
End Select
If LastInput <> "負值" Then
LastInput = "運算符號"
  PreOp = "/"
End If
End Sub
' -----------------------------------------------
'  物件名稱:cmdEqual  事件名稱:Click    -
' 處理按 = 鈕                  -
' -----------------------------------------------
Private Sub command15_Click()
If LastInput = "數字" Then
NumOp = NumOp + 1
End If
Select Case NumOp
Case 1
    Op1 = Label1.Caption
  Case 2
    Op2 = Label1.Caption
    Calculation
End Select
If LastInput <> "負值" Then
LastInput = "運算符號"
  PreOp = "="
End If
End Sub
' -----------------------------------------------
'  物件名稱:cmdMinus  事件名稱:Click    -
' 處理按 - 鈕情形                -
' -----------------------------------------------
Private Sub command17_Click()
If LastInput = "數字" Then
NumOp = NumOp + 1
End If
Select Case NumOp
Case 0            ' 運算資料數量為0
    If LaseInput <> "負值" Then
     Label1.Caption = "-" + Label1.Caption
      LastInput = "負值"
    End If
  Case 1            ' 運算資料數量為1
    Op1 = Label1.Caption
    If LastInput <> "數字" And PreOp <> "=" Then
      Label1.Caption = "-"
      LastInput = "負值"
    End If
  Case 2            ' 運算資料數量為2
    Op2 = Label1.Caption
    Calculation
End Select
If LastInput <> "負值" Then
LastInput = "運算符號"
  PreOp = "-"
End If
End Sub
' -----------------------------------------------
'  物件名稱:cmdMul   事件名稱:Click    -
' 處理按 X 鈕                  -
' -----------------------------------------------
Private Sub command14_Click()
If LastInput = "數字" Then
NumOp = NumOp + 1
End If
Select Case NumOp
Case 1
    Op1 = Label1.Caption
  Case 2
    Op2 = Label1.Caption
    Calculation
End Select
If LastInput <> "負值" Then
LastInput = "運算符號"
  PreOp = "X"
End If
End Sub
' -----------------------------------------------
'  物件名稱:cmdPercent 事件名稱:Click    -
' 處理按 % 鈕                  -
' -----------------------------------------------
Private Sub command19_Click()
Var = Val(Label1.Caption)
Var = Var / 100
Label1.Caption = Str(Var)
End Sub
' -----------------------------------------------
'  物件名稱:cmdPlus   事件名稱:Click    -
' 處理按 + 鈕                  -
' -----------------------------------------------
Private Sub command13_Click()
If LastInput = "數字" Then
NumOp = NumOp + 1
End If
Select Case NumOp
Case 1
    Op1 = Label1.Caption
  Case 2
    Op2 = Label1.Caption
    Calculation
End Select
If LastInput <> "負值" Then
LastInput = "運算符號"
  PreOp = "+"
End If
End Sub
' -----------------------------------------------
'  物件名稱:Form    事件名稱:Load    -
' 設定初使小算盤狀況              -
' -----------------------------------------------
Private Sub Form_Load()
Label1.Caption = "0"      ' 顯示初值
DeFlag = False          ' 小數點初值
NumOp = 0            ' 資料數
LastInput = "無"         ' 前次輸入資料類別
PreOp = " "           ' 運算符號
Op1 = 0             ' 資料1初值
Op2 = 0             ' 資料2初值
End Sub
' -----------------------------------------------
'  處理按數字鈕                -
' -----------------------------------------------
Private Sub Number(num As Integer)
If LastInput <> "數字" Then
Label1.Caption = "."
  DeFlag = False
End If
If DeFlag Then
Label1.Caption = Label1.Caption + Str(num)
Else
tmp = Label1.Caption
  tmp = Left(tmp, Len(tmp) - 1)
  Label1.Caption = tmp + Str(num) + "."
End If
If LastInput = "負值" Then
Label1.Caption = "-" + Label1.Caption
End If
LastInput = "數字"
End Sub
Private Sub lblOut_Click()
End Sub
arrow
arrow
    全站熱搜

    vbqa 發表在 痞客邦 留言(1) 人氣()