java帶計算過程的計算器課程設(shè)計報告_第1頁
已閱讀1頁,還剩19頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  Java程序設(shè)計課程設(shè)計報告</p><p>  ( 2010 -- 2011 年度第 1 學(xué)期)</p><p>  保存計算過程的計算器</p><p><b>  目 錄</b></p><p>  1 概 述1</p><p>  1.1 課程設(shè)計目的

2、1</p><p>  1.2 課程設(shè)計內(nèi)容1</p><p>  2 系統(tǒng)需求分析1</p><p>  2.1 系統(tǒng)目標(biāo)1</p><p>  2.2 主體功能1</p><p>  2.3 開發(fā)環(huán)境1</p><p>  3 系統(tǒng)概要設(shè)計1</p><p&g

3、t;  3.1 系統(tǒng)的功能模塊劃分1</p><p>  3.2 系統(tǒng)流程圖2</p><p><b>  4系統(tǒng)詳細(xì)設(shè)計2</b></p><p><b>  5 測試6</b></p><p>  5.1 測試方案6</p><p>  5.2 測試結(jié)果6&l

4、t;/p><p><b>  6 小結(jié)6</b></p><p><b>  參考文獻8</b></p><p><b>  附 錄9</b></p><p>  附錄1 源程序清單9</p><p>  1 概 述 <

5、;/p><p>  1.1 課程設(shè)計目的</p><p>  1.掌握J(rèn)AVA語言編程的基礎(chǔ)知識并能熟練運用。</p><p>  2.熟悉類聲明與對象的使用。</p><p>  3.理解委托時間處理模型。</p><p>  4.了解JAVA語言的圖形用戶界面JAVAS WING的設(shè)計知識。</p>&l

6、t;p>  5.運用JAVA SWING編寫簡單計算器程序,并實現(xiàn)其功能 。 </p><p>  1.2 課程設(shè)計內(nèi)容</p><p>  設(shè)計GUI界面的計算機程序,用戶可以通過鼠標(biāo)依次輸入?yún)⒓佑嬎愕臄?shù)值,進行加,減,乘,除,等混合運算。</p><p><b>  2 系統(tǒng)需求分析 </b></p><p>

7、<b>  2.1 系統(tǒng)目標(biāo)</b></p><p>  一個簡單的計算器程序。用戶可以利用鼠標(biāo)點擊數(shù)值或操作符按鍵完成計算的輸入,計算的結(jié)果將被顯示在窗口上部的文本框中。</p><p><b>  2.2 主體功能 </b></p><p>  按下數(shù)字鍵在文本框上會顯示數(shù)字,這是計算器最基本的功能</p>

8、<p>  在任何時候按下“+-”鍵,計算器文本框上的數(shù)字置反</p><p>  上面一個文本框顯示計算過程,下面一個文本框顯示輸入的數(shù)字</p><p>  當(dāng)按下的運算符號時前面已經(jīng)按下過運算符號時,下面一個文本框顯示上一個運算符號以及兩個數(shù)之間的運算結(jié)果。</p><p>  按下清除“C”鍵,數(shù)據(jù)被全部清除。</p><p

9、><b>  2.3 開發(fā)環(huán)境</b></p><p><b>  JDK</b></p><p><b>  3 系統(tǒng)概要設(shè)計</b></p><p>  3.1 系統(tǒng)的功能模塊劃分</p><p><b>  1.主界面模塊</b></p&

10、gt;<p><b>  2.事件相應(yīng)模塊</b></p><p><b>  3.2 系統(tǒng)流程圖</b></p><p><b>  4系統(tǒng)詳細(xì)設(shè)計</b></p><p>  1.主界面模塊詳細(xì)設(shè)計</p><p>  頂層容器:ComputerPad類實現(xiàn)主

11、窗口,頂層容器中包含了1個panel容器,1個resultshow文本框,1個process文本框。</p><p>  各組件作用:其中panel容器用于放數(shù)字按鈕,小數(shù)點,運算符按鈕,清零按鈕,正負(fù)轉(zhuǎn)換按鈕以及退格按鈕。兩個文本框一個用于顯示輸入數(shù)據(jù)和計算結(jié)果,另一個用于顯示計算過程。</p><p>  布局方式:頂層容器用BroadLayOut布局,process和resultsh

12、ow文本框以及panel容器分別放在定岑容器的noth,center以及south面,panel容器 用GridLayOut布局</p><p><b>  部分代碼如下</b></p><p>  數(shù)字按鈕類:實現(xiàn)數(shù)字按鈕的定義</p><p>  public class NumberButton extends Button{}</

13、p><p>  運算符按鈕類:實現(xiàn)運算符號的定義</p><p>  public class OperationButton extends Button{}</p><p>  主窗口類實現(xiàn)監(jiān)視器的注冊,窗口布局,組件顏色大小等的設(shè)置</p><p>  public class ComputerPad extends Frame imple

14、ments ActionListener </p><p><b>  { </b></p><p>  NumberButton numberButton[]; </p><p>  OperationButton oprationButton[]; </p><

15、p>  Button 小數(shù)點按鈕,正負(fù)號按鈕,退格按鈕,</p><p>  求倒數(shù)按鈕,等號按鈕,清零按鈕;</p><p>  Panel panel; </p><p>  JTextField resultShow; </p><p>  JTextField pr

16、ocess; </p><p>  String 運算符號[]={"+","-","*","/"};</p><p>  LinkedList 鏈表; </p><p>  boolean

17、 是否按下等號=false; </p><p>  public ComputerPad()</p><p><b>  {</b></p><p>  super("計算器");</p><p>  鏈表=new LinkedList();</p>&

18、lt;p>  //進行組件的聲明,初始化設(shè)置,注冊監(jiān)視器</p><p>  numberButton=new NumberButton[10]; </p><p>  for(int i=0;i<=9;i++)</p><p><b>  {</b></p><p>  numberBut

19、ton[i]=new NumberButton(i);</p><p>  numberButton[i].addActionListener(this);</p><p><b>  }</b></p><p>  oprationButton=new OperationButton[4]; </p><p> 

20、 for(int i=0;i<4;i++)</p><p><b>  {</b></p><p>  oprationButton[i]=new OperationButton(運算符號[i]);</p><p>  oprationButton[i].addActionListener(this);</p><p&

21、gt;<b>  }</b></p><p>  小數(shù)點按鈕=new Button(".");</p><p>  正負(fù)號按鈕 =new Button("+/-"); </p><p>  等號按鈕=new Button("=");</p><p>  求倒數(shù)

22、按鈕=new Button("1/x");</p><p>  退格按鈕=new Button("退格");</p><p>  清零按鈕=new Button("C");</p><p>  清零按鈕.setForeground(Color.red);</p><p>  退格按鈕

23、.setForeground(Color.red);</p><p>  等號按鈕.setForeground(Color.red);</p><p>  求倒數(shù)按鈕.setForeground(Color.blue);</p><p>  正負(fù)號按鈕.setForeground(Color.blue);</p><p>  小數(shù)點按鈕.se

24、tForeground(Color.blue);</p><p>  退格按鈕.addActionListener(this);</p><p>  清零按鈕.addActionListener(this);</p><p>  等號按鈕.addActionListener(this);</p><p>  小數(shù)點按鈕.addActionLi

25、stener(this);</p><p>  正負(fù)號按鈕.addActionListener(this);</p><p>  求倒數(shù)按鈕.addActionListener(this);</p><p>  //對顯示過程的文本框進行設(shè)置</p><p>  process=new JTextField(10);</p>&

26、lt;p>  process.setHorizontalAlignment(JTextField.LEFT);</p><p>  process.setForeground(Color.blue);</p><p>  process.setFont(new Font("TimesRoman",Font.PLAIN,14));</p><p&

27、gt;  process.setBorder(new SoftBevelBorder(BevelBorder.LOWERED));</p><p>  process.setBackground(Color.white); </p><p>  process.setEditable(false);</p><p>  //對顯示輸入值以及運算結(jié)果的文本框進行設(shè)置&

28、lt;/p><p>  resultShow=new JTextField(10);</p><p>  resultShow.setHorizontalAlignment(JTextField.RIGHT);</p><p>  resultShow.setForeground(Color.blue);</p><p>  resultShow

29、.setFont(new Font("TimesRoman",Font.PLAIN,14));</p><p>  resultShow.setBorder(new SoftBevelBorder(BevelBorder.LOWERED));</p><p>  resultShow.setBackground(Color.white); </p><

30、;p>  resultShow.setEditable(false);</p><p><b>  //進行主窗口布局</b></p><p>  panel=new Panel(); </p><p>  panel.setLayout(new Gr

31、idLayout(5,4)); </p><p>  Panel.add(清零按鈕);</p><p>  Panel.add(退格按鈕);</p><p>  panel.add(numberButton[1]);</p><p>  panel.add(numberButton[2]);</p><p>  pan

32、el.add(numberButton[3]);</p><p>  Panel.add(numberButton[4]);</p><p>  panel.add(numberButton[5]);</p><p>  panel.add(numberButton[6]);</p><p>  Panel.add(numberButton[

33、7]);</p><p>  panel.add(numberButton[8]);</p><p>  panel.add(numberButton[9]);</p><p>  Panel.add(numberButton[0]);</p><p>  Panel.add(oprationButton[0]);</p>&l

34、t;p>  panel.add(oprationButton[1]);</p><p>  panel.add(oprationButton[2]);</p><p>  panel.add(oprationButton[3]);</p><p>  panel.add(求倒數(shù)按鈕);</p><p>  panel.add(正負(fù)號按鈕

35、);</p><p>  panel.add(小數(shù)點按鈕);</p><p>  Panel.add(等號按鈕);</p><p>  add(panel,BorderLayout.SOUTH);</p><p>  add(resultShow,BorderLayout.CENTER);</p><p>  add(

36、process,BorderLayout.NORTH);</p><p>  addWindowListener(new WindowAdapter()</p><p>  { public void windowClosing(WindowEvent e)</p><p><b>  {</b></p><p>  S

37、ystem.exit(0);</p><p><b>  }</b></p><p><b>  });</b></p><p>  setVisible(true);</p><p>  setBounds(100,50,170,190);</p><p>  setRes

38、izable(false);</p><p>  validate();</p><p><b>  }</b></p><p>  2.事件響應(yīng)模塊詳細(xì)設(shè)計</p><p>  模塊功能:事件響應(yīng)模塊用于實現(xiàn)數(shù)據(jù)輸入,保存,運算以及顯示。</p><p>  具體實現(xiàn):將主窗口作為窗口中所有組件

39、的監(jiān)視器 ,鏈表用來存儲輸入的數(shù)字以及操作符以便運算時提取出來,監(jiān)視器用if,else if語句 分?jǐn)?shù)字按鈕,小數(shù)點,運算符按鈕,清零按鈕,正負(fù)轉(zhuǎn)換按鈕以及退格按鈕6種情況進行相應(yīng)處理,其中除了清零按鈕每種情況又分成鏈表長度為1,2,3作相應(yīng)的處理。</p><p>  事件響應(yīng)模塊的框架代碼如下</p><p>  public void actionPerformed(ActionE

40、vent e){</p><p>  按下數(shù)字按鈕時的事件處理</p><p>  if(e.getSource() instanceof NumberButton) </p><p><b>  {</b></p><p>  NumberButton b=(NumberButton)e.getSource();&

41、lt;/p><p>  if(鏈表.size()==0) {}</p><p>  else if(鏈表.size()==1&&是否按下等號==false){}</p><p>  else if(鏈表.size()==1&&是否按下等號==true) {} </p><p>  else if(鏈表.size()

42、==2) {} </p><p>  else if(鏈表.size()==3) {} </p><p>  } </p><p>  //按下運算符號時的事件處理</p><p>  else if(e.getSource() instanceof OperationButton

43、) </p><p><b>  {</b></p><p>  OperationButton b=(OperationButton)e.getSource();</p><p>  if(鏈表.size()==1) {} </p><p>  else if(鏈表.size()==2) {} </p>

44、<p>  else if(鏈表.size()==3) {} </p><p><b>  }</b></p><p>  //按下等號后的事件處理</p><p>  else if(e.getSource()==等號按鈕) </p><p><b>  {</b></p>

45、<p>  是否按下等號=true;</p><p>  if(鏈表.size()==1||鏈表.size()==2) {} </p><p>  else if(鏈表.size()==3) {} </p><p><b>  }</b></p><p>  /

46、/按下小數(shù)點后的事件處理</p><p>  else if(e.getSource()==小數(shù)點按鈕)</p><p><b>  {</b></p><p>  if(鏈表.size()==0) {} </p><p>  else if(鏈表.size()==1) {}

47、 </p><p>  else if(鏈表.size()==3) {} </p><p><b>  }</b></p><p>  //按下退格鍵后的事件處理</p><p>  else if(e.getSource()==退格按鈕)</p><p><b>  

48、{</b></p><p>  if(鏈表.size()==1) {} </p><p>  else if(鏈表.size()==3) {} </p><p><b>  }</b></p><p>  //按下正負(fù)號后的事件處理</p&g

49、t;<p>  else if(e.getSource()==正負(fù)號按鈕)</p><p>  {if(鏈表.size()==1) {} </p><p>  else if(鏈表.size()==3) {} </p><p><b>  }</b></p><p>  //按下求倒數(shù)按鈕后的事件處理<

50、;/p><p>  else if(e.getSource()==求倒數(shù)按鈕)</p><p><b>  {</b></p><p>  if(鏈表.size()==1||鏈表.size()==2) {} </p><p>  else if(鏈表.size()==3) {} </p><p>&l

51、t;b>  } </b></p><p>  //按下清零按鈕后的事件處理</p><p>  else if(e.getSource()==清零按鈕) {} </p><p><b>  }</b></p><p><b>  } </b></p><p>

52、;<b>  5 測試</b></p><p><b>  5.1 測試方案</b></p><p>  進行各種情況的輸入檢測進行加,減,乘,除運算,數(shù)字很大,小數(shù),整數(shù)以及先按下“=”等非法輸入情況。</p><p><b>  5.2 測試結(jié)果</b></p><p> 

53、 程序正常的響應(yīng)按鈕事件,能顯示計算過程,當(dāng)運算結(jié)果很大時用科學(xué)記數(shù)法顯示運算結(jié)果</p><p><b>  6 小結(jié)</b></p><p>  在做本項目是時候,會遇到很多問題,最大的問題的如何保存已經(jīng)輸入的數(shù)字或者符號進行運算,如何顯示運算過程,經(jīng)過多次研究和查詢發(fā)現(xiàn)運可以運用鏈表進行存儲和提取數(shù)據(jù),用棧也是可以的。</p><p> 

54、 此次課程設(shè)計讓我更了解熟悉了Java中的圖形用戶界面和它的編程方式。在完成課題的過程中也不斷充實了自己,學(xué)習(xí)到了很多以前沒有學(xué)習(xí)到的知識,收獲很大。最大的收獲是在彎完成過程中培養(yǎng)的解決問題的能力,在做項目時必然會遇到困難,會有不會的東西,重要的不是現(xiàn)在會不會,而是遇到問題知道如何找到解決的途徑。還使我對所學(xué)知識能夠融會貫通,又不斷豐富了新知識。Java計算器設(shè)計使得我們對所學(xué)的專業(yè)課有了更為深刻的認(rèn)識,使得知識得到了鞏固和提高。<

55、;/p><p><b>  參考文獻</b></p><p>  [1]耿祥義,張躍平.  Java2實用教程(第三版)[M] . 北京:清華大學(xué)出版社, 2006 [2]耿祥義.  Java課程設(shè)計(第三版)[M] . 北京:清華大學(xué)出版社, 2004</p><p>  [3]張躍平.Java2實用教程實驗指導(dǎo)與習(xí)題解答(第

56、三版)[M]. 北京:清華大學(xué)出版社, 2004</p><p><b>  附 錄</b></p><p><b>  附錄1 源程序清單</b></p><p>  NumberButton.java</p><p>  import java.awt.*;</p><

57、p>  import java.awt.event.*;</p><p>  import javax.swing.*;</p><p>  public class NumberButton extends Button</p><p><b>  {</b></p><p>  int number;</

58、p><p>  public NumberButton(int number)</p><p><b>  {</b></p><p>  super(""+number);</p><p>  this.number=number;</p><p>  setForeground

59、(Color.blue);</p><p><b>  }</b></p><p>  public int getNumber()</p><p><b>  {</b></p><p>  return number;</p><p><b>  }</b

60、></p><p><b>  }</b></p><p>  OperationButton.java</p><p>  import java.awt.*;</p><p>  import java.awt.event.*;</p><p>  import javax.swing.

61、*;</p><p>  public class OperationButton extends Button</p><p><b>  {</b></p><p>  String 運算符號;</p><p>  public OperationButton(String s)</p><p&g

62、t;<b>  {</b></p><p><b>  super(s);</b></p><p><b>  運算符號=s;</b></p><p>  setForeground(Color.red);</p><p><b>  }</b></

63、p><p>  public String get運算符號()</p><p><b>  {</b></p><p>  return 運算符號;</p><p><b>  }</b></p><p><b>  }</b></p><

64、;p>  ComputerPad.java</p><p>  import java.awt.*;</p><p>  import java.awt.event.*;</p><p>  import javax.swing.*;</p><p>  import javax.swing.border.*;</p>&

65、lt;p>  import java.util.LinkedList;</p><p>  import java.text.NumberFormat;</p><p>  public class ComputerPad extends Frame implements ActionListener </p><p><b>  {</b&g

66、t;</p><p>  NumberButton numberButton[]; </p><p>  OperationButton oprationButton[]; </p><p>  Button 小數(shù)點按鈕,正負(fù)號按鈕,退格按鈕,</p><p>  求倒數(shù)按鈕,等號按鈕

67、,清零按鈕;</p><p>  Panel panel; </p><p>  JTextField resultShow; </p><p>  JTextField process; </p><p>  String 運算符號[]=

68、{"+","-","*","/"};</p><p>  LinkedList 鏈表; </p><p>  boolean 是否按下等號=false; </p><p>  public Co

69、mputerPad()</p><p><b>  {</b></p><p>  super("計算器");</p><p>  鏈表=new LinkedList();</p><p>  numberButton=new NumberButton[10]; </p>

70、<p>  for(int i=0;i<=9;i++)</p><p><b>  {</b></p><p>  numberButton[i]=new NumberButton(i);</p><p>  numberButton[i].addActionListener(this);</p><p&

71、gt;<b>  }</b></p><p>  oprationButton=new OperationButton[4]; </p><p>  for(int i=0;i<4;i++)</p><p><b>  {</b></p><p>  oprationButton[i]=

72、new OperationButton(運算符號[i]);</p><p>  oprationButton[i].addActionListener(this);</p><p><b>  }</b></p><p>  小數(shù)點按鈕=new Button(".");</p><p>  正負(fù)號按鈕

73、 =new Button("+/-"); </p><p>  等號按鈕=new Button("=");</p><p>  求倒數(shù)按鈕=new Button("1/x");</p><p>  退格按鈕=new Button("退格");</p><p> 

74、 清零按鈕=new Button("C");</p><p>  清零按鈕.setForeground(Color.red);</p><p>  退格按鈕.setForeground(Color.red);</p><p>  等號按鈕.setForeground(Color.red);</p><p>  求倒數(shù)按鈕.

75、setForeground(Color.blue);</p><p>  正負(fù)號按鈕.setForeground(Color.blue);</p><p>  小數(shù)點按鈕.setForeground(Color.blue);</p><p>  退格按鈕.addActionListener(this);</p><p>  清零按鈕.addA

76、ctionListener(this);</p><p>  等號按鈕.addActionListener(this);</p><p>  小數(shù)點按鈕.addActionListener(this);</p><p>  正負(fù)號按鈕.addActionListener(this);</p><p>  求倒數(shù)按鈕.addActionList

77、ener(this);</p><p>  process=new JTextField(10);</p><p>  process.setHorizontalAlignment(JTextField.LEFT);</p><p>  process.setForeground(Color.blue);</p><p>  process.

78、setFont(new Font("TimesRoman",Font.PLAIN,14));</p><p>  process.setBorder(new SoftBevelBorder(BevelBorder.LOWERED));</p><p>  process.setBackground(Color.white); </p><p> 

79、 process.setEditable(false);</p><p>  resultShow=new JTextField(10);</p><p>  resultShow.setHorizontalAlignment(JTextField.RIGHT);</p><p>  resultShow.setForeground(Color.blue);<

80、/p><p>  resultShow.setFont(new Font("TimesRoman",Font.PLAIN,14));</p><p>  resultShow.setBorder(new SoftBevelBorder(BevelBorder.LOWERED));</p><p>  resultShow.setBackground(

81、Color.white); </p><p>  resultShow.setEditable(false);</p><p>  panel=new Panel(); </p><p>  panel.setLayout(new GridLayout(5,4)); </p

82、><p>  Panel.add(清零按鈕);</p><p>  Panel.add(退格按鈕);</p><p>  panel.add(numberButton[1]);</p><p>  panel.add(numberButton[2]);</p><p>  panel.add(numberButton[3]

83、);</p><p>  Panel.add(numberButton[4]);</p><p>  panel.add(numberButton[5]);</p><p>  panel.add(numberButton[6]);</p><p>  Panel.add(numberButton[7]);</p><p&

84、gt;  panel.add(numberButton[8]);</p><p>  panel.add(numberButton[9]);</p><p>  Panel.add(numberButton[0]);</p><p>  Panel.add(oprationButton[0]);</p><p>  panel.add(opr

85、ationButton[1]);</p><p>  panel.add(oprationButton[2]);</p><p>  panel.add(oprationButton[3]);</p><p>  panel.add(求倒數(shù)按鈕);</p><p>  panel.add(正負(fù)號按鈕);</p><p>

86、;  panel.add(小數(shù)點按鈕);</p><p>  Panel.add(等號按鈕);</p><p>  add(panel,BorderLayout.SOUTH);</p><p>  add(resultShow,BorderLayout.CENTER);</p><p>  add(process,BorderLayout.N

87、ORTH);</p><p>  addWindowListener(new WindowAdapter()</p><p>  { public void windowClosing(WindowEvent e)</p><p><b>  {</b></p><p>  System.exit(0);</p&g

88、t;<p><b>  }</b></p><p><b>  });</b></p><p>  setVisible(true);</p><p>  setBounds(100,50,170,190);</p><p>  setResizable(false);</p&g

89、t;<p>  validate();</p><p><b>  }</b></p><p>  public void actionPerformed(ActionEvent e)</p><p><b>  {</b></p><p>  if(e.getSource() ins

90、tanceof NumberButton) </p><p><b>  {</b></p><p>  NumberButton b=(NumberButton)e.getSource();</p><p>  if(鏈表.size()==0) </p><p><b>  {</b><

91、/p><p>  int number=b.getNumber(); </p><p>  鏈表.add(""+number); </p><p>  resultShow.setText(""+number);</p><p>  process.setTex

92、t(""+number);</p><p>  是否按下等號=false;</p><p><b>  }</b></p><p>  else if(鏈表.size()==1&&是否按下等號==false)</p><p><b>  {</b></p&g

93、t;<p>  int number=b.getNumber();</p><p>  String num=(String)鏈表.getFirst();</p><p>  String s=num.concat(""+number); </p><p>  鏈表.set(0,s);</p><p>

94、;  resultShow.setText(s);</p><p>  process.setText(s);</p><p><b>  }</b></p><p>  else if(鏈表.size()==1&&是否按下等號==true)</p><p><b>  {</b>&

95、lt;/p><p>  int number=b.getNumber();</p><p>  鏈表.removeFirst();</p><p>  鏈表.add(""+number); </p><p>  是否按下等號=false;</p><p>  result

96、Show.setText(""+number);</p><p>  process.setText(""+number);</p><p><b>  }</b></p><p>  else if(鏈表.size()==2) </p><p>&l

97、t;b>  {</b></p><p>  int number=b.getNumber(); </p><p>  鏈表.add(""+number);</p><p>  resultShow.setText(""+number); </p><p

98、>  process.setText(""+((String)鏈表.get(0))+((String)鏈表.get(1))+number);</p><p><b>  }</b></p><p>  else if(鏈表.size()==3) </p><p><b>  {&

99、lt;/b></p><p>  int number=b.getNumber();</p><p>  String num=(String)鏈表.getLast();</p><p>  String s=num.concat(""+number);</p><p>  process.setText("

100、;"+((String)鏈表.get(0))+((String)鏈表.get(1))+((String)鏈表.get(2))+number); </p><p>  鏈表.set(2,s);</p><p>  resultShow.setText(s);</p><p><b>  }</b></p><p

101、><b>  }</b></p><p>  else if(e.getSource() instanceof OperationButton) </p><p><b>  {</b></p><p>  OperationButton b=(OperationButton)e.getSource();</p

102、><p>  if(鏈表.size()==1)</p><p><b>  {</b></p><p>  String fuhao=b.get運算符號();</p><p>  process.setText(""+((String)鏈表.get(0))+fuhao);</p><p

103、>  鏈表.add(fuhao); </p><p><b>  }</b></p><p>  else if(鏈表.size()==2)</p><p><b>  {</b></p><p>  String fuhao=b.get運算符號();</p><p>

104、  鏈表.set(1,fuhao);</p><p>  process.setText(""+((String)鏈表.get(0))+((String)鏈表.get(1))); </p><p><b>  }</b></p><p>  else if(鏈表.size()==3)</p>

105、;<p><b>  {</b></p><p>  String fuhao=b.get運算符號();</p><p>  String number1=(String)鏈表.getFirst();</p><p>  String number2=(String)鏈表.getLast();</p><p&g

106、t;  String 運算符號=(String)鏈表.get(1);</p><p>  process.setText(""+((String)鏈表.get(0))+((String)鏈表.get(1))+((String)鏈表.get(2))+運算符號); </p><p><b>  try</b></p><p>&

107、lt;b>  {</b></p><p>  double n1=Double.parseDouble(number1);</p><p>  double n2=Double.parseDouble(number2);</p><p>  double n=0;</p><p>  if(運算符號.equals("

108、;+"))</p><p><b>  {</b></p><p><b>  n=n1+n2;</b></p><p><b>  }</b></p><p>  else if(運算符號.equals("-"))</p><

109、p><b>  {</b></p><p><b>  n=n1-n2;</b></p><p><b>  }</b></p><p>  else if(運算符號.equals("*"))</p><p><b>  {</b>

110、;</p><p><b>  n=n1*n2;</b></p><p><b>  }</b></p><p>  else if(運算符號.equals("/"))</p><p><b>  {</b></p><p><

111、b>  n=n1/n2;</b></p><p><b>  }</b></p><p>  鏈表.clear();</p><p>  鏈表.add(""+n); </p><p>  鏈表.add(fuhao);

112、 </p><p>  resultShow.setText(""+n);</p><p><b>  }</b></p><p>  catch(Exception ee)</p><p><b>  {</b></p><p><b>  

113、}</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  else if(e.getSource()==等號按鈕) </p><p><b>  {</b></p><p>  是否按下等

114、號=true;</p><p>  if(鏈表.size()==1||鏈表.size()==2) </p><p><b>  {</b></p><p>  String num=(String)鏈表.getFirst();</p><p>  resultShow.setT

115、ext(""+num);</p><p>  process.setText(num+"=");</p><p><b>  }</b></p><p>  else if(鏈表.size()==3)</p><p><b>  {</b></p>

116、<p>  String number1=(String)鏈表.getFirst();</p><p>  String number2=(String)鏈表.getLast();</p><p>  String 運算符號=(String)鏈表.get(1);</p><p>  process.setText(""+((Stri

117、ng)鏈表.get(0))+((String)鏈表.get(1))+((String)鏈表.get(2))+"="); </p><p><b>  try</b></p><p><b>  {</b></p><p>  double n1=Double.parseDouble(number1);&

118、lt;/p><p>  double n2=Double.parseDouble(number2);</p><p>  double n=0;</p><p>  if(運算符號.equals("+"))</p><p><b>  {</b></p><p><b>

119、  n=n1+n2;</b></p><p><b>  }</b></p><p>  else if(運算符號.equals("-"))</p><p><b>  {</b></p><p><b>  n=n1-n2;</b></p

120、><p><b>  }</b></p><p>  else if(運算符號.equals("*"))</p><p><b>  {</b></p><p><b>  n=n1*n2;</b></p><p><b>  

121、}</b></p><p>  else if(運算符號.equals("/"))</p><p><b>  {</b></p><p><b>  n=n1/n2;</b></p><p><b>  }</b></p><

122、;p>  resultShow.setText(""+n);</p><p>  鏈表.set(0,""+n);</p><p>  鏈表.removeLast(); </p><p>  鏈表.removeLast(); </p><p><b>  }</b><

123、/p><p>  catch(Exception ee)</p><p><b>  {</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p>

124、<p>  else if(e.getSource()==小數(shù)點按鈕)</p><p><b>  {</b></p><p>  if(鏈表.size()==0) </p><p><b>  {</b></p><p>  是否按下等號=false;</p><

125、p><b>  }</b></p><p>  else if(鏈表.size()==1) </p><p><b>  {</b></p><p>  String dot=小數(shù)點按鈕.getLabel(); </p>

126、<p>  String num=(String)鏈表.getFirst();</p><p>  String s=null;</p><p>  if(num.indexOf(dot)==-1) </p><p><b>  {</b></p><p>  s=nu

127、m.concat(dot); </p><p>  鏈表.set(0,s); </p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>

128、;<b>  s=num; </b></p><p><b>  }</b></p><p>  鏈表.set(0,s);</p><p>  resultShow.setText(s);</p><p>  process.setText(s);</p><p><

129、b>  }</b></p><p>  else if(鏈表.size()==3)</p><p><b>  {</b></p><p>  String dot=小數(shù)點按鈕.getLabel(); </p><p>  String num=(String)鏈表.getLas

130、t();</p><p>  String s=null;</p><p>  if(num.indexOf(dot)==-1)</p><p><b>  {</b></p><p>  s=num.concat(dot); </p><p>  鏈表.set(2,s);</p>

131、<p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p><b>  s=num;</b></p><p><b>  }</b></p>

132、;<p>  resultShow.setText(s);</p><p>  process.setText(""+((String)鏈表.get(0))+((String)鏈表.get(1))+((String)鏈表.get(2)) );</p><p><b>  } </b></p><p><b

133、>  }</b></p><p>  else if(e.getSource()==退格按鈕)</p><p><b>  {</b></p><p>  if(鏈表.size()==1) </p><p><b>  {</b

134、></p><p>  String num=(String)鏈表.getFirst();</p><p>  if(num.length()>=1)</p><p><b>  {</b></p><p>  num=num.substring(0,num.length()-1);</p>&

135、lt;p>  鏈表.set(0,num); </p><p>  resultShow.setText(num);</p><p>  process.setText(""+((String)鏈表.get(0)) );</p><p><b>  }</b></p>&l

136、t;p><b>  else</b></p><p><b>  {</b></p><p>  鏈表.removeLast(); </p><p>  resultShow.setText("0");</p><p><b> 

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論