java課程設(shè)計---計算器_第1頁
已閱讀1頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  10信計2011-2012(二)</p><p>  《Java程序設(shè)計》課程設(shè)計</p><p>  設(shè)計題目  模擬科學(xué)計算器 </p><p>  設(shè)計時間  </p><p>  學(xué)生姓名 

2、 </p><p>  學(xué)生學(xué)號  </p><p>  所在班級  </p><p>  指導(dǎo)教師  </p><p><b>  摘要</b><

3、;/p><p>  計算器在我們的生活中常常會使用到,本次課程設(shè)計,通過界面以及其中的邏輯處理,完成了四則運算的處理。通過awt包或者swing包中的界面設(shè)計部分對界面設(shè)計的細(xì)節(jié)可以有更多的了解。利用面向?qū)ο蟮乃枷?,將各個組件的事件響應(yīng)分別用不同的類表達(dá)出來。面向?qū)ο蟮乃枷霃暮艽蟪潭壬峡梢宰尦绦虻乃悸犯忧逦铱芍赜眯院芨?。對于具有相同事件響;?yīng)的組件則可以調(diào)用相同的類來處理事件。除此之外,利用棧的知識來解決運算

4、符優(yōu)先的問題也讓我們對java中的棧有了更多的了解。</p><p>  關(guān)鍵詞 java;計算器;四則運算;面向?qū)ο?;?lt;/p><p><b>  目 錄</b></p><p>  1需求分析…………………………………………………………………………….1</p><p>  1.1該計算器完成的功能……

5、……………………………………………………..1</p><p>  1.2出錯處理……………………………………………………………………..1</p><p>  1.3數(shù)據(jù)處理……………………………………………………………………..1</p><p>  2設(shè)計方案…………………………………………………………………………….1</p><p>

6、;  2.1設(shè)計方法………………………………………………………………………..1</p><p>  2.2界面布局………………………………………………………………………..1</p><p>  3系統(tǒng)設(shè)計…………………………………………………………………………….2</p><p>  3.1界面設(shè)計………………………………………………………………………..2&

7、lt;/p><p>  3.2功能模塊………………………………………………………………………..2</p><p>  3.2.1功能模塊的設(shè)計方案……………………………………………………...2</p><p>  3.2.2功能模塊的實現(xiàn)方法………………………………………………………3</p><p>  4系統(tǒng)的開發(fā)和運行環(huán)境及安裝配置說明

8、………………………………………….3</p><p>  5系統(tǒng)測試截圖……………………………………………………………………….4</p><p>  5.1系統(tǒng)初始運行界面……………………………………………………………..4</p><p>  5.2計算器按鍵測試………………………………………………………………..4</p><p>  

9、5.3運算符重復(fù)輸入測試…………………………………………………………..4</p><p>  5.4被除數(shù)為0的測試……………………………………………………………..5</p><p>  5.5小數(shù)點重復(fù)性檢查……………………………………………………………..5</p><p>  5.6 backspace按鍵越界操作………………………………………………………

10、.6</p><p>  5.7優(yōu)先級程序計算………………………………………………………………..6</p><p>  5.8計算結(jié)果………………………………………………………………………..7</p><p>  6總結(jié)與心得體會…………………………………………………………………….7</p><p>  附錄……………………………………

11、………………………………………………9</p><p><b>  1需求分析</b></p><p>  1.1該計算器完成的功能</p><p>  用戶能夠完成四則混合運算+、-、*、/,并且計算器能夠自動的識別運算符的優(yōu)先級,根據(jù)輸入的運算公式,自動計算出相應(yīng)的結(jié)果。同時完成計算器中的backspace、ce按鈕,能夠完成消除或者刪除的

12、功能。</p><p><b>  1.2出錯處理</b></p><p>  當(dāng)用戶如果按下的是除零的操作,顯示框?qū)@示“被除數(shù)不能為0”。</p><p>  當(dāng)用戶如果連續(xù)多次按下運算符,計算器自動記憶第一次運算符,并且做防連續(xù)輸入相同的運算符或者是不同的運算符。</p><p>  當(dāng)用戶在同一個數(shù)據(jù)中多次輸入小

13、數(shù)點,計算器能夠自動判斷小數(shù)點重復(fù),自動只記憶第一個小數(shù)點。</p><p>  當(dāng)用戶在同一個數(shù)據(jù)中輸入多個負(fù)號,計算器能夠自動做重復(fù)檢查,不顯示多余的負(fù)號。</p><p>  當(dāng)用戶在使用backspace功能刪除越界數(shù)據(jù)時候,計算器自動做相應(yīng)處理。</p><p><b>  1.3數(shù)據(jù)處理</b></p><p&g

14、t;  在程序的起始,建立了兩個棧,分別用來存儲操作數(shù)和操作符。在計算器的核心運算代買中,運用這兩個棧來實現(xiàn)算法中的優(yōu)先級的處理,使用“#”號來標(biāo)記目標(biāo)計算公式的結(jié)束。目標(biāo)計算公式通過計算器的鍵盤實現(xiàn)輸入,當(dāng)按下“=”號之后,計算器通過調(diào)用計算器核心函數(shù)來實現(xiàn)數(shù)據(jù)的處理。</p><p><b>  2設(shè)計方案</b></p><p><b>  2.1設(shè)計

15、方法</b></p><p>  本程序的實現(xiàn)使用了swing和awt兩個包,主題程序界面按鍵根據(jù)微軟計算器的布置界面進行設(shè)置,采用比較人性化的常規(guī)按鍵排布。返回計算結(jié)果的“=”號鍵使用了兩倍于普通按鍵面積的設(shè)計,使的擊中的概率更加大。</p><p><b>  2.2界面布局</b></p><p>  整體界面是采用了Bord

16、erLayout布局,通過4個panel進行布局的詳細(xì)劃分,panel3用來存儲位于panel4左下角的GridLayout(1,2,4,4)布局,panel1、panel2、panel3分別用來表示BorderLayout的上中下三個模塊。</p><p>  Panel1中添加了一個Label display,display用來作為顯示器,實時的顯示輸入和計算的數(shù)據(jù)。其中display需要設(shè)置為右對齊和只讀屬

17、性。</p><p>  Panel2中添加數(shù)字輸入鍵和基本操作符鍵,panel采用了GridLayout布局,將整個panel2平分為4*4個空間,其中,數(shù)字鍵采用了15磅字體和藍(lán)色文字,操作符采用了15磅字體和紅色文字,是的界面更加顯眼和便于區(qū)分。</p><p>  Panel4中首先劃分為GridLayout(1,2,4,4),在Panel4中,再次使用了GridLayout(1,

18、2,4,4)將panel4的左側(cè)一分為二,左邊為panle3,這個的基礎(chǔ)上程序往panel3中添加了backspace和ce兩個按鍵,在Panel4的右側(cè)單元格中添加了“=”號按鈕,這個時候的“=”號就是相當(dāng)于兩個普通按鈕的長度和大小。</p><p><b>  3系統(tǒng)設(shè)計</b></p><p><b>  3.1界面設(shè)計</b></p

19、><p>  圖3-1 系統(tǒng)初始運行界面截圖</p><p>  這個就是計算器界面,簡潔易用,我們可以從中的數(shù)字按鍵和運算符按鈕進行相應(yīng)的數(shù)學(xué)計算,總共由19個按鈕(10個數(shù)字符+5個運算符號+1個小數(shù)點+1個“+/-”按鈕+1個“clear”按鈕+1個“backspace”按鈕)。</p><p><b>  3.2功能模塊</b></p

20、><p>  3.2.1功能模塊的設(shè)計方案</p><p>  本次程序設(shè)計一共分為了5個類,每個類都各自完成不同的功能:</p><p> ?。?)class MyCalculator: 類MyCalculator是主類,含有main()函數(shù),通過new CalFrame()來運行程序。</p><p> ?。?)class CalFrame

21、: 類CalFrame完成的功能是計算器界面的設(shè)計,并且將每個組件都添加事件響應(yīng)。具體的事件響應(yīng)操作將在其他的類中逐一實現(xiàn)。</p><p> ?。?)class HandleWin:點擊關(guān)閉windows窗口的控制類。</p><p> ?。?)class HandleNum:字符串輸入控制類。</p><p> ?。?)Class HandleEqual:等號出

22、發(fā)事件的響應(yīng)機制類。</p><p>  3.2.2功能模塊的實現(xiàn)方法</p><p> ?。?)public void actionPerformed(ActionEvent e)</p><p>  當(dāng)按下了控制按鈕,根據(jù)搜索控制開關(guān)來確定能否繼續(xù)添加,各個相應(yīng)的處理機制。</p><p>  (2)public double segme

23、ntation(String myString)</p><p>  字符串優(yōu)先級計算代碼的核心函數(shù)。</p><p>  (3)public int compare(char ch1,char ch2)</p><p>  1值為ch1大于ch2;-1為ch1小于ch2;0為ch1等于ch2</p><p> ?。?)public doub

24、le oprate(double a,char b,double ce)</p><p>  通過參數(shù)b來判斷加減乘除</p><p>  4系統(tǒng)的開發(fā)和運行環(huán)境及安裝配置說明</p><p>  本系統(tǒng)是利用Java語言在NetBeans IDE6.5環(huán)境下開發(fā)的,Java語言是當(dāng)今流行的網(wǎng)絡(luò)編程語言,它具有面向?qū)ο?、跨平臺、分布應(yīng)用等特點。面向?qū)ο蟮拈_發(fā)方法是當(dāng)

25、今世界最流行的開發(fā)方法,它不僅具有更貼近自然的語義,而且有利于軟件的維護和繼承。</p><p>  為了進一步鞏固課堂上所學(xué)到的知識,深刻把握J(rèn)ava語言的重要概念及其面向?qū)ο蟮奶匦?,鍛煉學(xué)生熟練的應(yīng)用面向?qū)ο蟮乃枷牒驮O(shè)計方法解決實際問題的能力,開設(shè)了Java程序設(shè)計課程設(shè)計。</p><p>  通過此次課程設(shè)計,鞏固所學(xué)Java語言基本知識,增進Java語言編輯基本功,掌握J(rèn)DK、E

26、ditplus、Eclipse、JCreator等開發(fā)工具的運用,拓寬常用類庫的應(yīng)用。使學(xué)生通過該教學(xué)環(huán)節(jié)與手段,把所學(xué)課程及相關(guān)知識加以融會貫通,全面掌握J(rèn)ava語言的編程思想及面向?qū)ο蟪绦蛟O(shè)計的方法,為今后從事實際工作打下堅實的基礎(chǔ)。</p><p><b>  5系統(tǒng)測試截圖</b></p><p>  5.1系統(tǒng)初始運行界面</p><p&

27、gt;  圖5-1 系統(tǒng)初始運行界面截圖</p><p>  5.2計算器按鍵測試</p><p>  圖5-2 系統(tǒng)按鍵測試截圖</p><p>  5.3運算符重復(fù)輸入測試</p><p>  圖5-3 加號重復(fù)輸入測試截圖</p><p>  5.4被除數(shù)為0的測試</p><p>  圖

28、5-4的結(jié)果Infinity截圖</p><p>  5.5小數(shù)點重復(fù)性檢查</p><p>  圖5-5小數(shù)點重復(fù)輸入錯誤檢查截圖</p><p>  5.6backspace按鍵越界操作</p><p>  圖5-6使用backspace鍵做越界操作的截圖</p><p>  5.7優(yōu)先級程序計算</p>

29、;<p>  圖7 計算2/3+6*9-3截圖</p><p><b>  5.8計算結(jié)果</b></p><p>  圖5-8上面有優(yōu)先級的公式計算結(jié)果</p><p><b>  6總結(jié)與心得體會</b></p><p>  這個學(xué)期的java課程設(shè)計--計算器對我來說是一個不斷學(xué)

30、習(xí),逐步完善的過程。開始的時候拿到題目看到只有四則混合運算就理所當(dāng)然的認(rèn)為應(yīng)該是非常簡單的的一個程序而已。</p><p>  首先開始了程序的界面的設(shè)計。并且將一些簡單的按鈕的事件響應(yīng)完成了。剩下了運算符優(yōu)先級的問題以及數(shù)據(jù)的處理問題。于是在同學(xué)的幫助下利用正則表達(dá)式來完成輸入字符串的切割,但是如果自己一個人單挑來說,對于題目中的數(shù)據(jù)處理的問題一時不知道該如何與正則表達(dá)式連接上。最后我還是選擇用棧來處理。這個過

31、程讓我明白了學(xué)習(xí)知識的時候?qū)嵺`與理論之間是有很大的差異的。應(yīng)用能力我還有待加強。于是我開始熟悉棧的使用。以前在c++的學(xué)習(xí)中接觸過棧,這次的使用思想是一樣的,只需要在了解一下java 中的相關(guān)一些函數(shù)便可。但實際在寫程序的過程中,由于有一些特殊情況的考慮與進出入棧的聯(lián)系,還是碰到了一些問題。但在后來我慢慢的整理清楚思路以后,邏輯列清楚了,便也將這些問題解決了。逐步的將各項功能都完善了。當(dāng)然目前我的計算器也只是完成了四則混合運算,實際上還

32、應(yīng)該有很多功能可以添加入計算器的。</p><p>  本次java課程設(shè)計也讓我明白只要我一步步去做,那么程序功能便會不斷強大。同時很重要的一點便是以后要多加強自己的動手實踐能力。</p><p><b>  附錄:</b></p><p><b>  源代碼:</b></p><p>  imp

33、ort java.awt.*;</p><p>  import java.awt.event.*;</p><p>  import javax.swing.*;</p><p>  import java.util.*;</p><p>  import java.util.regex.Matcher;</p><p&

34、gt;  import java.util.regex.Pattern;</p><p>  public class MyCalculator {</p><p>  public static void main(String[] args){</p><p>  new CalFrame();</p><p><b>  }

35、</b></p><p><b>  }</b></p><p>  class CalFrame extends JFrame {</p><p>  String opnt,optr; </p><p>  Stack <Double> OPNT = new Stack <Double

36、> ();</p><p>  Stack <String> OPTR = new Stack <String> (); </p><p>  Label display; //顯示</p><p>  JButton []num = new JButton[10];//按鍵設(shè)計</p><p>  

37、JButton plus; JButton minus; JButton mutiply; JButton divide; </p><p>  JButton bs;JButton ce;JButton equal;</p><p>  JButton point; JButton sign;JButton lbracket; JButton rbracket;</p>&

38、lt;p>  Panel p1,p2,p3,p4;</p><p>  String disp = "";//用戶輸入的表達(dá)式</p><p>  String result = "" ;//用戶輸入的字符串</p><p>  CalFrame(){</p><p>  OPTR.push(&q

39、uot;#");</p><p>  for(int i=0;i<=9;++i){</p><p>  num[i] = new JButton(String.valueOf(i));</p><p><b>  }</b></p><p>  plus = new JButton("+&quo

40、t;); </p><p>  plus.setForeground(Color.red);</p><p>  plus.setFont(new Font("Dialog",1,15));</p><p>  minus = new JButton("-");</p><p>  minus.setF

41、oreground(Color.red);</p><p>  minus.setFont(new Font("Dialog",1,15));</p><p>  mutiply = new JButton("*"); </p><p>  mutiply.setForeground(Color.red);</p>

42、;<p>  mutiply.setFont(new Font("Dialog",1,15));</p><p>  divide = new JButton("/"); </p><p>  divide.setForeground(Color.red);</p><p>  divide.setFont(ne

43、w Font("Dialog",1,15));</p><p>  equal = new JButton("="); </p><p>  equal.setForeground(Color.red);</p><p>  equal.setFont(new Font("Dialog",1,15));&l

44、t;/p><p>  point = new JButton(".");</p><p>  point.setFont(new Font("Dialog",1,15));</p><p>  sign = new JButton("+/-");</p><p>  sign.setFo

45、nt(new Font("Dialog",1,15));</p><p>  bs = new JButton("backspace");</p><p>  bs.setForeground(Color.red);</p><p>  bs.setFont(new Font("Dialog",1,8));

46、</p><p>  ce = new JButton("ce");</p><p>  ce.setFont(new Font("Dialog",1,15));</p><p>  p1 = new Panel();</p><p>  p1.setLayout(new BorderLayout()

47、);</p><p>  display = new Label("0.",Label.RIGHT);</p><p>  display.setBackground(Color.white);</p><p>  p1.add(display,BorderLayout.NORTH);</p><p>  p2 = new

48、 Panel();</p><p>  p2.setLayout(new GridLayout(4,4,4,4));</p><p>  p2.add(num[7]);p2.add(num[8]);p2.add(num[9]);p2.add(divide);</p><p>  p2.add(num[4]);p2.add(num[5]);p2.add(num[6])

49、;p2.add(mutiply); </p><p>  p2.add(num[1]);p2.add(num[2]);p2.add(num[3]);p2.add(minus);</p><p>  p2.add(num[0]);p2.add(sign);p2.add(point);p2.add(plus);</p><p>  p3 = new Panel(new

50、GridLayout(1,2,4,4));</p><p>  p3.add(bs);p3.add(ce);</p><p>  p4 = new Panel(new GridLayout(1,2,4,4));</p><p>  p4.add(p3);</p><p>  p4.add(equal);</p><p>

51、;  setTitle("計算器");</p><p>  setLayout(new BorderLayout());</p><p>  add(p1,BorderLayout.NORTH); </p><p>  add(p2,BorderLayout.CENTER);</p><p>  add(p4,Border

52、Layout.SOUTH);</p><p>  setVisible(true);</p><p><b>  pack();</b></p><p>  setResizable(false);</p><p>  setBounds(600,350,300,230);</p><p>  a

53、ddWindowListener(new HandleWin());</p><p>  for(int i=0;i<=9;++i){</p><p>  num[i].setForeground(Color.blue);</p><p>  num[i].setFont(new Font("Dialog",1,15));</p>

54、;<p>  num[i].addActionListener(new HandleNum(this,i));</p><p><b>  }</b></p><p>  plus.addActionListener(new HandleNum(this));</p><p>  minus.addActionListener(n

55、ew HandleNum(this));</p><p>  mutiply.addActionListener(new HandleNum(this));</p><p>  divide.addActionListener(new HandleNum(this));</p><p>  point.addActionListener(new HandleNum(

56、this));</p><p>  sign.addActionListener(new HandleNum(this));</p><p>  bs.addActionListener(new HandleNum(this));</p><p>  ce.addActionListener(new HandleNum(this));</p><

57、p>  equal.addActionListener (new HandleEqual(this));</p><p><b>  } </b></p><p>  class HandleWin extends WindowAdapter{//關(guān)閉計算器</p><p>  public void windowClosing(Win

58、dowEvent e){</p><p>  (e.getWindow()).dispose();</p><p>  System.exit(0);</p><p><b>  }</b></p><p><b>  } </b></p><p>  boolean po

59、intswitch = true;//小數(shù)點開關(guān)</p><p>  boolean oprateswitch = false;//運算符開關(guān)</p><p>  boolean siginswitch = true;// </p><p>  class HandleNum implements ActionListener{//字符串的輸入</p>

60、<p>  JFrame my_Num;</p><p>  int itemp = 0;</p><p>  HandleNum(JFrame f,int a){</p><p>  my_Num = f;</p><p>  itemp = a;</p><p><b>  }</b&

61、gt;</p><p>  HandleNum(JFrame f){</p><p>  my_Num = f;</p><p><b>  }</b></p><p>  public void actionPerformed(ActionEvent e){</p><p>  if(e.get

62、Source()==num[itemp]){//輸入數(shù)字字符</p><p>  oprateswitch = true;</p><p>  siginswitch = false;</p><p>  disp = disp + itemp;</p><p>  display.setText(disp);</p><

63、p><b>  }</b></p><p>  if(oprateswitch&&e.getSource()==plus){//輸入加號 </p><p>  pointswitch = true;</p><p>  oprateswitch = false;</p><p>  siginswi

64、tch = true;</p><p>  disp = disp + "+";</p><p>  display.setText(disp);</p><p><b>  }</b></p><p>  if(oprateswitch&&e.getSource()==minus){

65、//輸入減號</p><p>  pointswitch = true;</p><p>  oprateswitch = false;</p><p>  siginswitch = true;</p><p>  disp = disp + "-";</p><p>  display.setT

66、ext(disp);</p><p><b>  }</b></p><p>  if(oprateswitch&&e.getSource()==mutiply){//輸入乘號</p><p>  pointswitch = true;</p><p>  oprateswitch = false;<

67、;/p><p>  siginswitch = true;</p><p>  disp = disp + "*";</p><p>  display.setText(disp);</p><p><b>  }</b></p><p>  if(oprateswitch&

68、;&e.getSource()==divide){//輸入除號</p><p>  pointswitch = true;</p><p>  oprateswitch = false;</p><p>  siginswitch = true;</p><p>  disp = disp + "/";</p

69、><p>  display.setText(disp);</p><p><b>  }</b></p><p>  if(oprateswitch&&pointswitch==true&&e.getSource()==point){//輸入小數(shù)點</p><p>  pointswitch

70、 = false;</p><p>  oprateswitch = false;</p><p>  siginswitch = false;</p><p>  disp = disp + ".";</p><p>  display.setText(disp);</p><p><b&g

71、t;  }</b></p><p>  if(siginswitch&&e.getSource()==sign){//輸入負(fù)號</p><p>  disp = disp + "—";</p><p>  display.setText(disp);</p><p><b>  }&l

72、t;/b></p><p>  if(e.getSource()==bs){//點擊backspace</p><p>  if(!disp.isEmpty()){</p><p>  disp = disp.substring(0,disp.length()-1);</p><p>  if(disp.isEmpty())

73、</p><p><b>  disp=" ";</b></p><p>  display.setText(disp);</p><p><b>  }</b></p><p><b>  }</b></p><p>  if(e.

74、getSource()==ce){//點擊ce</p><p>  disp = " ";</p><p>  display.setText(disp);</p><p><b>  }</b></p><p><b>  }</b></p><p>&

75、lt;b>  }</b></p><p>  class HandleEqual implements ActionListener{// 等于號觸發(fā)的事件</p><p>  Frame my_Equal; </p><p>  HandleEqual(JFrame f){</p><p>  my_Equal = f;

76、</p><p><b>  }</b></p><p>  public void actionPerformed(ActionEvent e){</p><p>  if(e.getSource()==equal){</p><p>  disp = disp+"#";</p>&l

77、t;p>  disp = String.valueOf(segmentation(disp));</p><p>  display.setText(disp);</p><p>  disp = "";</p><p>  pointswitch = true;//小數(shù)點開關(guān)</p><p>  oprateswi

78、tch = false;//運算符開關(guān)</p><p>  siginswitch = true;//符號開關(guān)</p><p><b>  }</b></p><p><b>  }</b></p><p>  public double segmentation(String myStrin

79、g){</p><p>  String reg = "(\\—?\\d+\\.?\\d*)|([-+*/()#])"; //分割表達(dá)式.</p><p>  Pattern p = Pattern.compile(reg);</p><p>  Matcher m = p.matcher(myString);</p><p

80、>  String find = "";</p><p>  double num = 0;</p><p>  double op1,op2;</p><p><b>  char op3;</b></p><p>  while(m.find()){</p><p>

81、  find = m.group();</p><p>  find = find.replace('—','-');</p><p><b>  try{</b></p><p>  num = Double.valueOf(find);</p><p>  OPNT.push(num)

82、;</p><p>  }catch(NumberFormatException nfe){ //find為操作符</p><p>  if(compare(((OPTR.peek()).charAt(0)),find.charAt(0))==-1){</p><p>  OPTR.push(find);</p><p><b>

83、  }</b></p><p><b>  else {</b></p><p>  while(compare(((OPTR.peek()).charAt(0)),find.charAt(0))==1){</p><p>  op2=OPNT.pop();</p><p>  op1=OPNT.pop()

84、;</p><p>  op3=(OPTR.pop()).charAt(0);</p><p>  OPNT.push(oprate(op1,op3,op2));</p><p><b>  }</b></p><p>  if(compare(((OPTR.peek()).charAt(0)),find.charAt(

85、0))==0){</p><p>  OPTR.pop();</p><p><b>  continue;</b></p><p><b>  }</b></p><p>  OPTR.push(find);</p><p>  if(compare(((OPTR.pe

86、ek()).charAt(0)),find.charAt(0))==2){</p><p>  if(OPNT.isEmpty()){</p><p>  while(!OPNT.isEmpty()){</p><p>  OPTR.pop();</p><p><b>  }</b></p><p&

87、gt;  OPTR.push("#");</p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  return OPNT.pop();</p><p><b>  } </b></

88、p><p>  if(compare(((OPTR.peek()).charAt(0)),find.charAt(0))==3)</p><p>  return 0; </p><p><b>  }</b></p><p><b>  }</b></p><

89、p><b>  }</b></p><p>  return 0.0; </p><p><b>  }</b></p><p>  public int compare(char ch1,char ch2){//1值為ch1大于ch2;-1為ch1小于ch2;0為ch1等于ch2</p><

90、p>  switch(ch1){</p><p>  case '+':if(ch2=='+'||ch2=='-'||ch2=='#')</p><p>  return 1; </p><p>  else return -1;</p><p>  ca

91、se '-':if(ch2=='+'||ch2=='-'||ch2=='#')</p><p><b>  return 1;</b></p><p>  else return -1;</p><p>  case '*':return 1;</p>

92、<p>  case '/':if(ch2=='(')</p><p>  return -1;</p><p>  else return 1;</p><p>  case '#':if(ch2=='#')</p><p><b>  return 2;

93、</b></p><p>  else return -1;</p><p>  default :return 3; </p><p><b>  }</b></p><p><b>  } </b></p><p>  public double op

94、rate(double a,char b,double ce){</p><p>  if(b=='+')</p><p>  return a+ce;</p><p>  else if(b=='-')</p><p>  return a-ce;</p><p>  else if(

95、b=='*')</p><p>  return a*ce;</p><p>  else return a/ce;</p><p><b>  } </b></p><p><b>  } </b></p><p><b>  }&l

溫馨提示

  • 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

提交評論