使用ivx實現簡易計算器的經驗總結

今天要講的是利用ivx製作一個能夠進行簡單加減乘除運算的計算器,設計思路是將整個輸入的運算式保存到一個文本變量中,通過eval()直接方法計算文本變量中表達式的值,下面說一下具體步驟。
使用ivx實現簡易計算器的經驗總結
1.計數器界面的上面用於顯示輸入的計算式和計算結果,下面使用文本組件展示16個按鍵,這16個鍵可以分爲四類,數字鍵,運算符鍵,等於鍵,清零鍵。其中按鈕鍵和運算符鍵它們同類按鍵的操作都是類似的,我們可以寫成一個動作組,點擊按鍵時調用動作組並將按鍵的文本組件內容傳給動作組即可。
使用ivx實現簡易計算器的經驗總結
2.數字鍵
點擊數字鍵時,只需使用拼接字符串的方式將該鍵的內容添加到計算式末尾即可,不過由於eval()方法中不能計算“09+08”這樣的計算式,所以我們要避免數值首位爲0的情況。爲了做一個標識,我們在demo中添加一個布爾值變量“末位運算符”,計算器處於初始狀態即計算式的值爲空值時我們令其爲true,在計算中當計算式的最後一位是數字時爲false,最後一位是運算符時爲true,。這樣當“末位運算符”爲true時就表示我們此時輸入的是數值首位,此時只有輸入值非0纔將其添加到計算式的末尾,然後將“末位運算符”置爲true,否則進行一個提示。
使用ivx實現簡易計算器的經驗總結
3.運算符
輸入運算符時也需要考慮幾種情況。首先是計算式不爲空的情況,這時如果“末位運算符”爲true標明計算式最末尾已經是一個運算符了,我們則將其刪除替換成新輸入的運算符,做法是截取計算式除最後一位以外的部分和新輸入的運算符進行拼接;如果“末位運算符”爲false則說明計算式末尾爲數值,直接在計算式末尾添加新輸入的運算符並將“末位運算符”置爲true即可。另外就是計算器處於初始狀態,計算式爲空時,輸入“+”、“*”、“/”這三個運算符是沒有意義的,所以只在輸入的運算符爲“-”將其添加到計算式中,其它情況則對用戶進行一個提示。
使用ivx實現簡易計算器的經驗總結
4.等於鍵
當點擊等於鍵的時候,我們使用eval()方法對計算式中的內容進行數值計算即可。不過要考慮到計算式最後輸入的內容爲運算符的情況,這種情況下“末尾運算符”的值會爲true,我們對原計算式進行一個截取,拋棄最後一位的無效運算符,另外還要將“末尾運算符”重置爲false。
使用ivx實現簡易計算器的經驗總結
5.清零鍵
清零鍵的事件就比較簡單了,將計算式的內容清空,答案歸0,並把“末位運算符”重置爲true即可。
使用ivx實現簡易計算器的經驗總結
總結
demo中只是實現了簡單的加減乘除,要實現更復雜的計算邏輯肯定要考慮到更多的情況,對輸入的內容也要進行更多的判定。不過最重要的還是對按鍵進行一個分類,能使用同一套動作的都用動作組實現,畢竟一個按鍵一個按鍵的寫事件會增不僅產生大量冗餘代碼也會很容易出錯。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章