第四課 計算器代碼的編寫

 上節課我們已經對程序大概框架做了分析,這節課我們就來開始編寫程序代碼。由於計算器主要是對各位按鈕做出反應,所以我們的代碼也大多都是在按鈕的單擊事件中發生,上節課我們把按鈕做了一個分類,共爲5類:清零按鈕、等號按鈕、數字按鈕、計算符號按鈕、小數點按鈕。小數點按鈕及等號按鈕相對比較複雜一點,我們從易到難,先做簡單的,再做複雜的。

首先聲明幾個變量:
Option Compare Database ‘這句是程序原本就有的,在這句下面輸入下面兩句
Dim dblNum1 As Double ‘定義變量來保存第一個參加運算的數值
Dim strOperator As String ‘定義變量來保存運算符號

1、清零按鈕
只有一句程序,作用是把窗體上的文本框清零。

Private Sub cmdClear_Click()
txtResult = 0
End Sub

按下這個按鈕之後,文本框裏的值爲0。

2、數字按鈕
這一類的按鈕共有10個,當按下這類按鈕就把代表這個按鈕的數字加在文本框現有數字的後面。

Private Sub cmd0_Click()
txtResult = txtResult & 0
End Sub

這是cmd0按鈕的事件,其它數字按鈕的事件也類似,只需把最後面的0改爲相應數字就行了。

3、運算符號按鈕
當按下運算符號按鈕時,做三件事:

a)把文本框裏的數值保存到變量dblNum1中
dblNum1 = Val(txtResult)

b)把代表該按鈕的運算符號保存到變量strOperator中
strOperator = "+" ‘這是按下”+”號按鈕的語句,其它運算按鈕要換成對應的符號

c)把文本框清零,相當於按下清零按鈕
txtResult = 0

4、等號按鈕
當按下等號按鈕時,程序必須判斷你想運行什麼運算,判斷的根據就是保存在變量strOperator中的運算符,運算還要有運算對象,對象的來源一是保存在變量dblnum1中的數值,一是文本框中的數值。判斷語句有許多種,比如if語句以及 select case語句,我們在這裏採用的是select case語句,if語句在小數點按鈕裏會用到。
Select 語句的語法:
Select Case testexpression
[Case expressionlist-n
[statements-n]] ...
[Case Else
[elsestatements]]
End Select

語法說明:
testexpression 必要參數。任何數值表達式或字符串表達式。

expressionlist-n 如果有 Case 出現,則爲必要參數。其形式爲 expression,expression To expression,Is comparisonoperator expression的一個或多個組成的分界列表。To 關鍵字可用來指定一個數值範圍。如果使用 To 關鍵字,則較小的數值要出現在 To 之前。使用 Is 關鍵字時,則可以配合比較運算符(除 Is 和 Like 之外)來指定一個數值範圍。如果沒有提供,則 Is 關鍵字會被自動插入。

statements-n 可選參數。一條或多條語句,當 testexpression 匹配expressionlist-n中的任何部分時執行。

elsestatements 可選參數。一條或多條語句,當 testexpression 不匹配 Case 子句的任何部分時執行。

※更詳細的說明請查閱access幫助

語法已經知道了,那下面就來開始用select case來編寫等號按鈕事件中的程序:
Private Sub cmdEqual_Click()
‘用strOperator來做爲選擇條件
Select Case strOperator

‘當strOperator=”+”
Case "+"

‘文本框的值等於變量dblnum1的值加文本框的值。這裏我們使用了VAL函數,因爲文本框中的值是一個字符串,而變量中的值是雙精度數值型,所以先要用val函數把文本框中的值轉換爲數值型。
txtResult = dblNum1 + Val(txtResult)

‘下面的不做解釋了,因爲都是一樣的語句
Case "-"
txtResult = dblNum1 - Val(txtResult)
Case "*"
txtResult = dblNum1 * Val(txtResult)
Case "/"
txtResult = dblNum1 / Val(txtResult)
End Select
End Sub

還有一個小數點按鈕的程序沒做,由於時間關係,下節課再說,今天已花了太多時間在這了,再不去工作老闆要炒我魷魚了:)

發佈了30 篇原創文章 · 獲贊 5 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章