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

下載本文檔

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

文檔簡介

1、<p>  Java課程設(shè)計報告</p><p><b>  計算器軟件設(shè)計</b></p><p><b>  學生姓名: </b></p><p><b>  學 號: </b></p><p><b>  年級專業(yè):</b>&

2、lt;/p><p><b>  指導老師: </b></p><p><b>  學 院:</b></p><p><b>  目 錄</b></p><p>  1. 前言………………………………………………………………………………2</p>&l

3、t;p>  2.概要設(shè)計………………………………………………………………………3</p><p>  2.1 開發(fā)環(huán)境……………………………………………………………………3</p><p>  2.2 計算器功能…………………………………………………………………3</p><p>  2.3 界面設(shè)計……………………………………………………………………3<

4、;/p><p>  2.4 類uml圖…………………………………………………………………4</p><p>  3. 詳細設(shè)計………………………………………………………………………4</p><p>  3.1 使用的java類的說明…………………………………………………4</p><p>  3.2 類的主要方法…………………………………………

5、…………………5</p><p>  3.2.1 處理按了運算符后的計算……………………………………………5</p><p>  3.2.2 處理輸入字符…………………………………………………………6</p><p>  3.2.3 進制的轉(zhuǎn)換……………………………………………………………6</p><p>  3.2.4 設(shè)計總體認識………

6、…………………………………………………7</p><p>  3.2.5 程序流程圖……………………………………………………………8 </p><p>  4. 運行結(jié)果…………………………………………………………………………8</p><p>  5. 測試分析…………………………………………………………………………9</p><p>  

7、5.1 程序運行情況………………………………………………………………9</p><p>  5.2 程序異常處理………………………………………………………………9</p><p>  6. 源程序…………………………………………………………………………9</p><p>  參考文獻…………………………………………………………………………27</p>

8、<p>  致 謝…………………………………………………………………………27</p><p>  摘要:該程序是一個圖形界面的簡單的java計算器,具有良好的界面,使用人員能快捷簡單地進行操作。即時準確地獲得需要的計算的結(jié)果,充分降低了數(shù)字計算的難度和節(jié)約了時間,對人們的生活有一定的幫助??梢赃M行簡單的四則運算(加、減、乘、除,以及開平方)但僅限于十進制下,還可以進行(八進制,十進制,十六進制)

9、之間的相互轉(zhuǎn)換,八進制最多可以輸入19位數(shù),十進制最多可以輸入18位數(shù),十六進制最多可以輸入14位數(shù),backspace表示退格, clear表示初始化,sqrt表示開平方,界面為灰白對稱。</p><p>  關(guān)鍵字:java、計算器類、方法、事件</p><p><b>  1 前言</b></p><p>  隨著科學技術(shù)的不斷發(fā)展,計算

10、機已經(jīng)成為我們工作學習和生活中不可缺少的工具。文本編輯器是個人計算機最司空見慣的應(yīng)用程序了,在學習了Java語言之后,我決定使用Java語言編寫一個簡單的計算器,可以實現(xiàn)簡單的運算功能,滿足日?;镜墓ぷ鲗W習和娛樂需要。</p><p>  Java是由Sun公司開發(fā)的新一代純面向?qū)ο蟮木W(wǎng)絡(luò)編程語言。其目標是建立一種在任意種機器、任一種操作系統(tǒng)的網(wǎng)絡(luò)環(huán)境中運行的軟件,實行所謂的“程序?qū)懸淮危教庍\行”的目標。正因

11、為如此,Java已成為當今Internet上最流行、最受歡迎的一種程序開發(fā)語言。</p><p>  Java開發(fā)小組把Java按特性分為基本版、移動版、企業(yè)版,每個版本有一個軟件開發(fā)包。Java基本版本叫Java 2標準版(Java 2 Standard Edition,J2SE),它包含建立Java應(yīng)用程序或者是Applet所需的應(yīng)用程序編程接口(API)。Java 2移動版(The Java 2 Mobil

12、e Edition,J2ME)包含創(chuàng)建無線Java應(yīng)用程序的API。還有Java 2企業(yè)版(The Java 2 Enterprise,J2EE)是J2SE的增強版本,包含建立多層架構(gòu)應(yīng)用程序API。</p><p>  Java語言是由C++語言發(fā)展起而來的,是一種徹底的面向?qū)ο蟮某绦蛟O(shè)計語言。作為一種純面向?qū)ο蟮某绦蛟O(shè)計語言,它非常適合大型軟件的開發(fā)。Java語言去掉了C++語言的一些容易引起錯誤的特性。Ja

13、va語言的特點有:面向?qū)ο蟆⒖缙脚_、安全性、多線程和圖形功能強。</p><p><b>  2 概要設(shè)計</b></p><p><b>  2.1開發(fā)環(huán)境</b></p><p>  開發(fā)平臺:Microsoft Windows XP Professional Service Pack 2</p><

14、;p>  開發(fā)工具:JBuilder 2007 + JDK 1.6.0_02</p><p><b>  2.2計算器功能</b></p><p>  功能 1:按下數(shù)字鍵在液晶平上會顯示數(shù)字,這時計算器最基本的功能。    功能 2:在任何時候按下“±”鍵,計算器文本框上的數(shù)字置反號。  &

15、#160; 功能 3:第一次按下“運算”鍵,再按下數(shù)字鍵,將重新輸入第二個數(shù)字。再次按下“運 算”鍵,將算出前兩個數(shù)字運算的結(jié)果,然后按下數(shù)字,將又重新輸入新的數(shù)字。   功能 4:輸入數(shù)字后,按下“等于”鍵,將仍輸出原來的數(shù) 輸入運算符和第二個數(shù)字后再按下“=”鍵,將得到二者運算的結(jié)果,然后又重復功能 3 和功能 4 。    功能 5:按下清除“C”鍵,數(shù)

16、據(jù)被全部清楚。</p><p><b>  2.3界面設(shè)計</b></p><p>  圖2.3 計算器面板</p><p><b>  2.4類 UML圖</b></p><p>  ArrayStackChar UML圖如圖2.3A所示:</p><p>  Arr

17、ayStackDouble UML圖如圖2.3B所示</p><p>  圖2.4A 圖2.4B</p><p><b>  3詳細設(shè)計</b></p><p>  3.1計算器使用的Java類的說明</p><p>  類名: This_number_too_

18、big作用: 自定義的異常類,用來處理計算結(jié)果溢出 繼承的父類: Exception類 實現(xiàn)的接口: 沒有 class This_number_too_big extends Exception { } //自定義的一個結(jié)果溢出異常類</p><p>  類名: Jsp2003 作用: 主類。繼承的父類: Frame類實現(xiàn)的接口: ItemListener類,ActionListene

19、r類class Jsp2003 extends Frame implements ItemListener,ActionListener { public int number=0,length=18; //number是用來記錄輸入的數(shù)字個數(shù), //length是用來設(shè)置在不同進制下允許輸入的最多數(shù)字位數(shù),默認為十進 制 public char mark='n'; //設(shè)置運算符號為沒有即為

20、‘n’,它的值是‘+’‘-’‘*’‘/’ public double data=0; //設(shè)置運算數(shù)據(jù)為零 public char ch; //用來臨時存放所按按鈕的第一個字符 public boolean Refresh=false; //設(shè)置lab是否要在輸入數(shù)據(jù)的時候刷新,初始為否 </p><p>  程序的設(shè)計參考了Sun Java網(wǎng)站里的大量實例,比如Layout的使用、E

21、vent的處理、Components的添加與應(yīng)用等等。其中:</p><p>  public class NewCalc extends JFrame implements ActionListener</p><p>  語句實現(xiàn)了ActionListener接口,因此可以調(diào)用addActionListener(this)方法對按鈕進行點擊監(jiān)聽,在下面的public void acti

22、onPerformed(ActionEvent e)方法里面對各個點擊事件進行處理。</p><p><b>  3.2類的主要方法</b></p><p>  3.2.1處理按了運算符后的計算:</p><p>  public void js() throws This_number_too_big {if (mark=='n&#

23、39;) {mark=ch; / data=Double.parseDouble(lab.getText());Refresh=true; } else {switch (mark) { case '+': data+=Double.parseDouble(lab.getText()); break; case '-': data-=Double.parseDouble(lab.getT

24、ext()); break; case '*': data*=Double.parseDouble(lab.getText()); break; case '/': data/=Double.parseDouble(lab.getText()); break;} lab.setText(Double.toString(data)); mark=ch; Refresh=true; number

25、=lab.getText().length();// System.o</p><p>  3.2.2處理輸入字符:</p><p>  {if(Refresh==true) {lab.setText("0"); number=0; Refresh=false;} if(lab.getText().charAt(0)=='0'&&

26、lab.getText().length()==1) {lab.setText(Character.toString(ch)); number++;} else if(number<length) {number++;lab.setText(lab.getText()+ch);} }</p><p>  3.2.3八進制或十六進制轉(zhuǎn)換成十進制I:</p><p>  pub

27、lic String goto_10(String s,long l) //參數(shù)s: 是要轉(zhuǎn)換的字符串,由于輸入的控制,保證了字符串的合法性; //參數(shù)l: 使用來設(shè)置是將8進制還是16進制轉(zhuǎn)換成10進制,它的有效值為8或16; { String str=s; //用來轉(zhuǎn)換的字符串 long j=l; //表示進制 long lg=0,jing=1;//lg用來記錄權(quán)乘和,jing用來記錄位權(quán) char cha;//臨時記錄

28、要轉(zhuǎn)換的字符 for(int i=1;i<=str.length();i++) { cha=str.charAt(str.length()-i); switch(cha) { case '1': lg=lg+1*jing;break; case '2': lg=lg+2*jing;break; case '3': lg=lg+3*jing;break; case 

29、9;4': lg=lg+4*jing;break; case '5': lg=lg+5*jing;break; case '6': lg=lg+6*jing;break; </p><p>  3.2.4設(shè)計的總體認識</p><p><b>  JAVA設(shè)計的摘要</b></p><p>  JAV

30、A設(shè)計的目錄結(jié)構(gòu)</p><p>  JAVA設(shè)計的概要和詳細設(shè)計</p><p>  JAVA設(shè)計的版權(quán)意識</p><p>  JAVA設(shè)計需要編譯的環(huán)境</p><p>  JAVA設(shè)計的實用性</p><p>  3.2.5程序流程圖</p><p>  圖3繪制計算器方法PAD圖<

31、;/p><p><b>  4運行結(jié)果</b></p><p><b>  圖4 計算結(jié)果顯示</b></p><p><b>  5測試分析</b></p><p>  5.1程序運行情況: 程序正常的響應(yīng)按鈕事件,輸入的數(shù)值長度受變量length的限定,進行混合四則運算的時候

32、,結(jié)果如果不是很大,可以正常顯示,但如果結(jié)果很大,就可能采用科學記數(shù)方式,這樣帶來了進制轉(zhuǎn)換時的麻煩,需要特殊的處理科學記數(shù)里的E ,當結(jié)果太大的時候,有可能超出可能表示的最大值,(結(jié)果溢出),這個時候就要對結(jié)果進行必要的異常處理,我在輸出結(jié)果的方法內(nèi)設(shè)置if 語句,如果結(jié)果大于某一個值就拋出一個This_number_too_big 類型的類,再使用try-catch,捕捉輸出結(jié)果的方法拋出的異常對象。然后進行,重制歸零的處理。 &l

33、t;/p><p>  5.2 程序異常處理: 當結(jié)果超出Double.MAX_VALUE時,將拋出一個This_number_too_big 類的異常對象,這個是我自定義的一個異常類它繼承自Exception 類,然后使用try-catch去捕捉這個異常,異常的處理如下: try { js();} catch(This_number_too_big e) { lab.setText("0&quo

34、t;); number=0; mark='n'; Refresh=false; System.out.println("The number is too big"); } //如果出現(xiàn)異常則初始化效果如同clear鍵 </p><p><b>  6 程序清單:</b></p><p>  import java.aw

35、t.*;</p><p>  import java.awt.event.*;</p><p>  class This_number_too_big extends Exception {</p><p>  }// 自定義的一個結(jié)果溢出異常類</p><p>  // ActionLintsner是所有監(jiān)聽器的父類,其它監(jiān)聽器可以監(jiān)聽的事

36、件都可以被它捕獲</p><p>  // ItemListener用于捕獲帶有item的組件產(chǎn)生的事件,如ComboBox,CheckBox,RadioButton,ToggleButton</p><p>  class hejiang extends Frame implements ItemListener, ActionListener {</p><p>

37、;  public hejiang() {</p><p>  addWindowListener(new WindowAdapter() {</p><p>  public void windowClosing(WindowEvent e) {</p><p>  dispose();</p><p>  System.exit(0);&

38、lt;/p><p>  } // 給窗口注冊一個事件監(jiān)聽器,當你點了窗口右上方的叉號時,此方法被調(diào)用</p><p><b>  });</b></p><p><b>  }</b></p><p>  static hejiang mainFrame = new hejiang(); // 創(chuàng)建一個

39、mainFrame</p><p>  static Label lab1 = new Label("0");</p><p>  static Label lab = new Label("0");</p><p>  static Panel pnl1 = new Panel(new GridLayout(4, 3, 3,

40、 3)); // 創(chuàng)建新的面板.布局管理</p><p>  static Panel pnl2 = new Panel(new GridLayout(4, 1, 3, 3));</p><p>  static Panel pnl3 = new Panel(new GridLayout(1, 2, 3, 3));</p><p>  static Panel pn

41、l4 = new Panel(new GridLayout(6, 1, 3, 3));</p><p>  static Button bt9 = new Button("9");</p><p>  static Button bt8 = new Button("8");</p><p>  static Button bt

42、7 = new Button("7");</p><p>  static Button bt6 = new Button("6");</p><p>  static Button bt5 = new Button("5");</p><p>  static Button bt4 = new Butto

43、n("4");</p><p>  static Button bt3 = new Button("3");</p><p>  static Button bt2 = new Button("2");</p><p>  static Button bt1 = new Button("1&quo

44、t;);</p><p>  static Button bt0 = new Button("0");</p><p>  static Button btdot = new Button(".");</p><p>  static Button btequ = new Button("=");</

45、p><p>  static Button btadd = new Button("+");</p><p>  static Button btsub = new Button("-");</p><p>  static Button btmul = new Button("*");</p>

46、<p>  static Button btdev = new Button("/");</p><p>  static Button btA = new Button("A");</p><p>  static Button btB = new Button("B");</p><p>  

47、static Button btC = new Button("C");</p><p>  static Button btD = new Button("D");</p><p>  static Button btE = new Button("E");</p><p>  static Button

48、 btF = new Button("F");</p><p>  static Checkbox ckb8 = new Checkbox("八進制");</p><p>  static Checkbox ckb10 = new Checkbox("十進制");</p><p>  static Chec

49、kbox ckb16 = new Checkbox("十六進制");</p><p>  static Button btc = new Button("clear");</p><p>  static Button btt = new Button("backspace");</p><p>  pub

50、lic int number = 0, length = 18;</p><p>  // number是用來記錄輸入的數(shù)字個數(shù),length是用來設(shè)置在不同進制下允許輸入的最多數(shù)字位數(shù),默認為十進制</p><p>  public char mark = 'n'; // 設(shè)置運算符號為沒有即為‘n’,它的值是‘+’‘-’‘*’‘/’</p><p&g

51、t;  public double data = 0; // 設(shè)置運算數(shù)據(jù)為零</p><p>  public char ch; // 用來臨時存放所按按鈕的第一個字符</p><p>  public boolean Refresh = false;// 設(shè)置lab是否要在輸入數(shù)據(jù)的時候刷新,初始為否</p><p>  public static void m

52、ain(String args[]) {</p><p>  System.out.println("Starting hejiang...");</p><p>  lab.setAlignment(Label.RIGHT); // 對齊方式</p><p>  lab.setBackground(Color.lightGray); // 背景

53、色</p><p>  lab.setForeground(Color.BLUE); // 前景色</p><p>  lab.setFont(new Font("Serief", Font.BOLD, 18));// 字體設(shè)置</p><p>  lab.setBounds(14, 33, 216, 40);</p><p&

54、gt;  lab1.setAlignment(Label.RIGHT); // 對齊方式</p><p>  lab1.setBackground(Color.lightGray); // 背景色</p><p>  lab1.setForeground(Color.BLUE); // 前景色</p><p>  lab1.setFont(new Font(&quo

55、t;Serief", Font.BOLD, 18));// 字體設(shè)置</p><p>  lab1.setBounds(14, 75, 216, 40);</p><p>  mainFrame.add(lab);</p><p>  mainFrame.add(lab1);</p><p>  CheckboxGroup grp

56、= new CheckboxGroup();</p><p>  ckb8.setCheckboxGroup(grp);</p><p>  ckb10.setCheckboxGroup(grp);</p><p>  ckb16.setCheckboxGroup(grp);</p><p>  ckb8.setBounds(14, 115,

57、 55, 25); // setBounds()方法是可以設(shè)定控件的大小和位置</p><p>  ckb10.setBounds(69, 115, 55, 25);</p><p>  ckb16.setBounds(124, 115, 65, 25);</p><p>  ckb8.setState(false);</p><p>  c

58、kb10.setState(true);</p><p>  ckb16.setState(false);</p><p>  mainFrame.add(ckb8);</p><p>  mainFrame.add(ckb10);</p><p>  mainFrame.add(ckb16);</p><p>  p

59、nl1.setBounds(18, 180, 120, 150);</p><p>  pnl2.setBounds(144, 180, 40, 150);</p><p>  pnl3.setBounds(14, 140, 170, 36);</p><p>  pnl4.setBounds(190, 140, 40, 190);</p><p

60、>  pnl1.add(bt7);</p><p>  pnl1.add(bt8);</p><p>  pnl1.add(bt9);</p><p>  pnl1.add(bt4);</p><p>  pnl1.add(bt5);</p><p>  pnl1.add(bt6);</p><

61、;p>  pnl1.add(bt1);</p><p>  pnl1.add(bt2);</p><p>  pnl1.add(bt3);</p><p>  pnl1.add(bt0);</p><p>  pnl1.add(btdot);</p><p>  pnl1.add(btequ);</p>

62、;<p>  pnl2.add(btadd);</p><p>  pnl2.add(btsub);</p><p>  pnl2.add(btmul);</p><p>  pnl2.add(btdev);</p><p>  pnl3.add(btt);</p><p>  pnl3.add(btc)

63、;</p><p>  pnl4.add(btA);</p><p>  pnl4.add(btB);</p><p>  pnl4.add(btC);</p><p>  pnl4.add(btD);</p><p>  pnl4.add(btE);</p><p>  pnl4.add(bt

64、F);</p><p>  btA.enable(false);</p><p>  btB.enable(false);</p><p>  btC.enable(false);</p><p>  btD.enable(false);</p><p>  btE.enable(false);</p>

65、<p>  btF.enable(false);</p><p>  mainFrame.add(pnl1);</p><p>  mainFrame.add(pnl2);</p><p>  mainFrame.add(pnl3);</p><p>  mainFrame.add(pnl4);</p><p&g

66、t;  mainFrame.setResizable(false); // 窗口可以最小化和關(guān)閉,但是不能被任意改變大小</p><p>  mainFrame.setLayout(null);</p><p>  mainFrame.setSize(240, 350);</p><p>  mainFrame.setTitle("小型計算器")

67、;</p><p>  mainFrame.setVisible(true); // 組件可見</p><p>  ckb8.addItemListener(mainFrame);</p><p>  ckb10.addItemListener(mainFrame);</p><p>  ckb16.addItemListener(mainF

68、rame);</p><p>  // 把事件聆聽者向各個組鍵注冊</p><p>  bt1.addActionListener(mainFrame);</p><p>  bt2.addActionListener(mainFrame);</p><p>  bt3.addActionListener(mainFrame);</p&

69、gt;<p>  bt4.addActionListener(mainFrame);</p><p>  bt5.addActionListener(mainFrame);</p><p>  bt6.addActionListener(mainFrame);</p><p>  bt7.addActionListener(mainFrame);<

70、;/p><p>  bt8.addActionListener(mainFrame);</p><p>  bt9.addActionListener(mainFrame);</p><p>  bt0.addActionListener(mainFrame);</p><p>  btadd.addActionListener(mainFram

71、e);</p><p>  btsub.addActionListener(mainFrame);</p><p>  btmul.addActionListener(mainFrame);</p><p>  btdev.addActionListener(mainFrame);</p><p>  btt.addActionListene

72、r(mainFrame);</p><p>  btc.addActionListener(mainFrame);</p><p>  btdot.addActionListener(mainFrame);</p><p>  btequ.addActionListener(mainFrame);</p><p>  btA.addActio

73、nListener(mainFrame);</p><p>  btB.addActionListener(mainFrame);</p><p>  btC.addActionListener(mainFrame);</p><p>  btD.addActionListener(mainFrame);</p><p>  btE.addA

74、ctionListener(mainFrame);</p><p>  btF.addActionListener(mainFrame);</p><p>  }// end main() mothed</p><p>  // checkbox 事件的處理</p><p>  public void itemStateChanged(Ite

75、mEvent e) {</p><p>  mark = 'n';</p><p>  Refresh = false;</p><p>  // 規(guī)定當進制轉(zhuǎn)換時以前輸入的運算符失效</p><p>  if (ckb8.getState() == true) {</p><p>  btA.enab

76、le(false);</p><p>  btB.enable(false);</p><p>  btC.enable(false);</p><p>  btD.enable(false);</p><p>  btE.enable(false);</p><p>  btF.enable(false);</

77、p><p>  bt9.enable(false);</p><p>  bt8.enable(false);</p><p>  btdot.enable(false);</p><p>  btadd.enable(false);</p><p>  btmul.enable(false);</p>&l

78、t;p>  btsub.enable(false);</p><p>  btdev.enable(false);</p><p>  btequ.enable(false);</p><p>  // 在八進制的情況下對有些按件的管理</p><p>  if (length == 18) {</p><p>

79、  lab.setText(goto10_8(lab.getText()));</p><p>  number = lab.getText().length();</p><p><b>  }</b></p><p>  if (length == 14) {</p><p>  lab.setText(goto_1

80、0(lab.getText(), 16L));</p><p>  lab.setText(goto10_8(lab.getText()));</p><p>  number = lab.getText().length();</p><p><b>  }</b></p><p>  // 將其他進制轉(zhuǎn)換成八進制&l

81、t;/p><p>  length = 19;</p><p>  // 在八進制下允許輸入數(shù)字個數(shù)最多為19位</p><p><b>  }</b></p><p>  if (ckb10.getState() == true) {</p><p>  btA.enable(false);<

82、/p><p>  btB.enable(false);</p><p>  btC.enable(false);</p><p>  btD.enable(false);</p><p>  btE.enable(false);</p><p>  btF.enable(false);</p><p&g

83、t;  bt9.enable(true);</p><p>  bt8.enable(true);</p><p>  btdot.enable(true);</p><p>  btadd.enable(true);</p><p>  btmul.enable(true);</p><p>  btsub.enab

84、le(true);</p><p>  btdev.enable(true);</p><p>  btequ.enable(true);</p><p>  // 在十進制的情況下對有些控件的管理</p><p>  if (length == 19) {</p><p>  lab.setText(goto_10(

85、lab.getText(), 8L));</p><p>  number = lab.getText().length();</p><p><b>  }</b></p><p>  if (length == 14) {</p><p>  lab.setText(goto_10(lab.getText(), 16

86、L));</p><p>  number = lab.getText().length();</p><p><b>  }</b></p><p>  if (length == 19) {</p><p>  lab1.setText(goto_10(lab1.getText(), 8L));</p>

87、<p>  number = lab1.getText().length();</p><p><b>  }</b></p><p>  if (length == 14) {</p><p>  lab1.setText(goto_10(lab1.getText(), 16L));</p><p>  n

88、umber = lab1.getText().length();</p><p><b>  }</b></p><p>  length = 18;</p><p><b>  }</b></p><p>  if (ckb16.getState() == true) {</p>&

89、lt;p>  btA.enable(true);</p><p>  btB.enable(true);</p><p>  btC.enable(true);</p><p>  btD.enable(true);</p><p>  btE.enable(true);</p><p>  btF.enable

90、(true);</p><p>  bt9.enable(true);</p><p>  bt8.enable(true);</p><p>  btdot.enable(false);</p><p>  btadd.enable(false);</p><p>  btmul.enable(false);<

91、/p><p>  btsub.enable(false);</p><p>  btdev.enable(false);</p><p>  btequ.enable(false);</p><p>  // 在十六進制的情況下對有些按件的管理</p><p>  if (length == 18) {</p>

92、<p>  lab.setText(goto10_16(lab.getText()));</p><p>  number = lab.getText().length();</p><p><b>  }</b></p><p>  if (length == 19) {</p><p>  lab.se

93、tText(goto_10(lab.getText(), 8L));</p><p>  lab.setText(goto10_16(lab.getText()));</p><p>  number = lab.getText().length();</p><p><b>  }</b></p><p>  // 將

94、其他進制轉(zhuǎn)換成十六進制</p><p>  length = 14;</p><p>  // 在十六進制下允許輸入數(shù)字個數(shù)最多為14位</p><p><b>  }</b></p><p>  }// end itemStateChanged(ItemEvent e) method</p><p&

95、gt;  // 按鈕事件的處理</p><p>  public void actionPerformed(ActionEvent m) // 鼠標點激就觸發(fā)事件監(jiān)聽</p><p><b>  {</b></p><p>  Button btn = (Button) m.getSource();</p><p>  

96、ch = btn.getLabel().charAt(0);</p><p>  deposit(ch);</p><p>  switch (ch) {</p><p>  case 'c': {</p><p>  lab.setText("0");</p><p>  numb

97、er = 0;</p><p>  mark = 'n';</p><p>  Refresh = false;</p><p><b>  }</b></p><p>  break;// 初始化</p><p><b>  case '1':</

98、b></p><p><b>  enter();</b></p><p><b>  break;</b></p><p><b>  case '2':</b></p><p><b>  enter();</b></p&g

99、t;<p><b>  break;</b></p><p><b>  case '3':</b></p><p><b>  enter();</b></p><p><b>  break;</b></p><p>&l

100、t;b>  case '4':</b></p><p><b>  enter();</b></p><p><b>  break;</b></p><p><b>  case '5':</b></p><p><b&

101、gt;  enter();</b></p><p><b>  break;</b></p><p><b>  case '6':</b></p><p><b>  enter();</b></p><p><b>  break;&l

102、t;/b></p><p><b>  case '7':</b></p><p><b>  enter();</b></p><p><b>  break;</b></p><p><b>  case '8':</b

103、></p><p><b>  enter();</b></p><p><b>  break;</b></p><p><b>  case '9':</b></p><p><b>  enter();</b></p>

104、;<p><b>  break;</b></p><p>  case '0': {</p><p>  if (Refresh == true) {</p><p>  lab.setText("0");</p><p>  number = 0;</p>

105、<p>  Refresh = false;</p><p><b>  }</b></p><p>  if (lab.getText().charAt(0) == '0' && lab.getText().length() == 1)</p><p><b>  break;</

106、b></p><p>  if (number < length) {</p><p><b>  number++;</b></p><p>  lab.setText(lab.getText() + ch);</p><p><b>  } else</b></p>&

107、lt;p><b>  break;</b></p><p><b>  }</b></p><p><b>  break;</b></p><p><b>  case 'A':</b></p><p><b>  ent

108、er();</b></p><p><b>  break;</b></p><p><b>  case 'B':</b></p><p><b>  enter();</b></p><p><b>  break;</b>

109、</p><p><b>  case 'C':</b></p><p><b>  enter();</b></p><p><b>  break;</b></p><p><b>  case 'D':</b><

110、/p><p><b>  enter();</b></p><p><b>  break;</b></p><p><b>  case 'E':</b></p><p><b>  enter();</b></p><p

111、><b>  break;</b></p><p><b>  case 'F':</b></p><p><b>  enter();</b></p><p><b>  break;</b></p><p>  case '

112、;.': {</p><p>  if (Refresh == true) {</p><p>  lab.setText("0");</p><p>  number = 0;</p><p>  Refresh = false;</p><p><b>  }</b>

113、;</p><p>  if (lab.getText().indexOf('.') == -1) {</p><p><b>  number++;</b></p><p>  lab.setText(lab.getText() + ch);</p><p><b>  } else</

114、b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  break;</b></p><p>  case 'b': {</p><p>  if (number

115、== 0)</p><p><b>  break;</b></p><p><b>  else {</b></p><p>  if (--number == 0) {</p><p>  lab.setText("0");</p><p>  num

116、ber = 0;</p><p><b>  } else {</b></p><p>  if (number != 1)</p><p>  lab.setText(lab.getText().substring(0, number));</p><p><b>  else</b></p

117、><p><b>  lab</b></p><p>  .setText(Character.toString(lab.getText()</p><p>  .charAt(0)));</p><p><b>  }</b></p><p><b>  }</

118、b></p><p><b>  }</b></p><p><b>  break;</b></p><p><b>  case '+':</b></p><p><b>  try {</b></p><p&

119、gt;<b>  js();</b></p><p>  } catch (This_number_too_big e) {</p><p>  lab.setText("0");</p><p>  number = 0;</p><p>  mark = 'n';</p>

120、;<p>  Refresh = false;</p><p>  System.out.println("The number is too big");</p><p><b>  }</b></p><p><b>  break;</b></p><p> 

121、 // 如果出現(xiàn)異常則初始化效果如同clear鍵</p><p><b>  case '-':</b></p><p><b>  try {</b></p><p><b>  js();</b></p><p>  } catch (This_number

122、_too_big e) {</p><p>  lab.setText("0");</p><p>  number = 0;</p><p>  mark = 'n';</p><p>  Refresh = false;</p><p>  System.out.println(

123、"The number is too big");</p><p><b>  }</b></p><p><b>  break;</b></p><p>  // 如果出現(xiàn)異常則初始化效果如同clear鍵</p><p><b>  case '*'

124、:</b></p><p><b>  try {</b></p><p><b>  js();</b></p><p>  } catch (This_number_too_big e) {</p><p>  lab.setText("0");</p>

125、;<p>  number = 0;</p><p>  mark = 'n';</p><p>  Refresh = false;</p><p>  System.out.println("The number is too big");</p><p><b>  }<

126、/b></p><p><b>  break;</b></p><p>  // 如果出現(xiàn)異常則初始化效果如同clear鍵</p><p><b>  case '/':</b></p><p><b>  try {</b></p>&l

127、t;p><b>  js();</b></p><p>  } catch (This_number_too_big e) {</p><p>  lab.setText("0");</p><p>  number = 0;</p><p>  mark = 'n';</

128、p><p>  Refresh = false;</p><p>  System.out.println("The number is too big");</p><p><b>  }</b></p><p><b>  break;</b></p><p&

129、gt;  // 如果出現(xiàn)異常則初始化效果如同clear鍵</p><p><b>  case '=':</b></p><p><b>  try {</b></p><p><b>  js();</b></p><p>  } catch (This_nu

130、mber_too_big e) {</p><p>  lab.setText("0");</p><p>  number = 0;</p><p>  mark = 'n';</p><p>  Refresh = false;</p><p>  System.out.prin

131、tln("The number is too big");</p><p><b>  }</b></p><p><b>  break;</b></p><p>  // 如果出現(xiàn)異常則初始化效果如同clear鍵</p><p><b>  }</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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論