基于A(yíng)ndroid計(jì)算器的開(kāi)發(fā)及測(cè)試_第1頁(yè)
基于A(yíng)ndroid計(jì)算器的開(kāi)發(fā)及測(cè)試_第2頁(yè)
基于A(yíng)ndroid計(jì)算器的開(kāi)發(fā)及測(cè)試_第3頁(yè)
基于A(yíng)ndroid計(jì)算器的開(kāi)發(fā)及測(cè)試_第4頁(yè)
基于A(yíng)ndroid計(jì)算器的開(kāi)發(fā)及測(cè)試_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、-. z.實(shí) 訓(xùn) 報(bào) 告實(shí)訓(xùn)工程名稱(chēng)基于A(yíng)ndroid計(jì)算器的開(kāi)發(fā)與測(cè)試二 級(jí) 學(xué) 院 信息工程學(xué)院 專(zhuān) 業(yè) 班 級(jí) 11級(jí) 姓 名學(xué) 號(hào)日 期2014-11-19工程名稱(chēng)基于安卓計(jì)算器的開(kāi)發(fā)與測(cè)試地點(diǎn)教13 603報(bào) 告 容在本報(bào)告中,我們主要介紹了國(guó)內(nèi)目前手機(jī)系統(tǒng)和軟件的現(xiàn)狀和開(kāi)展,針對(duì)這方面我們?cè)O(shè)計(jì)了基于A(yíng)ndroid計(jì)算器。報(bào)告內(nèi)容大致分為三個(gè)局部。第一局部首先介紹了需求分析,其中介紹了計(jì)算器最根本的功能。之后還有一些按鍵的設(shè)置以及計(jì)算器的根本功能。第二局部我們介紹了關(guān)于計(jì)算器的總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)其中我們用了兩個(gè)流程圖來(lái)表示,分別是程序設(shè)計(jì)流程圖和軟件設(shè)計(jì)流程圖。然后還包含了計(jì)算器模塊

2、的設(shè)計(jì)。第三局部為計(jì)算器的測(cè)試局部,其中我們對(duì)計(jì)算器進(jìn)展了多方的測(cè)試。此外還有測(cè)試用例圖。教師評(píng)語(yǔ)成績(jī): 教師簽名: 摘 要Android是當(dāng)今最重要的手機(jī)開(kāi)發(fā)平臺(tái)之一,它是建立在Java根底之上的,能夠迅速建立手機(jī)軟件的解決方案。Android的功能十分強(qiáng)大,成為當(dāng)今軟件行業(yè)的一股新興力量。Android基于Linu*平臺(tái),由操作系統(tǒng)、中間件、用戶(hù)界面和應(yīng)用軟件組成,具有以下5個(gè)特點(diǎn):開(kāi)放性、應(yīng)用程序無(wú)界限、應(yīng)用程序是在平等條件下創(chuàng)立的,應(yīng)用程序可以輕松的嵌入網(wǎng)絡(luò)、應(yīng)用程序可以并行運(yùn)行。而簡(jiǎn)單計(jì)算器又是手機(jī)上必備的小程序,所以此次創(chuàng)新實(shí)踐很有意義。并且具有很強(qiáng)的使用性。關(guān)鍵字:計(jì)算器,And

3、roid,移動(dòng)設(shè)備目錄TOC o 1-3 h u HYPERLINK l _Toc4045211901 緒論 PAGEREF _Toc404521190 h 5HYPERLINK l _Toc4045211911.1研究背景 PAGEREF _Toc404521191 h 5HYPERLINK l _Toc4045211922 游戲系統(tǒng)開(kāi)發(fā)平臺(tái) PAGEREF _Toc404521192 h 6HYPERLINK l _Toc4045211933 系統(tǒng)分析與設(shè)計(jì) PAGEREF _Toc404521193 h 7HYPERLINK l _Toc4045211943.1可行性研究 PAGEREF

4、 _Toc404521194 h 7HYPERLINK l _Toc4045211953.2系統(tǒng)的需求分析 PAGEREF _Toc404521195 h 7HYPERLINK l _Toc4045211963.3系統(tǒng)的優(yōu)勢(shì) PAGEREF _Toc404521196 h 8HYPERLINK l _Toc4045211973.4系統(tǒng)的流程 PAGEREF _Toc404521197 h 8HYPERLINK l _Toc4045211984.模板設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc404521198 h 9HYPERLINK l _Toc4045211995 測(cè)試用列和結(jié)果 PAGEREF

5、_Toc404521199 h 12HYPERLINK l _Toc4045212005.1測(cè)試用列 PAGEREF _Toc404521200 h 12HYPERLINK l _Toc4045212015.2測(cè)試用列展示圖 PAGEREF _Toc404521201 h 12HYPERLINK l _Toc4045212026小結(jié) PAGEREF _Toc404521202 h 15HYPERLINK l _Toc404521203參考文獻(xiàn) PAGEREF _Toc404521203 h 16HYPERLINK l _Toc404521204附錄: PAGEREF _Toc404521204

6、 h 17-. z.1 緒論研究背景計(jì)算器背景目前手機(jī)可以說(shuō)是普及率非常高的電子設(shè)備了,由于其便于攜帶,使用方便,資費(fèi)適中等等原因,現(xiàn)在手機(jī)已經(jīng)在一定程度開(kāi)場(chǎng)代替固定的通話(huà)功能,以及一些原來(lái)電腦軟件上的功能了。手機(jī)上的軟件也隨著手機(jī)的開(kāi)展變得豐富起來(lái)了,時(shí)至今日已經(jīng)出現(xiàn)了很多專(zhuān)門(mén)制作手機(jī)軟件的公司,雖然制作的多是游戲軟件,但是一些輔助性的工具軟件也有了很多.我們?cè)诖舜蜗到y(tǒng)中所做的工作主要是設(shè)計(jì)整個(gè)系統(tǒng)以及利用編程語(yǔ)言實(shí)現(xiàn)整個(gè)系統(tǒng),使系統(tǒng)能夠正確的運(yùn)行計(jì)算功能。Android系統(tǒng)簡(jiǎn)介Android 系統(tǒng)構(gòu)架簡(jiǎn)介:Android是一個(gè)基于Linu*V2.6內(nèi)核的交互性操作環(huán)境,同時(shí)它也是一個(gè)分層系

7、統(tǒng),Android系統(tǒng)架構(gòu)顯示如下列圖1.1。圖1.1系統(tǒng)架構(gòu)圖應(yīng)用層由所有的Android應(yīng)用程序組成。其中包括電子客戶(hù)端,SMS程序,地圖,瀏覽器,聯(lián)系人及其他。所有的應(yīng)用程序都是用Java編程語(yǔ)言編寫(xiě)的。1.Activity 顧名思義,Activity就是活動(dòng)。應(yīng)用程序必須至少包含一個(gè)Activity。Activity提供了一個(gè)虛擬的用戶(hù)接口,每一個(gè)Activity都有一個(gè)默認(rèn)的窗口可以用來(lái)顯示用戶(hù)界面,一般情況下,它是全屏的窗口。例如,影音播放軟件的每個(gè)用戶(hù)界面就是Activity。 2.Service Service與Activity的主要區(qū)別在于,Service是在后臺(tái)活動(dòng)的,它沒(méi)

8、有用戶(hù)界面。典型的應(yīng)用場(chǎng)景是,用戶(hù)選擇了一個(gè)播放列表開(kāi)場(chǎng)播放后,離開(kāi)了該用戶(hù)界面(Activity),如果仍然希望歌曲不會(huì)暫停,就可以用Service去調(diào)用播放器,而不是在A(yíng)ctivity中調(diào)用播放器。 3.Intent 在A(yíng)ndroid中,每一個(gè)行為都可以抽象為一個(gè)Intent。可以簡(jiǎn)單地把Intent理解為一個(gè)包含了數(shù)據(jù)的消息。Intent可以用于啟動(dòng)一個(gè)Act-ivity或者Service,可以用于進(jìn)程間的通信。事實(shí)上,應(yīng)用程序的啟動(dòng)也是通過(guò)Intent實(shí)現(xiàn)的。 4.Content providers Android平臺(tái)內(nèi)置了一套SQLite數(shù)據(jù)儲(chǔ)存機(jī)制,并包含一系列管理SQLite D

9、atabase的相關(guān)方法。在應(yīng)用程序中,可以通過(guò)Content prov-iders訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)。每個(gè)Content provider都定義了一系列的方法用于訪(fǎng)問(wèn)它對(duì)應(yīng)的數(shù)據(jù)庫(kù)。應(yīng)用程序在新建數(shù)據(jù)庫(kù)時(shí)也可以定義相應(yīng)的Con-tent provider用于向其他應(yīng)用程序共享數(shù)據(jù)。一般情況下,應(yīng)用程序不直接調(diào)用Content provider定義的函數(shù),而是通過(guò)ContentResolver間接調(diào)用。2 游戲系統(tǒng)開(kāi)發(fā)平臺(tái)采用Eclipse開(kāi)發(fā)工具,在Windows 7下進(jìn)展,基于A(yíng)ndroid 操作系統(tǒng),使用的語(yǔ)言是Java語(yǔ)言。環(huán)境搭建:JDK安裝Eclipse安裝Android SDK安裝ADT

10、安裝創(chuàng)立AVDJDKJava Development Kit是Sun Microsystems針對(duì)Java開(kāi)發(fā)員的產(chǎn)品。自從Java誕生以來(lái),JDK已經(jīng)成為最廣泛的Java SDK。JDK是整個(gè)Java的核心內(nèi)容,包括了Java運(yùn)行環(huán)境、Java工具和Java根底類(lèi)庫(kù)三局部。從Sun的JDK1.5開(kāi)場(chǎng),提供了一些非常使用的功能,其版本也不斷更新,運(yùn)行效率得到了非常大的提高。Eclipse是一個(gè)開(kāi)放源代碼的、基于Java的可擴(kuò)展開(kāi)發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組效勞,用于通過(guò)插件組建構(gòu)建開(kāi)發(fā)環(huán)境。Eclipse附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括Java開(kāi)發(fā)工具Java Development

11、 Kit,JDK。Android SDK即軟件開(kāi)發(fā)工具包software development kit。被軟件開(kāi)發(fā)工程師用于為特定的軟件包、軟件架構(gòu)、硬件平臺(tái)、操作系統(tǒng)等建立應(yīng)用軟件工具的集合。因此Android SDK是Android專(zhuān)屬的開(kāi)發(fā)工具包。其授權(quán)協(xié)議為Apache,開(kāi)發(fā)語(yǔ)言為Java、需要Android操作系統(tǒng)的支持。23 系統(tǒng)分析與設(shè)計(jì)可行性研究可行性研究是為了弄清楚系統(tǒng)開(kāi)發(fā)的工程是不是可以實(shí)現(xiàn)和值得進(jìn)展研究的過(guò)程,實(shí)際上是一次大大簡(jiǎn)化系統(tǒng)分析和系統(tǒng)設(shè)計(jì)的過(guò)程,所以,進(jìn)展可執(zhí)行性的分析是非常必要的,也是很重要的,經(jīng)過(guò)最初的設(shè)計(jì)目標(biāo)和進(jìn)展的實(shí)時(shí)調(diào)查得出以下四點(diǎn)的可行性分析:1技

12、術(shù)可行性:Eclipse + Android ADT的技術(shù)已經(jīng)較為成熟,通過(guò)SUN公司現(xiàn)被ORCEL公司收購(gòu)?fù)瞥龅目缙脚_(tái)、動(dòng)態(tài)的JAVA語(yǔ)言進(jìn)展開(kāi)發(fā)。2運(yùn)行可行性:該系統(tǒng)需要Android虛擬機(jī)環(huán)境,Eclipse中安裝ADT,DDMS等Google Android相關(guān)插件。其運(yùn)行環(huán)境已經(jīng)相當(dāng)穩(wěn)定,它功能豐富,包括了完備的Android程序的編碼、調(diào)試、測(cè)試和發(fā)布功能,其中支持所有Android應(yīng)用開(kāi)發(fā)相關(guān)技術(shù),包括SQLite,Skia,3D制作,Android *ML,能夠很好的發(fā)布Android的應(yīng)用程序APK包。3法律可行性:因?yàn)槭亲灾鏖_(kāi)發(fā)設(shè)計(jì),所以不會(huì)構(gòu)成侵權(quán),在法律上是可行的。通過(guò)

13、以上的可行性分析,將采用Eclipse+Android ADT + DDMS技術(shù),運(yùn)用JAVA語(yǔ)言進(jìn)展系統(tǒng)的開(kāi)發(fā)。系統(tǒng)的需求分析根據(jù)分析需求,這個(gè)系統(tǒng)必須實(shí)現(xiàn)以下的功能:(1) 實(shí)現(xiàn)簡(jiǎn)單的數(shù)字計(jì)算功能。作為計(jì)算器,其核心就是加減乘除。(2) 能夠在手機(jī)里面以良好的界面。簡(jiǎn)單計(jì)算器能夠給予用戶(hù)良好的人機(jī)互動(dòng)界面。系統(tǒng)的優(yōu)勢(shì)Android是以L(fǎng)inu*為核心的手機(jī)操作平臺(tái),作為一款開(kāi)放式的操作系統(tǒng),隨著Android的快速開(kāi)展,如今已允許開(kāi)發(fā)者使用多種編程語(yǔ)言來(lái)開(kāi)發(fā)Android應(yīng)用程序,而不再是以前只能使用Java開(kāi)發(fā)Android應(yīng)用程序的單一局面,因而受到眾多開(kāi)發(fā)者的歡送,成為真正意義上的開(kāi)

14、放式操作系統(tǒng)。3.4系統(tǒng)的流程本程序的流程是一個(gè)開(kāi)機(jī)畫(huà)面,開(kāi)機(jī)畫(huà)面之后就是計(jì)算機(jī)的主頁(yè)面了所有這個(gè)簡(jiǎn)單程序的流程圖如圖3.1所示。開(kāi)場(chǎng)顯示計(jì)算機(jī)界面輸入數(shù)值選擇功能鍵判斷選項(xiàng)加減乘除clear完畢圖 3.1 流程圖4.模板設(shè)計(jì)與實(shí)現(xiàn)4.1計(jì)算模塊詳細(xì)設(shè)計(jì)系統(tǒng)要完成整個(gè)的計(jì)算器的計(jì)算功能,則計(jì)算模塊就是整個(gè)系統(tǒng)的重點(diǎn)模塊。沒(méi)有計(jì)算模塊系統(tǒng)就不能順利的完成計(jì)算,就無(wú)法到達(dá)用戶(hù)的要求。所以計(jì)算模塊的設(shè)計(jì)也是本次系統(tǒng)設(shè)計(jì)中的重點(diǎn)。 系統(tǒng)想要能在屏幕上顯示出計(jì)算器的樣子要有整體的布局,在本模塊中要完成布局的具體設(shè)計(jì),使用戶(hù)能夠看到整個(gè)計(jì)算器的畫(huà)面。同時(shí)系統(tǒng)想完成計(jì)算功能必須要處理用戶(hù)的輸入,當(dāng)輸入模塊的

15、監(jiān)聽(tīng)傳到計(jì)算模塊中時(shí),計(jì)算模塊就要根據(jù)相應(yīng)的方法進(jìn)展進(jìn)一步的處理。這局部主要是對(duì)輸入進(jìn)展的邏輯判斷,根本會(huì)通過(guò)if else來(lái)實(shí)現(xiàn)邏輯判斷。4.2用戶(hù)界面設(shè)計(jì)界面設(shè)計(jì)應(yīng)該盡量簡(jiǎn)潔而美觀(guān),應(yīng)該具有良好的交互性。當(dāng)然,我們每個(gè)人可以根據(jù)自己的喜好來(lái)進(jìn)展設(shè)計(jì),根據(jù)我個(gè)人的喜好,我最終設(shè)計(jì)出來(lái)的計(jì)算器界面如圖4.1所示。 圖4.1 界面圖局部代碼: 4.3計(jì)算模塊設(shè)計(jì)的實(shí)現(xiàn)計(jì)算模塊則主要描述了計(jì)算器的整體,實(shí)現(xiàn)了計(jì)算器的界面,定義了用戶(hù)單擊的處理方法,通過(guò)定義的處理方法來(lái)完成用戶(hù)的操作命令,實(shí)現(xiàn)用戶(hù)的計(jì)算要求,這些計(jì)算要求包括了數(shù)值的輸入,小數(shù)點(diǎn)的輸入,正負(fù)號(hào)的輸入,記憶相關(guān)功能的完成,加、減、乘、除

16、等各種計(jì)算功能的完成,運(yùn)算符的替換,初始化系統(tǒng)等等。局部代碼:private class mandAction implements OnClickListener Override public void onClick(View view) Button btn = (Button) view; String inputmand = (String) btn.getTe*t(); if (firstFlag) / 首次輸入-的情況 if (inputmand.equals(-) editTe*t.setTe*t(-);/ 顯示區(qū)域的內(nèi)容設(shè)置為- firstFlag = false;/ 改變

17、首次輸入的標(biāo)記 else if (!clearFlag) / 如果flag=false不需要清空顯示區(qū)的值,就調(diào)用方法計(jì)算 jsp(Double.parseDouble(editTe*t.getTe*t().toString();/ 保存顯示區(qū)域的值,并計(jì)算 / 保存你點(diǎn)擊的運(yùn)算符 lastmand = inputmand; clearFlag = true;/ 因?yàn)槲疫@里已經(jīng)輸入過(guò)運(yùn)算符, 加、減、乘、除等各種計(jì)算功能的實(shí)現(xiàn): private void jsp(double *) if (lastmand.equals(+) result += *; else if (lastmand.eq

18、uals(-) result -= *; else if (lastmand.equals(*) result *= *; else if (lastmand.equals(/) result /= *; else if (lastmand.equals(=) result = *; editTe*t.setTe*t( + result); 5 測(cè)試用列和結(jié)果5.1測(cè)試用列通過(guò)以下的測(cè)試用例進(jìn)展對(duì)游戲各功能模塊的測(cè)試并加以修改,如表5.1所示。測(cè)試編號(hào)測(cè)試輸入期望結(jié)果實(shí)際結(jié)果11+23.03.021*22.02.031/20.50.541/0無(wú)結(jié)果錯(cuò)誤51-34.0-2.06-2程序錯(cuò)誤程序錯(cuò)

19、誤表5.1 測(cè)試用例表5.2測(cè)試用列展示圖1. 測(cè)試1+2時(shí)的狀態(tài)如圖5.2所示:圖5.2測(cè)試結(jié)果圖2.測(cè)試1*2時(shí)如圖5.3所示:圖5.3測(cè)試結(jié)果圖3. 測(cè)試1/2時(shí)如圖5.4所示:圖5.4測(cè)試結(jié)果圖測(cè)試1/0時(shí)如圖5.5所示:圖5.5測(cè)試結(jié)果圖5.測(cè)試1-3如圖5.6所示:圖5.6測(cè)試結(jié)果圖6.測(cè)試輸入-2時(shí)如圖5.7所示: 圖5.7測(cè)試結(jié)果圖6小結(jié)這次工程android計(jì)算器工程設(shè)計(jì)是在eclipse平臺(tái)下設(shè)計(jì),到現(xiàn)在為止,該系統(tǒng)的功能根本符合了普通計(jì)算器的要求,整個(gè)系統(tǒng)界面簡(jiǎn)單明了,使用起來(lái)十分方便,具有普通計(jì)算器的根本功能,同時(shí)拓展了一些普通計(jì)算器上沒(méi)有的局部科學(xué)計(jì)算功能。在整個(gè)開(kāi)發(fā)

20、過(guò)程中,從需求分析到總體架構(gòu)的構(gòu)思,到最后代碼的編寫(xiě)我投入了大量的時(shí)間和精力,對(duì)系統(tǒng)中的每個(gè)功能都進(jìn)展了反復(fù)的調(diào)試,修改。因?yàn)檫@是我是第一次系統(tǒng)性的進(jìn)展軟件的開(kāi)發(fā),不管是在知識(shí)層面、開(kāi)發(fā)平臺(tái)的使用層面還是經(jīng)歷方面都有著很大的欠缺和缺乏,因此本軟件難免會(huì)有一些功能不完善、界面不美觀(guān)等一些不盡如人意的地方,但是再短短一個(gè)星期的時(shí)間內(nèi),我已經(jīng)進(jìn)展了很大的努力。通過(guò)這個(gè)android計(jì)算器工程設(shè)計(jì),我不經(jīng)穩(wěn)固了我們?cè)跁?shū)本上學(xué)到和平時(shí)教師傳授的知識(shí),而且還學(xué)到了許多書(shū)本上學(xué)不到的知識(shí),并運(yùn)用了網(wǎng)絡(luò)這個(gè)平臺(tái)查詢(xún)一些不明白的知識(shí)點(diǎn)。指導(dǎo)教師在我軟件代碼編寫(xiě)和后期軟件調(diào)試期間,給我很大的幫助。要謝謝各位幫過(guò)我

21、的教師和同學(xué)。這次的實(shí)驗(yàn)讓我對(duì)我的學(xué)過(guò)的知識(shí)有了深一步的了解。參考文獻(xiàn)1 *敏.移動(dòng)終端的Android移植與應(yīng)用程序設(shè)計(jì)D. *電子科技大學(xué) 2011 2 王蕾.*招行Android手機(jī)銀行匯率換算模塊的設(shè)計(jì)與實(shí)現(xiàn)D. *大學(xué) 2011 3 施金蘭.基于A(yíng)ndroid平臺(tái)的網(wǎng)絡(luò)共享研究與實(shí)現(xiàn)D. 華東師*大學(xué) 2011 4 趙建勛.基于A(yíng)ndroid平臺(tái)的移動(dòng)位置效勞的開(kāi)發(fā)與實(shí)現(xiàn)J. 現(xiàn)代商貿(mào)工業(yè). 2010(20) 5 李林濤,朱珊虹. 基于A(yíng)ndroid系統(tǒng)的手機(jī)游戲黑白棋的設(shè)計(jì)與實(shí)現(xiàn)J. *學(xué)院學(xué)報(bào)(自然科學(xué)版). 2011(03) 6 叢秋波. 用于A(yíng)ndroid手機(jī)操作系統(tǒng)的視頻引

22、擎J. 電子設(shè)計(jì)技術(shù). 2010(07) 7 王豐,付明棟,馮海亮,施玉海. 智能終端圖形用戶(hù)界面設(shè)計(jì)與實(shí)現(xiàn)J. 播送電視信息. 2011(08)8 溫敏,艾麗蓉,王志國(guó). Android智能手機(jī)系統(tǒng)中文件實(shí)時(shí)監(jiān)控的研究與實(shí)現(xiàn)J. 科學(xué)技術(shù)與工程. 2009(07) 9 *牛.基于A(yíng)ndroid平臺(tái)的數(shù)字電視機(jī)頂盒模擬器的研究與開(kāi)發(fā)D. *大學(xué) 2012 10 王康.Android RIL研究及其在無(wú)線(xiàn)通訊模塊上的實(shí)現(xiàn)D. *科技大學(xué) 2012 附錄:package .e*ample;import android.app.Activity; import android.os.Bundle;

23、import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditTe*t; public class MainActivity e*tends Activity private Button btnNum = new Button11;/ 數(shù)值按鈕 private Button btnmand = new Button5;/ 符號(hào)按鈕 private EditTe*t editTe*t = null;/ 顯示區(qū)域

24、 private Button btnClear = null; / clear按鈕 private String lastmand; / 用于保存運(yùn)算符 private boolean clearFlag; / 用于判斷是否清空顯示區(qū)域的值,true需要,false不需要 private boolean firstFlag; / 用于判斷是否是首次輸入,true首次,false不是首次 private double result; / 計(jì)算結(jié)果 public MainActivity() / 初始化各項(xiàng)值 result = 0; / *的值 firstFlag = true; / 是首次運(yùn)算

25、 clearFlag = false; / 不需要清空 lastmand = =; / 運(yùn)算符 Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); / 獲取運(yùn)算符 btnmand0 = (Button) findViewById(R.id.add); btnmand1 = (Button) findViewById(R.id.subtract); btnmand2 = (Button

26、) findViewById(R.id.multiply); btnmand3 = (Button) findViewById(R.id.divide); btnmand4 = (Button) findViewById(R.id.equal); / 獲取數(shù)字 btnNum0 = (Button) findViewById(R.id.num0); btnNum1 = (Button) findViewById(R.id.num1); btnNum2 = (Button) findViewById(R.id.num2); btnNum3 = (Button) findViewById(R.id.

27、num3); btnNum4 = (Button) findViewById(R.id.num4); btnNum5 = (Button) findViewById(R.id.num5); btnNum6 = (Button) findViewById(R.id.num6); btnNum7 = (Button) findViewById(R.id.num7); btnNum8 = (Button) findViewById(R.id.num8); btnNum9 = (Button) findViewById(R.id.num9); btnNum10 = (Button) findViewB

28、yId(R.id.point); / 初始化顯示結(jié)果區(qū)域 editTe*t = (EditTe*t) findViewById(R.id.result); editTe*t.setTe*t(0.0); / 實(shí)例化監(jiān)聽(tīng)器對(duì)象 NumberAction na = new NumberAction(); mandAction ca = new mandAction(); for (Button bc : btnmand) bc.setOnClickListener(ca); for (Button bc : btnNum) bc.setOnClickListener(na); / clear按鈕的動(dòng)

29、作 btnClear = (Button) findViewById(R.id.clear); btnClear.setOnClickListener(new OnClickListener() Override public void onClick(View view) editTe*t.setTe*t(0.0); / 初始化各項(xiàng)值 result = 0; / *的值 firstFlag = true; / 是首次運(yùn)算 clearFlag = false; / 不需要清空 lastmand = =; / 運(yùn)算符 ); / 數(shù)字按鈕監(jiān)聽(tīng)器 private class NumberAction

30、 implements OnClickListener Override public void onClick(View view) Button btn = (Button) view; String input = btn.getTe*t().toString(); if (firstFlag) / 首次輸入 / 一上就.,就什么也不做 if (input.equals(.) return; / 如果是0.0的話(huà),就清空 if (editTe*t.getTe*t().toString().equals(0.0) editTe*t.setTe*t(); firstFlag = false;/ 改變是否首次輸入的標(biāo)記值 else String editTe*tStr = editTe*t.getTe*t().toString(); / 判斷顯示區(qū)域的值里面是否已經(jīng)有.,如果有,輸入的又是.,就什么都不做 if (editTe*tStr.inde*Of(.) != -1 & input.equals(.) return; / 判斷顯示區(qū)域的值里面只有-,輸入的又是.,就什么都不做 if (editTe*tStr.eq

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論