版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 《JAVA程序設(shè)計》課程設(shè)計報告</p><p><b> 簡單計算器</b></p><p> 學(xué) 號: </p><p> 姓 名: </p><p> 班 級: 10級計科一班 </
2、p><p> 指導(dǎo)教師: </p><p> 成 績: </p><p> 完成時間: </p><p><b> 設(shè)計內(nèi)容和要求</b></p><p> 1、簡單計算器模擬程序的基本
3、要求</p><p> 模擬Windows中附件里面的計算器軟件,能實現(xiàn)整數(shù)的加、減、乘、除四則運算。 </p><p> 2、需要實現(xiàn)的主要功能</p><p> 該計算器模擬程序使用Java的awt包和Swing包的類庫設(shè)計圖形界面的計算器顯示用戶界面并且使用圖形界面中的事件event委托機制來處理事件響應(yīng),以及用java語言設(shè)計實現(xiàn)整數(shù)的加、減、乘、除四
4、則運算。(附加功能:清零和異常處理機制)</p><p><b> 系統(tǒng)分析與概要設(shè)計</b></p><p><b> 1、面板</b></p><p> JPanel txtpanel:用于放置文本框</p><p> Panel btnpanel: 用于放置按鈕(0-9和+,-,*,/
5、,=) </p><p><b> 2、顯示部分</b></p><p> ?。?)第一個面板:txtpanel</p><p> 位置以及排列方式BorderLayout.NORTH </p><p> txtpanel.add(txtinput):添加文本框到txtpanel面板中</p>
6、<p> ?。?)第二個面板:btnpanel</p><p> 排列方式:setLayout(gl)</p><p><b> 3、基本按鈕 </b></p><p> btnpanel.add(b7) btnpanel.add(b8) btnpanel.add(b9);</p><
7、p> btnpanel.add(multiply) btnpanel.add(b4) btnpanel.add(b5);</p><p> btnpanel.add(b6) btnpanel.add(divide) btnpanel.add(b1);</p><p> btnpanel.add(b2) btnpanel.add(b3)
8、 btnpanel.add(add);</p><p> btnpanel.add(b0) .add(bdes) btnpanel.add(equal);</p><p> btnpanel.add(subtract) </p><p> 以上是在第二個面板btnpanelH中添加的0到9和+,-,*,/,=的按鈕。</p><
9、;p><b> 4、附加功能</b></p><p><b> ?。?)“清零”:</b></p><p> 用于清空文本框和下一次的運算</p><p> (2)“異常處理” </p><p> 除數(shù)為零:當除數(shù)為零時,彈出“除數(shù)不能為零”窗體</p><p>
10、; 錯誤輸入:當只單擊運算符時,彈出“錯誤輸入”窗體</p><p><b> 詳細設(shè)計和編碼</b></p><p><b> 1、總體功能圖</b></p><p><b> 1、類的定義及關(guān)系</b></p><p> Jsq類繼承JFrame類創(chuàng)建主界面,在主
11、界面上由文本框JTextField和JButton組件構(gòu)成,JTextField和JButton組件分別放置在兩個不同的面板JPanel上,同時利用按鈕注冊監(jiān)聽器,獲取事件源。添加實現(xiàn)0--9和加、減、乘、除按鈕并實現(xiàn)四則運算并獲得運算結(jié)果以及“清零”和“異常處理機制”。</p><p><b> 2、運行效果圖</b></p><p><b> 3、源
12、代碼</b></p><p> import javax.swing.*;</p><p> import java.awt.*;</p><p> import java.awt.event.*;</p><p> public class Calculator extends JFrame implements Act
13、ionListener</p><p><b> {</b></p><p> JPanel txtpanel,btnpanel;</p><p> JTextField txtinput;</p><p> JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b0,bdes,multiply,
14、divide,add,</p><p> subtract,clear,equal;</p><p> GridLayout gl;</p><p> double d1,d2;</p><p><b> String s;</b></p><p> public Calculator(
15、)</p><p><b> {</b></p><p> super("計算器");</p><p> txtpanel=new JPanel();</p><p> btnpanel=new JPanel();</p><p> txtinput=new JTex
16、tField(25);</p><p> txtinput.setEditable(false);</p><p> txtinput.setHorizontalAlignment(JTextField.RIGHT);</p><p> txtinput.setText("");</p><p> b1=new J
17、Button("1");</p><p> b2=new JButton("2");</p><p> b3=new JButton("3");</p><p> b4=new JButton("4");</p><p> b5=new JButton(&
18、quot;5");</p><p> b6=new JButton("6");</p><p> b7=new JButton("7");</p><p> b8=new JButton("8");</p><p> b9=new JButton("9&q
19、uot;);</p><p> b0=new JButton("0");</p><p> bdes=new JButton(".");</p><p> add=new JButton("+");</p><p> subtract=new JButton("-&
20、quot;);</p><p> multiply=new JButton("*");</p><p> divide=new JButton("/");</p><p> clear=new JButton("清 零");</p><p> equal=new JButto
21、n("=");</p><p> clear.addActionListener(new ActionListener()</p><p> { public void actionPerformed(ActionEvent argh)</p><p> { btnCancelActionPerformed();}</p>
22、<p><b> });</b></p><p> b1.addActionListener(this);</p><p> b2.addActionListener(this);</p><p> b3.addActionListener(this);</p><p> b4.addActionLi
23、stener(this);</p><p> b5.addActionListener(this);</p><p> b6.addActionListener(this);</p><p> b7.addActionListener(this);</p><p> b8.addActionListener(this);</p&
24、gt;<p> b9.addActionListener(this);</p><p> b0.addActionListener(this);</p><p> bdes.addActionListener(this);</p><p> multiply.addActionListener(this);</p><p&g
25、t; divide.addActionListener(this);</p><p> add.addActionListener(this);</p><p> subtract.addActionListener(this);</p><p> equal.addActionListener(this);</p><p> ge
26、tContentPane().add(txtpanel,BorderLayout.NORTH);</p><p> txtpanel.add(txtinput);</p><p> txtpanel.add(clear);</p><p> gl=new GridLayout(4,4,5,5);</p><p> btnpanel.s
27、etLayout(gl);</p><p> getContentPane().add(btnpanel);</p><p> btnpanel.add(b7);</p><p> btnpanel.add(b8);</p><p> btnpanel.add(b9);</p><p> btnpanel.a
28、dd(multiply);</p><p> btnpanel.add(b4);</p><p> btnpanel.add(b5);</p><p> btnpanel.add(b6);</p><p> btnpanel.add(divide);</p><p> btnpanel.add(b1);<
29、;/p><p> btnpanel.add(b2);</p><p> btnpanel.add(b3);</p><p> btnpanel.add(add);</p><p> btnpanel.add(b0);</p><p> btnpanel.add(bdes);</p><p>
30、; btnpanel.add(equal);</p><p> btnpanel.add(subtract);</p><p> setSize(250,220);</p><p> setVisible(true);</p><p> setLocation(300,200);</p><p> setD
31、efaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);</p><p><b> }</b></p><p> public void btnCancelActionPerformed()</p><p> { txtinput.setText("");}</p&
32、gt;<p> public void actionPerformed(ActionEvent e)</p><p><b> { try{</b></p><p> Object obj=e.getSource();</p><p> if(obj==b1)</p><p> txtinput.
33、setText(txtinput.getText()+"1");</p><p> else if(obj==b2)</p><p> txtinput.setText(txtinput.getText()+"2");</p><p> else if(obj==b3)</p><p> txt
34、input.setText(txtinput.getText()+"3");</p><p> else if(obj==b4)</p><p> txtinput.setText(txtinput.getText()+"4");</p><p> else if(obj==b5)</p><p>
35、; txtinput.setText(txtinput.getText()+"5");</p><p> else if(obj==b6)</p><p> txtinput.setText(txtinput.getText()+"6");</p><p> else if(obj==b7)</p>&l
36、t;p> txtinput.setText(txtinput.getText()+"7");</p><p> else if(obj==b8)</p><p> txtinput.setText(txtinput.getText()+"8");</p><p> else if(obj==b9)</p&g
37、t;<p> txtinput.setText(txtinput.getText()+"9");</p><p> else if(obj==b0)</p><p> txtinput.setText(txtinput.getText()+"0");</p><p> else if(obj==bdes)
38、</p><p> txtinput.setText(txtinput.getText()+".");</p><p> else if(obj==add)</p><p> { d1=Double.parseDouble(txtinput.getText());</p><p><b> s="
39、;+";</b></p><p> txtinput.setText("");</p><p><b> }</b></p><p> else if(obj==subtract)</p><p> { d1=Double.parseDouble(txtinput.get
40、Text());</p><p><b> s="-";</b></p><p> txtinput.setText(""); </p><p><b> }</b></p><p> else if(obj==divide)</p>&
41、lt;p> { d1=Double.parseDouble(txtinput.getText());</p><p><b> s="/";</b></p><p> txtinput.setText("");</p><p><b> }</b></p>
42、<p> else if(obj==multiply)</p><p> { d1=Double.parseDouble(txtinput.getText());</p><p><b> s="*";</b></p><p> txtinput.setText("");</p&
43、gt;<p><b> }</b></p><p> else if(obj==equal)</p><p> { if(s=="+")</p><p> { d2=d1+Double.parseDouble(txtinput.getText());</p><p> txti
44、nput.setText(Double.toString(d2));</p><p><b> }</b></p><p> else if(s=="-")</p><p> { d2=d1-Double.parseDouble(txtinput.getText());</p><p> tx
45、tinput.setText(Double.toString(d2));</p><p><b> }</b></p><p> else if(txtinput.equals(txtinput.getText())&&obj==subtract)</p><p> { d2=d1-Double.parseDouble(t
46、xtinput.getText());</p><p> txtinput.setText(Double.toString(d2)); }</p><p> else if(s=="/")</p><p> { if(Double.parseDouble(txtinput.getText())==0)</p><p>
47、; JOptionPane.showMessageDialog(this, "除數(shù)不能為0");</p><p> d2=d1/Double.parseDouble(txtinput.getText());</p><p> txtinput.setText(Double.toString(d2));</p><p><b>
48、}</b></p><p> else if(s=="*")</p><p> { d2=d1*Double.parseDouble(txtinput.getText());</p><p> txtinput.setText(Double.toString(d2)); </p><p><b>
49、; }</b></p><p><b> }</b></p><p><b> }</b></p><p> catch(Exception ouch)</p><p> { JOptionPane.showMessageDialog(null,"錯誤輸入"
50、,"error",</p><p> JOptionPane.ERROR_MESSAGE); }</p><p><b> }</b></p><p> public static void main(String args[])</p><p><b> { try {</b
51、></p><p> UIManager.setLookAndFeel ("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");}</p><p> catch(Exception e){}</p><p> new Calculator();</p><p&g
52、t;<b> }</b></p><p><b> }</b></p><p><b> 測試結(jié)果</b></p><p> 本次課程設(shè)計的計算器能夠滿足加、減、乘、除四則基本運算,而且通過自己的努力為此計算器添加了兩個附加的功能:“清零”和“異常處理機制”,并能很好的實現(xiàn)其功能。</p
53、><p> 但是此計算器的功能還是很單薄,不能進行開方、取余、三角函數(shù)等其他計算器的常用功能。一是因為這些功能相對復(fù)雜一些,二是自己有點懶惰。所以造成此計算器功能不是很完善。</p><p><b> 小結(jié)</b></p><p> 在此次的課程設(shè)計實踐中,我學(xué)到了教科書上沒有的東西。這次課程設(shè)計,我按照課程設(shè)計的要求,分塊實現(xiàn)程序的功能。在
54、實踐中我遇到許多的問題,通過同學(xué)的幫助和翻閱資料以及網(wǎng)上查詢,最后都克服,最終我成功的完成了這次課程設(shè)計。從中我充分理解了Java面對對象的特性,通過編寫這個相對復(fù)雜的程序,讓我認識解決實際問題前應(yīng)現(xiàn)建立模型,再通過建立的模型使問題簡單化,從而解決問題。這次編寫的程序大部分是通過調(diào)用各包中的方法來實現(xiàn)的,這也讓我充分理解了包和類調(diào)用的關(guān)系。并為其增加了兩個功能“清零”和“異常處理機制”。由于這次編寫的程序相對比較復(fù)雜,所以不能一次性編寫
55、、調(diào)試,也由此讓我學(xué)會把程序分塊,逐個編寫、調(diào)試。</p><p> 在實踐的同時,我又從中成長了許多,特別是在對程序的編譯和調(diào)試中掌握了許多的技巧和方法,為今后的其他計算機語言的學(xué)習(xí)奠定了一定的基礎(chǔ)。</p><p><b> 參考文獻</b></p><p> [1] 張思民. Java語言程序設(shè)計[M]. 清華大學(xué)出版社. 2007
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- java計算器課程設(shè)計報告---模擬科學(xué)計算器
- java課程設(shè)計—計算器
- java課程設(shè)計計算器
- java計算器課程設(shè)計
- java計算器課程設(shè)計---計算器模擬程序
- java課程設(shè)計---java計算器
- java課程設(shè)計---計算器
- java課程設(shè)計--計算器
- java課程設(shè)計計算器
- 簡單計算器課程設(shè)計
- java計算器課程設(shè)計-- 計算器的設(shè)計與實現(xiàn)
- java課程設(shè)計報告—計算器
- java課程設(shè)計----簡易計算器
- 簡單計算器課程設(shè)計報告
- java_計算器課程設(shè)計
- java課程設(shè)計-計算器系統(tǒng)
- java課程設(shè)計---科學(xué)計算器
- java實現(xiàn)計算器課程設(shè)計
- java課程設(shè)計-計算器系統(tǒng)
- java計算器課程設(shè)計報告
評論
0/150
提交評論