![](https://static.zsdocx.com/FlexPaper/FileRoot/2019-6/5/21/c1687b1a-8480-47ff-98be-e9cd6ece2e86/c1687b1a-8480-47ff-98be-e9cd6ece2e86pic.jpg)
![面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)——計(jì)算器_第1頁(yè)](https://static.zsdocx.com/FlexPaper/FileRoot/2019-6/5/21/c1687b1a-8480-47ff-98be-e9cd6ece2e86/c1687b1a-8480-47ff-98be-e9cd6ece2e861.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 面向?qū)ο蟪绦蛟O(shè)計(jì)</b></p><p><b> 課程設(shè)計(jì)報(bào)告</b></p><p> 題 目: </p><p> 專 業(yè): </p>&l
2、t;p> 班 級(jí): </p><p> 學(xué) 號(hào): </p><p> 姓 名: </p><p> 指導(dǎo)老師:
3、 </p><p> 時(shí) 間: </p><p> 一、課程設(shè)計(jì)題目及所涉及知識(shí)點(diǎn)</p><p> 設(shè)計(jì)題目是“計(jì)算器應(yīng)用程序”</p><p> 所涉及的知識(shí)點(diǎn)主要是:</p><p> 1、java的抽象與封裝:private、pub
4、lic、protected之類的訪問(wèn)屬性控制符;</p><p> 2、圖形用戶界面:java中的awt包(Panel、Frame類),swing包(JFrame、Jpanel類)以及各種組件的使用即 按鈕JButton、布局管理器(BorderLayout、GridLayout等)、標(biāo)簽JLabel、JTextField等;</p><p> 3、java機(jī)制:鼠標(biāo)事件的處理,窗口事
5、件的處理;</p><p> 4、類的繼承與接口的實(shí)現(xiàn):類的繼承(extends關(guān)鍵字),接口的實(shí)現(xiàn)(implements關(guān)鍵字)。</p><p><b> 二、課程設(shè)計(jì)思路</b></p><p> 1、設(shè)計(jì)的計(jì)算器是基于AWT 、SWING組;其功能就是可以完成加法、減法、乘法、除法簡(jiǎn)單運(yùn)算以及其他復(fù)雜運(yùn)算 例如:求平方、立方、平方
6、根、對(duì)數(shù)、正弦、余弦、正切,余數(shù)等。</p><p> 2、此程序由2個(gè)面板組成,第一個(gè)面板放置輸入信息和運(yùn)算結(jié)果的顯示文本域,第二個(gè)面板放置按鈕組建,例如數(shù)字鍵1、2、3、4等,利用布局管理器的嵌套完成各組件的分布。</p><p> 3、分兩個(gè)部分來(lái)來(lái)具體實(shí)現(xiàn)該計(jì)算器即 Jisuan.java實(shí)現(xiàn)具體的界面布局及運(yùn)算功能、CalculatorFrame.java為主函數(shù)部分,實(shí)現(xiàn)具
7、體的面板顯示及大小設(shè)計(jì),對(duì)計(jì)算機(jī)進(jìn)行初始化。</p><p> 三、課程設(shè)計(jì)中遇到的難點(diǎn)及解決辦法</p><p> 難點(diǎn):1、如何實(shí)現(xiàn)清零功能</p><p> 2、數(shù)學(xué)函數(shù)功能的實(shí)現(xiàn)</p><p><b> 解決方法:</b></p><p> 1、分析代碼的運(yùn)行過(guò)程,設(shè)計(jì)出幾種解
8、決方式,然后進(jìn)行實(shí)踐,多次試驗(yàn)后解決了該問(wèn)題。</p><p> 2、在JDK中尋找實(shí)現(xiàn)此數(shù)學(xué)函數(shù)的代碼。</p><p><b> 四、總結(jié)</b></p><p> 程序設(shè)計(jì)中,發(fā)現(xiàn)了自己有很多不足的地方,更加深了我對(duì)事件監(jiān)聽各方方法的實(shí)現(xiàn)功能,布局管理的應(yīng)用和GUI各組建的使用的認(rèn)識(shí)。更加認(rèn)識(shí)到要努力自己解決問(wèn)題,無(wú)論是通過(guò)書籍還是
9、網(wǎng)絡(luò)資料,自己動(dòng)手實(shí)踐,這樣更能加深印象,加強(qiáng)記憶,也能認(rèn)識(shí)到自己的不足,促使自己不得不去提高自在此次己的編程水平,每一次的實(shí)踐都是對(duì)自己的能力的檢測(cè),都是一次寶貴的經(jīng)驗(yàn),也是強(qiáng)迫自己學(xué)習(xí)的一種有效方式。</p><p> 五、附錄—主要源程序代碼及運(yùn)行結(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ù)學(xué)格式異常");</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ù)學(xué)格式異常");</p><p> if(y<0)f1.setText("負(fù)數(shù)沒(méi)平方根");</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("錯(cuò)誤");}</p><p> catch(StringIndexOutOfBoundsException e4){</p><p> f1.setText("錯(cuò)誤");}}}</p><p> public static v
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)--分?jǐn)?shù)計(jì)算器
- 計(jì)算器課程設(shè)計(jì)---計(jì)算器仿真程序設(shè)計(jì)
- c++計(jì)算器課程設(shè)計(jì)--計(jì)算器程序設(shè)計(jì)
- 【課程設(shè)計(jì)】面向?qū)ο蟪绦蛟O(shè)計(jì)
- 面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)
- 面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)
- 面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)
- 面向?qū)ο笳n程設(shè)計(jì)--模擬科學(xué)計(jì)算器
- 面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)報(bào)告
- 面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)報(bào)告
- 《面向?qū)ο蟮某绦蛟O(shè)計(jì)》課程設(shè)計(jì)
- java課程設(shè)計(jì)--java面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)
- 《面向?qū)ο蟪绦蛟O(shè)計(jì)》課程設(shè)計(jì)---java日歷
- 《面向?qū)ο蟪绦蛟O(shè)計(jì)》課程設(shè)計(jì)java日歷
- 面向?qū)ο蟮某绦蛟O(shè)計(jì)課程設(shè)計(jì)報(bào)告
- 面向?qū)ο缶幊逃?xùn)練課程設(shè)計(jì)---迷你計(jì)算器設(shè)計(jì)
- 《c#計(jì)算器程序設(shè)計(jì)》課程設(shè)計(jì)--計(jì)算器的開發(fā)與應(yīng)用
- c++面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)報(bào)告
- 面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)--火車訂票系統(tǒng)
- java計(jì)算器課程設(shè)計(jì)---計(jì)算器模擬程序
評(píng)論
0/150
提交評(píng)論