java計(jì)算器說明書_第1頁
java計(jì)算器說明書_第2頁
java計(jì)算器說明書_第3頁
java計(jì)算器說明書_第4頁
java計(jì)算器說明書_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、*實(shí)踐教學(xué)*XXXX大學(xué)計(jì)算機(jī)與通信學(xué)院秋季學(xué)期java 課程設(shè)計(jì)題 目: 迷你計(jì)算器 專業(yè)班級(jí): 姓 名: 學(xué) 號(hào): 指導(dǎo)教師: 成 績(jī): 目錄序言2摘要2系統(tǒng)分析與設(shè)計(jì)3設(shè)計(jì)方案構(gòu)思:3詳細(xì)設(shè)計(jì)6數(shù)字按鍵監(jiān)聽類6運(yùn)算按鍵監(jiān)聽類7記憶操作監(jiān)聽類9測(cè)試方案9測(cè)試用例10測(cè)試結(jié)果10軟件使用說明書14按鍵說明:14設(shè)計(jì)總結(jié)16參考文獻(xiàn)16附錄代碼:17application版本的迷你計(jì)算器17applet版本的迷你計(jì)算器25序言學(xué)習(xí)完Java語言課程以后,利用這一次的課程設(shè)計(jì)進(jìn)行自我檢驗(yàn)的一次實(shí)踐。通過該題目的設(shè)計(jì),培養(yǎng)面向?qū)ο蟪绦蛟O(shè)計(jì)的思想,要求達(dá)到熟練掌握J(rèn)ava語言的基本知識(shí)和技能,基本掌

2、握面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思路和方法,能夠利用所學(xué)的基本知識(shí)和技能,解決簡(jiǎn)單的面向?qū)ο蟪绦蛟O(shè)計(jì)問題。同時(shí)強(qiáng)調(diào)好的程 序設(shè)計(jì)風(fēng)格,提高解決實(shí)際問題的能力。而我的課題是設(shè)計(jì)迷你計(jì)算器,它要求利用所學(xué)過的java語言進(jìn)行設(shè)計(jì),并要求可視化界面。通過查閱有關(guān)java知識(shí)方面的書籍資料來幫助自己完成課程設(shè)計(jì),涉及的知識(shí)點(diǎn)有以下幾點(diǎn):利用面向?qū)ο蟮乃枷胧紫瓤紤]設(shè)計(jì)程序的大致框架結(jié)構(gòu)以及相關(guān)功能,設(shè)計(jì)相關(guān)的類結(jié)構(gòu);由于使用可視化界面,免不了要使用有關(guān)界面的設(shè)計(jì)知識(shí),有AWT、swing來設(shè)計(jì)人機(jī)交互的界面。而事件的相關(guān)知識(shí)起到人機(jī)媒介的作用,要求利用到接口(interface)實(shí)現(xiàn)事件的監(jiān)聽;此次的課程設(shè)計(jì)包

3、括兩個(gè)版本:application 和 Applet小應(yīng)用程序,所以需要了解兩個(gè)的開發(fā)流程,以及兩者的區(qū)別點(diǎn)。有關(guān)這次是的設(shè)計(jì)只是簡(jiǎn)略的迷你計(jì)算器的設(shè)計(jì),采用清晰,簡(jiǎn)明的設(shè)計(jì)層次,同時(shí)可以檢驗(yàn)對(duì)java語言的基本掌握情況。摘要計(jì)算器是一種很常用的計(jì)算工具,它在計(jì)算方面、日常生活中給我們提供很大的方便,在編輯此程序時(shí),除了包括常用的加法運(yùn)算算法、減法運(yùn)算算法、乘法運(yùn)算算法、除法運(yùn)算算法等四大模塊之外。還特意添加了階乘、正弦、余弦和指數(shù)運(yùn)算。其次程序按照要求利用AWT、swing圖形界面技術(shù)進(jìn)行windows系統(tǒng)迷你計(jì)算器的模擬設(shè)計(jì),用到的接口、對(duì)象、類等方法,同時(shí)對(duì)編程過程中所編寫的實(shí)驗(yàn)代碼也不

4、同程度的進(jìn)行細(xì)化的要求,所以在編程的過程中難免遇到了一些困難,所以在完成本次系統(tǒng)的過程中過程中充滿了挑戰(zhàn)與機(jī)遇。關(guān)鍵字: AWT、swing、類、接口、事件監(jiān)聽系統(tǒng)分析與設(shè)計(jì)設(shè)計(jì)方案構(gòu)思:本程序采用模塊化設(shè)計(jì),調(diào)試方便,程序的可讀性好。在老師的指導(dǎo)下,由主程序啟動(dòng)簡(jiǎn)易計(jì)算器,根據(jù)使用者的需要可以在簡(jiǎn)易計(jì)算器中進(jìn)行運(yùn)算操作,若不能滿足用戶功能,可以選擇使用科學(xué)計(jì)算器,具體操作與目前市面上的計(jì)算器差不多,用戶還可以選擇使用說明進(jìn)行查看具體操作。由于時(shí)間及個(gè)人水平的問題,科學(xué)計(jì)算中還有很多功能未實(shí)現(xiàn)。具體思路:用戶輸入(點(diǎn)擊)某一數(shù)字或操作符,程序?qū)⒆孕信袛嗍遣僮鲾?shù)還是操作符。 迷你計(jì)算器包括以下部

5、分:MC MRMSM+M-<CEC±Sin7 89+Cos4 56-xy123*n!0. /= 表 按鍵布局?jǐn)?shù)字按鈕(09):10個(gè)內(nèi)存操作按鈕(MC、MR、MS、M+、M-):5個(gè)運(yùn)算按鈕(+、-、*、/、n!、cos、sin、xy、±、=):10個(gè)清零操作按鈕(<-、CE、C):3個(gè)事件分為三個(gè)類進(jìn)行操作,如以下部分:Public class NumberListener implements ActionListener/監(jiān)聽數(shù)字按鈕public class OperatorListenerimplements ActionListener/監(jiān)聽運(yùn)算按鈕p

6、ublicclassMemoryListenerimplements ActionListener/監(jiān)聽MC、MR、MS、M+、M-等按鈕Application版本中,以上三個(gè)個(gè)類作為主類的內(nèi)部類,即public class MyCalculator extends JFrame/主類直接繼承swing的框架類JFrame,并采用網(wǎng)格包布局Applet版本中,以上三個(gè)類也作為其內(nèi)部類,即public class AplCalculator extends Applet/主類繼承Applet類采用網(wǎng)格包布局方案設(shè)計(jì)步驟:1、 創(chuàng)建主類MyCalculator并繼承JFrame2、 創(chuàng)建以上三個(gè)類

7、做為MyCalculator類的內(nèi)部類Application版本圖 application版本類層次結(jié)構(gòu)表MyCalculator的成員聲明類型描述數(shù)據(jù)成員contentPane;private Container容器變量,獲取面板show1;private JTextField文本框,顯示數(shù)據(jù)layout;private GridBagLayout網(wǎng)格包布局變量constraints;private GridBagConstraints網(wǎng)格包輔助變量StartSymbol;private boolean判斷輸入開始結(jié)束ResultSymbol;private boolean判斷結(jié)果是否可修改

8、result;private double保存結(jié)果memory;private double保存要記憶的數(shù)operator;private String運(yùn)算符號(hào)MemoryListenerpublic class記憶按鍵監(jiān)聽類OperatorListenerpublic class運(yùn)算符號(hào)監(jiān)聽類NumberListenerpublic class數(shù)字按鈕監(jiān)聽類成員函數(shù)MyCalculator(String title)public初始化函數(shù)addButton(JPanelp,String label,int row,int column, int with, int height, Actio

9、nListenerlistener)private void添加按鍵函數(shù)main(String args)public static void主函數(shù)Applet版本圖 applet版本類層次結(jié)構(gòu)表ApCalculator的成員聲明類型描述數(shù)據(jù)成員showprivate JTextField文本框,顯示數(shù)據(jù)layout;private GridBagLayout網(wǎng)格包布局變量constraints;private GridBagConstraints網(wǎng)格包輔助變量StartSymbol;private boolean判斷數(shù)據(jù)輸入開始ResultSymbol;private boolean判斷結(jié)果

10、是否可修改result;private double保存計(jì)算結(jié)果memory;private double記憶數(shù)據(jù)operator;private String運(yùn)算符號(hào)MemoryListenerpublic class記憶按鍵監(jiān)聽OperatorListenerpublic class運(yùn)算符號(hào)監(jiān)聽NumberListenerpublic class數(shù)字按鍵監(jiān)聽成員函數(shù)init()public void初始化函數(shù)addButton(JPanelp,String label,int row, int column, int with, int height,ActionListenerliste

11、ner)private void添加按鍵函數(shù)詳細(xì)設(shè)計(jì)數(shù)字按鍵監(jiān)聽類實(shí)現(xiàn)用戶輸入數(shù)據(jù)時(shí)進(jìn)行監(jiān)聽并在文本框做出相應(yīng)按鍵的顯示,以下是該類的詳細(xì)設(shè)計(jì)。public class NumberListener implements ActionListener /實(shí)現(xiàn)動(dòng)作監(jiān)聽public void actionPerformed(ActionEvent e)/覆蓋actionPerformed函數(shù)String input = e.getActionCommand();if(StartSymbol)/判斷輸入數(shù)字是否開始StartSymbol = false;show1.setText("&qu

12、ot;);if(input.equals("±")show1.setText(show1.getText() + "-");if (!input.equals("±") if(input = "CE") show1.setText("");/input=null;StartSymbol = true; else if(input = "C") show1.setText("0"); /input=null; operator = &qu

13、ot;="StartSymbol = true; else if(input = "<") String str = show1.getText(); if(!ResultSymbol&&str.length() > 0) show1.setText(str.substring(0, str.length() - 1);else show1.setText("" + result); else show1.setText(show1.getText() + input);ResultSymbol = false; 運(yùn)

14、算按鍵監(jiān)聽類用來實(shí)現(xiàn)當(dāng)用戶使用計(jì)算某個(gè)已有的運(yùn)算時(shí),時(shí)間監(jiān)聽類監(jiān)聽并做出相應(yīng)的運(yùn)算操作,以下是詳細(xì)的類設(shè)計(jì)。public class OperatorListener implements ActionListenerpublic void actionPerformed(ActionEvent e)String command = e.getActionCommand();if(StartSymbol)operator = command;SGCalculator(operator);/SGCalculator(Double.valueOf(show1.getText();elseDBCal

15、culator(Double.valueOf(show1.getText();operator = command;SGCalculator(operator);StartSymbol = true;ResultSymbol = true;public void DBCalculator(double y)if(operator = "+")result += y;else if(operator = "-")result -= y;else if(operator = "*")result *= y;else if(operator

16、 = "/")result /= y;else if(operator = "xy")double x = result;for(;y>1;y-) result *= x;else if(operator = "=")result = y; show1.setText("" + result);public void SGCalculator(String operator)if(operator = "sin")result = Math.sin(result);else if(oper

17、ator = "cos")result = Math.cos(result);else if(operator = "n!")for(double x = result -1;x>1;x-) result *= x;show1.setText("" + result);記憶操作監(jiān)聽類實(shí)現(xiàn)方便用戶記憶計(jì)算結(jié)果,當(dāng)用戶使用監(jiān)聽的按鍵時(shí),該類進(jìn)行監(jiān)聽并做出相應(yīng)的判斷,從而記憶當(dāng)前顯示的數(shù)據(jù)。public class MemoryListener implements ActionListenerpublic void actionPe

18、rformed(ActionEvent e)String press = e.getActionCommand();if(press = "MC") memory = 0; show1.setText(""+memory); else if(press = "MR") show1.setText(""+memory); else if(press = "MS") memory = Double.valueOf(show1.getText(); else if(press = "M+&q

19、uot;) memory += Double.valueOf(show1.getText(); else if(press = "M-") memory -= Double.valueOf(show1.getText(); StartSymbol = true;在函數(shù)addButton(JPanel p,String label, int row, int column, int with, int height, ActionListener listener)中將以上三個(gè)事件監(jiān)聽類添加到相應(yīng)的按鈕。測(cè)試方案Manual Test 手動(dòng)測(cè)試:雖然手動(dòng)測(cè)試最大的缺點(diǎn)就是技術(shù)

20、含量低,單調(diào)乏味,容易廢人,但是手動(dòng)測(cè)試比較適合此次迷你計(jì)算器的測(cè)試,因?yàn)槭切〕绦?,手?dòng)測(cè)試能夠細(xì)致的檢查程序的細(xì)節(jié)。1、 先進(jìn)行MC、MR、MS、M+、M-等的按鍵的檢查。2、 進(jìn)行09等的按鍵的檢查3、 進(jìn)行各個(gè)運(yùn)算按鍵的檢查4、 進(jìn)行<-、CE、C按鍵的測(cè)試5、 與windows7系統(tǒng)自帶的計(jì)算器進(jìn)行數(shù)據(jù)比對(duì)。測(cè)試用例CE鍵,只是清除當(dāng)前輸入的數(shù)據(jù)或符號(hào),例如:計(jì)算4+2,輸入4+3后,發(fā)現(xiàn)2輸錯(cuò)了。此時(shí)按CE鍵,將3清除,再輸入2,即可計(jì)算出結(jié)果。 按C鍵,則表述全部清零。MS:存當(dāng)前顯示的數(shù)值MR:讀取存儲(chǔ)器中的數(shù)值,并顯示出來MC:清除已存的數(shù)據(jù)M-:用已存的數(shù)值減去當(dāng)前顯示

21、的數(shù)值后,再將結(jié)果保存M+:用已存的數(shù)值加上當(dāng)前顯示的數(shù)值后,再將結(jié)果保存用M+或者M(jìn)-計(jì)算完成之后,計(jì)算結(jié)果不會(huì)直接顯示,它需要再點(diǎn)擊下MR,這樣的話就可以將最后的計(jì)算結(jié)果顯示出來。例如:輸入5,再按MS鍵,再按M+鍵,再按MR,結(jié)果顯示6.。 cos運(yùn)算:先輸入45(弧度計(jì)算),再按cos鍵,結(jié)果顯示:0.5253219888177297Sin運(yùn)算:先輸入45(弧度計(jì)算),再按sin鍵,結(jié)果顯示:0.820930352453411824286237967n!運(yùn)算:先輸入5,再按n!鍵,結(jié)果顯示120.0xy運(yùn)算:先輸入2,在按xy鍵,再輸入3,再按“=”鍵,結(jié)果顯示:8基本的加減乘除四則運(yùn)

22、算由于篇幅限制省略。測(cè)試結(jié)果所有的測(cè)試結(jié)果都與windows7自帶的計(jì)算器進(jìn)行比對(duì)。圖 乘法運(yùn)算用例圖 cos運(yùn)算用例圖 sin運(yùn)算用例圖 n!運(yùn)算用例軟件可靠性分析程序?qū)嵗砻饔?jì)算值精確到0.0000000000000001上限值使用科學(xué)計(jì)數(shù)值表示。程序滿足日常生活中的基本使用。如圖:圖 計(jì)算器精確值軟件使用說明書按鍵說明:MS:存當(dāng)前顯示的數(shù)值MR:讀取存儲(chǔ)器中的數(shù)值,并顯示出來MC:清除已存的數(shù)據(jù)M-:用已存的數(shù)值減去當(dāng)前顯示的數(shù)值后,再將結(jié)果保存M+:用已存的數(shù)值加上當(dāng)前顯示的數(shù)值后,再將結(jié)果保存用M+或者M(jìn)-計(jì)算完成之后,計(jì)算結(jié)果不會(huì)直接顯示,它需要再點(diǎn)擊下MR,這樣的話就可以將最后

23、的計(jì)算結(jié)果顯示出來。CE:清除當(dāng)前顯示的數(shù)字C:清除表達(dá)式Sin:進(jìn)行正弦運(yùn)算Cos:進(jìn)行余弦運(yùn)算xy:進(jìn)行x的冪運(yùn)算<: 消除當(dāng)前數(shù)據(jù)一位+: 進(jìn)行加運(yùn)算-:進(jìn)行減法運(yùn)算*:進(jìn)行乘法運(yùn)算/:進(jìn)行除法運(yùn)算。圖 計(jì)算器界面設(shè)計(jì)總結(jié)在此次的課程設(shè)計(jì)實(shí)踐中,我學(xué)到了教科書上沒有的東西。這次課程設(shè)計(jì),我按照課程設(shè)計(jì)的要求,分塊實(shí)現(xiàn)程序的功能。在實(shí)踐中我遇到許多的問題,通過網(wǎng)上的交流,和同學(xué)的幫助,最后都克服,最終我成功的完成了這次課程設(shè)計(jì)。從中我充分理解了Java面對(duì)對(duì)象的特性,并體會(huì)到Java與C語言的不同之處在實(shí)踐的同時(shí),我又從中成長了許多,特別是在對(duì)程序的編譯和調(diào)試中掌握了許多的技巧和方法

24、,為今后的其他計(jì)算機(jī)語言的學(xué)習(xí)奠定了一定的基礎(chǔ)。在做本項(xiàng)目是時(shí)候,會(huì)遇到很多小問題,比如說:如何保存輸入的數(shù)字和下一個(gè)數(shù)進(jìn)行加、減、乘、除運(yùn)算。如何保存結(jié)果與如何進(jìn)行登陸注冊(cè)頁面的添加及用戶信息的儲(chǔ)存,經(jīng)過不斷地嘗試與調(diào)整,此次課程設(shè)計(jì)讓我們更了解熟悉了Java中的圖形用戶界面和它的編程方式。在完成課題的過程中也不斷充實(shí)了自己,學(xué)習(xí)到了很多以前沒有學(xué)習(xí)到的知識(shí),收獲很大。最大的收獲就是對(duì)大學(xué)學(xué)習(xí)的總結(jié)和培養(yǎng)了解決困難的信心和能力,使我們對(duì)所學(xué)知識(shí)能夠融會(huì)貫通,又不斷豐富了新知識(shí)。Java計(jì)算器設(shè)計(jì)使得我們對(duì)所學(xué)的專業(yè)課有了更為深刻的認(rèn)識(shí),使得知識(shí)得到了鞏固和提高。(1)通過編寫這個(gè)相對(duì)復(fù)雜的程

25、序,讓我認(rèn)識(shí)解決實(shí)際問題前應(yīng)現(xiàn)建立模型,再通過建立的模型使問題簡(jiǎn)單化,從而解決問題。(2)這次編寫的程序大部分是通過調(diào)用各包中的方法來實(shí)現(xiàn)的,這也讓我充分理解了包和類調(diào)用的關(guān)系。(3)由于這次編寫的程序相對(duì)比較復(fù)雜,所以不能一次性編寫、調(diào)試,也由讓我學(xué)會(huì)把程序分塊,逐個(gè)編寫、調(diào)試。參考文獻(xiàn)1曲朝陽,楊杰明等.Java程序設(shè)計(jì). 北京: 清華大學(xué)出版社,2008.102耿祥以,張躍平.Java大學(xué)生實(shí)用教程. 北京: 電子工業(yè)出版社,2012.6 3明日科技.Java經(jīng)典編程.北京:清華大學(xué)出版社,2012.104李尊朝,蘇軍.Java語言程序設(shè)計(jì).北京:中國鐵道出版社,2004.25高宏靜,從

26、入門到精通.北京工業(yè)出版社附錄代碼:application版本的迷你計(jì)算器package design;import java.awt.Color;import java.awt.Container;import java.awt.FlowLayout;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import jav

27、ax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JPanel;import javax.swing.JTextField;SuppressWarnings("serial")public class MyCalculator extends JFrame/* * param args */private Container contentPane; private JTextField sh

28、ow1;private GridBagLayout layout; private GridBagConstraints constraints; private boolean StartSymbol;private boolean ResultSymbol;private double result;private double memory;private String operator;public class NumberListener implements ActionListener public void actionPerformed(ActionEvent e)Strin

29、g input = e.getActionCommand();if(StartSymbol)StartSymbol = false;show1.setText("");if(input.equals("±")show1.setText(show1.getText() + "-");if (!input.equals("±") if(input = "CE") show1.setText("");/input=null;StartSymbol = true;

30、 else if(input = "C") show1.setText("0"); /input=null; operator = "="StartSymbol = true; else if(input = "<") String str = show1.getText(); if(!ResultSymbol&&str.length() > 0) show1.setText(str.substring(0, str.length() - 1);else show1.setText(&q

31、uot;" + result); else show1.setText(show1.getText() + input);ResultSymbol = false; public class OperatorListener implements ActionListenerpublic void actionPerformed(ActionEvent e)String command = e.getActionCommand();if(StartSymbol)operator = command;SGCalculator(operator);/SGCalculator(Double

32、.valueOf(show1.getText();elseDBCalculator(Double.valueOf(show1.getText();operator = command;SGCalculator(operator);StartSymbol = true;ResultSymbol = true;public void DBCalculator(double y)if(operator = "+")result += y;else if(operator = "-")result -= y;else if(operator = "*&

33、quot;)result *= y;else if(operator = "/")result /= y;else if(operator = "xy")double x = result;for(;y>1;y-) result *= x;else if(operator = "=")result = y; show1.setText("" + result);public void SGCalculator(String operator)if(operator = "sin")resu

34、lt = Math.sin(result);else if(operator = "cos")result = Math.cos(result);else if(operator = "n!")for(double x = result -1;x>1;x-) result *= x;show1.setText("" + result);public class MemoryListener implements ActionListenerpublic void actionPerformed(ActionEvent e)Str

35、ing press = e.getActionCommand();if(press = "MC") memory = 0; show1.setText(""+memory); else if(press = "MR") show1.setText(""+memory); else if(press = "MS") memory = Double.valueOf(show1.getText(); else if(press = "M+") memory += Double.va

36、lueOf(show1.getText(); else if(press = "M-") memory -= Double.valueOf(show1.getText(); StartSymbol = true;/*public void NumberButton()for(int i=0;i<=9;i+)numberi = new JButton(String.valueOf(i);numberi.setForeground(Color.blue);*/ public MyCalculator(String title) /程序初始化super(title);con

37、tentPane = getContentPane();contentPane.setLayout(new FlowLayout(FlowLayout.CENTER); JMenuBar menubar = new JMenuBar(); JMenu editmenu = new JMenu("編輯"); JMenu helpmenu = new JMenu("幫助"); JMenuItem copyitem = new JMenuItem("復(fù)制"); JMenuItem pasteitem = new JMenuItem(&quo

38、t;粘貼"); editmenu.add(copyitem); editmenu.add(pasteitem); menubar.add(editmenu); menubar.add(helpmenu);setJMenuBar(menubar);JPanel jp1 = new JPanel();/添加文本框show1 = new JTextField(20);show1.setEditable(false);show1.setBackground(Color.white);jp1.add(show1);contentPane.add(jp1);JPanel jp2 = new JP

39、anel();/向jp2面板添加按鈕layout = new GridBagLayout();constraints = new GridBagConstraints(); jp2.setLayout(layout);NumberListener number_listener = new NumberListener(); OperatorListener operator_listener = new OperatorListener(); MemoryListener memory_listener = new MemoryListener();addButton(jp2,"M

40、C",0,1,1,1,memory_listener);/加入按鈕addButton(jp2,"MR",1,1,1,1,memory_listener);addButton(jp2,"MS",2,1,1,1,memory_listener);addButton(jp2,"M+",3,1,1,1,memory_listener);addButton(jp2,"M-",4,1,1,1,memory_listener);addButton(jp2,"<",0,2,1,1,number_

41、listener);addButton(jp2,"CE",1,2,1,1,number_listener);addButton(jp2,"C",2,2,1,1,number_listener);addButton(jp2,"±",3,2,1,1,number_listener);addButton(jp2,"sin",4,2,1,1,operator_listener);addButton(jp2,"7",0,3,1,1,number_listener);addButton(jp2,&

42、quot;8",1,3,1,1,number_listener);addButton(jp2,"9",2,3,1,1,number_listener);addButton(jp2,"+",3,3,1,1,operator_listener);addButton(jp2,"cos",4,3,1,1,operator_listener);addButton(jp2,"4",0,4,1,1,number_listener);addButton(jp2,"5",1,4,1,1,number_l

43、istener);addButton(jp2,"6",2,4,1,1,number_listener);addButton(jp2,"-",3,4,1,1,operator_listener);addButton(jp2,"xy",4,4,1,1,operator_listener);addButton(jp2,"1",0,5,1,1,number_listener);addButton(jp2,"2",1,5,1,1,number_listener);addButton(jp2,"3

44、",2,5,1,1,number_listener);addButton(jp2,"*",3,5,1,1,operator_listener);addButton(jp2,"n!",4,5,1,1,operator_listener);addButton(jp2,"0",0,6,2,1,number_listener);addButton(jp2,". ",2,6,1,1,number_listener);addButton(jp2,"/",3,6,1,1,operator_liste

45、ner);addButton(jp2,"=",4,6,1,1,operator_listener);contentPane.add(jp2);StartSymbol = true;ResultSymbol = true;result = 0;operator = "="private void addButton(JPanel p,String label, int row, int column, int with, int height, ActionListener listener) JButton button = new JButton(la

46、bel); button.setBounds(10,10,10,10);constraints.gridx = row; constraints.gridy = column; constraints.ipady = 10;constraints.gridwidth = with; constraints.gridheight = height; constraints.fill = GridBagConstraints.HORIZONTAL;button.addActionListener(listener); layout.setConstraints(button, constraint

47、s); p.add(button); public static void main(String args) / TODO Auto-generated method stubMyCalculator myc = new MyCalculator("計(jì)算器");myc.setSize(300,400);myc.setResizable(false);myc.setVisible(true); applet版本的迷你計(jì)算器package designApplet;import java.applet.Applet;import java.awt.FlowLayout;imp

48、ort java.awt.GridBagLayout;import java.awt.GridBagConstraints;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JPanel;import javax.swing.JTextField;public class AplCalculator extends Appletprivate GridBagLayout layout; private GridB

49、agConstraints constraints; JTextField show;public boolean StartSymbol;private boolean ResultSymbol;private double result;private double memory;private String operator;public class NumberListener implements ActionListener public void actionPerformed(ActionEvent e)String input = e.getActionCommand();i

50、f(StartSymbol)StartSymbol = false;show.setText("");if(input.equals("±")show.setText(show.getText() + "-");if (!input.equals("±") if(input = "CE") show.setText("");/input=null;StartSymbol = true; else if(input = "C") show

51、.setText("0"); /input=null; operator = "="StartSymbol = true; else if(input = "<") String str = show.getText(); if(!ResultSymbol&&str.length() > 0) show.setText(str.substring(0, str.length() - 1);else show.setText("" + result); else show.setText(show.getText() + input);ResultSymbol = false; public c

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(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)論