Java課程設(shè)計報告
《Java課程設(shè)計報告》由會員分享,可在線閱讀,更多相關(guān)《Java課程設(shè)計報告(29頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 湖湖 南南 農(nóng)農(nóng) 業(yè)業(yè) 大大 學(xué)學(xué)Java 課程設(shè)計報告課程設(shè)計報告計算器軟件設(shè)計計算器軟件設(shè)計學(xué)生姓名:學(xué)生姓名: 學(xué)學(xué) 號:號: 年級專業(yè):年級專業(yè):指導(dǎo)老師:指導(dǎo)老師: 學(xué)學(xué) 院:院:1目目 錄錄1. 前言前言22概要設(shè)計概要設(shè)計3 2.1 開發(fā)環(huán)境開發(fā)環(huán)境3 2.2 計算器功能計算器功能3 2.3 界面設(shè)計界面設(shè)計3 2.4 類類 UML 圖圖43. 詳細(xì)設(shè)計詳細(xì)設(shè)計4 3.1 使用的使用的 JAVA 類的說明類的說明4 3.2 類的主要方法類的主要方法53.2.1 處理按了運(yùn)算符后的計算處理按了運(yùn)算符后的計算53.2.2 處理輸入字符處理輸入字符63.2.3 進(jìn)制的轉(zhuǎn)換進(jìn)制的轉(zhuǎn)換6
2、3.2.4 設(shè)計總體認(rèn)識設(shè)計總體認(rèn)識73.2.5 程序流程圖程序流程圖8 4. 運(yùn)行結(jié)果運(yùn)行結(jié)果85. 測試分析測試分析9 5.1 程序運(yùn)行情況程序運(yùn)行情況9 5.2 程序異常處理程序異常處理96. 源程序源程序9參考文獻(xiàn)參考文獻(xiàn)27致致 謝謝272摘要:摘要:該程序是一個圖形界面的簡單的 java 計算器,具有良好的界面,使用人員能快捷簡單地進(jìn)行操作。即時準(zhǔn)確地獲得需要的計算的結(jié)果,充分降低了數(shù)字計算的難度和節(jié)約了時間,對人們的生活有一定的幫助??梢赃M(jìn)行簡單的四則運(yùn)算(加、減、乘、除,以及開平方)但僅限于十進(jìn)制下,還可以進(jìn)行(八進(jìn)制,十進(jìn)制,十六進(jìn)制)之間的相互轉(zhuǎn)換,八進(jìn)制最多可以輸入 19
3、 位數(shù),十進(jìn)制最多可以輸入 18 位數(shù),十六進(jìn)制最多可以輸入 14 位數(shù),backspace 表示退格, clear 表示初始化,sqrt 表示開平方,界面為灰白對稱。關(guān)鍵字:關(guān)鍵字:java、計算器類、方法、事件1 前言前言隨著科學(xué)技術(shù)的不斷發(fā)展,計算機(jī)已經(jīng)成為我們工作學(xué)習(xí)和生活中不可缺少的工具。文本編輯器是個人計算機(jī)最司空見慣的應(yīng)用程序了,在學(xué)習(xí)了 Java語言之后,我決定使用 Java 語言編寫一個簡單的計算器,可以實(shí)現(xiàn)簡單的運(yùn)算功能,滿足日?;镜墓ぷ鲗W(xué)習(xí)和娛樂需要。Java 是由 Sun 公司開發(fā)的新一代純面向?qū)ο蟮木W(wǎng)絡(luò)編程語言。其目標(biāo)是建立一種在任意種機(jī)器、任一種操作系統(tǒng)的網(wǎng)絡(luò)環(huán)境
4、中運(yùn)行的軟件,實(shí)行所謂的“程序?qū)懸淮?,到處運(yùn)行”的目標(biāo)。正因?yàn)槿绱?,Java 已成為當(dāng)今 Internet上最流行、最受歡迎的一種程序開發(fā)語言。Java 開發(fā)小組把 Java 按特性分為基本版、移動版、企業(yè)版,每個版本有一個軟件開發(fā)包。Java 基本版本叫 Java 2 標(biāo)準(zhǔn)版(Java 2 Standard Edition,J2SE),它包含建立 Java 應(yīng)用程序或者是 Applet 所需的應(yīng)用程序編程接口(API) 。Java 2 移動版(The Java 2 Mobile Edition,J2ME)包含創(chuàng)建無線 Java 應(yīng)用程序的 API。還有 Java 2 企業(yè)版(The Java
5、 2 Enterprise,J2EE)是 J2SE 的增強(qiáng)版本,包含建立多層架構(gòu)應(yīng)用程序 API。Java 語言是由 C+語言發(fā)展起而來的,是一種徹底的面向?qū)ο蟮某绦蛟O(shè)計語言。作為一種純面向?qū)ο蟮某绦蛟O(shè)計語言,它非常適合大型軟件的開發(fā)。Java 語言去掉了 C+語言的一些容易引起錯誤的特性。Java 語言的特點(diǎn)有:面向?qū)ο?、跨平臺、安全性、多線程和圖形功能強(qiáng)。32 概要設(shè)計概要設(shè)計2.1 開發(fā)環(huán)境開發(fā)環(huán)境 開發(fā)平臺:Microsoft Windows XP Professional Service Pack 2 開發(fā)工具:JBuilder 2007 + JDK 1.6.0_022.2 計算器功
6、能計算器功能功能 1:按下數(shù)字鍵在液晶平上會顯示數(shù)字,這時計算器最基本的功能。 功能 2:在任何時候按下“”鍵,計算器文本框上的數(shù)字置反號。 功能 3:第一次按下“運(yùn)算”鍵,再按下數(shù)字鍵,將重新輸入第二個數(shù)字。再次按下“運(yùn) 算”鍵,將算出前兩個數(shù)字運(yùn)算的結(jié)果,然后按下數(shù)字,將又重新輸入新的數(shù)字。 功能 4:輸入數(shù)字后,按下“等于”鍵,將仍輸出原來的數(shù) 輸入運(yùn)算符和第二個數(shù)字后再按下“=”鍵,將得到二者運(yùn)算的結(jié)果,然后又重復(fù)功能 3 和功能 4 。 功能 5:按下清除“C”鍵,數(shù)據(jù)被全部清楚。2.32.3 界面設(shè)計界面設(shè)計圖 2.3 計算器面板42.4 類類 UML 圖圖ArrayStackCh
7、ar UML 圖如圖 2.3A 所示:ArrayStackDouble UML 圖如圖 2.3B 所示圖 2.4A 圖 2.4B3 詳細(xì)設(shè)計詳細(xì)設(shè)計3.1 計算器使用的計算器使用的 Java 類的說明類的說明類名: This_number_too_big作用: 自定義的異常類,用來處理計算結(jié)果溢出 繼承的父類: Exception 類 實(shí)現(xiàn)的接口: 沒有 class This_number_too_big extends Exception /自定義的一個結(jié)果溢出異常類5類名: Jsp2003 作用: 主類。繼承的父類: Frame 類實(shí)現(xiàn)的接口: ItemListener 類,ActionL
8、istener 類class Jsp2003 extends Frame implements ItemListener,ActionListener public int number=0,length=18; /number 是用來記錄輸入的數(shù)字個數(shù), /length 是用來設(shè)置在不同進(jìn)制下允許輸入的最多數(shù)字位數(shù),默認(rèn)為十進(jìn) 制 public char mark=n; /設(shè)置運(yùn)算符號為沒有即為n,它的值是+-*/ public double data=0; /設(shè)置運(yùn)算數(shù)據(jù)為零 public char ch; /用來臨時存放所按按鈕的第一個字符 public boolean Refresh=
9、false; /設(shè)置 lab 是否要在輸入數(shù)據(jù)的時候刷新,初始為否 程序的設(shè)計參考了 Sun Java 網(wǎng)站里的大量實(shí)例,比如 Layout 的使用、Event 的處理、Components 的添加與應(yīng)用等等。其中:public class NewCalc extends JFrame implements ActionListener語句實(shí)現(xiàn)了 ActionListener 接口,因此可以調(diào)用 addActionListener(this)方法對按鈕進(jìn)行點(diǎn)擊監(jiān)聽,在下面的 public void actionPerformed(ActionEvent e)方法里面對各個點(diǎn)擊事件進(jìn)行處理。3.
10、2 類的主要方法3.2.1 處理按了運(yùn)算符后的計算: public void js() throws This_number_too_big if (mark=n) mark=ch; / data=Double.parseDouble(lab.getText();Refresh=true; else 6switch (mark) case +: data+=Double.parseDouble(lab.getText(); break; case -: data-=Double.parseDouble(lab.getText(); break; case *: data*=Double.par
11、seDouble(lab.getText(); break; case /: data/=Double.parseDouble(lab.getText(); break; lab.setText(Double.toString(data); mark=ch; Refresh=true; number=lab.getText().length();/ System.out.println(lab.getText();if (dataDouble.MAX_VALUE) throw new This_number_too_big(); 3.2.2 處理輸入字符:if(Refresh=true) la
12、b.setText(0); number=0; Refresh=false; if(lab.getText().charAt(0)=0& lab.getText().length()=1) lab.setText(Character.toString(ch); number+; else if(numberlength) number+;lab.setText(lab.getText()+ch); 3.2.3 八進(jìn)制或十六進(jìn)制轉(zhuǎn)換成十進(jìn)制 I:public String goto_10(String s,long l) /參數(shù) s: 是要轉(zhuǎn)換的字符串,由于輸入的控制,保證了字符串的合法性; /
13、參數(shù) l: 使用來設(shè)置是將 8 進(jìn)制還是 16 進(jìn)制轉(zhuǎn)換成 10 進(jìn)制,它的有7效值為 8 或 16; String str=s; /用來轉(zhuǎn)換的字符串 long j=l; /表示進(jìn)制 long lg=0,jing=1;/lg 用來記錄權(quán)乘和,jing 用來記錄位權(quán) char cha;/臨時記錄要轉(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
14、*jing;break; case 4: lg=lg+4*jing;break; case 5: lg=lg+5*jing;break; case 6: lg=lg+6*jing;break; case 7: lg=lg+7*jing;break; case 8: lg=lg+8*jing;break; case 9: lg=lg+9*jing;break; case A: lg=lg+10*jing;break; case B: lg=lg+11*jing;break; case C: lg=lg+12*jing;break; case D: lg=lg+13*jing;break; cas
15、e E: lg=lg+14*jing;break; case F: lg=lg+15*jing;break; jing*=j; /位權(quán)升一級,為下次使用做好準(zhǔn)備 return Long.toString(lg); /end String goto_10() method 83.2.4 設(shè)計的總體認(rèn)識 JAVA 設(shè)計的摘要 JAVA 設(shè)計的目錄結(jié)構(gòu) JAVA 設(shè)計的概要和詳細(xì)設(shè)計 JAVA 設(shè)計的版權(quán)意識 JAVA 設(shè)計需要編譯的環(huán)境 JAVA 設(shè)計的實(shí)用性3.2.5 程序流程圖程序流程圖計算結(jié)果顯示接受用戶輸入是否再次計算退出是否處理異常圖 3 繪制計算器方法 PAD 圖開始選擇你要計算運(yùn)行的
16、進(jìn)制 10.8.16十六進(jìn)制八進(jìn)制默認(rèn)十進(jìn)制進(jìn)制轉(zhuǎn)換刷新94 運(yùn)行結(jié)果運(yùn)行結(jié)果圖 4 計算結(jié)果顯示5 測試分析測試分析5.1 程序運(yùn)行情況程序運(yùn)行情況: 程序正常的響應(yīng)按鈕事件,輸入的數(shù)值長度受變量 length 的限定,進(jìn)行混合四則運(yùn)算的時候,結(jié)果如果不是很大,可以正常顯示,但如果結(jié)果很大,就可能采用科學(xué)記數(shù)方式,這樣帶來了進(jìn)制轉(zhuǎn)換時的麻煩,需要特殊的處理科學(xué)記數(shù)里的 E ,當(dāng)結(jié)果太大的時候,有可能超出可能表示的最大值, (結(jié)果溢出) ,這個時候就要對結(jié)果進(jìn)行必要的異常處理,我在輸出結(jié)果的方法內(nèi)設(shè)置 if 語句,如果結(jié)果大于某一個值就拋出一個 This_number_too_big 類型的類
17、,再使用try-catch,捕捉輸出結(jié)果的方法拋出的異常對象。然后進(jìn)行,重制歸零的處理。 5.2 程序異常處理程序異常處理: 當(dāng)結(jié)果超出 Double.MAX_VALUE 時,將拋出一個 This_number_too_big 類的異常對象,這個是我自定義的一個異常類它繼承自 Exception 類,然后使用 try-catch 去捕捉這個異常,異常的處理如下: try 10 js(); catch(This_number_too_big e) lab.setText(0); number=0; mark=n; Refresh=false; System.out.println(The num
18、ber is too big); /如果出現(xiàn)異常則初始化效果如同 clear 鍵 6 6 程序清單:程序清單:import java.awt.*;import java.awt.event.*;class This_number_too_big extends Exception / 自定義的一個結(jié)果溢出異常類/ ActionLintsner 是所有監(jiān)聽器的父類,其它監(jiān)聽器可以監(jiān)聽的事件都可以被它捕獲/ ItemListener 用于捕獲帶有 item 的組件產(chǎn)生的事件,如ComboBox,CheckBox,RadioButton,ToggleButtonclass hejiang exten
19、ds Frame implements ItemListener, ActionListener public hejiang() addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) dispose();System.exit(0); / 給窗口注冊一個事件監(jiān)聽器,當(dāng)你點(diǎn)了窗口右上方的叉號時,此方法被調(diào)用);static hejiang mainFrame = new hejiang(); / 創(chuàng)建一個 mainFramestatic Label lab1 = new Label(0);s
20、tatic Label lab = new Label(0);static Panel pnl1 = new Panel(new GridLayout(4, 3, 3, 3); / 創(chuàng)建新的面板.布局管理11static Panel pnl2 = new Panel(new GridLayout(4, 1, 3, 3);static Panel pnl3 = new Panel(new GridLayout(1, 2, 3, 3);static Panel pnl4 = new Panel(new GridLayout(6, 1, 3, 3);static Button bt9 = new B
21、utton(9);static Button bt8 = new Button(8);static Button bt7 = new Button(7);static Button bt6 = new Button(6);static Button bt5 = new Button(5);static Button bt4 = new Button(4);static Button bt3 = new Button(3);static Button bt2 = new Button(2);static Button bt1 = new Button(1);static Button bt0 =
22、 new Button(0);static Button btdot = new Button(.);static Button btequ = new Button(=);static Button btadd = new Button(+);static Button btsub = new Button(-);static Button btmul = new Button(*);static Button btdev = new Button(/);static Button btA = new Button(A);static Button btB = new Button(B);s
23、tatic Button btC = new Button(C);static Button btD = new Button(D);static Button btE = new Button(E);static Button btF = new Button(F);static Checkbox ckb8 = new Checkbox(八進(jìn)制);static Checkbox ckb10 = new Checkbox(十進(jìn)制);static Checkbox ckb16 = new Checkbox(十六進(jìn)制);static Button btc = new Button(clear);s
24、tatic Button btt = new Button(backspace);public int number = 0, length = 18;/ number 是用來記錄輸入的數(shù)字個數(shù),length 是用來設(shè)置在不同進(jìn)制下允許輸入的最多數(shù)字位數(shù),默認(rèn)為十進(jìn)制public char mark = n; / 設(shè)置運(yùn)算符號為沒有即為n ,它的值是+ - * /public double data = 0; / 設(shè)置運(yùn)算數(shù)據(jù)為零public char ch; / 用來臨時存放所按按鈕的第一個字符public boolean Refresh = false;/ 設(shè)置 lab 是否要在輸入數(shù)據(jù)的
25、時候刷新,初始為否public static void main(String args) System.out.println(Starting hejiang.);lab.setAlignment(Label.RIGHT); / 對齊方式lab.setBackground(Color.lightGray); / 背景色12lab.setForeground(Color.BLUE); / 前景色lab.setFont(new Font(Serief, Font.BOLD, 18);/ 字體設(shè)置lab.setBounds(14, 33, 216, 40);lab1.setAlignment(L
26、abel.RIGHT); / 對齊方式lab1.setBackground(Color.lightGray); / 背景色lab1.setForeground(Color.BLUE); / 前景色lab1.setFont(new Font(Serief, Font.BOLD, 18);/ 字體設(shè)置lab1.setBounds(14, 75, 216, 40);mainFrame.add(lab);mainFrame.add(lab1);CheckboxGroup grp = new CheckboxGroup();ckb8.setCheckboxGroup(grp);ckb10.setChec
27、kboxGroup(grp);ckb16.setCheckboxGroup(grp);ckb8.setBounds(14, 115, 55, 25); / setBounds()方法是可以設(shè)定控件的大小和位置ckb10.setBounds(69, 115, 55, 25);ckb16.setBounds(124, 115, 65, 25);ckb8.setState(false);ckb10.setState(true);ckb16.setState(false);mainFrame.add(ckb8);mainFrame.add(ckb10);mainFrame.add(ckb16);pnl
28、1.setBounds(18, 180, 120, 150);pnl2.setBounds(144, 180, 40, 150);pnl3.setBounds(14, 140, 170, 36);pnl4.setBounds(190, 140, 40, 190);pnl1.add(bt7);pnl1.add(bt8);pnl1.add(bt9);pnl1.add(bt4);pnl1.add(bt5);pnl1.add(bt6);pnl1.add(bt1);pnl1.add(bt2);pnl1.add(bt3);pnl1.add(bt0);pnl1.add(btdot);pnl1.add(bte
29、qu);pnl2.add(btadd);pnl2.add(btsub);pnl2.add(btmul);pnl2.add(btdev);13pnl3.add(btt);pnl3.add(btc);pnl4.add(btA);pnl4.add(btB);pnl4.add(btC);pnl4.add(btD);pnl4.add(btE);pnl4.add(btF);btA.enable(false);btB.enable(false);btC.enable(false);btD.enable(false);btE.enable(false);btF.enable(false);mainFrame.
30、add(pnl1);mainFrame.add(pnl2);mainFrame.add(pnl3);mainFrame.add(pnl4);mainFrame.setResizable(false); / 窗口可以最小化和關(guān)閉,但是不能被任意改變大小mainFrame.setLayout(null);mainFrame.setSize(240, 350);mainFrame.setTitle(小型計算器);mainFrame.setVisible(true); / 組件可見ckb8.addItemListener(mainFrame);ckb10.addItemListener(mainFra
31、me);ckb16.addItemListener(mainFrame);/ 把事件聆聽者向各個組鍵注冊bt1.addActionListener(mainFrame);bt2.addActionListener(mainFrame);bt3.addActionListener(mainFrame);bt4.addActionListener(mainFrame);bt5.addActionListener(mainFrame);bt6.addActionListener(mainFrame);bt7.addActionListener(mainFrame);bt8.addActionList
32、ener(mainFrame);bt9.addActionListener(mainFrame);bt0.addActionListener(mainFrame);btadd.addActionListener(mainFrame);btsub.addActionListener(mainFrame);btmul.addActionListener(mainFrame);btdev.addActionListener(mainFrame);btt.addActionListener(mainFrame);btc.addActionListener(mainFrame);14btdot.addA
33、ctionListener(mainFrame);btequ.addActionListener(mainFrame);btA.addActionListener(mainFrame);btB.addActionListener(mainFrame);btC.addActionListener(mainFrame);btD.addActionListener(mainFrame);btE.addActionListener(mainFrame);btF.addActionListener(mainFrame);/ end main() mothed/ checkbox 事件的處理public
34、void itemStateChanged(ItemEvent e) mark = n;Refresh = false;/ 規(guī)定當(dāng)進(jìn)制轉(zhuǎn)換時以前輸入的運(yùn)算符失效if (ckb8.getState() = true) btA.enable(false);btB.enable(false);btC.enable(false);btD.enable(false);btE.enable(false);btF.enable(false);bt9.enable(false);bt8.enable(false);btdot.enable(false);btadd.enable(false);btmul.en
35、able(false);btsub.enable(false);btdev.enable(false);btequ.enable(false);/ 在八進(jìn)制的情況下對有些按件的管理if (length = 18) lab.setText(goto10_8(lab.getText();number = lab.getText().length();if (length = 14) lab.setText(goto_10(lab.getText(), 16L);lab.setText(goto10_8(lab.getText();number = lab.getText().length();/
36、將其他進(jìn)制轉(zhuǎn)換成八進(jìn)制length = 19;/ 在八進(jìn)制下允許輸入數(shù)字個數(shù)最多為 19 位15if (ckb10.getState() = true) btA.enable(false);btB.enable(false);btC.enable(false);btD.enable(false);btE.enable(false);btF.enable(false);bt9.enable(true);bt8.enable(true);btdot.enable(true);btadd.enable(true);btmul.enable(true);btsub.enable(true);btdev
37、.enable(true);btequ.enable(true);/ 在十進(jìn)制的情況下對有些控件的管理if (length = 19) lab.setText(goto_10(lab.getText(), 8L);number = lab.getText().length();if (length = 14) lab.setText(goto_10(lab.getText(), 16L);number = lab.getText().length();if (length = 19) lab1.setText(goto_10(lab1.getText(), 8L);number = lab1.
38、getText().length();if (length = 14) lab1.setText(goto_10(lab1.getText(), 16L);number = lab1.getText().length();length = 18;if (ckb16.getState() = true) btA.enable(true);btB.enable(true);btC.enable(true);btD.enable(true);btE.enable(true);btF.enable(true);bt9.enable(true);bt8.enable(true);btdot.enable
39、(false);16btadd.enable(false);btmul.enable(false);btsub.enable(false);btdev.enable(false);btequ.enable(false);/ 在十六進(jìn)制的情況下對有些按件的管理if (length = 18) lab.setText(goto10_16(lab.getText();number = lab.getText().length();if (length = 19) lab.setText(goto_10(lab.getText(), 8L);lab.setText(goto10_16(lab.getT
40、ext();number = lab.getText().length();/ 將其他進(jìn)制轉(zhuǎn)換成十六進(jìn)制length = 14;/ 在十六進(jìn)制下允許輸入數(shù)字個數(shù)最多為 14 位/ end itemStateChanged(ItemEvent e) method/ 按鈕事件的處理public void actionPerformed(ActionEvent m) / 鼠標(biāo)點(diǎn)激就觸發(fā)事件監(jiān)聽Button btn = (Button) m.getSource();ch = btn.getLabel().charAt(0);deposit(ch);switch (ch) case c: lab.set
41、Text(0);number = 0;mark = n;Refresh = false;break;/ 初始化case 1:enter();break;case 2:enter();break;case 3:enter();17break;case 4:enter();break;case 5:enter();break;case 6:enter();break;case 7:enter();break;case 8:enter();break;case 9:enter();break;case 0: if (Refresh = true) lab.setText(0);number = 0;
42、Refresh = false;if (lab.getText().charAt(0) = 0 & lab.getText().length() = 1)break;if (number length) number+;lab.setText(lab.getText() + ch); elsebreak;break;case A:enter();break;case B:enter();break;case C:enter();break;18case D:enter();break;case E:enter();break;case F:enter();break;case .: if (R
43、efresh = true) lab.setText(0);number = 0;Refresh = false;if (lab.getText().indexOf(.) = -1) number+;lab.setText(lab.getText() + ch); elsebreak;break;case b: if (number = 0)break;else if (-number = 0) lab.setText(0);number = 0; else if (number != 1)lab.setText(lab.getText().substring(0, number);elsel
44、ab.setText(Character.toString(lab.getText().charAt(0);break;case +:try js(); catch (This_number_too_big e) 19lab.setText(0);number = 0;mark = n;Refresh = false;System.out.println(The number is too big);break;/ 如果出現(xiàn)異常則初始化效果如同 clear 鍵case -:try js(); catch (This_number_too_big e) lab.setText(0);number
45、 = 0;mark = n;Refresh = false;System.out.println(The number is too big);break;/ 如果出現(xiàn)異常則初始化效果如同 clear 鍵case *:try js(); catch (This_number_too_big e) lab.setText(0);number = 0;mark = n;Refresh = false;System.out.println(The number is too big);break;/ 如果出現(xiàn)異常則初始化效果如同 clear 鍵case /:try js(); catch (This
46、_number_too_big e) lab.setText(0);number = 0;mark = n;Refresh = false;System.out.println(The number is too big);break;/ 如果出現(xiàn)異常則初始化效果如同 clear 鍵20case =:try js(); catch (This_number_too_big e) lab.setText(0);number = 0;mark = n;Refresh = false;System.out.println(The number is too big);break;/ 如果出現(xiàn)異常則初
47、始化效果如同 clear 鍵/ end actionPerformed(ActionEvent e) method/ 八進(jìn)制或十六進(jìn)制轉(zhuǎn)換成十進(jìn)制 Ipublic String goto_10(String s, long l)/ 參數(shù) s: 是要轉(zhuǎn)換的字符串,由于輸入的控制,保證了字符串的合法性;/ 參數(shù) l: 使用來設(shè)置是將 8 進(jìn)制還是 16 進(jìn)制轉(zhuǎn)換成 10 進(jìn)制,它的有效值為 8 或 16;String str = s; / 用來轉(zhuǎn)換的字符串long j = l; / 表示進(jìn)制long lg = 0, jing = 1;/ lg 用來記錄權(quán)乘和,jing 用來記錄位權(quán)char cha
48、;/ 臨時記錄要轉(zhuǎn)換的字符for (int i = 1; i = 16) ch = lg % 16;k = (int) ch;switch (k) case 10:st = A + st;break;case 11:st = B + st;break;case 12:st = C + st;break;case 13:st = D + st;break;case 14:st = E + st;break;case 15:st = F + st;break;default:st = Long.toString(ch) + st;lg = lg / 16;k = (int) lg;switch (
49、k) case 10:st = A + st;break;case 11:st = B + st;23break;case 12:st = C + st;break;case 13:st = D + st;break;case 14:st = E + st;break;case 15:st = F + st;break;default:st = Long.toString(lg) + st;return st;/ end goto10_16() method/ 十進(jìn)制轉(zhuǎn)換成八進(jìn)制?public String goto10_8(String s)/ 參數(shù) s: 是要轉(zhuǎn)換的字符串,由于輸入的控制,
50、保證了字符串的合法性;String str = s;if (str.charAt(0) = -) / 如果有負(fù)號則出去負(fù)號str = str.substring(1, str.length() - 1);if (str.indexOf(E) != -1)/ 如果是科學(xué)計數(shù)值則出去小數(shù)點(diǎn)和 E后面的數(shù)str = str.charAt(0) + str.substring(2, str.indexOf(E);if (str.indexOf(.) != -1)/ 如果有小數(shù)點(diǎn)則出去小數(shù)點(diǎn)及小數(shù)點(diǎn)后面的內(nèi)容str = str.substring(0, str.indexOf(.);lg = Long.
51、parseLong(str);while (lg = j) ch = lg % j;st = Long.toString(ch) + st;lg = lg / j;st = Long.toString(lg) + st;return st;/ end goto10_8() method/ 輸入字符public void enter() if (Refresh = true)24/ 如果已經(jīng)設(shè)置了 運(yùn)算符則在下一次輸入數(shù)據(jù)的時候要把以前 lab 的內(nèi)容清除掉lab.setText(0);number = 0;Refresh = false;if (lab.getText().charAt(0)
52、= 0 & lab.getText().length() = 1)/ 如果 lab 的內(nèi)容為 0 則,lab 的內(nèi)容將被所輸入的字符代替,否則直接在 lab 的內(nèi)容后面加上所輸入的字符lab.setText(Character.toString(ch);number+; else if (number Double.MAX_VALUE)/ 如果 data 超過 double 類型的最大值則拋出自定義的一個異常類throw new This_number_too_big();/ end js() methodpublic void answer() throws This_number_too_
53、big / 指定由 method拋出異常if (mark = n) else switch (mark) case +:data += Double.parseDouble(lab.getText();break;case -:data -= Double.parseDouble(lab.getText();break;case *:data *= Double.parseDouble(lab.getText();break;case /:data /= Double.parseDouble(lab.getText();break;lab.setText(Double.toString(dat
54、a);mark = n;if (data Double.MAX_VALUE) / 如果 data 超過 double 類型的最大值則拋出自定義的一個異常類throw new This_number_too_big();26Refresh = false;number = lab.getText().length();/ end answer() methodString display=;private void deposit(char code)switch (code) case c:display=;break;/ 初始化case +:display=display+code;brea
55、k;case -:display=display+code;break;case *:display=display+code;break;case /:display=display+code;break;case 1:display=display+code;break;case 2:display=display+code;break;case 3:display=display+code;break;case 4:display=display+code;break;case 5:display=display+code;break;case 6:display=display+cod
56、e;break;case 7:display=display+code;break;case 8:27display=display+code;break;case 9:display=display+code;break;case A:display=display+code;break;case B:display=display+code;break;case C: display=display+code; break;case D: display=display+code;break;case E:display=display+code;break;case F:display=
57、display+code;break;lab1.setText(display);/ end class hejiang參考文獻(xiàn)林良信 Java JDK 6 學(xué)習(xí)筆記 劉浦迎 謝春 java 程序設(shè)計實(shí)用教程 科學(xué)出版社 張白一 崔尚林 面向?qū)ο蟪绦蛟O(shè)計java 西安電子科技大學(xué)出版社潘浩 李芙玲 Java 程序設(shè)計 清華大學(xué)出版社致致 謝謝經(jīng)過一個學(xué)期的 JAVA 學(xué)習(xí),對 JAVA 編程有了一定的認(rèn)識,在做這個課程設(shè)計的時候,剛開始感覺自己無從下手,不知道該怎么開始,很茫然。最終利用網(wǎng)絡(luò)資源和查閱圖書館的書籍,在傅老師和同學(xué)的指導(dǎo)和討論下,經(jīng)過一段時間終于完成了這個設(shè)計。當(dāng)程序運(yùn)行結(jié)束看到彈出的計算器的界面時,感到很欣慰,雖然只是一個小小的東西,但卻是自己起步的成就,從中學(xué)到了很多書本知識不能體現(xiàn)的東西,對 JAVA 的學(xué)習(xí)有了一定的興趣。也通過這次的程序設(shè)計感覺到自己平時對于編程實(shí)際操作的貧乏,沒有把書本上的知識真正的掌握牢固。28
- 溫馨提示:
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. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《產(chǎn)品價值鏈與營銷戰(zhàn)略》
- lecture 9(精品)
- Where’s your pen pal from (2)
- (精品)實(shí)驗(yàn)二血清γ球蛋白的分離純化與鑒定by陳蔚文
- 企業(yè)專利風(fēng)險管理
- 高中記敘文寫作指導(dǎo):寫人要凸顯個性ppt課件
- 新生兒溶血病的發(fā)病機(jī)理臨床癥狀課件
- 7、艱辛的求索 (2)
- 學(xué)校心理健康教育組織管理課件
- IE七大手法的發(fā)展歷程
- 頸托的正確使用課件
- (精品)電功與電功率復(fù)習(xí)1
- 李曉光-管理學(xué)原理第十三章領(lǐng)導(dǎo)工作概述
- 固體中的相結(jié)構(gòu)
- 智能化酒店系統(tǒng)PPT