面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)——計(jì)算器_第1頁(yè)
已閱讀1頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論