




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Good is good, but better carries it.精益求精,善益求善。-基于Android計算器的設(shè)計與應(yīng)用論文-北京北大方正軟件技術(shù)學院畢業(yè)設(shè)計(論文)題目:基于Android計算器的設(shè)計與應(yīng)用系別:軟件工程分院專業(yè):軟件技術(shù)學號:110110335姓名:王可可指導老師:李強完成日期:2014年5月20日北京北大方正軟件技術(shù)學院畢業(yè)設(shè)計(論文)成績評定表(理科)年級11級專業(yè)軟件技術(shù)姓名王可可學號110110335論文題目:基于Android計算器的設(shè)計與應(yīng)用指導教師:李強項目評分標準優(yōu)秀良好合格不合格選題優(yōu)秀:選題有重要理論意義和實際價值;良好:選題有較強理論意義和實
2、際價值;合格:選題有一定理論意義和實際價值;不合格:選題欠妥?;A(chǔ)知識優(yōu)秀:有堅實的理論基礎(chǔ)和系統(tǒng)深入的專業(yè)知識;良好:有較堅實的理論基礎(chǔ)和系統(tǒng)深入的專業(yè)知識;合格:有一定的理論基礎(chǔ)和專業(yè)知識;不合格:基礎(chǔ)理論不夠全面,專業(yè)知識不系統(tǒng)。實踐能力優(yōu)秀:體現(xiàn)出較強的實踐工作能力;良好:體現(xiàn)出較好的實踐工作能力;合格:體現(xiàn)出一定的實踐工作能力;不合格:體現(xiàn)出工作能力較差。寫作能力優(yōu)秀:條理清楚,層次分明,文筆流暢,學風嚴謹;良好:條理性好,層次分明,文字通順,工作認真;合格:條理較好,層次較分明,文字較通順;不合格:條理不清,寫作較差。論文綜合評價優(yōu)秀良好合格不合格指導教師評定意見簽字:年月日畢業(yè)設(shè)
3、計領(lǐng)導小組簽字簽字:年月日摘要目前手機可以說是普及率非常高的電子設(shè)備了,由于其便于攜帶,使用方便,資費適中等等原因,現(xiàn)在手機已經(jīng)在一定程度開始代替固定電話的通話功能,以及一些原來電腦軟件上的功能了。手機上的軟件也隨著手機的發(fā)展變得豐富起來了,時至今日已經(jīng)出現(xiàn)了很多專門制作手機軟件的公司,雖然制作的多是游戲軟件,但是一些輔助性的工具軟件也有了很多。手機軟件簡單說就是可以安裝在手機上的軟件,作用自然是擴展手機的原始功能,使手機變得更加的實用。但是手機的軟件需要安裝到相應(yīng)的系統(tǒng)中才能完美的運行。正是由于考慮到以上這些情況,Android系統(tǒng)是現(xiàn)今比較流行的手機系統(tǒng),所以本系統(tǒng)選擇了java語言來作為
4、開發(fā)語言?,F(xiàn)在市面上常見的手機大致可以分為三類,一類是傳統(tǒng)的鍵盤手機,使用鍵盤對手機進行操作。另一類是處于過度期時使用的既可以使用手指或者觸控筆在屏幕上進行觸控操作又可以使用傳統(tǒng)的鍵盤進行對手機的操作。第三類則是新興的觸屏手機,這類手機就是直接通過手指或者觸控筆在屏幕上面進行操作,需要鍵盤的部分,基本都是以在屏幕中產(chǎn)生一個虛擬鍵盤的模式來實現(xiàn)的。具體手機的觸摸屏到底是需要觸控筆進行觸控操作還是需要使用手指進行操作主要還是要看手機使用的觸摸屏是電阻屏還是電容屏。使用觸控筆的手機使用的屏幕都是電阻屏的手機,這種屏幕的觸控定位實際上是利用你在屏幕上的點擊對屏幕的電阻產(chǎn)生的變化進行判斷以至于可以判斷出
5、用戶觸控的位置,用戶只要對屏幕造成壓力即可實現(xiàn),無所謂是什么東西觸控的。而電容屏就不同了,使用電容屏的手機只能判斷帶電物體的觸控,使帶電物體在屏幕上產(chǎn)生耦合電容,通過耦合電容來判斷觸控的位置,這種方法還更有利于多點觸控技術(shù)的實現(xiàn)。在人們?nèi)粘J褂檬謾C中這個帶電物體就是人自己的身體,一般情況下就是手。綜上所述,本系統(tǒng)是一個基于現(xiàn)有手機計算器開發(fā)的在觸屏手機上運行的簡單科學計算器。關(guān)鍵字JAVA語言EclipseJDKandroid-sdkLinearLayout布局目錄TOCo1-3hzuHYPERLINKl_Toc231154508摘要.2第一章項目概述.51.1手機的發(fā)展及背景.51.2計算器
6、的發(fā)展歷史.6項目相關(guān)技術(shù)知識.82.1JAVA技術(shù).82.2JDK.112.3Eclipse.11系統(tǒng)設(shè)計.133.1系統(tǒng)功能圖.133.2程序流程圖.133.3系統(tǒng)框圖.153.4總體模塊詳細設(shè)計.153.5輸入模塊詳細設(shè)計.163.6顯示模塊詳細設(shè)計.173.7計算模塊詳細設(shè)計.17系統(tǒng)實現(xiàn).184.1輸入模塊的內(nèi)容.184.2輸入模塊的實現(xiàn).194.3顯示模塊的內(nèi)容.194.4顯示模塊的實現(xiàn).204.5顯示模塊的布局代碼.204.6計算模塊的內(nèi)容.214.7計算模塊實現(xiàn)重要代碼.21謝辭.33參考文獻.34第一章項目概述1.1手機的發(fā)展及背景隨著21世紀的到來,我們已經(jīng)步入了信息化時代
7、,這個時代的最重要的標志就是信息技術(shù)的廣泛應(yīng)用。而手機正是信息技術(shù)的一個重要體現(xiàn)。如今社會上手機的應(yīng)用已經(jīng)達到了非常普及的程度,基本隨處都可以見到手機的身影。我們也熟悉了在社會各處遇見它們,家里,辦公室里,學校,馬路上,基本可以說是有人的地方就用手機的存在。手機發(fā)展到今天,已經(jīng)和最初的手機有了天差地別。1938年,在美國的貝爾實驗室,美國軍方研制成了世界上第一部“移動電話”即手機。1973年4月,在美國著名的摩托羅拉公司工作的工程技術(shù)員“馬丁庫帕”發(fā)明了世界上第一部推向民用的手機,從此以后馬丁庫帕也被稱為現(xiàn)代手機之父。這些就是軍方和民用手機最初的出現(xiàn)時間。下面我們按手機的發(fā)展來仔細介紹一下:第
8、一代手機(1G)是指模擬的移動電話,也就是在我們小時候活躍在各種影視作品中的“大哥大”。最先研制出這種手機的是美國摩托羅拉公司的Cooper博士。由于當時的電池、天線和集成電路的規(guī)模等等技術(shù)水平的制約,這種手機體積很大,只能稱的上時可移動,嚴格來說都算不上便攜。這種手機有多種制式,AMPS(北美蜂窩系統(tǒng))、NMT(北歐移動電話)和TACS(全向通信系統(tǒng))都是主要的模擬標準,但是無論是什么制式的工作方式基本上是頻分復(fù)用,而且這種手機只能進行簡單語音通信,通話的效果也不穩(wěn)定,同時保密性也很不足,基本可以說是沒有保密性。由于當時這種手機的通話頻率是固定的,只需要使用雙工的無線電臺就能監(jiān)聽到用戶通話的
9、內(nèi)容。另外這種手機對于無線帶寬利用也是十分不充分的。第二代手機(2G)也是手機發(fā)展過程中最常見的手機。通常這些手機使用GSM或者CDMA這些成熟的標準制式,通過了一段時間的發(fā)展電池、天線和集成電路規(guī)模已經(jīng)有了突破性的進展了,不會再成為第二代手機發(fā)展的制約,而手機也在這些技術(shù)的促進中發(fā)展的越來越快。通話質(zhì)量和待機時間都得到了很大的發(fā)展。第二代手機為了適應(yīng)用戶對于數(shù)據(jù)通訊的需求,一些在現(xiàn)在普遍使用的技術(shù)也在手機上得到了發(fā)展,例如GPRS彩信業(yè)務(wù)和WAP上網(wǎng)業(yè)務(wù),也是在這個時期各式各樣的Java程序開始登上歷史舞臺,從此Java程序的拓展也成為了手機一個重要的部分。下面我們來說說我們現(xiàn)在常常會提起的
10、3G吧。3G是英文3rdGeneration的縮寫,即指第三代移動通信技術(shù)。相對第一代手機(1G)和第二代手機(2G),第三代手機更加強調(diào)的是網(wǎng)絡(luò)的部分,利用3G技術(shù),手機能夠更好的進行數(shù)據(jù)業(yè)務(wù)。它能夠隨時隨地的來處理圖像、音樂、視頻等等多媒體業(yè)務(wù),服務(wù)的范圍提供包括比第二代手機更加快速的網(wǎng)頁瀏覽、視頻通話、HYPERLINK/view/757.htm電子商務(wù)等等多種信息服務(wù)。而為了確保能夠給用戶提供以上這些服務(wù),第三代手機就需要更高的數(shù)據(jù)傳輸速度,據(jù)本人了解,現(xiàn)在的3G手機在室內(nèi)、室外和行車的環(huán)境中能夠分別支持2Mbps、384kbps以及144kbps以上的傳輸速度。最后我們來說說現(xiàn)在國際
11、上承認的3G手機的標準,現(xiàn)在國際上3G手機(3Ghandsets)有3種制式標準,這三種標準分別是歐洲的WCDMA標準、美國的CDMA2000標準和我國自主研發(fā)的TDSCDMA標準。手機發(fā)展到今天,科技水平已經(jīng)越來越高,而3G手機也已經(jīng)開始進入我們的生活了,手機應(yīng)用的擴展更是從第二代手機開始就已經(jīng)變得具有極其重要的意義了,而本文正是在這樣的背景下開展研究的。1.2計算器的發(fā)展歷史計算器作為現(xiàn)在人們?nèi)粘I钪谐S玫囊环N工具已經(jīng)可以說是人們?nèi)粘I钪斜夭豢缮俚墓ぞ吡?。但是計算器的發(fā)展經(jīng)歷了漫長的過程,凝聚無數(shù)先人的智慧,甚至連計算機的發(fā)展都可以說是源于計算器的發(fā)展。計算器和計算機一樣都能夠?qū)崿F(xiàn)數(shù)據(jù)
12、的輸入、處理、存儲和輸出這些基本的功能,但計算器區(qū)別于計算機的地方就是,它不能自動的進行計算,必須要求由人來操作完成計算;而計算機通過提前編寫好的程序就能夠自動的按照程序進行處理。所以計算器和計算機的一個顯著的區(qū)別就在于是否需要人為地操作來完成運行。這二者還有另一個本質(zhì)性的區(qū)別。計算器的處理數(shù)據(jù)的方法是生產(chǎn)時就已經(jīng)固化在系統(tǒng)中了,所以計算器只能按照系統(tǒng)中規(guī)定的處理方法來處理用戶要求的計算任務(wù);而計算機由于可以自行安裝操作系統(tǒng)和各種的相關(guān)軟件和硬件,理論上計算機擁有的可擴展性是無窮的。所以簡單的說,計算器和計算機的本質(zhì)性區(qū)別就在于該系統(tǒng)是否存在可擴展性。在我所了解到的知識中,最早的計算工具可以追
13、溯到中國古代一種叫做籌策(又叫算籌)的東西上。這種計算工具在計算的時候擺成縱式和橫式兩種數(shù)字,按照縱式相間的原則表示任何自然數(shù),從而進行加、減、乘、除、開方以及其它的代數(shù)計算。負數(shù)出現(xiàn)后,算籌分為紅和兩種,紅籌表示正數(shù),黑籌表示負數(shù)。雖然我對于這種計算的原理不是很了解,但是不得不說,這種運算工具和運算方法確實是當時世界上獨一無二的。直到今天仍有一些人在使用的HYPERLINK/view/116024.htm珠算或者叫算盤,是中國古代計算工具中的另一項偉大發(fā)明,而從明朝開始使用的HYPERLINK/view/18627.htm算盤就已經(jīng)與現(xiàn)代的算盤幾乎完全相同了。以上介紹完了中國關(guān)于計算工具的發(fā)
14、展,下面我們來看看西方社會中計算工具的發(fā)展情況。我通過查詢資料得知,17世紀初這個時期,西方國家的計算工具開始有了一個較大的發(fā)展,英國數(shù)學家納皮爾發(fā)明的納皮爾算籌,英國牧師奧卻德發(fā)明了圓柱型對數(shù)計算尺,這種計算尺的功能不僅僅能做加減乘除、乘方、開方運算,甚至可以計算三角函數(shù),指數(shù)函數(shù)和對數(shù)函數(shù),這些計算工具的產(chǎn)生不單單是帶動了計算器的發(fā)展,更是為現(xiàn)代計算器的發(fā)展奠定了一個堅實的基礎(chǔ)。雖然當時的技術(shù)水平有限,這些工具使用的不是機械或者電子作為載體,但是這些計算工具卻為了后世的計算器提供了一個良好的思路。1642年,偉大的法國科學家HYPERLINK/view/17673.htm帕斯卡在年僅19歲
15、的時候就利用了算盤的計算原理發(fā)明了世界上第一部機械式的計算器,在這個計算器中有一些互相咬合的齒輪,一個轉(zhuǎn)過十位的齒輪會使另一個齒輪轉(zhuǎn)過一位,靠這樣來實現(xiàn)十進制的算法,人們可以轉(zhuǎn)動齒輪,把想要輸入的數(shù)據(jù)輸入進去,計算結(jié)果就會出現(xiàn)在另一個窗口中,但是這個計算器只能做一些加減計算。1694年,萊布尼茲在德國將其改進,使這種計算器成為可以進行加減乘除計算的計算器。此后,一直要到20世紀50年代末才有電子計算器的出現(xiàn)。第二章項目相關(guān)技術(shù)知識2.1JAVA技術(shù)首先要說,Java是一門現(xiàn)在使用很普遍編程語言,但是也是一個平臺,它基于Java虛擬機技術(shù),并且借助虛擬機技術(shù)實現(xiàn)了跨平臺的優(yōu)勢。Java平臺由Ja
16、vaHYPERLINK/view/1132.htm虛擬機(JavaVirtualMachine)和Java應(yīng)用編程HYPERLINK/view/159864.htm接口(ApplicationProgrammingInterface、簡稱API)構(gòu)成。Java應(yīng)用HYPERLINK/view/3281.htm編程接口為Java應(yīng)用提供了一個獨立于HYPERLINK/view/880.htm操作系統(tǒng)的標準接口,再進一步則可分為基本部分和擴展部分。在HYPERLINK/view/25278.htm硬件或操作系統(tǒng)平臺上安裝一個Java平臺之后,Java應(yīng)用HYPERLINK/view/17674.h
17、tm程序就可運行。由于Java技術(shù)本身的優(yōu)勢,現(xiàn)在Java平臺已經(jīng)嵌入了幾乎所有的操作系統(tǒng)。這樣Java程序的優(yōu)勢就更加明顯了,甚至可以做到只編譯一次,就可以在各種系統(tǒng)中運行的地步。Java技術(shù)的重要性就不講了,從我了解接觸過的編程語言來看,接觸的最多的編程語言就是Java,我對于編程語言的接觸程度雖然本身不能不說明什么,但至少在一定程度上可以反映出編程語言的使用率和普及率。總體的了解了Java技術(shù)以后我們來進一步的了解一下Java的語言。簡單的說,如書上所說的概念一樣,Java是一種簡單的,面向?qū)ο蟮?,分布式的,解釋型的,健壯安全的,結(jié)構(gòu)中立的,可移植的,性能優(yōu)異、HYPERLINK/vie
18、w/65706.htm多線程的動態(tài)語言。在1995年SUN推出Java語言之后,全世界軟件工程師的目光都被這個特別的語言所吸引。這種語言的優(yōu)越性有此可見。我了解到的Java語言其實最早誕生于1991年,起初也并不叫做Java,而是被稱為OAK語言,這種語言是SUN公司為一些消費性電子產(chǎn)品而設(shè)計的一個通用環(huán)境。他們最初的目的只是為了開發(fā)一種獨立于平臺的軟件技術(shù),在網(wǎng)絡(luò)出現(xiàn)之前,OAK語言可以說是默默無聞。但是,隨著網(wǎng)絡(luò)的出現(xiàn)和發(fā)展,OAK語言的命運被完全的改變了。在Java出現(xiàn)以前,Internet上的信息內(nèi)容都是千篇一律的使用HTML這種有點死板的文檔。這讓網(wǎng)絡(luò)瀏覽者對于網(wǎng)絡(luò)的興趣有所下降,網(wǎng)
19、絡(luò)不能滿足他們對于趣味性和互動性的要求。這些使用者希望能在網(wǎng)頁中看到一些交互式的內(nèi)容,而網(wǎng)站的開發(fā)人員也極希望能夠在為網(wǎng)站開發(fā)應(yīng)用程序的時候不用再去考慮用戶的軟硬件平臺是否能夠與程序兼容的這些問題,同時這些程序還能夠提供足夠安全保障。對于用戶的這種要求,傳統(tǒng)的那些HYPERLINK/view/552871.htm編程語言都表現(xiàn)的無能為力。而SUN公司的工程師十分敏銳的察覺到了這些需求,從1994年起,他們開始將OAK技術(shù)應(yīng)用于WEB上,并且于同年開發(fā)出了HotJava的第一個版本。而當SUN公司1995年正式以Java這個名字推出該語言的時候,幾乎所有的WEB開發(fā)人員都發(fā)現(xiàn)Java這種語言能夠
20、完全的滿足他們之前的需求,滿足用戶的需求。于是Java一夜之間成了炙手可熱的一種編程語言。那么Java的主要特性又是什么呢?如上文中所說的,Java是一種簡單的,面向?qū)ο蟮模植际降?,解釋型的,健壯安全的,結(jié)構(gòu)中立的,可移植的,性能優(yōu)異、HYPERLINK/view/65706.htm多線程的動態(tài)語言。下面我們就來詳細的介紹一下這些特點。Java語言是簡單的。由于Java語言的語法與C語言和C+語言很相近,這就使得大多數(shù)的HYPERLINK/view/39175.htm程序員可以只通過很容易學習就能使用Java。另一方面,Java語言祛除了一些C+語言中令人迷惑或者難以理解的特性,比如操作符重
21、載、多繼承、自動的HYPERLINK/view/2886403.htm強制類型轉(zhuǎn)換等等。另外,在Java語言種不使用HYPERLINK/view/159417.htm指針,并提供了自動的廢料收集的功能,從此使用Java的程序員再也不用為了HYPERLINK/view/4541016.htm內(nèi)存管理而擔憂了。Java語言是面向?qū)ο蟮?。Java語言中提供了類、接口和繼承等等,其中只支持類之間的單繼承,想要進行多繼承就要使用接口,支持類與接口之間的實現(xiàn)機制的HYPERLINK/view/390935.htm關(guān)鍵字為implements。與C+語言只對HYPERLINK/view/161302.htm
22、虛函數(shù)使用動態(tài)綁定相比,Java語言全面支持動態(tài)綁定??傊?,Java語言可以說是一個純粹HYPERLINK/view/249254.htm面向?qū)ο蟮某绦蛟O(shè)計語言。Java語言是分布式的。Java語言支持Internet應(yīng)用的開發(fā),所以在基本的Java應(yīng)用HYPERLINK/view/897136.htm編程接口中會有一個網(wǎng)絡(luò)應(yīng)用編程接口(javanet),這個編程接口提供了用于網(wǎng)絡(luò)應(yīng)用編程的類庫,包括URL、URLConnection、Socket、ServerSocket等。Java的遠程方法激活機制也是開發(fā)分布式應(yīng)用的一個重要手段。Java語言是健壯的。Java的HYPERLINK/vie
23、w/1792102.htm強類型機制、異常處理、廢料的自動收集等是Java程序健壯性的重要保證。而不再使用指針更是Java的明智選擇。Java的安全檢查機制使得Java更具健壯性。Java語言是安全的。由于Java通常被用在網(wǎng)絡(luò)環(huán)境中,因此,Java特意提供了一個安全機制以防惡意代碼的攻擊。除了Java語言具有的許多HYPERLINK/view/634959.htm安全特性以外,Java對通過網(wǎng)絡(luò)下載的類還具有一個安全防范機制(類ClassLoader),如分配不同的名字空間以防替代本地的同名類、HYPERLINK/view/185293.htm字節(jié)代碼檢查,并提供安全管理機制(類Securi
24、tyManager)讓Java應(yīng)用更加安全。Java語言是體系結(jié)構(gòu)中立的。Java程序(后綴為java的文件)在Java平臺上被編譯為體系結(jié)構(gòu)中立的HYPERLINK/view/560330.htm字節(jié)碼格式(后綴為class的文件),然后可以在實現(xiàn)這個Java平臺的任何系統(tǒng)中運行。這種適應(yīng)性使得Java的應(yīng)用變的更加的廣泛。Java語言是可移植的。由于Java語言的結(jié)構(gòu)中立的特性,這種語言同時也具備了很強的可移植性,另外,Java語言中還規(guī)定了各個基本數(shù)據(jù)類型的長度。而Java系統(tǒng)的本身也具有很強的可移植性,Java編譯器是用Java實現(xiàn)的,Java的運行環(huán)境是用ANSIC實現(xiàn)的。Java語
25、言是解釋型的。Java程序在Java平臺上被編譯為一種特殊的字節(jié)碼格式,然后該程序就可以在任何系統(tǒng)中裝有Java平臺的實現(xiàn)運行。在運行時,Java平臺中的JavaHYPERLINK/view/592974.htm解釋器對這些特殊的字節(jié)碼再進行解釋,而在整個過程中所需要的類在聯(lián)接階段就會被載入到運行環(huán)境中。Java是高性能的。我了解到的Java語言與解釋型的高級HYPERLINK/view/76320.htm腳本語言相比Java的性能確實是占優(yōu)勢的。Java的運行速度更是隨著JIT(Just-In-Time)編譯器技術(shù)的發(fā)展變得越來越快了。Java語言是多線程的。Java語言支持多個線程在同一時
26、間一同執(zhí)行,并且專門的提供了多線程之間的同步機制(關(guān)鍵字為synchronized)。Java語言是動態(tài)的。在Java語言的設(shè)計之初就有要求語言能夠適應(yīng)于動態(tài)變化的環(huán)境這個目標。Java程序需要的類,既可以動態(tài)地被載入到運行環(huán)境,又可以通過網(wǎng)絡(luò)來載入所需要的類。這樣的設(shè)計有利于軟件的升級。另外,我還了解到Java中的類存在一個運行時刻的表示,能進行運行時刻的類型檢查。由于Java語言編寫的Java應(yīng)用具有很強的健壯性和可靠性,這樣就能減少很多應(yīng)用系統(tǒng)的維護費用。Java對面向?qū)ο蟮募夹g(shù)的全面支持和Java平臺內(nèi)嵌的API能極大的縮短應(yīng)用系統(tǒng)的開發(fā)時間同時還能降低開發(fā)成本。Java的編譯一次,可
27、以在任意裝有Java平臺的系統(tǒng)運行的特性使得它成為能夠直接在多個平臺之間傳遞信息的簡單便利的方式。有必要一說的是Java企業(yè)應(yīng)用編程接口還為企業(yè)計算及HYPERLINK/view/2622737.htm電子商務(wù)應(yīng)用系統(tǒng)提供了有關(guān)技術(shù)和豐富的類庫。Java編程語言最與眾不同之處在于:Java程序既是編譯型的又是解釋型的。編譯型是指,程序會轉(zhuǎn)換為一種稱為Java字節(jié)碼的中間語言,解釋型則是指,運行程序的時候JVM會對字節(jié)碼進行解析和運行。這個過程中,編譯只進行一次,而解釋在每次運行程序時都會進行。2.2JDKJDK(JavaDevelopmentKit)是SunMicrosystems針對Java
28、語言程序開發(fā)的產(chǎn)品。自從Java推出以來,JDK已經(jīng)成為使用最廣泛的JavaSDK。JDK是整個Java的核心組件,其中包括了Java的運行環(huán)境,Java工具和Java基礎(chǔ)的類庫??梢哉fJDK是學好Java的第一步。從SUN的JDK5.0開始提供了泛型等等一些非常實用的功能,而且版本還在不斷更新,到本論文寫作時已經(jīng)更新到了JDK7.0了。運行效率也隨著版本的不斷更新而得到了很大的提高。2.3EclispeEclipse是一個開放源代碼的、基于Java的可擴展開發(fā)平臺。就其本身而言,它只是一個框架和一組服務(wù),用于通過HYPERLINK/view/18979.htm插件組件構(gòu)建開發(fā)環(huán)境。換句話說就
29、是Eclipse只是提供了一個界面,所有的開發(fā)環(huán)境都要通過安裝相關(guān)的插件來完成。不過Eclipse附帶了一個標準的插件集合,在這個集合中包括了Java的開發(fā)工具(JavaDevelopmentTools,JDT)。首先我們來介紹一下Eclipse歷史和版本。Eclipse最初是由OTI和IBM公司開發(fā)的替代商業(yè)HYPERLINK/view/37.htm軟件VisualAgeforJava的下一代IDE開發(fā)環(huán)境,在2001年11月貢獻給開源社區(qū),現(xiàn)在它由非營利軟件供應(yīng)商聯(lián)盟Eclipse基金會(EclipseFoundation)管理。2003年,Eclipse3.0選擇OSGi服務(wù)平臺規(guī)范為運
30、行時架構(gòu)。2007年6月,穩(wěn)定版3.3發(fā)布。2008年6月發(fā)布代號為Ganymede的3.4版。2009年7月發(fā)布代號為GALILEO的3.5版。2010年6月發(fā)布代號為Helios的3.6版。本系統(tǒng)開發(fā)使用的是3.6的版本。此外我們再來談?wù)凟clips語言拓展能力。Eclipse基本已經(jīng)成為世界最著名的跨平臺自由HYPERLINK/view/14867.htm集成開發(fā)環(huán)境(IDE)。最初主要用來HYPERLINK/view/229611.htmJava語言開發(fā),但是由于其開源的特性,也有人通過為其安裝插件使其作為其他編程語言(比如C+和Python)的開發(fā)工具。如上文所說,Eclipse的本
31、身只是一個框架平臺,但是眾多插件的支持使得Eclipse擁有了其他功能固定的IDE軟件很難擁有的靈活性。現(xiàn)在許多的軟件開發(fā)商以Eclipse為框架開發(fā)出了自己的IDE。Eclipse由OTI和IBM兩家公司的IDE產(chǎn)品開發(fā)組創(chuàng)建,起始于1999年4月。IBM提供了最初的Eclipse代碼基礎(chǔ),包括Platform、JDT和PDE。目前也是由IBM牽頭,圍繞著Eclipse已經(jīng)發(fā)展成為了一個龐大的Eclipse聯(lián)盟,這個聯(lián)盟中已經(jīng)有150多家軟件公司參與到Eclipse項目中,其中不乏知名的廠商例如Borland、RationalSoftware、RedHat及Sybase等。Eclipse是一
32、個開發(fā)源碼項目,其界面跟先前的VisualAgeforJava差不多,但由于它是個開源的系統(tǒng),任何人都可以免費得到其碼源,并可以在此基礎(chǔ)上開發(fā)各自的插件,正是因此,它越來越受人們關(guān)注。近幾年更有包括Oracle在內(nèi)的許多大公司也紛紛加入了該項目,這標志著Eclipse將來能會成為可進行任何語言開發(fā)的IDE大集合,使用者只需根據(jù)自己的需要下載各種語言的插件即可。接著說說Eclipse插件開發(fā)環(huán)境。雖然大多數(shù)用戶很樂于將Eclipse當作JavaIDE來使用,但Eclipse的目標不僅限于此,如上文所說,Eclipse的最終目標是成為可以進行任何語言開發(fā)的IDE大集合。所以在Eclipse中還包括
33、插件開發(fā)環(huán)境(Plug-inDevelopmentEnvironment,PDE),這個組件主要是針對希望擴展Eclipse功能的軟件開發(fā)人員,因為這個組件允許開發(fā)者構(gòu)建與Eclipse環(huán)境無縫集成的工具。由于Eclipse中可以說是每樣東西都是插件,所以說對于想給Eclipse提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境的開發(fā)人員來說,所有人都具有了一個同等的發(fā)揮機會。我在網(wǎng)上找到的基于Eclipse的HYPERLINK/view/330120.htm應(yīng)用程序的突出例子是IBM的WebSphereStudioWorkbench,它構(gòu)成了IBM關(guān)于Java開發(fā)工具系列的基礎(chǔ)。例如,WebS
34、phereStudioApplicationDeveloper添加了對JSP、servlet、EJB、XML、Web服務(wù)和HYPERLINK/view/1088.htm數(shù)據(jù)庫訪問的支持。Eclipse都有哪些的主要組成部分呢?Eclipse作為一個開放源代碼的軟件開發(fā)項目,目標是成為可進行任何語言開發(fā)的IDE大集合。它主要是由Eclipse項目、Eclipse工具項目和Eclipse技術(shù)項目三個項目組成,其中具體的又包括四個部分,分別是EclipsePlatform、JDT、CDT和PDE。JDT是支持Java開發(fā)的、CDT是支持C開發(fā)的、PDE是用來支持Eclipse插件開發(fā)的,Eclips
35、ePlatform則是一個開放的可擴展IDE,為使用者提供了一個通用的開發(fā)平臺。EclipseSDK(軟件開發(fā)者包)是一個EclipsePlatform、JDT和PDE所生產(chǎn)的組件合并,它們可以一次性打包下載。這些部分一起提供了一個具有性能可靠,特性豐富的開發(fā)環(huán)境,在這個環(huán)境中允許開發(fā)者有效地建造可以無縫連接到EclipsePlatform中的工具。EclipseSDK由Eclipse項目生產(chǎn)的工具和來自其它開放源代碼的HYPERLINK/view/287257.htm第三方軟件組合而成。Eclipse項目生產(chǎn)的軟件以GPL發(fā)布,第三方組件有各自自身的使用許可協(xié)議。第三章系統(tǒng)設(shè)計3.1系統(tǒng)的功
36、能圖整個系統(tǒng)的功能比較多,比較復(fù)雜,如上節(jié)所說,可以分為十多個功能模塊,但是邏輯上理解其實不算困難,系統(tǒng)包括普通計算功能,包括加減乘除;高級計算功能,包括平方,開方,三角函數(shù)(sin,cos),清零功能。下面就讓我們用圖3-1來表示:高級計算功能清除相關(guān)功能加法運算減法運算乘法運算手機計算器除法運算記憶相關(guān)功能圖3-1系統(tǒng)的功能圖以上是系統(tǒng)的功能圖,由于系統(tǒng)的功能眾多,于是按功能進行了合并,沒有完全的一一列舉,其中高級計算功能中包括了上文所述的所有高級計算功能,記憶相關(guān)功能和清除相關(guān)功能同樣包括在了圖示上所列的功能中。由于沒有完全羅列出來,此處特意說明。3.2程序流程圖知道了系統(tǒng)的功能以后,那
37、么系統(tǒng)又是怎么工作的呢?系統(tǒng)通過Form來建立顯示界面,完成后系統(tǒng)開始監(jiān)聽用戶的按鍵輸入,每次輸入系統(tǒng)都會判斷一次用戶輸入的類型,是數(shù)字還是運算符號或者是清除,判斷完后分成不同類型如數(shù)字,符號,特殊運算等等進行進一步的處理,根據(jù)用戶的要求繼續(xù)進行下一步的操作,最后計算出最終結(jié)果并顯示在顯示區(qū)。系統(tǒng)流程圖如圖3-2所示:否開始監(jiān)聽用戶按鍵輸入圖3-2程序流程圖是按照用戶的要求進行計算判斷是否需要結(jié)算結(jié)果在顯示區(qū)顯示計算出的結(jié)果判斷是否是清零操作是系統(tǒng)重置否以上就是系統(tǒng)的流程圖,不過只是一個簡單是示意流程圖,不是整個程序的完整流程圖,整個系統(tǒng)的流程圖由于模塊眾多,整個列舉不易于理解,故此就只采用簡
38、單流程圖作為示例說明,反而更加的簡單明了。3.3系統(tǒng)框圖系統(tǒng)除了總體模塊以外主要由三大模塊來組成,即輸入模塊,顯示模塊和計算模塊。用系統(tǒng)框圖來表示即如圖2-3。總體系統(tǒng)顯示模塊輸入模塊計算模塊圖3-3系統(tǒng)框圖系統(tǒng)這三大模塊都各自包含什么內(nèi)容在下文的系統(tǒng)詳細設(shè)計中會有進一步的說明,此處就暫且略過。3.4總體模塊詳細設(shè)計任何Java程序的實現(xiàn)都需要有MIDlet類作為程序的啟動類??傮w模塊需要完成的任務(wù)主要就是系統(tǒng)的程序啟動類,需要負責整個系統(tǒng)的生命周期。同時在還要在模塊中完成菜單欄的所有功能,即退出程序,記憶數(shù)據(jù),顯示數(shù)據(jù),清除記憶數(shù)據(jù)這四個功能。3.5輸入模塊詳細設(shè)計系統(tǒng)如果想完成計算器中的各
39、種功能,首先用戶要能進行數(shù)據(jù)輸入,由于是在觸屏手機上開發(fā)計算器程序,所以要求輸入可以直接使用觸屏進行,所以在設(shè)計的時候就要充分的考慮要這一點。正是由于考慮到這個特殊的地方,所以在進行模塊設(shè)計中,選擇編寫輸入模塊類的時候會特意選取使用了可以支持觸屏輸入的特殊增強型圖形用戶界面類CustomItem。輸入模塊主要的任務(wù)是描述計算器鍵盤以及實現(xiàn)鍵盤的監(jiān)聽,即當用戶點擊按鍵或者屏幕的時候監(jiān)聽器會去調(diào)用相應(yīng)的處理辦法,本模塊還需要為系統(tǒng)提供了一個較為直觀的鍵盤圖形用戶界面。輸入模塊的功能圖如圖3-5:支持觸屏輸入模塊描述計算器鍵盤實現(xiàn)按鍵監(jiān)聽設(shè)置按鍵監(jiān)聽定義鍵盤按鍵和畫法設(shè)置監(jiān)聽調(diào)用方法圖3-5輸入模塊
40、功能圖3.6顯示模塊詳細設(shè)計作為手機計算器系統(tǒng),顯示部分也是必不可少的一部分。沒有顯示部分就沒有辦法顯示用戶輸入的數(shù)字是否正確,甚至不能顯示計算出的結(jié)果,由此可見顯示模塊即包括輸入的部分也包括輸出的部分。由于考慮到Java開發(fā)中低級界面和高級界面可能產(chǎn)生不兼容等等問題,所以在對顯示模塊進行設(shè)計的時候也選用了同樣的增強型圖形用戶界面類CustomItem。顯示模塊主要要完成的任務(wù)是描述計算器的顯示區(qū),該區(qū)域用于顯示用戶輸入的數(shù)據(jù)以及最終的計算結(jié)果和一些其他信息。同時本模塊還將提供調(diào)用和設(shè)置顯示的具體方法。顯示模塊的功能圖如圖3-6:顯示區(qū)的相關(guān)設(shè)置顯示模塊調(diào)用顯示區(qū)數(shù)據(jù)方法設(shè)置顯示區(qū)數(shù)據(jù)方法圖3
41、-6顯示模塊功能圖3.7計算模塊詳細設(shè)計系統(tǒng)要完成整個的計算器的計算功能,那么計算模塊就是整個系統(tǒng)的重點模塊。沒有計算模塊系統(tǒng)就不能順利的完成計算,就無法達到用戶的要求。所以計算模塊的設(shè)計也是本次系統(tǒng)設(shè)計中的重點。系統(tǒng)想要能在屏幕上顯示出計算器的樣子要有整體的布局,在本模塊中要完成布局的具體設(shè)計,使用戶能夠看到整個計算器的畫面。同時系統(tǒng)想完成計算功能必須要處理用戶的輸入,當輸入模塊的監(jiān)聽傳到計算模塊中時,計算模塊就要根據(jù)相應(yīng)的方法進行進一步的處理。這部分主要是對輸入進行的邏輯判斷,基本會通過ifelse來實現(xiàn)邏輯判斷。計算模塊的功能圖如圖3-7:整體布局數(shù)值輸入判斷記憶相關(guān)功能普通運算功能清零
42、復(fù)位功能高級功能運算輸入判斷邏輯判斷計算模塊高級計算功能第四章系統(tǒng)實現(xiàn)4.1輸入模塊的內(nèi)容輸入模塊主要描述了計算器鍵盤以及鍵盤的監(jiān)聽即主要負責讀取用戶的鍵盤輸入以及響應(yīng)觸屏的按鍵,當用戶點擊按鍵或者屏幕的時候監(jiān)聽器會去調(diào)用相應(yīng)的處理辦法,具體的處理辦法會在相關(guān)的地方進行說明。本模塊最主要還是為系統(tǒng)提供了一個較為直觀的鍵盤圖形用戶界面。4.2輸入模塊的實現(xiàn)在觸屏上提供了各種功能的按鍵,分別是C(清除鍵),XY(平方鍵),sin(計算角度的sin值),cos(計算角度的cos值),X(開方),0,1,2,3,4,5,6,7,8,9,+,-,-/+,*,/,.,=。鍵盤如圖3-1:圖4-1觸屏鍵盤4
43、.3顯示模塊的內(nèi)容顯示模塊描述了計算器的顯示區(qū),即該區(qū)域用于顯示用戶輸入的數(shù)據(jù)以及最終的計算結(jié)果和一些其他信息。顯示區(qū)中設(shè)置了顯示字體,顯示區(qū)的大小,邊框的顏色和大小,同時還設(shè)置了顯示字體的顏色。圖4-2顯示區(qū)4.4顯示模塊的實現(xiàn)顯示區(qū)中使用的是LinearLayout布局。如上節(jié)所說,顯示區(qū)設(shè)置了顯示字體,顯示區(qū)的大小,邊框的顏色和大小,以及顯示字體的顏色,同時還使用了TableLayout布局。顯示模塊具體的實現(xiàn)流程請參照下文代碼。4.5顯示模塊的布局頁面此圖為手機計算器的整體布局4.6計算模塊的內(nèi)容計算模塊則主要描述了計算器的整體,實現(xiàn)了計算器的界面,定義了用戶單擊的處理辦法,通過定義的
44、處理辦法來完成用戶的操作命令,實現(xiàn)用戶的計算要求,這些計算要求包括了數(shù)值的輸入,小數(shù)點的輸入,正負號的輸入,值的輸入,記憶相關(guān)功能的完成,加、減、乘、除、平方、開方、倒數(shù)、三角函數(shù)等等各種計算功能的完成,運算符的替換,初始化系統(tǒng)等等。4.7計算模塊實現(xiàn)重要代碼packagew.w;importandroid.app.Activity;importandroid.os.Bundle;importandroid.view.Menu;importandroid.view.MenuItem;importandroid.view.View;importandroid.view.View.OnClickL
45、istener;importandroid.widget.Button;importandroid.widget.TextView;importandroid.widget.Toast;publicclassJiSuanQiActivityextendsActivityprivateintoption=0;/運算符狀態(tài)privatebooleannewdigital=true;/標記是否是新輸入的數(shù)字privatedoublea=0,b=0;/兩個相加的數(shù)privatedoublec;/表示取正負privateButtonbutton1;privateButtonbutton2;private
46、Buttonbutton3;privateButtonbutton4;privateButtonbutton5;privateButtonbutton6;privateButtonbutton7;privateButtonbutton8;privateButtonbutton9;privateButtonbutton0;privateButtonbuttonjia;privateButtonbuttonjian;privateButtonbuttonchen;privateButtonbuttonchu;privateButtonbuttonzhenfu;privateButtonbutton
47、denyu;privateButtonbuttonxiaoshudian;privateButtonbuttonqingchu;privateButtonbuttonkaifang;privateButtonbuttonzhishu;privateButtonbuttoncos;privateButtonbuttonsin;publicvoidonCreate(BundlesavedInstanceState)super.onCreate(savedInstanceState);setContentView(R.layout.main);button0=(Button)findViewById
48、(R.id.btn0);button1=(Button)findViewById(R.id.btn1);button2=(Button)findViewById(R.id.btn2);button3=(Button)findViewById(R.id.btn3);button4=(Button)findViewById(R.id.btn4);button5=(Button)findViewById(R.id.btn5);button6=(Button)findViewById(R.id.btn6);button7=(Button)findViewById(R.id.btn7);button8=
49、(Button)findViewById(R.id.btn8);button9=(Button)findViewById(R.id.btn9);buttonjia=(Button)findViewById(R.id.jia);buttonjian=(Button)findViewById(R.id.jian);buttonchen=(Button)findViewById(R.id.chen);buttonchu=(Button)findViewById(R.id.chu);buttonzhenfu=(Button)findViewById(R.id.zhenfu);buttondenyu=(
50、Button)findViewById(R.id.denyu);buttonqingchu=(Button)findViewById(R.id.qingchu);buttonxiaoshudian=(Button)findViewById(R.id.xiaoshudian);buttonkaifang=(Button)findViewById(R.id.kaifang);buttonzhishu=(Button)findViewById(R.id.zhishu);buttoncos=(Button)findViewById(R.id.cos);buttonsin=(Button)findVie
51、wById(R.id.sin);button0.setOnClickListener(lisenter);button1.setOnClickListener(lisenter);button2.setOnClickListener(lisenter);button3.setOnClickListener(lisenter);button4.setOnClickListener(lisenter);button5.setOnClickListener(lisenter);button6.setOnClickListener(lisenter);button7.setOnClickListene
52、r(lisenter);button8.setOnClickListener(lisenter);button9.setOnClickListener(lisenter);buttonjia.setOnClickListener(lisenter);buttonjian.setOnClickListener(lisenter);buttonchen.setOnClickListener(lisenter);buttonchu.setOnClickListener(lisenter);buttondenyu.setOnClickListener(lisenter);buttonzhenfu.se
53、tOnClickListener(lisenter);buttonqingchu.setOnClickListener(lisenter);buttonxiaoshudian.setOnClickListener(lisenter);buttonkaifang.setOnClickListener(lisenter);buttonzhishu.setOnClickListener(lisenter);buttoncos.setOnClickListener(lisenter);buttonsin.setOnClickListener(lisenter);privateOnClickListen
54、erlisenter=newOnClickListener()publicvoidonClick(Viewv)TextViewtext=(TextView)findViewById(R.id.text);Strings=text.getText().toString();/獲取文本框顯示的字符串Buttonbtn=(Button)v;Stringt=(String)btn.getText();/獲取按鈕的字符if(btn.getId()=R.id.btn0|btn.getId()=R.id.btn1|btn.getId()=R.id.btn2|btn.getId()=R.id.btn3|btn
55、.getId()=R.id.btn4|btn.getId()=R.id.btn5|btn.getId()=R.id.btn6|btn.getId()=R.id.btn7|btn.getId()=R.id.btn8|btn.getId()=R.id.btn9)if(newdigital)text.setText(s+t);elsetext.setText(s);newdigital=false;return;if(btn.getId()=R.id.zhenfu)/改變數(shù)的正負性/c=Double.parseDouble(s);/text.setText(String.valueOf(-c);/r
56、eturn;if(s.length()=0)a=0;b=0;option=0;newdigital=true;text.setText();return;elseif(s!=)c=Double.parseDouble(s);text.setText(String.valueOf(-c);newdigital=true;return;if(btn.getId()=R.id.jia)/加a=Double.parseDouble(s);option=1;text.setText();return;if(btn.getId()=R.id.jian)/減a=Double.parseDouble(s);o
57、ption=2;text.setText();return;if(btn.getId()=R.id.chen)/乘a=Double.parseDouble(s);option=3;text.setText();return;if(btn.getId()=R.id.chu)/除a=Double.parseDouble(s);option=4;text.setText();return;if(btn.getId()=R.id.qingchu)/清除a=0;b=0;option=0;newdigital=true;text.setText();return;if(btn.getId()=R.id.kaifang)/開方if(s.length()=0)a=
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 家長小組沙龍活動方案
- 宴席預(yù)定活動方案
- 宣傳活動大促活動方案
- 小型火鍋開業(yè)活動方案
- 安徽健康活動方案
- 小學冰雪體驗活動方案
- 小型試吃活動方案
- 小學春季消防活動方案
- 小型家宴地產(chǎn)活動方案
- 家庭服務(wù)活動方案
- 沃爾瑪收貨規(guī)定
- 微生物實驗實驗一顯微鏡的使用及微生物形態(tài)觀察
- 屠宰場安全隱患排查和治理制度
- 全國《法律職業(yè)資格考試》試卷一預(yù)熱階段同步訓練卷(附答案)
- 2022年丹東市元寶區(qū)社區(qū)工作者招聘筆試題庫及答案解析
- 小學道德與法治人教五年級上冊(統(tǒng)編)第三單元我們的國土我們的家園-愛國教案
- 藝術(shù)欣賞完整版課件全套ppt教程(最新)
- GB∕T 2518-2019 連續(xù)熱鍍鋅和鋅合金鍍層鋼板及鋼帶
- 土地項目測算表_模板
- 教育培訓機構(gòu)輔導老師月度績效考核表(KPI)
- 立式水輪機組軸線調(diào)整及導軸承的間隙分配ppt課件
評論
0/150
提交評論