程式實例: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
' 小算盤程式設計 -
' -----------------------------------------------
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
全站熱搜
留言列表