

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 面向?qū)ο蟪绦蛟O(shè)計</b></p><p><b> 課程設(shè)計報告</b></p><p> 題 目: </p><p> 專 業(yè): </p>&l
2、t;p> 班 級: </p><p> 學 號: </p><p> 姓 名: </p><p> 指導老師:
3、 </p><p> 時 間: </p><p> 一、課程設(shè)計題目及所涉及知識點</p><p> 設(shè)計題目是“計算器應(yīng)用程序”</p><p> 所涉及的知識點主要是:</p><p> 1、java的抽象與封裝:private、pub
4、lic、protected之類的訪問屬性控制符;</p><p> 2、圖形用戶界面:java中的awt包(Panel、Frame類),swing包(JFrame、Jpanel類)以及各種組件的使用即 按鈕JButton、布局管理器(BorderLayout、GridLayout等)、標簽JLabel、JTextField等;</p><p> 3、java機制:鼠標事件的處理,窗口事
5、件的處理;</p><p> 4、類的繼承與接口的實現(xiàn):類的繼承(extends關(guān)鍵字),接口的實現(xiàn)(implements關(guān)鍵字)。</p><p><b> 二、課程設(shè)計思路</b></p><p> 1、設(shè)計的計算器是基于AWT 、SWING組;其功能就是可以完成加法、減法、乘法、除法簡單運算以及其他復(fù)雜運算 例如:求平方、立方、平方
6、根、對數(shù)、正弦、余弦、正切,余數(shù)等。</p><p> 2、此程序由2個面板組成,第一個面板放置輸入信息和運算結(jié)果的顯示文本域,第二個面板放置按鈕組建,例如數(shù)字鍵1、2、3、4等,利用布局管理器的嵌套完成各組件的分布。</p><p> 3、分兩個部分來來具體實現(xiàn)該計算器即 Jisuan.java實現(xiàn)具體的界面布局及運算功能、CalculatorFrame.java為主函數(shù)部分,實現(xiàn)具
7、體的面板顯示及大小設(shè)計,對計算機進行初始化。</p><p> 三、課程設(shè)計中遇到的難點及解決辦法</p><p> 難點:1、如何實現(xiàn)清零功能</p><p> 2、數(shù)學函數(shù)功能的實現(xiàn)</p><p><b> 解決方法:</b></p><p> 1、分析代碼的運行過程,設(shè)計出幾種解
8、決方式,然后進行實踐,多次試驗后解決了該問題。</p><p> 2、在JDK中尋找實現(xiàn)此數(shù)學函數(shù)的代碼。</p><p><b> 四、總結(jié)</b></p><p> 程序設(shè)計中,發(fā)現(xiàn)了自己有很多不足的地方,更加深了我對事件監(jiān)聽各方方法的實現(xiàn)功能,布局管理的應(yīng)用和GUI各組建的使用的認識。更加認識到要努力自己解決問題,無論是通過書籍還是
9、網(wǎng)絡(luò)資料,自己動手實踐,這樣更能加深印象,加強記憶,也能認識到自己的不足,促使自己不得不去提高自在此次己的編程水平,每一次的實踐都是對自己的能力的檢測,都是一次寶貴的經(jīng)驗,也是強迫自己學習的一種有效方式。</p><p> 五、附錄—主要源程序代碼及運行結(jié)果</p><p> import java.awt.*;</p><p> import javax.s
10、wing.JTextField;</p><p> public class Calculator extends Frame {</p><p> GridLayout g1,g2,g3;</p><p> Panel p0,p1,p2,p3;</p><p> JTextField f1;TextField f2;</p&g
11、t;<p> Button b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,</p><p> b11,b12,b13,b14,b15,b16,b17,b18,</p><p> b19,b20,b21,b22,b23,b24,b25,b26;</p><p> StringBuffer s;</p><
12、p> double x,y;int z;static double m;</p><p> public Calculator(){</p><p> g1=new GridLayout(1,4,10,0);</p><p> g2=new GridLayout(4,1,0,15);</p><p> g3=new GridL
13、ayout(4,5,10,15);</p><p> f1=new JTextField(27);</p><p> f1.setHorizontalAlignment(JTextField.RIGHT);</p><p> f1.setForeground(Color.BLACK);</p><p> f1.setFont(new
14、Font("宋體",Font.BOLD,19));</p><p> f1.setText("0");</p><p> f1.setEditable(false);</p><p> f2=new TextField(10);</p><p> f2.setForeground(Color.R
15、ED);</p><p> f2.setEnabled(false);</p><p> b0=new Button("Backspace");</p><p> b0.setForeground(Color.RED);</p><p> b0.addActionListener(new Bt());</p&
16、gt;<p> b1=new Button("CE");</p><p> b1.setForeground(Color.RED);</p><p> b1.addActionListener(new Bt());</p><p> b2=new Button("C");</p><p
17、> b2.setForeground(Color.RED);</p><p> b2.addActionListener(new Bt());</p><p> b3=new Button("sin");</p><p> b3.setForeground(Color.RED);</p><p> b3.a
18、ddActionListener(new Bt());</p><p> b4=new Button("cos");</p><p> b4.setForeground(Color.RED);</p><p> b4.addActionListener(new Bt());</p><p> b5=new Butt
19、on("tan");</p><p> b5.setForeground(Color.RED);</p><p> b5.addActionListener(new Bt());</p><p> b6=new Button("log");</p><p> b6.setForeground(C
20、olor.RED);</p><p> b6.addActionListener(new Bt());</p><p> b7=new Button("7");</p><p> b7.addActionListener(new Bt());</p><p> b8=new Button("8"
21、);</p><p> b8.addActionListener(new Bt());</p><p> b9=new Button("9");</p><p> b9.addActionListener(new Bt());</p><p> b10=new Button("/");</
22、p><p> b10.addActionListener(new Bt());</p><p> b11=new Button("sqrt");</p><p> b11.addActionListener(new Bt());</p><p> b12=new Button("4");</p
23、><p> b12.addActionListener(new Bt());</p><p> b13=new Button("5");</p><p> b13.addActionListener(new Bt());</p><p> b14=new Button("6");</p>
24、<p> b14.addActionListener(new Bt());</p><p> b15=new Button("*");</p><p> b15.addActionListener(new Bt());</p><p> b16=new Button("%");</p>&l
25、t;p> b16.addActionListener(new Bt());</p><p> b17=new Button("1");</p><p> b17.addActionListener(new Bt());</p><p> b18=new Button("2");</p><p&
26、gt; b18.addActionListener(new Bt());</p><p> b19=new Button("3");</p><p> b19.addActionListener(new Bt());</p><p> b20=new Button("-");</p><p>
27、 b20.addActionListener(new Bt());</p><p> b21=new Button("1/X");</p><p> b21.addActionListener(new Bt());</p><p> b22=new Button("0");</p><p> b
28、22.addActionListener(new Bt());</p><p> b23=new Button("+/-");</p><p> b23.addActionListener(new Bt());</p><p> b24=new Button(".");</p><p> b24
29、.addActionListener(new Bt());</p><p> b25=new Button("+");</p><p> b25.addActionListener(new Bt());</p><p> b26=new Button("=");</p><p> b26.add
30、ActionListener(new Bt());</p><p> p1=new Panel();</p><p> p2=new Panel();p3=new Panel();p0=new Panel();</p><p> s=new StringBuffer();</p><p> p0.add(f1);</p>
31、<p> p0.setBounds(10,25,300,40);</p><p> p1.setLayout(g1);</p><p> p1.add(f2);p1.add(b0);p1.add(b1);p1.add(b2);</p><p> p1.setBounds(10,65,300,25);</p><p> p
32、2.setLayout(g2);</p><p> p2.add(b3);p2.add(b4);p2.add(b5);p2.add(b6);</p><p> p2.setBounds(10,110,40,150);</p><p> p3.setLayout(g3);</p><p> p3.add(b7);p3.add(b8);p
33、3.add(b9);p3.add(b10);</p><p> p3.add(b11);p3.add(b12);p3.add(b13);p3.add(b14);</p><p> p3.add(b15);p3.add(b16);p3.add(b17);p3.add(b18);</p><p> p3.add(b19);p3.add(b20);p3.add(b2
34、1);p3.add(b22);</p><p> p3.add(b23);p3.add(b24);p3.add(b25);p3.add(b26);</p><p> p3.setBounds(60,110,250,150);</p><p> setLayout(null);</p><p> add(p0);add(p1);add(
35、p2);add(p3);</p><p> setResizable(false);</p><p> addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvent e1)</p><p> {System.exit(0);}});</p><p>
36、setBackground(Color.lightGray);</p><p> setBounds(100,100,320,280);</p><p> setVisible(true);}</p><p> class Bt implements ActionListener{</p><p> public void actio
37、nPerformed(ActionEvent e) {</p><p><b> try{</b></p><p> if(e.getSource()==b1){</p><p> f1.setText("0");</p><p> s.setLength(0);}</p>&l
38、t;p> else if(e.getSource()==b23){</p><p> x=Double.parseDouble(f1.getText().trim());</p><p> f1.setText(""+"-"+x);}</p><p> else if(e.getSource()==b25){&
39、lt;/p><p> x=Double.parseDouble(f1.getText().trim());</p><p> s.setLength(0);y=x;z=0;}</p><p> else if(e.getSource()==b20){</p><p> x=Double.parseDouble(f1.getText().t
40、rim());</p><p> s.setLength(0);y=x;z=1;}</p><p> else if(e.getSource()==b15){</p><p> x=Double.parseDouble(f1.getText().trim());</p><p> s.setLength(0);y=x;z=2;}<
41、;/p><p> else if(e.getSource()==b10){</p><p> x=Double.parseDouble(f1.getText().trim());</p><p> s.setLength(0);y=x;z=3;</p><p> }else if(e.getSource()==b3){</p>
42、<p> x=Double.parseDouble(f1.getText().trim());</p><p> s.setLength(0);</p><p> y=Math.toRadians(x);</p><p> f2.setText(""+(Math.sin(y)));</p><p>
43、 f1.setText("sin("+x+")"+"=");}</p><p> else if(e.getSource()==b4){</p><p> x=Double.parseDouble(f1.getText().trim());</p><p> s.setLength(0);</p
44、><p> y=Math.toRadians(x);</p><p> f2.setText(""+(Math.cos(y)));</p><p> f1.setText("cos("+x+")"+"=");}</p><p> else if(e.getSo
45、urce()==b5){</p><p> x=Double.parseDouble(f1.getText().trim());</p><p> s.setLength(0);</p><p> y=Math.toRadians(x);</p><p> f2.setText(""+(Math.tan(y)));
46、</p><p> f1.setText("tan("+x+")"+"=");}</p><p> else if(e.getSource()==b6){</p><p> x=Double.parseDouble(f1.getText().trim());y=x;</p><p&
47、gt; f1.setText("數(shù)學格式異常");</p><p> if(y<=0) f1.setText("指數(shù)不能小于或等于零");</p><p> else f2.setText(""+Math.log(x));</p><p> f1.setText("log("
48、;+x+")");</p><p> s.setLength(0);</p><p><b> y=0d;}</b></p><p> else if(e.getSource()==b26){</p><p> s.setLength(0);</p><p> swi
49、tch(z){</p><p> case 0:{f2.setText(""+(y+x));</p><p> f1.setText(y+"+"+x+"=");</p><p><b> }break;</b></p><p> case 1:{f2.s
50、etText(""+(x-y));</p><p> f1.setText(y+"-"+x+"="); </p><p><b> }break;</b></p><p> case 2:{f2.setText(""+(y*x));</p>
51、<p> f1.setText(y+"×"+x+"=");</p><p><b> }break;</b></p><p> case 3:{f2.setText(""+(y/x));</p><p> f1.setText(y+"/"
52、+x+"="); </p><p><b> }break;}}</b></p><p> else if(e.getSource()==b24){if(f1.getText().trim</p><p> ().indexOf('.')!=-1){}</p><p><b
53、> else{</b></p><p> if(f1.getText().trim().equals("0")){</p><p> s.setLength(0);</p><p> f1.setText((s.append("0"+e.getActionCommand</p><
54、p> ())).toString());}</p><p> else if(f1.getText().trim().equals("")){}</p><p><b> else{</b></p><p> f1.setText(s.append(e.getActionCommand()).toString(
55、));</p><p><b> }}y=0d;}</b></p><p> else if(e.getSource()==b11){</p><p> x=Double.parseDouble(f1.getText().trim());</p><p><b> y=x;</b></
56、p><p> f1.setText("數(shù)學格式異常");</p><p> if(y<0)f1.setText("負數(shù)沒平方根");</p><p> else f2.setText(""+Math.sqrt(x));</p><p> f1.setText("s
57、qrt("+x+")");</p><p> s.setLength(0);</p><p><b> y=0d;}</b></p><p> else if(e.getSource()==b16){</p><p> x=Double.parseDouble(f1.getText(
58、).trim());</p><p> f2.setText(""+(0.01*x));</p><p> f1.setText(x+"/100");</p><p> s.setLength(0);</p><p><b> y=0d;}</b></p>&
59、lt;p> else if(e.getSource()==b21){</p><p> x=Double.parseDouble(f1.getText().trim());</p><p> if(x==0){f1.setText("除數(shù)不能為0");}</p><p> else{f2.setText(""+(
60、1/x));</p><p> f1.setText("1"+"/"+x);}</p><p> s.setLength(0);</p><p><b> y=0d;}</b></p><p> else if(e.getSource()==b0){</p>
61、<p> if(f1.getText().trim().equals("0")){</p><p> if(s.length()!=1){</p><p> f1.setText(s.delete</p><p> (s.length()-1,s.length()).toString());}</p><p&
62、gt;<b> else{</b></p><p> f1.setText("0");</p><p> s.setLength(0);}}</p><p> y=Double.parseDouble(f1.getText().trim());}</p><p><b> else
63、{</b></p><p> f1.setText(s.append(e.getActionCommand</p><p> ()).toString());</p><p> x=Double.parseDouble(f1.getText().trim());}}</p><p> catch(NumberFormatE
64、xception e3){</p><p> f1.setText("錯誤");}</p><p> catch(StringIndexOutOfBoundsException e4){</p><p> f1.setText("錯誤");}}}</p><p> public static v
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 面向?qū)ο蟪绦蛟O(shè)計課程設(shè)計--分數(shù)計算器
- 計算器課程設(shè)計---計算器仿真程序設(shè)計
- c++計算器課程設(shè)計--計算器程序設(shè)計
- 【課程設(shè)計】面向?qū)ο蟪绦蛟O(shè)計
- 面向?qū)ο蟪绦蛟O(shè)計課程設(shè)計
- 面向?qū)ο蟪绦蛟O(shè)計課程設(shè)計
- 面向?qū)ο蟪绦蛟O(shè)計課程設(shè)計
- 面向?qū)ο笳n程設(shè)計--模擬科學計算器
- 面向?qū)ο蟪绦蛟O(shè)計課程設(shè)計報告
- 面向?qū)ο蟪绦蛟O(shè)計課程設(shè)計報告
- 《面向?qū)ο蟮某绦蛟O(shè)計》課程設(shè)計
- java課程設(shè)計--java面向?qū)ο蟪绦蛟O(shè)計課程設(shè)計
- 《面向?qū)ο蟪绦蛟O(shè)計》課程設(shè)計---java日歷
- 《面向?qū)ο蟪绦蛟O(shè)計》課程設(shè)計java日歷
- 面向?qū)ο蟮某绦蛟O(shè)計課程設(shè)計報告
- 面向?qū)ο缶幊逃柧氄n程設(shè)計---迷你計算器設(shè)計
- 《c#計算器程序設(shè)計》課程設(shè)計--計算器的開發(fā)與應(yīng)用
- c++面向?qū)ο蟪绦蛟O(shè)計課程設(shè)計報告
- 面向?qū)ο蟪绦蛟O(shè)計課程設(shè)計--火車訂票系統(tǒng)
- java計算器課程設(shè)計---計算器模擬程序
評論
0/150
提交評論