




已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
基于JAVA的計算器的設(shè)計與實現(xiàn)學(xué)院(系): 軟件學(xué)院 專 業(yè): 軟件工程 學(xué) 生: 學(xué) 號: 班 級: 指導(dǎo)教師: 完成日期 2016 年 10 月基于JAVA的計算器的設(shè)計與實現(xiàn)摘要 該文檔是關(guān)于對Java版計算器的功能進行描述和介紹,該程序是要個圖形界面的簡單Java計算器,具有良好的界面使用人員能快捷簡單的進行操作。即時準確的獲得需要的計算結(jié)果,充分降低了數(shù)字計算的難度和節(jié)約了時間,對人們的生活有一定的幫助。可以進行簡單的四則運算(加、減、乘、除等)。界面簡單易操作,具體程序?qū)崿F(xiàn)了:(1) 實現(xiàn)簡單的加、減、乘、除、運算。(2) 實現(xiàn)了除了加、減、乘、除按鈕外其他按鈕功能,如:C表示清零,del表示刪除。(3) 實現(xiàn)了連續(xù)運算能力。關(guān)鍵詞:Java語言 四則運算 計算器 目 錄1,緒論21.1java版計算器的意義與結(jié)構(gòu)21.1.1java版計算器的意義21.1.2java版計算器的論文結(jié)構(gòu)22,開發(fā)平臺簡介相關(guān)技術(shù)簡介22.1開發(fā)平臺簡介22.1.11JAVA平臺22.1.2windows系統(tǒng)2 2.1.3eclipse環(huán)境-22.2關(guān)鍵技術(shù)簡介22.2.1JFrame22.2.2按鈕的創(chuàng)建2 2.2.3GUI-2 2.3本章小結(jié)23,需求分析33.1可行性分析33.2需求描述33.3面向?qū)ο蠓治觯ㄓ美龍D)3 3.4功能分析-3 3.5本章小結(jié)-34,系統(tǒng)設(shè)計34.1概要設(shè)計34.2詳細設(shè)計35,系統(tǒng)實現(xiàn)36,總結(jié)與展望47,參考文獻48,致謝4第一章:緒論1,java版計算器的意義與結(jié)構(gòu)(1) java版計算器的意義 所謂計算器一般指的是電子計算器。計算器是日常生活中十分便攜有效的工具,能夠?qū)崿F(xiàn)加減乘除等簡單的運算功能。本論文采用了java編程語言實現(xiàn)計算機的功能。該計算器大大降低了數(shù)字計算的難度并且提高了計算準確度和精確度。使用簡單,適合廣大工作人員和學(xué)生使用。 隨著信息時代的步伐,越來越得多的數(shù)字需要我們?nèi)ヌ幚?,然而在我們?nèi)粘I钪杏龅降囊恍┗緮?shù)字運算,以往簡單的口算筆算,然而現(xiàn)在不同了,人們對計算機手機的依賴越來越高,遇到計算機問題不愿意用腦去思考,而是交由計算機或者手機來完成。為了給自己設(shè)計一個能夠勝任自己學(xué)習(xí)的工作機會的計算器,決定自己通過所學(xué)的知識來編寫一個簡單的計算機。(2)論文結(jié)構(gòu) 本文共分為8章,各章的主要內(nèi)容介紹如下: 第一章:首先介紹課題研究的意義,java版計算器的主要意義以及本論文的組織結(jié)構(gòu)。 第二章:主要介紹系統(tǒng)開發(fā)的平臺,主要關(guān)鍵技術(shù)如下:Frame創(chuàng)建,按鈕的創(chuàng)建。 第三章:主要介紹本系統(tǒng)的可行性分析,性能分析,用戶功能需求分析,需求分析, 面向?qū)ο蠓治?,主要功能分析?第四章:主要介紹系統(tǒng)設(shè)計,概念設(shè)計,包括功能模塊圖,詳細設(shè)計,時序圖,流程 圖以及概述,還有邏輯設(shè)計。 第五章:主要介紹系統(tǒng)實現(xiàn),主要編碼和實現(xiàn)過程。主要功能界面,界面流程描述, 核心代碼。 第六章:主要介紹總結(jié)與展望 第七章:主要介紹參考文獻,在完成代碼的過程中參考的書籍都有哪些; 第八章:致謝:感謝老師的指導(dǎo),感謝同學(xué)的指引,感謝同學(xué)們在學(xué)習(xí)過程中提供的 素材和幫助。還有在論文以及排版的過程中提供的熱心幫助。本章小結(jié): 本章主要介紹了java版計算器的意義,以及本論文結(jié)構(gòu)。第2章 :開發(fā)平臺簡介與關(guān)鍵技術(shù)1,開發(fā)平臺簡介(1)Java平臺 Java是一個可以在不同操作系統(tǒng)(例如windows,unix等)上運行的編程語言,Java平臺是指運行在各終端(如pc,服務(wù)器,移動設(shè)備,嵌入式設(shè)備)的系統(tǒng)軟件。PC機上的Java程序是javaSE上開發(fā)出來的,服務(wù)器端的java程序是javaEE開發(fā)出來的,移動設(shè)備的java程序是用JAVAME開發(fā)出來的。 Java語言在網(wǎng)絡(luò)編程方面應(yīng)用得很廣泛,作為一個新的程序設(shè)計語言,它簡單多變,面向?qū)ο螅灰蕾嚥僮飨到y(tǒng)的特點,具有很好的移植性和安全性,這些特點給網(wǎng)絡(luò)編程帶來了很多便利。Java的平臺根據(jù)用途來區(qū)分,可以分為三個版本。 JavaSEJava Standard Edition ,這個是Java的標準版,主要用于桌面級的應(yīng)用和數(shù)據(jù)開發(fā)。 JavaEE-Java Enterprise Edition ,這個是Java的企業(yè)版本,提供了企業(yè)級開發(fā)的各種技術(shù),主要用于企業(yè)開發(fā),現(xiàn)在用的最多的也就是這個平臺。 JavaME-Java Micro Edition,這個版本煩人java平臺主要用于嵌入式和移動式的開發(fā),最常用的就是手機應(yīng)用軟件開發(fā)。 Java作為一門優(yōu)秀的編程語言,相對于其他類似的語言具有一定的優(yōu)越性,這是由Java語言的如下特點決定的。 Java語言具有簡單,面向?qū)ο螅植际?,安全,可移植性,多態(tài)的特點。 Java語言是一種面向?qū)ο蟮恼Z言,通過理解一些重要的概念就能編寫出各種功能的代碼。 Java語言主要集中用在類的設(shè)計和接口功能方面,提供了繼承及多態(tài)的機制,對類中的成員變量和方法可進行覆蓋和重寫,實現(xiàn)了代碼的重復(fù)使用,使代碼編寫簡單。 Java語言不支持指針,所有的訪問,必須通過具體的對象變量來實現(xiàn),這樣既保護了私有變量,同時也避免了一些錯誤。 Java語言編譯產(chǎn)生的文件是字節(jié)碼文件,字節(jié)碼文件和平臺無關(guān)。 Java語言支持多線程技術(shù),將多個程序任務(wù)分成幾個并行的子任務(wù)。(2) windows系統(tǒng)1980年,喬布斯介紹了一項新技術(shù),用戶圖形界面,比爾蓋茨也意識到這項技術(shù)的潛在的價值,于是帶領(lǐng)微軟開始了Winows工作。1985年又發(fā)布了第一代窗口式多任務(wù)系統(tǒng),該操作系統(tǒng)的推出,意味著PC機開始進入了圖形界面,大部分操作對象都用相應(yīng)的圖標來表示,這種操作界面形象直觀,隨著不斷的改進,它還增加了幾個系統(tǒng)工具,用于自動檢測硬盤,文件系統(tǒng)和配置信息,可以自動修復(fù)一些一般性的系統(tǒng)錯誤。內(nèi)部還安置了大量的驅(qū)動程序,基本上包括了市面上流行的各種品牌,各種型號硬件的最新驅(qū)動程序,而且硬件檢測能力也有了很大的提高。同時,還提供了文件分配系統(tǒng),可支持2G以上的大分區(qū),而對硬盤,無需重新分區(qū)和格式化,直接可以使用轉(zhuǎn)換器轉(zhuǎn)換。把最新的多媒體技術(shù),網(wǎng)絡(luò)技術(shù)和Internet技術(shù)結(jié)合在了一起,使訪問網(wǎng)絡(luò)更加方便和快捷。技術(shù)是在不斷進步的,操作系統(tǒng)也在不斷更新,沒有那個版本的操作系統(tǒng)是永恒的主流,因此,我們在學(xué)習(xí)和使用某個操作系統(tǒng)的過程中把握住它的最基本的方面,并在此基礎(chǔ)上進行大膽的嘗試和創(chuàng)新,從而跟上它的發(fā)展步伐。(3) eclipse環(huán)境 Eclipse是一個開放源代碼的,基于Java可擴展開發(fā)平臺。就其本身而言,它只是一個框架和一組服務(wù),用于通過插件組成構(gòu)建開發(fā)環(huán)境。幸運的是,Eclipse附帶了一個標準的插件集,包括Java開發(fā)工具(Java Develepment Tools,JDK). Eclipse是一個開放源代碼的軟件項目,專注于為高度集成的工具開發(fā)提供一個全功能的,具有商業(yè)品質(zhì)的工業(yè)平臺。它主要由Eclipse項目,Eclipse工具項目和Eclipse技術(shù)項目三個項目三個項目組成,具體包括四個部分組成-Eclipse Platform則是一個開放的可擴展IDE,提供了一個通用的開發(fā)平臺。它提供建造塊和構(gòu)造并運行集成軟件開發(fā)工具的基礎(chǔ)。Eclipse Platform允許工具建造者獨立開發(fā)與其他工具無縫集成的工具從而無需分辨一個工具功能在哪里結(jié)束,而另外一個工具功能在哪里開始。軟件開發(fā)包是Eclipse是Eclipse Platform,JDT和PDE所生產(chǎn)的組件合并,它們可以一次下載。這些部分在一起提供了一個具有豐富特性的開發(fā)環(huán)境,允許開發(fā)者有效的建造可以無縫集成到Eclipse Platform中的工具。Eclipse SDK由ECLIPSE項目生產(chǎn)的工具和來自其它開放源代碼的第三方軟件組合而成。Eclipse項目的生產(chǎn)的軟件以GPL發(fā)布,第三方組件各自自身的許可協(xié)議。2,關(guān)鍵技術(shù)簡介(1) JFrame Java的GUI程序的基本思路是以JFrame為基礎(chǔ)的,它是屏幕上window的對象,能夠最小化和最大化,關(guān)閉。它的基本板塊是swing,swing的三個基本構(gòu)造塊是標簽,按鈕,文本字段。并希望用戶知道如何處理它們。JFrame類就是解決這個問題-它是一個容器,允許程序員把其他組件添加到它里面,把它們組織起來,并把它們呈現(xiàn)給用戶。JFrame實際上僅僅讓程序員把組件放入其中并呈現(xiàn)給用戶。比起它表面的上的簡單性,它實際上是Swing包中最復(fù)雜的組件。為了最大程度地簡化組件,在獨立于操作系統(tǒng)的Swing組件與實際運行這些組件系統(tǒng)之間,JFrame起著橋梁作用。JFrame在操作系統(tǒng)中是以窗口的形式注冊的,這樣就可以得到許多的窗口特性。顯示文件在窗體上的類也擴展了JFrame,讀取文件的類也擴展了JFrame;(2) 按鈕的創(chuàng)建:含義:對話框中的一種圖形元素。當(dāng)激活它時,能執(zhí)行指定功能。用戶可以采用以下方法來激活按鈕:用鼠標在其上單擊,或者當(dāng)按鈕獲得聚焦時按下enter鍵。在button元素內(nèi)部,您可以放置內(nèi)容,比如文本或圖像。使用:創(chuàng)建按鈕在窗體上,用來窗體跳轉(zhuǎn)的連接。點擊按鈕來實現(xiàn)跳轉(zhuǎn)。關(guān)鍵字:setBounds表示按鈕的大小位置setText表示按鈕上顯示的內(nèi)容Button b=new Button()用來創(chuàng)建對象。(3) initGUIGUI的全稱為Graphical User Interface,簡稱GUI,又稱圖形用戶接口,是指采用圖形方式顯示的計算機操作用戶界面。圖形用戶界面是一種人與計算機通信的界面顯示格式,允許用戶使用鼠標等輸入設(shè)備操縱屏幕上的圖標或者菜單選項,以命令,調(diào)用文件,啟動程序或執(zhí)行其他一些日常任務(wù)。與通過鍵盤輸入文本或字符命令來完成例行任務(wù)的字符界面相比,圖形界面有許多有優(yōu)點。圖形界面由窗口,下拉菜單,對話框以及其相應(yīng)的控制機制構(gòu)成,在各種樣式應(yīng)用程序中都是標準化的,既相同的操作總是以同樣的方式來完成,在圖形用戶界面,用戶看到和操作的都是圖形對象。GUI即人機交互圖形化用戶界面設(shè)計。GUI的廣泛應(yīng)用是當(dāng)今計算機發(fā)展的重大成就之一,它極大地方便了非專業(yè)用戶的使用。人們從此不再需要死記硬背大量的命令,取而代之的是可以通過窗口,菜單,按鍵等方式來方便地進行操作。而嵌入式GUI具有下面幾個方面的基本要求:輕型,占用資源少,高性能,高可靠性,便于移植,可配置等。3,本章小結(jié)本章主要講述本課程設(shè)計用到所用到的關(guān)鍵技術(shù),以及關(guān)鍵的知識點。本系統(tǒng)是在Windows系統(tǒng)Java平臺下eclipse環(huán)境下完成的,所以窗體的創(chuàng)建,按鈕的創(chuàng)建這都是Java典型的程序開發(fā)。第3章 :需求分析1,可行性分析: (1)實用性分析 在我們?nèi)粘I钪校嬎汩_支收入時,大額數(shù)字或者是多倍小數(shù)的計算都需要計算器的幫助,而在學(xué)習(xí)一些科目是,也常常要處理數(shù)字。雖然現(xiàn)在的計算器價格比較低廉,但是功能過于簡單計算器不能滿足個人需求,多功能的價格比較貴,很多功能根本用不到。所以我們想用自己所學(xué)知識設(shè)計開發(fā)一個屬于自己的簡單計算器來完成學(xué)習(xí)生活的需求。 (2)經(jīng)濟可行性 本課程設(shè)計的開發(fā)過程中,不需要其他額外的經(jīng)濟成本,所以經(jīng)濟是具有良好的可行性的。2,需求描述 (1)編寫目的 a:復(fù)習(xí)鞏固java語言的基礎(chǔ)知識,進一步加深對java語言的理解和掌控。通過本課程設(shè)計使我們能夠全面的掌握面向?qū)ο笤O(shè)計的有關(guān)概念和開發(fā)方法,以便能較全面的理解掌握和綜合運用所學(xué)的知識,提高自身的編程能力。設(shè)計uige計算器的界面,定義計算器所需的按鈕并賦予給其他按鈕名稱,使得使用計算器時簡單明了,清晰可見,操作輕松。 b:課程設(shè)計為大家提供了一個既動手又動腦,獨立實踐的機會,將課本上的理論知識和實際有機結(jié)合起來,鍛煉我們的分析解決實際問題的能力。提高魔門適應(yīng)實際,實際編程的能力。給各個按鈕進行算法,利用鼠標點擊事件,當(dāng)鼠標點擊某個按鈕時就開始執(zhí)行那個按鈕所定義的算法,生成算法并顯示。 c:培養(yǎng)我們在項目開發(fā)中創(chuàng)新意思及能力,通過親身實踐,利用所學(xué)編寫簡單的面向?qū)ο蟪绦颍岣邔γ嫦驅(qū)ο蠹癹ava語言的理解。(2) 功能模塊設(shè)計 a:加法 兩個數(shù)據(jù)進行加法操作,可以為小數(shù) b:減法 兩個數(shù)據(jù)進行減法操作 c:乘法 兩個數(shù)相乘操作 d:除法 兩個數(shù)相除操作 e:開平方 兩個非負數(shù)進行開方運算,可以是小數(shù)3,面向?qū)ο蠓治觯?)含義:面向?qū)ο蠓治鲆环N新的系統(tǒng)分析方法。它采用的是面向?qū)ο蟮娘L(fēng)格進行系統(tǒng)分析和需求定義的重要方法。面向?qū)ο蠓治龅年P(guān)鍵在于理解問題控件并將其模型化。 面向?qū)ο蠓治霾捎萌藗冋J識客觀事物和理解現(xiàn)實世界過程中常用的基本法則: a:認識對象以及其屬性;b:認識對象的整體及其組成部分;c:對象的形成及類的區(qū)分;d:對問題空間進行理解并抽象成模型;面向?qū)ο蠓治鲇形鍌€階段:標識對象,標識結(jié)構(gòu),標識主題,定義屬性,定義服務(wù),即分五個層次建立面向?qū)ο蠓治龅哪P汀C嫦驅(qū)ο蠓治龅膬?yōu)點是使功能分析與數(shù)據(jù)分析統(tǒng)一的概念和方法,克服了結(jié)構(gòu)化分析中兩者之間的不一致性和協(xié)調(diào)性。(2) :系統(tǒng)功能圖:加法運算開方 減法預(yù)算計算器乘法運算除法運算相反數(shù)圖3.1(3)用例圖: 計算器輸入數(shù)據(jù)存儲數(shù)據(jù)計算 用戶顯示結(jié)果圖3.25,本章小結(jié):本章主要介紹了系統(tǒng)的可行性分析以及各種需求分析??尚行苑治鲈诘谝徽乱灿兴w現(xiàn),本系統(tǒng)具有良好的發(fā)展前景,并且技術(shù)也比較常用,成熟,經(jīng)濟可行性良好,數(shù)據(jù)可行性也良好。Java環(huán)境對開發(fā)程序?qū)π阅艿男枨筝^高。第四章系統(tǒng)設(shè)計 1,概要設(shè)計(1)含義:概要設(shè)計是一個設(shè)計師根據(jù)用戶交互過程和用戶需求來形成交互框架的過程,其結(jié)果往往以反映交互控件布置,界面元素分組以及界面整體版式的頁面框架圖的形式來呈現(xiàn)。這是一個在用戶研究和設(shè)計之間架起的橋梁,使用戶研究和設(shè)計無縫結(jié)合,將用戶目標與需求轉(zhuǎn)換成具體界面設(shè)計解決方案的重要階段。概要設(shè)計的主要任務(wù)是把需求分析得到的系統(tǒng)擴展用例圖轉(zhuǎn)換成軟件結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)。設(shè)計軟件結(jié)構(gòu)的具體任務(wù)是:將一個復(fù)雜系統(tǒng)按功能進行模塊劃分,建立模塊的層次結(jié)構(gòu)及調(diào)用關(guān)系,確定模塊間的接口及人機界面等。數(shù)據(jù)結(jié)構(gòu)設(shè)計包括數(shù)據(jù)特征的描述,確定數(shù)據(jù)的結(jié)構(gòu)特性,以及數(shù)據(jù)庫的設(shè)計。顯然,概要設(shè)計建立的是目標系統(tǒng)的邏輯模型。(2) 模塊圖計算器類的繼承創(chuàng)建按鈕創(chuàng)建窗體 圖圖4.1(3) 概述:標準計算器的界面采用“圖形界面程序(GUI)”。GUI為用戶和應(yīng)用程序之間的交互提供了直觀方便的交流方式。用戶使用鼠標鍵盤操作圖像界面上的按鈕菜單等單位元素向計算機系統(tǒng)發(fā)送命令,系統(tǒng)運行的結(jié)果以圖形的方式顯示給用戶。2,詳細設(shè)計(時序圖)(1)時序圖如果所示 結(jié)果顯示界面 按鈕界面 用 戶1,開始 2,點擊按鈕 3,接受到數(shù)據(jù) 4,獲取信息,將要顯示界面 5,顯示 6,用戶查看結(jié)果圖4.2(2)概述: a:用圖形界面實現(xiàn)界面; b:通過設(shè)置布局,控件等來豐富界面; c:按鈕鍵接收數(shù)據(jù),處理后顯示結(jié)果; 1第5章 :系統(tǒng)實現(xiàn)1:主要功能界面圖5.12:界面功能描述 (1)加法運算本計算器可以實現(xiàn)多個運算數(shù)相加,例如:1+2+3運算結(jié)果為6 (2)減法運算本計算器可以實現(xiàn)多個運算數(shù)相減,例如:4-3-2運算結(jié)果為-1 (3)乘法運算本計算器可以實現(xiàn)多個運算數(shù)相乘,例如:2*3*4運算結(jié)果為24 (4)除法運算本計算器可以實現(xiàn)多個運算數(shù)相除(除數(shù)不為0)例如:15/5/3運算結(jié)果為1,當(dāng)除數(shù)為0時,計算器無法運算顯示結(jié)果為0 (5)求相反數(shù)本計算器可以求任意一個數(shù)的相反數(shù),例如:1的相反數(shù)所求結(jié)果為-1 (6)開方運算本計算器可以對非負數(shù)進行開方運算,例如:9開方運算結(jié)果為33,核心代碼: (1)窗口和按鈕面板public Calculator() / 主面板 panelSuper = new JPanel(); 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版計算器); this.validate(); this.setResizable(false); this.setVisible(true); this.setDefaultCloseOperation(DISPOSE_ON_CLOSE); / 添加計算器按鈕面板 myPanel = new MyPanel(); this.add(myPanel, BorderLayout.CENTER); (2)計算器顯示屏jTextField = new JTextField(25);jTextField.setHorizontalAlignment(JTextField.RIGHT);jTextField.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.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 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 Dimension(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 Dimension(67, 40);(4)計算器初始化public void init() d1 = new BigDecimal(0); d1 = new BigDecimal(0); key = =; oper = =; jTextField.setText(0); irst = true; / 用于標記是否進行連續(xù)操作 (5)計算 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 -: return 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è)計程序過程中,老師和同學(xué)給了我很多幫助和支持,老師認真負責(zé)的工作態(tài)度和嚴謹?shù)闹螌W(xué)風(fēng)格讓我深受啟發(fā)。和同學(xué)們之間的討論讓我受益匪淺。當(dāng)然,我還需要不斷學(xué)習(xí),因為在目前看來,我所設(shè)計的計算器還存在很多不足,今后還需不斷努力完善自己,用知識武裝自己,只有使用社會發(fā)展的需求適應(yīng)時代發(fā)展的需求,才能在競爭日益激烈的社會中立足。所以,在今后的學(xué)習(xí)中,我會在今后的學(xué)習(xí)中嚴格要求自己,希望在老師的幫助下在,自己的努力下,在生活中找到屬于自己的位置,取得更大的進步。第7章 :參考文獻1馬世霞,java程序設(shè)計,機械工業(yè)出版社.2010.12楊武,劉貞java編程及應(yīng)用,北京:高等教育出版社.20043丁振凡java語言使用教程,北京郵電大學(xué)出版社.2006.9第8章 :致謝在此我要感謝我的老師在課程設(shè)計上給予我們的指導(dǎo)和給予的幫助,這是我們能順利完成這次課程設(shè)計的主要原因,更重要的是老師在課堂上精彩的講解,讓我們在寫課程設(shè)計時更加完善。在此期間,我不僅學(xué)到了許多新知識,而且也開闊了視野,提高了自己的設(shè)計能力。其次,我要感謝幫助過我的同學(xué),他們?yōu)槲医鉀Q了很多不太明白的地方,還有一些素材的提供。最后,再次感謝我的老師和同學(xué),誠心說一句:謝謝!附源代碼:import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;import java.awt.*;import java.math.BigDecimal;import java.math.MathContext;import java.math.RoundingMode;import java.awt.Color; /* * java版計算器 */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 = 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版計算器); this.validate(); this.setResizable(false); this.setVisible(true); this.setDefaultCloseOperation(DISPOSE_ON_CLOSE); / 添加計算器按鈕面板 myPanel = new MyPanel(); this.add(myPanel, BorderLayout.CENTER); public static void main(String args) new Calculator(); /* * 計算器按鈕面板類 */ class MyPanel extends JPanel implements ActionListener JButton button1, button2, button3, button4, button5, button6, button7, button8, button9, button0, buttonJia, buttonJian, buttonCheng, buttonChu, buttonDeng, buttonDian, buttonC, buttonDel, buttonZF, buttonGH; JTextField jTextField; / 計算器顯示屏 char oper; / 操作符 String key, allKey = 1234567890.del, jjccKey = +-*/; BigDecimal d1, d2; boolean first; public MyPanel() / 設(shè)置布局 this.setLayout(new FlowLayout(FlowLayout.LEFT, 4, 5); / 計算器顯示屏 jTextField = new JTextField(25); jTextField.setHorizontalAlignment(JTextField.RIGHT); jTextField.setEditable(false); jTextField.setBackground(new Color(255, 255, 255); jTextField.setText(0); this.add(jTextField); / 計算器按鈕 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(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(/); buttonDeng = 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.setPreferredSize(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 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 Dimension(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 Dimension(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.addA
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030中國皮質(zhì)類固醇反應(yīng)性皮膚病行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 2025至2030中國用于增強現(xiàn)實的智能眼鏡行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 2025至2030中國生物攪拌器行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 2025至2030中國玩具煙花市場產(chǎn)銷規(guī)模與未來需求量研究報告
- 2025至2030中國特種植物油行業(yè)市場深度研究與戰(zhàn)略咨詢分析報告
- 教師合同管理與權(quán)益維護
- 個性化學(xué)習(xí)路徑在醫(yī)療培訓(xùn)中的實踐案例分析
- 促進學(xué)困生發(fā)展的個性化心理干預(yù)與指導(dǎo)方案研究
- 教育技術(shù)對幼兒心理健康的積極作用
- 商業(yè)創(chuàng)新中的在線教育平臺法律風(fēng)險分析
- 2025年廣東省中考地理試題卷(標準含答案)
- 2025至2030洗碗機里的啤酒行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 2025年醫(yī)療健康行業(yè)醫(yī)療信息化建設(shè)與網(wǎng)絡(luò)安全研究報告
- 遼寧省文體旅集團所屬企業(yè)招聘筆試題庫2025
- 團建活動桌球店活動方案
- 2025屆拉薩市英語七年級第二學(xué)期期中質(zhì)量跟蹤監(jiān)視模擬試題含答案
- 2025至2030中國甲氧基乙酸甲酯行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025年 北京門頭溝大峪街道社區(qū)儲備人才招募考試試題附答案
- Unit 2 Home Sweet Home 第4課時(Section B 1a-1e) 2025-2026學(xué)年人教版英語八年級下冊
- 社會工作職業(yè)培訓(xùn)課件
- 2025-2030年泵產(chǎn)業(yè)發(fā)展分析及發(fā)展趨勢與投資前景預(yù)測報告
評論
0/150
提交評論