JAVA保存計算過程的計算器課程設(shè)計報告_第1頁
JAVA保存計算過程的計算器課程設(shè)計報告_第2頁
JAVA保存計算過程的計算器課程設(shè)計報告_第3頁
JAVA保存計算過程的計算器課程設(shè)計報告_第4頁
JAVA保存計算過程的計算器課程設(shè)計報告_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 保存計算過程的保存計算過程的 java 計算器計算器 目目 錄錄1 概 述.11.1 課程設(shè)計目的 .11.2 課程設(shè)計內(nèi)容 .12 系統(tǒng)需求分析.12.1 系統(tǒng)目標(biāo) .12.2 主體功能 .12.3 開發(fā)環(huán)境 .13 系統(tǒng)概要設(shè)計.13.1 系統(tǒng)的功能模塊劃分 .13.2 系統(tǒng)流程圖 .24 系統(tǒng)詳細設(shè)計 .25 測試.65.1 測試方案 .65.2 測試結(jié)果 .66 小結(jié).6參考文獻.8附 錄.9附錄 1 源程序清單 .9永磁同步電機雙環(huán)調(diào)速系統(tǒng)的仿真研究01 1 概概 述述 1.11.1 課程設(shè)計目的課程設(shè)計目的 1.掌握 JAVA 語言編程的基礎(chǔ)知識并能熟練運用。 2.熟悉類聲明與對

2、象的使用。 3.理解委托時間處理模型。 4.了解 JAVA 語言的圖形用戶界面 JAVAS WING 的設(shè)計知識。 5.運用 JAVA SWING 編寫簡單計算器程序,并實現(xiàn)其功能 。 1.21.2 課程設(shè)計內(nèi)容課程設(shè)計內(nèi)容 設(shè)計 GUI 界面的計算機程序,用戶可以通過鼠標(biāo)依次輸入?yún)⒓佑嬎愕臄?shù)值,進行加,減,乘,除,等混合運算。2 系統(tǒng)需求分析系統(tǒng)需求分析 2.12.1 系統(tǒng)目標(biāo)系統(tǒng)目標(biāo)一個簡單的計算器程序。用戶可以利用鼠標(biāo)點擊數(shù)值或操作符按鍵完成計算的輸入,計算的結(jié)果將被顯示在窗口上部的文本框中。2.22.2 主體功能主體功能 1.按下數(shù)字鍵在文本框上會顯示數(shù)字,這是計算器最基本的功能2.在

3、任何時候按下“+-”鍵,計算器文本框上的數(shù)字置反3.上面一個文本框顯示計算過程,下面一個文本框顯示輸入的數(shù)字4.當(dāng)按下的運算符號時前面已經(jīng)按下過運算符號時,下面一個文本框顯示上一個運算符號以及兩個數(shù)之間的運算結(jié)果。5. 按下清除“C”鍵,數(shù)據(jù)被全部清除。2.32.3 開發(fā)環(huán)境開發(fā)環(huán)境 JDK3 3 系統(tǒng)概要設(shè)計系統(tǒng)概要設(shè)計3.13.1 系統(tǒng)的功能模塊劃分系統(tǒng)的功能模塊劃分1 1主界面模塊2事件相應(yīng)模塊保存計算過程的計算器13.23.2 系統(tǒng)流程圖系統(tǒng)流程圖4 系統(tǒng)詳細設(shè)計系統(tǒng)詳細設(shè)計1主界面模塊詳細設(shè)計 頂層容器:ComputerPad 類實現(xiàn)主窗口,頂層容器中包含了 1 個 panel 容器

4、,1個 resultshow 文本框,1 個 process 文本框。 各組件作用:其中 panel 容器用于放數(shù)字按鈕,小數(shù)點,運算符按鈕,清零按鈕,正負轉(zhuǎn)換按鈕以及退格按鈕。兩個文本框一個用于顯示輸入數(shù)據(jù)和計算結(jié)果,另一個用于顯示計算過程。 布局方式:頂層容器用 BroadLayOut 布局,process 和 resultshow 文本框以及panel 容器分別放在定岑容器的 noth,center 以及 south 面,panel 容器 用GridLayOut 布局部分代碼如下數(shù)字按鈕類:實現(xiàn)數(shù)字按鈕的定義public class NumberButton extends Button

5、運算符按鈕類:實現(xiàn)運算符號的定義public class OperationButton extends Button主窗口類實現(xiàn)監(jiān)視器的注冊,窗口布局,組件顏色大小等的設(shè)置public class ComputerPad extends Frame implements ActionListener NumberButton numberButton; OperationButton oprationButton; 永磁同步電機雙環(huán)調(diào)速系統(tǒng)的仿真研究2 Button 小數(shù)點按鈕,正負號按鈕,退格按鈕, 求倒數(shù)按鈕,等號按鈕,清零按鈕; Panel panel; JTextField resu

6、ltShow; JTextField process; String 運算符號=+,-,*,/; LinkedList 鏈表; boolean 是否按下等號=false; public ComputerPad() super(計算器); 鏈表=new LinkedList();/進行組件的聲明,初始化設(shè)置,注冊監(jiān)視器 numberButton=new NumberButton10; for(int i=0;i=9;i+) numberButtoni=new NumberButton(i); numberButtoni.addActionListener(this); oprationButto

7、n=new OperationButton4; for(int i=0;i4;i+) oprationButtoni=new OperationButton(運算符號i); oprationButtoni.addActionListener(this); 小數(shù)點按鈕=new Button(.); 正負號按鈕 =new Button(+/-); 等號按鈕=new Button(=); 求倒數(shù)按鈕=new Button(1/x); 退格按鈕=new Button(退格); 清零按鈕=new Button(C); 清零按鈕.setForeground(Color.red); 退格按鈕.setFore

8、ground(Color.red); 等號按鈕.setForeground(Color.red); 求倒數(shù)按鈕.setForeground(Color.blue); 正負號按鈕.setForeground(Color.blue); 小數(shù)點按鈕.setForeground(Color.blue); 退格按鈕.addActionListener(this); 清零按鈕.addActionListener(this); 等號按鈕.addActionListener(this); 小數(shù)點按鈕.addActionListener(this); 正負號按鈕.addActionListener(this);

9、 求倒數(shù)按鈕.addActionListener(this); /對顯示過程的文本框進行設(shè)置 process=new JTextField(10); process.setHorizontalAlignment(JTextField.LEFT);保存計算過程的計算器3 process.setForeground(Color.blue); process.setFont(new Font(TimesRoman,Font.PLAIN,14); process.setBorder(new SoftBevelBorder(BevelBorder.LOWERED); process.setBackgro

10、und(Color.white); process.setEditable(false); /對顯示輸入值以及運算結(jié)果的文本框進行設(shè)置 resultShow=new JTextField(10); resultShow.setHorizontalAlignment(JTextField.RIGHT); resultShow.setForeground(Color.blue); resultShow.setFont(new Font(TimesRoman,Font.PLAIN,14); resultShow.setBorder(new SoftBevelBorder(BevelBorder.LO

11、WERED); resultShow.setBackground(Color.white); resultShow.setEditable(false); /進行主窗口布局 panel=new Panel(); panel.setLayout(new GridLayout(5,4); Panel.add(清零按鈕); Panel.add(退格按鈕); panel.add(numberButton1); panel.add(numberButton2); panel.add(numberButton3); Panel.add(numberButton4); panel.add(numberBut

12、ton5); panel.add(numberButton6); Panel.add(numberButton7); panel.add(numberButton8); panel.add(numberButton9); Panel.add(numberButton0); Panel.add(oprationButton0); panel.add(oprationButton1); panel.add(oprationButton2); panel.add(oprationButton3); panel.add(求倒數(shù)按鈕); panel.add(正負號按鈕); panel.add(小數(shù)點按鈕

13、); Panel.add(等號按鈕); add(panel,BorderLayout.SOUTH); add(resultShow,BorderLayout.CENTER); add(process,BorderLayout.NORTH); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); setVisible(true); setBounds(100,50,170,190); setResizable(false); validate();永磁同步

14、電機雙環(huán)調(diào)速系統(tǒng)的仿真研究4 2事件響應(yīng)模塊詳細設(shè)計 模塊功能:事件響應(yīng)模塊用于實現(xiàn)數(shù)據(jù)輸入,保存,運算以及顯示。 具體實現(xiàn):將主窗口作為窗口中所有組件的監(jiān)視器 ,鏈表用來存儲輸入的數(shù)字以及操作符以便運算時提取出來,監(jiān)視器用 if,else if 語句 分?jǐn)?shù)字按鈕,小數(shù)點,運算符按鈕,清零按鈕,正負轉(zhuǎn)換按鈕以及退格按鈕 6 種情況進行相應(yīng)處理,其中除了清零按鈕每種情況又分成鏈表長度為 1,2,3 作相應(yīng)的處理。 事件響應(yīng)模塊的框架代碼如下 public void actionPerformed(ActionEvent e) 按下數(shù)字按鈕時的事件處理 if(e.getSource() insta

15、nceof NumberButton) NumberButton b=(NumberButton)e.getSource(); if(鏈表.size()=0) else if(鏈表.size()=1&是否按下等號=false) else if(鏈表.size()=1&是否按下等號=true) else if(鏈表.size()=2) else if(鏈表.size()=3) /按下運算符號時的事件處理 else if(e.getSource() instanceof OperationButton) OperationButton b=(OperationButton)e.ge

16、tSource(); if(鏈表.size()=1) else if(鏈表.size()=2) else if(鏈表.size()=3) /按下等號后的事件處理else if(e.getSource()=等號按鈕) 是否按下等號=true; if(鏈表.size()=1|鏈表.size()=2) else if(鏈表.size()=3) /按下小數(shù)點后的事件處理 else if(e.getSource()=小數(shù)點按鈕) if(鏈表.size()=0) else if(鏈表.size()=1) else if(鏈表.size()=3) /按下退格鍵后的事件處理else if(e.getSourc

17、e()=退格按鈕) if(鏈表.size()=1) 保存計算過程的計算器5 else if(鏈表.size()=3) /按下正負號后的事件處理else if(e.getSource()=正負號按鈕) if(鏈表.size()=1) else if(鏈表.size()=3) /按下求倒數(shù)按鈕后的事件處理 else if(e.getSource()=求倒數(shù)按鈕) if(鏈表.size()=1|鏈表.size()=2) else if(鏈表.size()=3) /按下清零按鈕后的事件處理 else if(e.getSource()=清零按鈕) 5 測試測試5.15.1 測試方案測試方案 進行各種情況

18、的輸入檢測進行加,減,乘,除運算,數(shù)字很大,小數(shù),整數(shù)以及先按下“=”等非法輸入情況。5.2 測試結(jié)果測試結(jié)果程序正常的響應(yīng)按鈕事件,能顯示計算過程,當(dāng)運算結(jié)果很大時用科學(xué)記數(shù)法顯示運算結(jié)果永磁同步電機雙環(huán)調(diào)速系統(tǒng)的仿真研究66 小結(jié)小結(jié)在做本項目是時候,會遇到很多問題,最大的問題的如何保存已經(jīng)輸入的數(shù)字或者符號進行運算,如何顯示運算過程,經(jīng)過多次研究和查詢發(fā)現(xiàn)運可以運用鏈表進行存儲和提取數(shù)據(jù),用棧也是可以的。此次課程設(shè)計讓我更了解熟悉了 Java 中的圖形用戶界面和它的編程方式。在完成課題的過程中也不斷充實了自己,學(xué)習(xí)到了很多以前沒有學(xué)習(xí)到的知識,收獲很大。最大的收獲是在彎完成過程中培養(yǎng)的解

19、決問題的能力,在做項目時必然會遇到困難,會有不會的東西,重要的不是現(xiàn)在會不會,而是遇到問題知道如何找到解決的途徑。還使我對所學(xué)知識能夠融會貫通,又不斷豐富了新知識。Java計算器設(shè)計使得我們對所學(xué)的專業(yè)課有了更為深刻的認識,使得知識得到了鞏固和提高。 保存計算過程的計算器7參考文獻參考文獻1耿祥義,張躍平. Java2 實用教程(第三版)M . 北京:清華大學(xué)出版社, 2006 2耿祥義. Java 課程設(shè)計(第三版)M . 北京:清華大學(xué)出版社, 20043張躍平.Java2 實用教程實驗指導(dǎo)與習(xí)題解答(第三版)M. 北京:清華大學(xué)出版社, 2004永磁同步電機雙環(huán)調(diào)速系統(tǒng)的仿真研究8附附

20、錄錄附錄附錄 1 1 源程序清單源程序清單NumberButton.javaNumberButton.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;public class NumberButton extends Button int number; public NumberButton(int number) super(+number); this.number=number; setForeground(Color.blue); public int getNumber() return numb

21、er; OperateButton.javaOperateButton.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;public class OperationButton extends Button String 運算符號; public OperationButton(String s) super(s); 運算符號=s; setForeground(Color.red); public String get 運算符號() return 運算符號; ComputerPad.javaComputerP

22、ad.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;import java.util.LinkedList;import java.text.NumberFormat;保存計算過程的計算器9public class ComputerPad extends Frame implements ActionListener NumberButton numberButton; OperationButton oprationButton; Button 小數(shù)

23、點按鈕,正負號按鈕,退格按鈕, 求倒數(shù)按鈕,等號按鈕,清零按鈕; Panel panel; JTextField resultShow; JTextField process; String 運算符號=+,-,*,/; LinkedList 鏈表; boolean 是否按下等號=false; public ComputerPad() super(計算器); 鏈表=new LinkedList(); numberButton=new NumberButton10; for(int i=0;i=9;i+) numberButtoni=new NumberButton(i); numberButto

24、ni.addActionListener(this); oprationButton=new OperationButton4; for(int i=0;i=1) num=num.substring(0,num.length()-1); 鏈表.set(0,num); resultShow.setText(num); process.setText(+(String)鏈表.get(0) ); else 鏈表.removeLast(); resultShow.setText(0); else if(鏈表.size()=3) String num=(String)鏈表.getLast(); if(n

25、um.length()=1) num=num.substring(0,num.length()-1); 鏈表.set(2,num); resultShow.setText(num); process.setText(+(String)鏈表.get(0)+(String)鏈表.get(1)+(String)鏈表.get(2) ); else 鏈表.removeLast(); resultShow.setText(0);永磁同步電機雙環(huán)調(diào)速系統(tǒng)的仿真研究16 else if(e.getSource()=正負號按鈕) if(鏈表.size()=1) String number1=(String)鏈表.getFirst(); try double d=Double.parseDouble(number1); d=-1*d; String str=String.valueOf(d); 鏈表.set(0,str); resultShow.setText(str); process.setText(str); catch(Exception ee) else if(鏈表.size()=3) String number2=(String)鏈表.getLast(); try double d=Double.parseDouble(number2); d

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論