JAVA計(jì)算器課程設(shè)計(jì)_第1頁(yè)
JAVA計(jì)算器課程設(shè)計(jì)_第2頁(yè)
JAVA計(jì)算器課程設(shè)計(jì)_第3頁(yè)
JAVA計(jì)算器課程設(shè)計(jì)_第4頁(yè)
JAVA計(jì)算器課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上基于JAVA的計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)學(xué)院(系): 軟件學(xué)院 專 業(yè): 軟件工程 學(xué) 生: 學(xué) 號(hào): 班 級(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ì)人們的生活有一定的幫助??梢赃M(jìn)行簡(jiǎn)單的四則運(yùn)算(加、減、乘、除等)。界面簡(jiǎn)單易操作 ,具體程序?qū)崿F(xiàn)了:(1) 實(shí)現(xiàn)簡(jiǎn)單的加、減、乘、除、運(yùn)算。(2) 實(shí)現(xiàn)了除了加、減、

2、乘、除按鈕外其他按鈕功能,如:C表示清零,del表示刪除。(3) 實(shí)現(xiàn)了連續(xù)運(yùn)算能力。關(guān)鍵詞:Java語(yǔ)言 四則運(yùn)算 計(jì)算器 目 錄 2.1.3eclipse環(huán)境-2 2.2.3GUI-2 3.4功能分析-3 3.5本章小結(jié)-3第一章:緒論1,java版計(jì)算器的意義與結(jié)構(gòu)(1) 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ù)字需要我們

3、去處理,然而在我們?nèi)粘I钪杏龅降囊恍┗緮?shù)字運(yùn)算,以往簡(jiǎn)單的口算筆算,然而現(xiàn)在不同了,人們對(duì)計(jì)算機(jī)手機(jī)的依賴越來(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章,各章的主要內(nèi)容介紹如下: 第一章:首先介紹課題研究的意義,java版計(jì)算器的主要意義以及本論文的組織結(jié)構(gòu)。 第二章:主要介紹系統(tǒng)開(kāi)發(fā)的平臺(tái),主要關(guān)鍵技術(shù)如下:Frame創(chuàng)建,按鈕的創(chuàng)建。 第三章:主要介紹本系統(tǒng)的可行性分析,性能分析,用戶功能需求分析,需求分析, 面向?qū)ο蠓治觯饕δ?/p>

4、分析。 第四章:主要介紹系統(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)。第2章 :開(kāi)發(fā)平臺(tái)簡(jiǎn)介與關(guān)鍵技術(shù)1,開(kāi)發(fā)平臺(tái)簡(jiǎn)介(1)Java平臺(tái) Java是一個(gè)可以在不同操作系統(tǒng)(例如wi

5、ndows,unix等)上運(yùn)行的編程語(yǔ)言,Java平臺(tái)是指運(yùn)行在各終端(如pc,服務(wù)器,移動(dòng)設(shè)備,嵌入式設(shè)備)的系統(tǒng)軟件。PC機(jī)上的Java程序是javaSE上開(kāi)發(fā)出來(lái)的,服務(wù)器端的java程序是javaEE開(kāi)發(fā)出來(lái)的,移動(dòng)設(shè)備的java程序是用JAVAME開(kāi)發(fā)出來(lái)的。 Java語(yǔ)言在網(wǎng)絡(luò)編程方面應(yīng)用得很廣泛,作為一個(gè)新的程序設(shè)計(jì)語(yǔ)言,它簡(jiǎn)單多變,面向?qū)ο螅灰蕾嚥僮飨到y(tǒng)的特點(diǎn),具有很好的移植性和安全性,這些特點(diǎn)給網(wǎng)絡(luò)編程帶來(lái)了很多便利。Java的平臺(tái)根據(jù)用途來(lái)區(qū)分,可以分為三個(gè)版本。 JavaSEJava Standard Edition ,這個(gè)是Java的標(biāo)準(zhǔn)版,主要用于桌面級(jí)的應(yīng)用和數(shù)據(jù)

6、開(kāi)發(fā)。 JavaEE-Java Enterprise Edition ,這個(gè)是Java的企業(yè)版本,提供了企業(yè)級(jí)開(kāi)發(fā)的各種技術(shù),主要用于企業(yè)開(kāi)發(fā),現(xiàn)在用的最多的也就是這個(gè)平臺(tái)。 JavaME-Java Micro Edition,這個(gè)版本煩人java平臺(tái)主要用于嵌入式和移動(dòng)式的開(kāi)發(fā),最常用的就是手機(jī)應(yīng)用軟件開(kāi)發(fā)。 Java作為一門(mén)優(yōu)秀的編程語(yǔ)言,相對(duì)于其他類似的語(yǔ)言具有一定的優(yōu)越性,這是由Java語(yǔ)言的如下特點(diǎn)決定的。 Java語(yǔ)言具有簡(jiǎn)單,面向?qū)ο螅植际?,安全,可移植性,多態(tài)的特點(diǎn)。 Java語(yǔ)言是一種面向?qū)ο蟮恼Z(yǔ)言,通過(guò)理解一些重要的概念就能編寫(xiě)出各種功能的代碼。 Java語(yǔ)言主要集中用在

7、類的設(shè)計(jì)和接口功能方面,提供了繼承及多態(tài)的機(jī)制,對(duì)類中的成員變量和方法可進(jìn)行覆蓋和重寫(xiě),實(shí)現(xiàn)了代碼的重復(fù)使用,使代碼編寫(xiě)簡(jiǎn)單。 Java語(yǔ)言不支持指針,所有的訪問(wèn),必須通過(guò)具體的對(duì)象變量來(lái)實(shí)現(xiàn),這樣既保護(hù)了私有變量,同時(shí)也避免了一些錯(cuò)誤。 Java語(yǔ)言編譯產(chǎn)生的文件是字節(jié)碼文件,字節(jié)碼文件和平臺(tái)無(wú)關(guān)。 Java語(yǔ)言支持多線程技術(shù),將多個(gè)程序任務(wù)分成幾個(gè)并行的子任務(wù)。(2) windows系統(tǒng)1980年,喬布斯介紹了一項(xiàng)新技術(shù),用戶圖形界面,比爾蓋茨也意識(shí)到這項(xiàng)技術(shù)的潛在的價(jià)值,于是帶領(lǐng)微軟開(kāi)始了Winows工作。1985年又發(fā)布了第一代窗口式多任務(wù)系統(tǒng),該操作系統(tǒng)的推出,意味著PC機(jī)開(kāi)始進(jìn)入了

8、圖形界面,大部分操作對(duì)象都用相應(yīng)的圖標(biāo)來(lái)表示,這種操作界面形象直觀,隨著不斷的改進(jìn),它還增加了幾個(gè)系統(tǒng)工具,用于自動(dòng)檢測(cè)硬盤(pán),文件系統(tǒng)和配置信息,可以自動(dòng)修復(fù)一些一般性的系統(tǒng)錯(cuò)誤。內(nèi)部還安置了大量的驅(qū)動(dòng)程序,基本上包括了市面上流行的各種品牌,各種型號(hào)硬件的最新驅(qū)動(dòng)程序,而且硬件檢測(cè)能力也有了很大的提高。同時(shí),還提供了文件分配系統(tǒng),可支持2G以上的大分區(qū),而對(duì)硬盤(pán),無(wú)需重新分區(qū)和格式化,直接可以使用轉(zhuǎn)換器轉(zhuǎn)換。把最新的多媒體技術(shù),網(wǎng)絡(luò)技術(shù)和Internet技術(shù)結(jié)合在了一起,使訪問(wèn)網(wǎng)絡(luò)更加方便和快捷。技術(shù)是在不斷進(jìn)步的,操作系統(tǒng)也在不斷更新,沒(méi)有那個(gè)版本的操作系統(tǒng)是永恒的主流,因此,我們?cè)趯W(xué)習(xí)和使

9、用某個(gè)操作系統(tǒng)的過(guò)程中把握住它的最基本的方面,并在此基礎(chǔ)上進(jìn)行大膽的嘗試和創(chuàng)新,從而跟上它的發(fā)展步伐。(3) eclipse環(huán)境 Eclipse是一個(gè)開(kāi)放源代碼的,基于Java可擴(kuò)展開(kāi)發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過(guò)插件組成構(gòu)建開(kāi)發(fā)環(huán)境。幸運(yùn)的是,Eclipse附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括Java開(kāi)發(fā)工具(Java Develepment Tools,JDK). Eclipse是一個(gè)開(kāi)放源代碼的軟件項(xiàng)目,專注于為高度集成的工具開(kāi)發(fā)提供一個(gè)全功能的,具有商業(yè)品質(zhì)的工業(yè)平臺(tái)。它主要由Eclipse項(xiàng)目,Eclipse工具項(xiàng)目和Eclipse技術(shù)項(xiàng)目三個(gè)項(xiàng)目三個(gè)項(xiàng)目組成,具體

10、包括四個(gè)部分組成-Eclipse Platform則是一個(gè)開(kāi)放的可擴(kuò)展IDE,提供了一個(gè)通用的開(kāi)發(fā)平臺(tái)。它提供建造塊和構(gòu)造并運(yùn)行集成軟件開(kāi)發(fā)工具的基礎(chǔ)。Eclipse Platform允許工具建造者獨(dú)立開(kāi)發(fā)與其他工具無(wú)縫集成的工具從而無(wú)需分辨一個(gè)工具功能在哪里結(jié)束,而另外一個(gè)工具功能在哪里開(kāi)始。軟件開(kāi)發(fā)包是Eclipse是Eclipse Platform,JDT和PDE所生產(chǎn)的組件合并,它們可以一次下載。這些部分在一起提供了一個(gè)具有豐富特性的開(kāi)發(fā)環(huán)境,允許開(kāi)發(fā)者有效的建造可以無(wú)縫集成到Eclipse Platform中的工具。Eclipse SDK由ECLIPSE項(xiàng)目生產(chǎn)的工具和來(lái)自其它開(kāi)放源

11、代碼的第三方軟件組合而成。Eclipse項(xiàng)目的生產(chǎn)的軟件以GPL發(fā)布,第三方組件各自自身的許可協(xié)議。2,關(guān)鍵技術(shù)簡(jiǎn)介(1) JFrame Java的GUI程序的基本思路是以JFrame為基礎(chǔ)的,它是屏幕上window的對(duì)象,能夠最小化和最大化,關(guān)閉。它的基本板塊是swing,swing的三個(gè)基本構(gòu)造塊是標(biāo)簽,按鈕,文本字段。并希望用戶知道如何處理它們。JFrame類就是解決這個(gè)問(wèn)題-它是一個(gè)容器,允許程序員把其他組件添加到它里面,把它們組織起來(lái),并把它們呈現(xiàn)給用戶。JFrame實(shí)際上僅僅讓程序員把組件放入其中并呈現(xiàn)給用戶。比起它表面的上的簡(jiǎn)單性,它實(shí)際上是Swing包中最復(fù)雜的組件。為了最大程

12、度地簡(jiǎn)化組件,在獨(dú)立于操作系統(tǒng)的Swing組件與實(shí)際運(yùn)行這些組件系統(tǒng)之間,JFrame起著橋梁作用。JFrame在操作系統(tǒng)中是以窗口的形式注冊(cè)的,這樣就可以得到許多的窗口特性。顯示文件在窗體上的類也擴(kuò)展了JFrame,讀取文件的類也擴(kuò)展了JFrame;(2) 按鈕的創(chuàng)建:含義:對(duì)話框中的一種圖形元素。當(dāng)激活它時(shí),能執(zhí)行指定功能。用戶可以采用以下方法來(lái)激活按鈕:用鼠標(biāo)在其上單擊,或者當(dāng)按鈕獲得聚焦時(shí)按下enter鍵。在button元素內(nèi)部,您可以放置內(nèi)容,比如文本或圖像。使用:創(chuàng)建按鈕在窗體上,用來(lái)窗體跳轉(zhuǎn)的連接。點(diǎn)擊按鈕來(lái)實(shí)現(xiàn)跳轉(zhuǎn)。關(guān)鍵字:setBounds表示按鈕的大小位置setText表示

13、按鈕上顯示的內(nèi)容Button b=new Button()用來(lái)創(chuàng)建對(duì)象。(3) initGUIGUI的全稱為Graphical User Interface,簡(jiǎn)稱GUI,又稱圖形用戶接口,是指采用圖形方式顯示的計(jì)算機(jī)操作用戶界面。圖形用戶界面是一種人與計(jì)算機(jī)通信的界面顯示格式,允許用戶使用鼠標(biāo)等輸入設(shè)備操縱屏幕上的圖標(biāo)或者菜單選項(xiàng),以命令,調(diào)用文件,啟動(dòng)程序或執(zhí)行其他一些日常任務(wù)。與通過(guò)鍵盤(pán)輸入文本或字符命令來(lái)完成例行任務(wù)的字符界面相比,圖形界面有許多有優(yōu)點(diǎn)。圖形界面由窗口,下拉菜單,對(duì)話框以及其相應(yīng)的控制機(jī)制構(gòu)成,在各種樣式應(yīng)用程序中都是標(biāo)準(zhǔn)化的,既相同的操作總是以同樣的方式來(lái)完成,在圖形用

14、戶界面,用戶看到和操作的都是圖形對(duì)象。GUI即人機(jī)交互圖形化用戶界面設(shè)計(jì)。GUI的廣泛應(yīng)用是當(dāng)今計(jì)算機(jī)發(fā)展的重大成就之一,它極大地方便了非專業(yè)用戶的使用。人們從此不再需要死記硬背大量的命令,取而代之的是可以通過(guò)窗口,菜單,按鍵等方式來(lái)方便地進(jìn)行操作。而嵌入式GUI具有下面幾個(gè)方面的基本要求:輕型,占用資源少,高性能,高可靠性,便于移植,可配置等。3,本章小結(jié)本章主要講述本課程設(shè)計(jì)用到所用到的關(guān)鍵技術(shù),以及關(guān)鍵的知識(shí)點(diǎn)。本系統(tǒng)是在Windows系統(tǒng)Java平臺(tái)下eclipse環(huán)境下完成的,所以窗體的創(chuàng)建,按鈕的創(chuàng)建這都是Java典型的程序開(kāi)發(fā)。第3章 :需求分析1,可行性分析: (1)實(shí)用性分析

15、 在我們?nèi)粘I钪校?jì)算開(kāi)支收入時(shí),大額數(shù)字或者是多倍小數(shù)的計(jì)算都需要計(jì)算器的幫助,而在學(xué)習(xí)一些科目是,也常常要處理數(shù)字。雖然現(xiàn)在的計(jì)算器價(jià)格比較低廉,但是功能過(guò)于簡(jiǎn)單計(jì)算器不能滿足個(gè)人需求,多功能的價(jià)格比較貴,很多功能根本用不到。所以我們想用自己所學(xué)知識(shí)設(shè)計(jì)開(kāi)發(fā)一個(gè)屬于自己的簡(jiǎn)單計(jì)算器來(lái)完成學(xué)習(xí)生活的需求。 (2)經(jīng)濟(jì)可行性 本課程設(shè)計(jì)的開(kāi)發(fā)過(guò)程中,不需要其他額外的經(jīng)濟(jì)成本,所以經(jīng)濟(jì)是具有良好的可行性的。2,需求描述 (1)編寫(xiě)目的 a:復(fù)習(xí)鞏固java語(yǔ)言的基礎(chǔ)知識(shí),進(jìn)一步加深對(duì)java語(yǔ)言的理解和掌控。通過(guò)本課程設(shè)計(jì)使我們能夠全面的掌握面向?qū)ο笤O(shè)計(jì)的有關(guān)概念和開(kāi)發(fā)方法,以便能較全面的理解

16、掌握和綜合運(yùn)用所學(xué)的知識(shí),提高自身的編程能力。設(shè)計(jì)uige計(jì)算器的界面,定義計(jì)算器所需的按鈕并賦予給其他按鈕名稱,使得使用計(jì)算器時(shí)簡(jiǎn)單明了,清晰可見(jiàn),操作輕松。 b:課程設(shè)計(jì)為大家提供了一個(gè)既動(dòng)手又動(dòng)腦,獨(dú)立實(shí)踐的機(jī)會(huì),將課本上的理論知識(shí)和實(shí)際有機(jī)結(jié)合起來(lái),鍛煉我們的分析解決實(shí)際問(wèn)題的能力。提高魔門(mén)適應(yīng)實(shí)際,實(shí)際編程的能力。給各個(gè)按鈕進(jìn)行算法,利用鼠標(biāo)點(diǎn)擊事件,當(dāng)鼠標(biāo)點(diǎn)擊某個(gè)按鈕時(shí)就開(kāi)始執(zhí)行那個(gè)按鈕所定義的算法,生成算法并顯示。 c:培養(yǎng)我們?cè)陧?xiàng)目開(kāi)發(fā)中創(chuàng)新意思及能力,通過(guò)親身實(shí)踐,利用所學(xué)編寫(xiě)簡(jiǎn)單的面向?qū)ο蟪绦?,提高?duì)面向?qū)ο蠹癹ava語(yǔ)言的理解。(2) 功能模塊設(shè)計(jì) a:加法 兩個(gè)數(shù)據(jù)進(jìn)行

17、加法操作,可以為小數(shù) b:減法 兩個(gè)數(shù)據(jù)進(jìn)行減法操作 c:乘法 兩個(gè)數(shù)相乘操作 d:除法 兩個(gè)數(shù)相除操作 e:開(kāi)平方 兩個(gè)非負(fù)數(shù)進(jìn)行開(kāi)方運(yùn)算,可以是小數(shù)3,面向?qū)ο蠓治觯?)含義:面向?qū)ο蠓治鲆环N新的系統(tǒng)分析方法。它采用的是面向?qū)ο蟮娘L(fēng)格進(jìn)行系統(tǒng)分析和需求定義的重要方法。面向?qū)ο蠓治龅年P(guān)鍵在于理解問(wèn)題控件并將其模型化。 面向?qū)ο蠓治霾捎萌藗冋J(rèn)識(shí)客觀事物和理解現(xiàn)實(shí)世界過(guò)程中常用的基本法則: a:認(rèn)識(shí)對(duì)象以及其屬性;b:認(rèn)識(shí)對(duì)象的整體及其組成部分;c:對(duì)象的形成及類的區(qū)分;d:對(duì)問(wèn)題空間進(jìn)行理解并抽象成模型;面向?qū)ο蠓治鲇形鍌€(gè)階段:標(biāo)識(shí)對(duì)象,標(biāo)識(shí)結(jié)構(gòu),標(biāo)識(shí)主題,定義屬性,定義服務(wù),即分五個(gè)層次建立

18、面向?qū)ο蠓治龅哪P?。面向?qū)ο蠓治龅膬?yōu)點(diǎn)是使功能分析與數(shù)據(jù)分析統(tǒng)一的概念和方法,克服了結(jié)構(gòu)化分析中兩者之間的不一致性和協(xié)調(diào)性。(2) :系統(tǒng)功能圖:加法運(yùn)算開(kāi)方 減法預(yù)算計(jì)算器乘法運(yùn)算除法運(yùn)算相反數(shù)圖3.1(3)用例圖: 計(jì)算器輸入數(shù)據(jù)存儲(chǔ)數(shù)據(jù)計(jì)算 用戶顯示結(jié)果圖3.25,本章小結(jié):本章主要介紹了系統(tǒng)的可行性分析以及各種需求分析。可行性分析在第一章也有所體現(xiàn),本系統(tǒng)具有良好的發(fā)展前景,并且技術(shù)也比較常用,成熟,經(jīng)濟(jì)可行性良好,數(shù)據(jù)可行性也良好。Java環(huán)境對(duì)開(kāi)發(fā)程序?qū)π阅艿男枨筝^高。第四章系統(tǒng)設(shè)計(jì) 1,概要設(shè)計(jì)(1)含義:概要設(shè)計(jì)是一個(gè)設(shè)計(jì)師根據(jù)用戶交互過(guò)程和用戶需求來(lái)形成交互框架的過(guò)程,其結(jié)果

19、往往以反映交互控件布置,界面元素分組以及界面整體版式的頁(yè)面框架圖的形式來(lái)呈現(xiàn)。這是一個(gè)在用戶研究和設(shè)計(jì)之間架起的橋梁,使用戶研究和設(shè)計(jì)無(wú)縫結(jié)合,將用戶目標(biāo)與需求轉(zhuǎn)換成具體界面設(shè)計(jì)解決方案的重要階段。概要設(shè)計(jì)的主要任務(wù)是把需求分析得到的系統(tǒng)擴(kuò)展用例圖轉(zhuǎn)換成軟件結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)。設(shè)計(jì)軟件結(jié)構(gòu)的具體任務(wù)是:將一個(gè)復(fù)雜系統(tǒng)按功能進(jìn)行模塊劃分,建立模塊的層次結(jié)構(gòu)及調(diào)用關(guān)系,確定模塊間的接口及人機(jī)界面等。數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)包括數(shù)據(jù)特征的描述,確定數(shù)據(jù)的結(jié)構(gòu)特性,以及數(shù)據(jù)庫(kù)的設(shè)計(jì)。顯然,概要設(shè)計(jì)建立的是目標(biāo)系統(tǒng)的邏輯模型。(2) 模塊圖計(jì)算器類的繼承創(chuàng)建按鈕創(chuàng)建窗體 圖圖4.1(3) 概述:標(biāo)準(zhǔn)計(jì)算器的界面采用“圖

20、形界面程序(GUI)”。GUI為用戶和應(yīng)用程序之間的交互提供了直觀方便的交流方式。用戶使用鼠標(biāo)鍵盤(pán)操作圖像界面上的按鈕菜單等單位元素向計(jì)算機(jī)系統(tǒng)發(fā)送命令,系統(tǒng)運(yùn)行的結(jié)果以圖形的方式顯示給用戶。2,詳細(xì)設(shè)計(jì)(時(shí)序圖)(1)時(shí)序圖如果所示 結(jié)果顯示界面 按鈕界面 用 戶1,開(kāi)始 2,點(diǎn)擊按鈕 3,接受到數(shù)據(jù) 4,獲取信息,將要顯示界面 5,顯示 6,用戶查看結(jié)果圖4.2(2)概述: a:用圖形界面實(shí)現(xiàn)界面; b:通過(guò)設(shè)置布局,控件等來(lái)豐富界面; c:按鈕鍵接收數(shù)據(jù),處理后顯示結(jié)果; 專心-專注-專業(yè)第5章 :系統(tǒng)實(shí)現(xiàn)1:主要功能界面圖5.12:界面功能描述 (1)加法運(yùn)算本計(jì)算器可以實(shí)現(xiàn)多個(gè)運(yùn)算數(shù)

21、相加,例如:1+2+3運(yùn)算結(jié)果為6 (2)減法運(yùn)算本計(jì)算器可以實(shí)現(xiàn)多個(gè)運(yùn)算數(shù)相減,例如:4-3-2運(yùn)算結(jié)果為-1 (3)乘法運(yùn)算本計(jì)算器可以實(shí)現(xiàn)多個(gè)運(yùn)算數(shù)相乘,例如:2*3*4運(yùn)算結(jié)果為24 (4)除法運(yùn)算本計(jì)算器可以實(shí)現(xiàn)多個(gè)運(yùn)算數(shù)相除(除數(shù)不為0)例如:15/5/3運(yùn)算結(jié)果為1,當(dāng)除數(shù)為0時(shí),計(jì)算器無(wú)法運(yùn)算顯示結(jié)果為0 (5)求相反數(shù)本計(jì)算器可以求任意一個(gè)數(shù)的相反數(shù),例如:1的相反數(shù)所求結(jié)果為-1 (6)開(kāi)方運(yùn)算本計(jì)算器可以對(duì)非負(fù)數(shù)進(jìn)行開(kāi)方運(yùn)算,例如:9開(kāi)方運(yùn)算結(jié)果為33,核心代碼: (1)窗口和按鈕面板public Calculator() / 主面板 panelSuper = new J

22、Panel(); panelSuper.setLayout(null); / 設(shè)置窗口位置 double width = Toolkit.getDefaultToolkit().getScreenSize().width; double height = Toolkit.getDefaultToolkit().getScreenSize().height; this.setBounds(int) (width - WIN_W) / 2, (int) (height - WIN_H) / 2, WIN_W, WIN_H); / 窗口配置 this.setTitle("java版計(jì)算器&

23、quot;); this.validate(); this.setResizable(false); this.setVisible(true); this.setDefaultCloseOperation(DISPOSE_ON_CLOSE); / 添加計(jì)算器按鈕面板 myPanel = new MyPanel(); this.add(myPanel, BorderLayout.CENTER); (2)計(jì)算器顯示屏jTextField = new JTextField(25);jTextField.setHorizontalAlignment(JTextField.RIGHT);jTextFi

24、eld.setEditable(false);jTextField.setBackground(new Color(255, 255, 255);jTextField.setText("0");this.add(jTextField);(3)配置按鈕大小button1.setPreferredSize(new Dimension(67, 40);button2.setPreferredSize(new Dimension(67, 40);button3.setPreferredSize(new Dimension(67, 40);button4.setPreferredSi

25、ze(new Dimension(67, 40);button5.setPreferredSize(new Dimension(67, 40);button6.setPreferredSize(new Dimension(67, 40);button7.setPreferredSize(new Dimension(67, 40);button8.setPreferredSize(new Dimension(67, 40);button9.setPreferredSize(new Dimension(67, 40);button0.setPreferredSize(new Dimension(6

26、7, 40);buttonJia.setPreferredSize(new Dimension(67, 40);buttonJian.setPreferredSize(new Dimension(67, 40);buttonCheng.setPreferredSize(new Dimension(67, 40);buttonChu.setPreferredSize(new Dimension(67, 40);buttonDeng.setPreferredSize(new Dimension(67, 40);buttonDian.setPreferredSize(new Dimension(67

27、, 40);buttonDel.setPreferredSize(new Dimension(67, 40);buttonC.setPreferredSize(new Dimension(67, 40);buttonZF.setPreferredSize(new Dimension(67, 40);buttonGH.setPreferredSize(new Dimension(67, 40);(4)計(jì)算器初始化public void init() d1 = new BigDecimal("0"); d1 = new BigDecimal("0"); ke

28、y = "=" oper = '=' jTextField.setText("0"); irst = true; / 用于標(biāo)記是否進(jìn)行連續(xù)操作 (5)計(jì)算 public BigDecimal operate(BigDecimal a1, char c, BigDecimal a2) MathContext mc = new MathContext(10, RoundingMode.HALF_DOWN); switch (c) case '+': return a1.add(a2); case '-': re

29、turn a1.subtract(a2); case '*': return a1.multiply(a2); case '/': if (pareTo(new BigDecimal("0") = 0) init(); return new BigDecimal("0"); return a1.divide(a2, mc); default: return a2;第6章 :總結(jié)與展望在設(shè)計(jì)程序過(guò)程中,老師和同學(xué)給了我很多幫助和支持,老師認(rèn)真負(fù)責(zé)的工作態(tài)度和嚴(yán)謹(jǐn)?shù)闹螌W(xué)風(fēng)格讓我深受啟發(fā)。和同學(xué)們之間的討論讓我受益匪淺。當(dāng)然,我

30、還需要不斷學(xué)習(xí),因?yàn)樵谀壳翱磥?lái),我所設(shè)計(jì)的計(jì)算器還存在很多不足,今后還需不斷努力完善自己,用知識(shí)武裝自己,只有使用社會(huì)發(fā)展的需求適應(yīng)時(shí)代發(fā)展的需求,才能在競(jìng)爭(zhēng)日益激烈的社會(huì)中立足。所以,在今后的學(xué)習(xí)中,我會(huì)在今后的學(xué)習(xí)中嚴(yán)格要求自己,希望在老師的幫助下在,自己的努力下,在生活中找到屬于自己的位置,取得更大的進(jìn)步。第7章 :參考文獻(xiàn)1馬世霞,java程序設(shè)計(jì),機(jī)械工業(yè)出版社.2010.12楊武,劉貞java編程及應(yīng)用,北京:高等教育出版社.20043丁振凡java語(yǔ)言使用教程,北京郵電大學(xué)出版社.2006.9第8章 :致謝在此我要感謝我的老師在課程設(shè)計(jì)上給予我們的指導(dǎo)和給予的幫助,這是我們能順利

31、完成這次課程設(shè)計(jì)的主要原因,更重要的是老師在課堂上精彩的講解,讓我們?cè)趯?xiě)課程設(shè)計(jì)時(shí)更加完善。在此期間,我不僅學(xué)到了許多新知識(shí),而且也開(kāi)闊了視野,提高了自己的設(shè)計(jì)能力。其次,我要感謝幫助過(guò)我的同學(xué),他們?yōu)槲医鉀Q了很多不太明白的地方,還有一些素材的提供。最后,再次感謝我的老師和同學(xué),誠(chéng)心說(shuō)一句:謝謝!附源代碼:import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;import java.awt.*;import java.math.BigDecimal;import j

32、ava.math.MathContext;import java.math.RoundingMode;import java.awt.Color; /* * java版計(jì)算器 */public class Calculator extends JFrame final int WIN_W = 295, WIN_H = 292; JPanel myPanel, panelSuper; public Calculator() / 主面板 panelSuper = new JPanel(); panelSuper.setLayout(null); / 設(shè)置窗口位置 double width = To

33、olkit.getDefaultToolkit().getScreenSize().width; double height = Toolkit.getDefaultToolkit().getScreenSize().height; this.setBounds(int) (width - WIN_W) / 2, (int) (height - WIN_H) / 2, WIN_W, WIN_H); / 窗口配置 this.setTitle("java版計(jì)算器"); this.validate(); this.setResizable(false); this.setVisi

34、ble(true); this.setDefaultCloseOperation(DISPOSE_ON_CLOSE); / 添加計(jì)算器按鈕面板 myPanel = new MyPanel(); this.add(myPanel, BorderLayout.CENTER); public static void main(String args) new Calculator(); /* * 計(jì)算器按鈕面板類 */ class MyPanel extends JPanel implements ActionListener JButton button1, button2, button3, b

35、utton4, button5, button6, button7, button8, button9, button0, buttonJia, buttonJian, buttonCheng, buttonChu, buttonDeng, buttonDian, buttonC, buttonDel, buttonZF, buttonGH; JTextField jTextField; / 計(jì)算器顯示屏 char oper; / 操作符 String key, allKey = ".±del", jjccKey = "+-*/" BigDec

36、imal d1, d2; boolean first; public MyPanel() / 設(shè)置布局 this.setLayout(new FlowLayout(FlowLayout.LEFT, 4, 5); / 計(jì)算器顯示屏 jTextField = new JTextField(25); jTextField.setHorizontalAlignment(JTextField.RIGHT); jTextField.setEditable(false); jTextField.setBackground(new Color(255, 255, 255); jTextField.setTex

37、t("0"); this.add(jTextField); / 計(jì)算器按鈕 button1 = new JButton("1"); button2 = new JButton("2"); button3 = new JButton("3"); button4 = new JButton("4"); button5 = new JButton("5"); button6 = new JButton("6"); button7 = new JButton(&q

38、uot;7"); button8 = new JButton("8"); button9 = new JButton("9"); button0 = new JButton("0"); buttonJia = new JButton("+"); buttonJian = new JButton("-"); buttonCheng = new JButton("*"); buttonChu = new JButton("/"); buttonDen

39、g = new JButton("="); buttonDian = new JButton("."); buttonDel = new JButton("del"); buttonC = new JButton("c"); buttonZF = new JButton("±"); buttonGH = new JButton(""); button1.setPreferredSize(new Dimension(67, 40); button2.setPrefer

40、redSize(new Dimension(67, 40); button3.setPreferredSize(new Dimension(67, 40); button4.setPreferredSize(new Dimension(67, 40); button5.setPreferredSize(new Dimension(67, 40); button6.setPreferredSize(new Dimension(67, 40); button7.setPreferredSize(new Dimension(67, 40); button8.setPreferredSize(new

41、Dimension(67, 40); button9.setPreferredSize(new Dimension(67, 40); button0.setPreferredSize(new Dimension(67, 40); buttonJia.setPreferredSize(new Dimension(67, 40); buttonJian.setPreferredSize(new Dimension(67, 40); buttonCheng.setPreferredSize(new Dimension(67, 40); buttonChu.setPreferredSize(new D

42、imension(67, 40); buttonDeng.setPreferredSize(new Dimension(67, 40); buttonDian.setPreferredSize(new Dimension(67, 40); buttonDel.setPreferredSize(new Dimension(67, 40); buttonC.setPreferredSize(new Dimension(67, 40); buttonZF.setPreferredSize(new Dimension(67, 40); buttonGH.setPreferredSize(new Dim

43、ension(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(

44、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.addAct

45、ionListener(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.addActionList

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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)論