版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
-.z.基于JAVA的計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)學(xué)院(系):軟件學(xué)院專(zhuān)業(yè):軟件工程學(xué)生:**:班級(jí):指導(dǎo)教師:完成日期2016年10月基于JAVA的計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)[摘要]該文檔是關(guān)于對(duì)Java版計(jì)算器的功能進(jìn)行描述和介紹,該程序是要個(gè)圖形界面的簡(jiǎn)單Java計(jì)算器,具有良好的界面使用人員能快捷簡(jiǎn)單的進(jìn)行操作。即時(shí)準(zhǔn)確的獲得需要的計(jì)算結(jié)果,充分降低了數(shù)字計(jì)算的難度和節(jié)約了時(shí)間,對(duì)人們的生活有一定的幫助。可以進(jìn)行簡(jiǎn)單的四則運(yùn)算(加、減、乘、除等)。界面簡(jiǎn)單易操作,具體程序?qū)崿F(xiàn)了:實(shí)現(xiàn)簡(jiǎn)單的加、減、乘、除、運(yùn)算。實(shí)現(xiàn)了除了加、減、乘、除按鈕外其他按鈕功能,如:C表示清零,del表示刪除。實(shí)現(xiàn)了連續(xù)運(yùn)算能力。關(guān)鍵詞:Java語(yǔ)言四則運(yùn)算計(jì)算器目錄TOC\o"1-3"\h\u1,緒論錯(cuò)誤!未定義書(shū)簽。1.1java版計(jì)算器的意義與結(jié)構(gòu)錯(cuò)誤!未定義書(shū)簽。版計(jì)算器的意義錯(cuò)誤!未定義書(shū)簽。版計(jì)算器的論文結(jié)構(gòu)錯(cuò)誤!未定義書(shū)簽。2,開(kāi)發(fā)平臺(tái)簡(jiǎn)介相關(guān)技術(shù)簡(jiǎn)介錯(cuò)誤!未定義書(shū)簽。2.1開(kāi)發(fā)平臺(tái)簡(jiǎn)介錯(cuò)誤!未定義書(shū)簽。平臺(tái)錯(cuò)誤!未定義書(shū)簽。系統(tǒng)錯(cuò)誤!未定義書(shū)簽。環(huán)境22.2關(guān)鍵技術(shù)簡(jiǎn)介錯(cuò)誤!未定義書(shū)簽。2.2.1JFrame 錯(cuò)誤!未定義書(shū)簽。按鈕的創(chuàng)建錯(cuò)誤!未定義書(shū)簽。2.3本章小結(jié)錯(cuò)誤!未定義書(shū)簽。3,需求分析錯(cuò)誤!未定義書(shū)簽。3.1可行性分析錯(cuò)誤!未定義書(shū)簽。3.2需求描述錯(cuò)誤!未定義書(shū)簽。3.3面向?qū)ο蠓治觯ㄓ美龍D)錯(cuò)誤!未定義書(shū)簽。3.4功能分析33.5本章小結(jié)34,系統(tǒng)設(shè)計(jì)錯(cuò)誤!未定義書(shū)簽。4.1概要設(shè)計(jì)錯(cuò)誤!未定義書(shū)簽。4.2詳細(xì)設(shè)計(jì)錯(cuò)誤!未定義書(shū)簽。5,系統(tǒng)實(shí)現(xiàn)錯(cuò)誤!未定義書(shū)簽。6,總結(jié)與展望錯(cuò)誤!未定義書(shū)簽。7,參考文獻(xiàn)錯(cuò)誤!未定義書(shū)簽。8,致錯(cuò)誤!未定義書(shū)簽。第一章:緒論1,java版計(jì)算器的意義與結(jié)構(gòu)java版計(jì)算器的意義所謂計(jì)算器一般指的是電子計(jì)算器。計(jì)算器是日常生活中十分便攜有效的工具,能夠?qū)崿F(xiàn)加減乘除等簡(jiǎn)單的運(yùn)算功能。本論文采用了java編程語(yǔ)言實(shí)現(xiàn)計(jì)算機(jī)的功能。該計(jì)算器大大降低了數(shù)字計(jì)算的難度并且提高了計(jì)算準(zhǔn)確度和精確度。使用簡(jiǎn)單,適合廣大工作人員和學(xué)生使用。隨著信息時(shí)代的步伐,越來(lái)越得多的數(shù)字需要我們?nèi)ヌ幚?,然而在我們?nèi)粘I钪杏龅降囊恍┗緮?shù)字運(yùn)算,以往簡(jiǎn)單的口算筆算,然而現(xiàn)在不同了,人們對(duì)計(jì)算機(jī)手機(jī)的依賴(lài)越來(lái)越高,遇到計(jì)算機(jī)問(wèn)題不愿意用腦去思考,而是交由計(jì)算機(jī)或者手機(jī)來(lái)完成。為了給自己設(shè)計(jì)一個(gè)能夠勝任自己學(xué)習(xí)的工作機(jī)會(huì)的計(jì)算器,決定自己通過(guò)所學(xué)的知識(shí)來(lái)編寫(xiě)一個(gè)簡(jiǎn)單的計(jì)算機(jī)。(2)論文結(jié)構(gòu)本文共分為8章,各章的主要容介紹如下:第一章:首先介紹課題研究的意義,java版計(jì)算器的主要意義以及本論文的組織結(jié)構(gòu)。第二章:主要介紹系統(tǒng)開(kāi)發(fā)的平臺(tái),主要關(guān)鍵技術(shù)如下:Frame創(chuàng)建,按鈕的創(chuàng)建。第三章:主要介紹本系統(tǒng)的可行性分析,性能分析,用戶(hù)功能需求分析,需求分析,面向?qū)ο蠓治?,主要功能分析。第四章:主要介紹系統(tǒng)設(shè)計(jì),概念設(shè)計(jì),包括功能模塊圖,詳細(xì)設(shè)計(jì),時(shí)序圖,流程圖以及概述,還有邏輯設(shè)計(jì)。第五章:主要介紹系統(tǒng)實(shí)現(xiàn),主要編碼和實(shí)現(xiàn)過(guò)程。主要功能界面,界面流程描述,核心代碼。第六章:主要介紹總結(jié)與展望第七章:主要介紹參考文獻(xiàn),在完成代碼的過(guò)程中參考的書(shū)籍都有哪些;第八章:致:感老師的指導(dǎo),感同學(xué)的指引,感同學(xué)們?cè)趯W(xué)習(xí)過(guò)程中提供的素材和幫助。還有在論文以及排版的過(guò)程中提供的熱心幫助。本章小結(jié):本章主要介紹了java版計(jì)算器的意義,以及本論文結(jié)構(gòu)。:""平臺(tái)"介與""技"1,""平臺(tái)"介(1)Java平臺(tái)Java是一"可以在不同操作系"(例如windows,uni*等)上"行的"程"言,Java平臺(tái)是指"行在各"端(如pc,服"器,移""",嵌入式"")的系""件。PC機(jī)上的Java程序是javaSE上""出"的,服"器端的java程序是javaEE""出"的,移"""的java程序是用JAVAME""出"的。Java"言在網(wǎng)""程方面"用得很"泛,作"一"新的程序"""言,它""多",面向"象,不依"操作系"的特",具有很好的移植性和安全性,"些特""網(wǎng)""程""了很多便利。Java的平臺(tái)根據(jù)用途""分,可以分"三"版本。JavaSE—JavaStandardEdition,""是Java的"準(zhǔn)版,主要用于桌面"的"用和"據(jù)""。JavaEE-JavaEnterpriseEdition,""是Java的企"版本,提供了企""""的各種技",主要用于企""","在用的最多的也就是""平臺(tái)。JavaME-JavaMicroEdition,""版本"人java平臺(tái)主要用于嵌入式和移"式的"",最常用的就是手機(jī)"用"件""。Java作"一"優(yōu)秀的"程"言,相"于其他"似的"言具有一定的優(yōu)越性,"是由Java"言的如下特""定的。Java"言具有"",面向"象,分布式,安全,可移植性,多"的特"。Java"言是一種面向"象的"言,通"理解一些重要的概念就能""出各種功能的代"。Java"言主要集中用在"的""和接口功能方面,提供了"承及多"的機(jī)制,""中的成""量和方法可"行覆"和重",""了代"的重復(fù)使用,使代"""""。Java"言不支持指",所有的"",必"通"具體的"象"量""",""既保"了私有"量,同"也避免了一些""。Java"言"""生的文件是字""文件,字""文件和平臺(tái)""。Java"言支持多"程技","多"程序任"分成幾"并行的子任"。windows系"1980年,"布斯介"了一"新技",用""形界面,比""茨也意"到""技"的"在的價(jià)值,于是""微""始了Winows工作。1985年又"布了第一代窗口式多任"系","操作系"的推出,意味"PC機(jī)"始"入了"形界面,大部分操作"象都用相"的"""表示,"種操作界面形象直",""不"的改",它"增加了幾"系"工具,用于自"""硬",文件系"和配置信息,可以自"修復(fù)一些一般性的系"""。"部"安置了大量的""程序,基本上包括了市面上流行的各種品牌,各種型"硬件的最新""程序,而且硬件""能力也有了很大的提高。同","提供了文件分配系",可支持2G以上的大分",而"硬","需重新分"和格式化,直接可以使用""器""。把最新的多媒體技",網(wǎng)"技"和Internet技""合在了一起,使""網(wǎng)"更加方便和快捷。技"是在不""步的,操作系"也在不"更新,"有那"版本的操作系"是永恒的主流,因此,我"在""和使用*"操作系"的"程中把握住它的最基本的方面,并在此基"上"行大"的""和"新,"而跟上它的"展步伐。eclipse"境Eclipse是一""放源代"的,基于Java可"展""平臺(tái)。就其本身而言,它只是一"框架和一"服",用于通"插件"成構(gòu)建"""境。幸"的是,Eclipse附"了一""準(zhǔn)的插件集,包括Java""工具(JavaDevelepmentTools,JDK).Eclipse是一""放源代"的"件"目,"注于"高度集成的工具""提供一"全功能的,具有商"品"的工"平臺(tái)。它主要由Eclipse"目,Eclipse工具"目和Eclipse技""目三""目三""目"成,具體包括四"部分"成EclipsePlatform"是一""放的可"展IDE,提供了一"通用的""平臺(tái)。它提供建造"和構(gòu)造并"行集成"件""工具的基"。EclipsePlatform允"工具建造者"立""與其他工具""集成的工具"而"需分辨一"工具功能在哪里"束,而另外一"工具功能在哪里"始。"件""包是Eclipse是EclipsePlatform,JDT和PDE所生"的"件合并,它"可以一次下"。"些部分在一起提供了一"具有豐富特性的"""境,允"""者有效的建造可以""集成到EclipsePlatform中的工具。EclipseSDK由ECLIPSE"目生"的工具和"自其它"放源代"的第三方"件"合而成。Eclipse"目的生"的"件以GPL"布,第三方"件各自自身的"可""。2,""技""介JFrameJava的GUI程序的基本思路是以JFrame"基"的,它是屏幕上window的"象,能"最小化和最大化,""。它的基本板"是swing,swing的三"基本構(gòu)造"是"",按",文本字段。并希望用"知道如何"理它"。JFrame"就是解"""""它是一"容器,允"程序"把其他"件添加到它里面,把它"""起",并把它"呈""用"。JFrame""上"""程序"把"件放入其中并呈""用"。比起它表面的上的""性,它""上是Swing包中最復(fù)"的"件。"了最大程度地"化"件,在"立于操作系"的Swing"件與"""行"些"件系"之",JFrame起""梁作用。JFrame在操作系"中是以窗口的形式注"的,""就可以得到"多的窗口特性。"示文件在窗體上的"也"展了JFrame,"取文件的"也"展了JFrame;按"的"建:含":""框中的一種"形元素。"激活它",能"行指定功能。用"可以采用以下方法"激活按":用鼠"在其上"",或者"按""得聚焦"按下enter"。在button元素"部,您可以放置"容,比如文本或"像。使用:"建按"在窗體上,用"窗體跳"的"接。""按""""跳"。""字:setBounds表示按"的大小位置setTe*t表示按"上"示的"容Buttonb=newButton()用""建"象。initGUIGUI的全""GraphicalUserInterface,""GUI,又""形用"接口,是指采用"形方式"示的"算機(jī)操作用"界面。"形用"界面是一種人與"算機(jī)通信的界面"示格式,允"用"使用鼠"等"入""操"屏幕上的""或者菜""",以命令,"用文件,""程序或"行其他一些日常任"。與通""""入文本或字符命令"完成例行任"的字符界面相比,"形界面有"多有優(yōu)"。"形界面由窗口,下拉菜",""框以及其相"的控制機(jī)制構(gòu)成,在各種"式"用程序中都是"準(zhǔn)化的,既相同的操作"是以同"的方式"完成,在"形用"界面,用"看到和操作的都是"形"象。GUI即人機(jī)交互"形化用"界面""。GUI的"泛"用是"今"算機(jī)"展的重大成就之一,它極方便了非""用"的使用。人""此不再需要死"硬背大量的命令,取而代之的是可以通"窗口,菜",按"等方式"方便地"行操作。而嵌入式GUI具有下面幾"方面的基本要求:"型,占用"源少,高性能,高可靠性,便于移植,可配置等。3,本章小"本章主要"述本"程""用到所用到的""技",以及""的知""。本系"是在Windows系"Java平臺(tái)下eclipse"境下完成的,所以窗體的"建,按"的"建"都是Java典型的程序""。:需求分析1,可行性分析:(1)"用性分析在我"日常生活中,"算"支收入",大""字或者是多倍小"的"算都需要"算器的"助,而在""一些科目是,也常常要"理"字。"然"在的"算器價(jià)格比"低廉,但是功能"于"""算器不能"足"人需求,多功能的價(jià)格比"",很多功能根本用不到。所以我"想用自己所"知"""""一""于自己的"""算器"完成""生活的需求。(2)""可行性本"程""的"""程中,不需要其他"外的""成本,所以""是具有良好的可行性的。2,需求描述(1)""目的a:復(fù)""固java"言的基"知","一步加深"java"言的理解和掌控。通"本"程""使我"能"全面的掌握面向"象""的有"概念和""方法,以便能"全面的理解掌握和"合"用所"的知",提高自身的"程能力。""uige"算器的界面,定""算器所需的按"并"予"其他按"名",使得使用"算器"""明了,清晰可",操作"松。b:"程"""大家提供了一"既"手又"","立""的機(jī)",""本上的理"知"和""有機(jī)"合起",""我"的分析解"""""的能力。提高魔"適""","""程的能力。"各"按""行算法,利用鼠"""事件,"鼠"""*"按""就"始"行那"按"所定"的算法,生成算法并"示。c:培"我"在"目""中"新意思及能力,通""身"",利用所"""""的面向"象程序,提高"面向"象及java"言的理解。功能模"""a:加法"""據(jù)"行加法操作,可以"小"b:"法"""據(jù)"行"法操作c:乘法"""相乘操作d:除法"""相除操作e:"平方""非"""行"方"算,可以是小"3,面向"象分析(1)含":面向"象分析一種新的系"分析方法。它采用的是面向"象的"格"行系"分析和需求定"的重要方法。面向"象分析的""在于理解""控件并"其模型化。面向"象分析采用人"""客"事物和理解""世界"程中常用的基本法":a:"""象以及其"性;b:"""象的整體及其"成部分;c:"象的形成及"的"分;d:"""空""行理解并抽象成模型;面向"象分析有五""段:"""象,"""構(gòu),""主",定""性,定"服",即分五""次建立面向"象分析的模型。面向"象分析的優(yōu)"是使功能分析與"據(jù)分析"一的概念和方法,克服了"構(gòu)化分析中"者之"的不一致性和""性。:系"功能":加法運(yùn)算開(kāi)方加法運(yùn)算開(kāi)方減法預(yù)算減法預(yù)算計(jì)算器計(jì)算器乘法運(yùn)算乘法運(yùn)算除法運(yùn)算除法運(yùn)算相反數(shù)相反數(shù)"3.1(3)用例":"算器輸入數(shù)據(jù)輸入數(shù)據(jù)存儲(chǔ)數(shù)據(jù)存儲(chǔ)數(shù)據(jù)計(jì)算計(jì)算用"顯示結(jié)果顯示結(jié)果"3.25,本章小":本章主要介"了系"的可行性分析以及各種需求分析??尚行苑治鲈诘谝徽乱灿兴w",本系"具有良好的"展前景,并且技"也比"常用,成熟,""可行性良好,"據(jù)可行性也良好。Java"境"""程序"性能的需求"高。第四章系"""1,概要""(1)含":概要""是一""""根據(jù)用"交互"程和用"需求"形成交互框架的"程,其"果往往以反映交互控件布置,界面元素分"以及界面整體版式的"面框架"的形式"呈"。"是一"在用"研究和""之"架起的"梁,使用"研究和"""""合,"用"目"與需求""成具體界面""解"方案的重要"段。概要""的主要任"是把需求分析得到的系""展用例"""成"件"構(gòu)和"據(jù)"構(gòu)。"""件"構(gòu)的具體任"是:"一"復(fù)"系"按功能"行模"劃分,建立模"的"次"構(gòu)及"用"系,確定模""的接口及人機(jī)界面等。"據(jù)"構(gòu)""包括"據(jù)特征的描述,確定"據(jù)的"構(gòu)特性,以及"據(jù)"的""。"然,概要""建立的是目"系"的""模型。模""計(jì)算器計(jì)算器類(lèi)的繼承創(chuàng)建按鈕創(chuàng)建窗體類(lèi)的繼承創(chuàng)建按鈕創(chuàng)建窗體""4.1概述:"準(zhǔn)"算器的界面采用“"形界面程序(GUI)”。GUI"用"和"用程序之"的交互提供了直"方便的交流方式。用"使用鼠"""操作"像界面上的按"菜"等"位元素向"算機(jī)系""送命令,系""行的"果以"形的方式"示"用"。2,""""("序")(1)"序"如果所示結(jié)果顯示界面結(jié)果顯示界面按鈕界面用"1,"始2,""按"3,接受到"據(jù)4,"取信息,"要"示界面5,"示6,用"查看"果"4.2(2)概述:a:用"形界面""界面;b:通""置布局,控件等"豐富界面;c:按""接收"據(jù),"理后"示"果;-.z.:系"""1:主要功能界面"5.12:界面功能描述(1)加法"算本"算器可以""多""算"相加,例如:1+2+3"算"果"6(2)"法"算本"算器可以""多""算"相",例如:4-3-2"算"果"-1(3)乘法"算本"算器可以""多""算"相乘,例如:2*3*4"算"果"24(4)除法"算本"算器可以""多""算"相除(除"不"0)例如:15/5/3"算"果"1,"除""0","算器"法"算"示"果"0(5)求相反"本"算器可以求任意一""的相反",例如:1的相反"所求"果"-1(6)"方"算本"算器可以"非"""行"方"算,例如:9"方"算"果"33,核心代":(1)窗口和按"面板publicCalculator(){//主面板panelSuper=newJPanel();panelSuper.setLayout(null);//"置窗口位置doublewidth=Toolkit.getDefaultToolkit().getScreenSize().width;doubleheight=Toolkit.getDefaultToolkit().getScreenSize().height;this.setBounds((int)(width-WIN_W)/2,(int)(height-WIN_H)/2,WIN_W,WIN_H);//窗口配置this.setTitle("java版"算器");this.validate();this.setResizable(false);this.setVisible(true);this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);//添加"算器按"面板myPanel=newMyPanel();this.add(myPanel,BorderLayout.CENTER);}(2)"算器"示屏jTe*tField=newJTe*tField(25);jTe*tField.setHorizontalAlignment(JTe*tField.RIGHT);jTe*tField.setEditable(false);jTe*tField.setBackground(newColor(255,255,255));jTe*tField.setTe*t("0");this.add(jTe*tField);(3)配置按"大小button1.setPreferredSize(newDimension(67,40));button2.setPreferredSize(newDimension(67,40));button3.setPreferredSize(newDimension(67,40));button4.setPreferredSize(newDimension(67,40));button5.setPreferredSize(newDimension(67,40));button6.setPreferredSize(newDimension(67,40));button7.setPreferredSize(newDimension(67,40));button8.setPreferredSize(newDimension(67,40));button9.setPreferredSize(newDimension(67,40));button0.setPreferredSize(newDimension(67,40));buttonJia.setPreferredSize(newDimension(67,40));buttonJian.setPreferredSize(newDimension(67,40));buttonCheng.setPreferredSize(newDimension(67,40));buttonChu.setPreferredSize(newDimension(67,40));buttonDeng.setPreferredSize(newDimension(67,40));buttonDian.setPreferredSize(newDimension(67,40));buttonDel.setPreferredSize(newDimension(67,40));buttonC.setPreferredSize(newDimension(67,40));buttonZF.setPreferredSize(newDimension(67,40));buttonGH.setPreferredSize(newDimension(67,40));(4)"算器初始化publicvoidinit(){d1=newBigDecimal("0");d1=newBigDecimal("0");key="=";oper='=';jTe*tField.setTe*t("0");irst=true;//用于""是否"行""操作(5)"算publicBigDecimaloperate(BigDecimala1,charc,BigDecimala2){MathConte*tmc=newMathConte*t(10,RoundingMode.HALF_DOWN);switch(c){case'+':returna1.add(a2);case'-':returna1.subtract(a2);case'*':returna1.multiply(a2);case'/':if(a2.pareTo(newBigDecimal("0"))==0){init();returnnewBigDecimal("0");}returna1.divide(a2,mc);default:returna2;:""與展望在""程序"程中,老"和同""了我很多"助和支持,老""真""的工作"度和""的治""格"我深受""。和同""之"的"""我受益匪"。"然,我"需要不""",因"在目前看",我所""的"算器"存在很多不足,今后"需不"努力完善自己,用知"武"自己,只有使用社""展的需求適""代"展的需求,才能在""日益激烈的社"中立足。所以,在今后的""中,我"在今后的""中"格要求自己,希望在老"的"助下在,自己的努力下,在生活中找到"于自己的位置,取得更大的"步。:"考文"[1]"世霞,《java程序""》,機(jī)械工".2010.1[2]"武,""《java"程及"用》,:高等教育.2004[3]丁振凡《java"言使用教程》,""大".2006.9:致"在此我要感"我的老"在"程""上"予我"的指"和"予的"助,"是我"能"利完成"次"程""的主要原因,更重要的是老"在"堂上精彩的"解,"我"在""程"""更加完善。在此期",我不""到了"多新知",而且也""了"野,提高了自己的""能力。其次,我要感""助"我的同",他""我解"了很多不太明白的地方,"有一些素材的提供。最后,再次感"我的老"和同","心"一句:""!附源代":importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava*.swing.*;importjava.awt.*;importjava.math.BigDecimal;importjava.math.MathConte*t;importjava.math.RoundingMode;importjava.awt.Color;/***java版"算器*/publicclassCalculatore*tendsJFrame{finalintWIN_W=295,WIN_H=292;JPanelmyPanel,panelSuper;publicCalculator(){//主面板panelSuper=newJPanel();panelSuper.setLayout(null);//"置窗口位置doublewidth=Toolkit.getDefaultToolkit().getScreenSize().width;doubleheight=Toolkit.getDefaultToolkit().getScreenSize().height;this.setBounds((int)(width-WIN_W)/2,(int)(height-WIN_H)/2,WIN_W,WIN_H);//窗口配置this.setTitle("java版"算器");this.validate();this.setResizable(false);this.setVisible(true);this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);//添加"算器按"面板myPanel=newMyPanel();this.add(myPanel,BorderLayout.CENTER);}publicstaticvoidmain(String[]args){newCalculator();}/***"算器按"面板"*/classMyPanele*tendsJPanelimplementsActionListener{uttonbutton1,button2,button3,button4,button5,button6,button7,button8,button9,button0,buttonJia,buttonJian,buttonCheng,buttonChu,buttonDeng,buttonDian,buttonC,buttonDel,buttonZF,buttonGH;JTe*tFieldjTe*tField;//"算器"示屏charoper;//操作符Stringkey,allKey="1234567890.±del",jjccKey="+-*/";BigDecimald1,d2;booleanfirst;publicMyPanel(){//"置布局this.setLayout(newFlowLayout(FlowLayout.LEFT,4,5));//"算器"示屏jTe*tField=newJTe*tField(25);jTe*tField.setHorizontalAlignment(JTe*tField.RIGHT);jTe*tField.setEditable(false);jTe*tField.setBackground(newColor(255,255,255));jTe*tField.setTe*t("0");this.add(jTe*tField);//"算器按"button1=newutton("1");button2=newutton("2");button3=newutton("3");button4=newutton("4");button5=newutton("5");button6=newutton("6");button7=newutton("7");button8=newutton("8");button9=newutton("9");button0=newutton("0");buttonJia=newutton("+");buttonJian=newutton("-");buttonCheng=newutton("*");buttonChu=newutton("/");buttonDeng=newutton("=");buttonDian=newutton(".");buttonDel=newutton("del");buttonC=newutton("c");buttonZF=newutton("±");buttonGH=newutton("√");button1.setPreferredSize(newDimension(67,40));button2.setPreferredSize(newDimension(67,40));button3.setPreferredSize(newDimension(67,40));button4.setPreferredSize(newDimension(67,40));button5.setPreferredSize(newDimension(67,40));button6.setPreferredSize(newDimension(67,40));button7.setPreferredSize(newDimension(67,40));button8.setPreferredSize(newDimension(67,40));button9.setPreferredSize(newDimension(67,40));button0.setPreferredSize(newDimension(67,40));buttonJia.setPreferredSize(newDimension(67,40));buttonJian.setPreferredSize(newDimension(67,40));buttonCheng.setPreferredSize(newDimension(67,40));buttonChu.setPreferredSize(newDimension(67,40));buttonDeng.setPreferredSize(newDimension(67,40));buttonDian.setPreferredSize(newDimension(67,40));buttonDel.setPreferredSize(newDimension(67,40));buttonC.setPreferredSize(newDimension(67,40));buttonZF.setPreferredSize(newDimension(67,40));buttonGH.setPreferredSize(newDimension(67,40));this.add(buttonDel);this.add(buttonC);this.add(buttonZF);this.add(buttonGH);this.add(button1);this.add(button2);this.add(button3);this.add(buttonJia);this.add(button4);this.add(button5);this.add(button6);this.add(buttonJian);this.add(button7);this.add(button8);this.add(button9);this.add(buttonCheng);this.add(button0);this.add(buttonDian);this.add(buttonDeng);this.add(buttonChu);buttonDel.addActionListener(this);buttonC.addActionListener(this);buttonZF.addActionListener(this);buttonGH.addActionListener(this);button1.addActionListener(this);button2.addActionListener(this);button3.addActionListener(this);button4.addActionListener(this);button5.addActionListener(this);button6.addActionListener(this);button7.addActionListener(this);button8.addActionListener(this);button9.addActionListener(this);button0.addActionListener(this);buttonJia.addActionListener(this);buttonJian.addActionListener(this);buttonCheng.addActionListener(this);buttonChu.addActionListener(this);buttonDeng.addActionListener(this);buttonDian.addActionListener(this);//"算器初始化init();}/***"算器初始化*/publicvoidinit(){d1=newBigDecimal("0");d1=newBigDecimal("0");key="=";oper='=';jTe*tField.setTe*t("0");first=true;//用于""是否"行""操作(例如按""序"“9*9====”,第一次等于first由true""false,如果!first,按等"相"于用上一次的"果與第二"操作"相乘)}/***按""聽(tīng)*/publicvoidactionPerformed(ActionEvente){uttonb=(utton)e.getSource();if(b==buttonDian){//按下.jTe*tField.setTe*t(jTe*tField.getTe*t()+".");if(first){d2=d1=getNum();}else{d2=getNum();}}elseif(b==buttonZF){//按下±BigDecimald=getNum();d=newBigDecimal("0").subtract(d);setFormatNum(d);if(first){d2=d1=getNum();}else{d2=getNum();}}elseif(b==buttonDel){//按下delif(jTe*tField.getTe*t().length()==1||jTe*tField.getTe*t().length()==2&&jTe*tField.getTe*t().startsWith("-")){jTe*tField.setTe*t("0");}else{Strings=jTe*tField.getTe*t();s=s.substring(0,s.length()-1);if(s.endsWith("E+")||s.endsWith("E-"))s=s.substring(0,s.length()-2);jTe*tField.setTe*t(s);if(first){d2=d1=getNum();}else{d2=getNum();}}}elseif(b==buttonC){//按下cinit();}elseif(b==buttonJia){//按下+BigDecimals;if(!first&&allKey.inde*Of(key)>=0){if(oper=='-'||oper=='/'){s=operate(d1,oper,d2);}else{s=operate(d2,oper,d1);}setFormatNum(s);}//如果不是第一次,且上一次操作是""字"行操作else{first=false;}d2=d1=getNum();//System.out.print("111我"行啦\n");oper='+';}elseif(b==buttonJian){//按下-BigDecimals;if(!first&&allKey.inde*Of(key)>=0){s=operate(d1,oper,d2);setFormatNum(s);}//如果不是第一次,且上一次操作是""字"行操作else{first=false;}d2=d1=getNum();oper='-';}elseif(b==buttonCheng){//按下*BigDecimals;if(!first&&allKey.inde*Of(key)>=0){if(oper=='-'||oper=='/'){s=operate(d1,oper,d2);}else{s=operate(d2,oper,d1);}setFormatNum(s);}//如果不是第一次,且上一次操作是""字"行操作else{first=false;}d2=d1=getNum();oper='*';}elseif(b==buttonChu){//按下/BigDecimals;if(!first&&allKey.inde*Of(key)>=0){s=operate(d1,oper,d2);setFormatNum(s);}//如果不是第一次,且上一次操作是""字"行操作else{first=false;}d2=d1=getNum();oper='/';}elseif(b==buttonGH){//按下平方根if(jTe*tField.getTe*t().startsWith("-")){init();return;}BigDecimald=getNum();MathConte*tmc=newMathConte*t(10,RoundingMode.HALF_DOWN);d=newBigDecimal(Math.sqrt(d.doubleValue()),mc);setFormatNum(d);if(first){d2=d1=getNum();}else{d2=getNum();}}elseif(b==buttonDeng){//按下=BigDecimals=null;d2=getNum();
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度綠色生態(tài)苗木種植技術(shù)服務(wù)承包合同4篇
- 二零二五版農(nóng)業(yè)資源整合與開(kāi)發(fā)合同樣本4篇
- 2025年海外教育機(jī)構(gòu)外籍教師聘用合同參考文本
- 二零二五年度事業(yè)單位職工退休后健康服務(wù)保障合同4篇
- 2025年個(gè)人二手房交易全程代理服務(wù)合同4篇
- 2025年度安全門(mén)采購(gòu)與安裝工程合同2篇
- 二零二五年度2025版新能源汽車(chē)充電樁銷(xiāo)售合同范本4篇
- 二零二五年度教育培訓(xùn)講師專(zhuān)業(yè)能力評(píng)定合同模板4篇
- 2025年度住宅小區(qū)道路與照明設(shè)施維護(hù)合同4篇
- 2025年度金融數(shù)據(jù)分析派遣員工勞動(dòng)合同范本4篇
- 南安市第三次全國(guó)文物普查不可移動(dòng)文物-各鄉(xiāng)鎮(zhèn)、街道分布情況登記清單(表五)
- 選煤廠安全知識(shí)培訓(xùn)課件
- 項(xiàng)目前期選址分析報(bào)告
- 急性肺栓塞搶救流程
- 《統(tǒng)計(jì)學(xué)-基于Python》 課件全套 第1-11章 數(shù)據(jù)與Python語(yǔ)言-時(shí)間序列分析和預(yù)測(cè)
- 《形象價(jià)值百萬(wàn)》課件
- 紅色文化教育國(guó)內(nèi)外研究現(xiàn)狀范文十
- 中醫(yī)基礎(chǔ)理論-肝
- 小學(xué)外來(lái)人員出入校門(mén)登記表
- 《土地利用規(guī)劃學(xué)》完整課件
- GB/T 25283-2023礦產(chǎn)資源綜合勘查評(píng)價(jià)規(guī)范
評(píng)論
0/150
提交評(píng)論