Java課程設計
Java課程設計
一、題目介紹
計算器模擬程序(2人)得分系數:D
功能要求:仿照Windows計算器,編寫一具有GUI的計算器,能實現整數的加、減、乘、除四則運算,並且需要支持鍵盤快捷鍵,基本可取代windows計算器。支持復制、粘貼功能,方便輸入長串數字。
界面顯示可參考下圖。歷次計算需存放在文件中,下回啟動可重復使用。功能具體參考windows計算器(查看菜單選擇:標準型、歷史記錄(實現這個可提升等級))
加分建議:更多功能(進制轉換)、更漂亮界面、更方便的操作、支持解析四則運算表達式、支持對大數的加減法、支持對運算結果的保存與讀取。或者做成多線程,提供網絡計算服務。
二、團隊成員及任務分配表
三、設計過程
產品界面
系統流程圖
系統功能圖
主要功能設計
進制轉換
利用Integer的toBinaryString方法和toOctalString方法實現轉換,但是我們定義的resultNumber是double型,所以要先把resultNumber轉換成int型,再用兩個方法,最後用Double的valueOf方法賦值給resultNumber。
精確度實現
浮點型計算是不精確的,BigDecimal類才能實現精確的計算,在以上提到的幾種運算中都要用到此類。使用String.valueOf將double型轉換成String型,然後new BigDecimal 對象,再用BigDecimal自帶的add、subtract、multiply等方法。
四、Git提交
林俊偉
鏈接
程會青
代碼 鏈接
.jar包 鏈接
五、課設總結
本次Java課設 計算器 界面較為美觀,基本功能較為齊全,最大的亮點在於精度的完善與 進制轉換 的實現,也能保存前次運算結果,能夠實現內外大串數據的復制粘貼;遺憾與不足就在於未能實現長串運算表達式,僅能累次運算,算法優先級運算未能實現;使用鍵盤輸入.0123456789也未能實現,多次研究KeyListener並嘗試編寫相應代碼,出現些許錯誤未能得到解決,後選擇放棄;通過本次課設,我對界面設計和Swing組件有了更加深入的理解,形成較為縝密的運算思維,但是對創建表達式(棧的認知還有待加強)、對鍵盤鼠標監聽器的研究還有待深入。
Java課程設計