1. 程式人生 > >Java課程設計

Java課程設計

產品 復制粘貼 window als 得到 -m bubuko 題目 研究

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課程設計