2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  學(xué)年論文</b></p><p>  (課程論文、課程設(shè)計(jì))</p><p>  題  目: 基于Android計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn) </p><p>  作  者   </p><p>  所在學(xué)院: 信息科學(xué)與工程學(xué)院

2、    </p><p>  專業(yè)年級(jí): 通行09-1    </p><p>  指導(dǎo)教師: </p><p>  職  稱:           </p><p>  2012 年 6 月 24 日<

3、;/p><p>  基于Android計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)</p><p><b>  摘要</b></p><p>  隨著社會(huì)的發(fā)展,經(jīng)濟(jì)水平的提高,手機(jī)越來越普及。同時(shí)伴隨著移動(dòng)互聯(lián)網(wǎng)技術(shù)的發(fā)展,手機(jī)的功能也變得越來越豐富。從原來只具有簡(jiǎn)單通信功能的非智能手機(jī)到現(xiàn)在具有手機(jī)操作系統(tǒng),除通話功能以外,還集上網(wǎng)、聊天、炒股、收發(fā)郵件等功能于一身的智

4、能手機(jī)系統(tǒng)。由Google公司牽頭眾多實(shí)力雄厚的軟硬件廠商加盟成立了OMS聯(lián)盟,并推出的Android平臺(tái)手機(jī)系統(tǒng)。作為時(shí)代的新生兒,Android手機(jī)操作平臺(tái)有著得天獨(dú)厚的優(yōu)勢(shì)廣闊的發(fā)展前景。而計(jì)算器作為現(xiàn)在人們?nèi)粘I钪谐S玫囊环N工具也已經(jīng)可以說是人們?nèi)粘I钪斜夭豢缮俚墓ぞ吡?。?jì)算器的發(fā)展同樣經(jīng)歷了漫長(zhǎng)的過程,凝聚無數(shù)先人的智慧,甚至連計(jì)算機(jī)的發(fā)展都可以說是源于計(jì)算器的發(fā)展。本文正是基于Android平臺(tái)開發(fā)的計(jì)算器。論文主要闡述

5、以面向?qū)ο蟮某绦蜷_發(fā)語言eclipse為開發(fā)工具, 設(shè)計(jì)并實(shí)現(xiàn)基于Android的計(jì)算器。</p><p>  關(guān)鍵詞:手機(jī) Android 用戶界面 計(jì)算器</p><p><b>  一.引言</b></p><p><b>  1.智能手機(jī)簡(jiǎn)介</b></p><p> 

6、 智能手機(jī)具有獨(dú)立的操作系統(tǒng),像個(gè)人電腦一樣支持用戶自行安裝軟件、游戲等第三方服務(wù)商提供的程序,并通過此類程序不斷對(duì)手機(jī)的功能進(jìn)行擴(kuò)充,同時(shí)可通過移動(dòng)通訊網(wǎng)絡(luò)來實(shí)現(xiàn)無線網(wǎng)絡(luò)接入。</p><p>  智能手機(jī)同傳統(tǒng)手機(jī)外觀和操作方式類似,不僅包含觸摸屏也包含非觸摸屏、數(shù)字鍵盤手機(jī)和全尺寸鍵盤操作的手機(jī)。但是傳統(tǒng)手機(jī)都使用的是生產(chǎn)廠商自行開發(fā)的封閉式操作系統(tǒng),所能實(shí)現(xiàn)的功能非常有限,不具備智能手機(jī)的擴(kuò)展性。<

7、/p><p>  智能手機(jī)為用戶提供了足夠的屏幕尺寸和帶寬,既方便隨身攜帶,又為軟件運(yùn)行和內(nèi)容服務(wù)提供個(gè)廣闊的舞臺(tái),很多增值業(yè)務(wù)可以就此展開,如:股票、新聞、天氣、交通、商品、應(yīng)用程序下載、音樂圖片下載等等。結(jié)合3G通信網(wǎng)絡(luò)的支持,智能手機(jī)的發(fā)展,勢(shì)必將成為一個(gè)功能強(qiáng)大,集通話、短信、網(wǎng)絡(luò)接入、影視娛樂為一體的綜合性個(gè)人手持終端設(shè)備。</p><p>  2.現(xiàn)今智能手機(jī)的發(fā)展</p&g

8、t;<p> ?。?). 四核處理器時(shí)代的即將到來</p><p>  今年的智能手機(jī)使用的處理器主要還是雙核處理器,2012年,更多的智能手機(jī)將運(yùn)行4核處理器。前幾天我們剛報(bào)道過一款4核處理器 Tegra 3,這是世界上首款4核心移動(dòng)芯片,性能表現(xiàn)要優(yōu)于之前雙核心的 Tegra 芯片3倍,在多任務(wù)處理,網(wǎng)絡(luò)瀏覽和應(yīng)用表現(xiàn)流暢度上都有明顯提升。</p><p> ?。?).

9、越來越多的智能手機(jī)將支持近場(chǎng)通信技術(shù)(NFC)</p><p>  NFC 技術(shù)能夠逐漸取代信用卡來實(shí)現(xiàn)移動(dòng)支付,用戶只需拿著支持 NFC 的智能手機(jī)在支付設(shè)備旁一搖就能實(shí)現(xiàn)移動(dòng)支付。</p><p>  (3). 720p 的分辨率將成為高端智能機(jī)的標(biāo)準(zhǔn)之一</p><p>  三星 Galaxy Nexus 和 HTC Rezound 手機(jī)的分辨率都已達(dá)到720

10、p。到明年,720p 的分辨率將成為高端智能手機(jī)的一項(xiàng)標(biāo)準(zhǔn)。</p><p> ?。?). LTE 技術(shù)的普及</p><p>  到明年,支持4G LTE 也能成為高端智能機(jī)的一個(gè)標(biāo)準(zhǔn),但愿到時(shí)手機(jī)廠商和無線運(yùn)營商能解決智能手機(jī)的電池續(xù)航問題。</p><p>  (5). 聲音控制技術(shù)的不斷發(fā)展</p><p>  語音助手 Siri 是

11、 iPhone 4S 最大亮點(diǎn),引起了廣泛關(guān)注。谷歌和微軟無疑也會(huì)將越來越多的聲音控制技術(shù)引入到自己的智能手機(jī)平臺(tái)。</p><p> ?。?). 價(jià)格競(jìng)爭(zhēng)更為激烈</p><p>  微軟 CEO 也表示,微軟也將盡力降低 Windows Phone 智能手機(jī)的生產(chǎn)成本,從而降低銷售價(jià)格。</p><p> ?。?). 增強(qiáng)現(xiàn)實(shí)技術(shù)日益成熟</p>

12、<p>  目前,增強(qiáng)現(xiàn)實(shí)方面的手機(jī)應(yīng)用越來越來越多。增強(qiáng)現(xiàn)實(shí)應(yīng)用功能也將成為未來智能手機(jī)的一個(gè)必不可少的功能。谷歌不久前剛剛發(fā)布了升級(jí)版地增強(qiáng)現(xiàn)實(shí)瀏覽器 Live View。</p><p><b>  2.課題意義</b></p><p>  隨著通信技術(shù)的發(fā)展,3G從制定出到現(xiàn)在越來越被人們關(guān)注?!?G”或“三代”是第三代移動(dòng)技術(shù)的簡(jiǎn)稱,是指支持告訴數(shù)

13、據(jù)傳輸?shù)姆涓C移動(dòng)通信技術(shù)。目前3G存在四種標(biāo)準(zhǔn):CDMA2000、WCDMA-SCDMA、WIMAX。其中TD-SCDMA是由中國大陸?yīng)氉灾贫ǖ?G標(biāo)準(zhǔn)。</p><p>  為了推動(dòng)我國智能手機(jī)的發(fā)展,實(shí)現(xiàn)多功能的智能手機(jī),方便人們豐富多彩而又快節(jié)奏的生活。本文正式基于Android 平臺(tái)開發(fā)的計(jì)算器。論文主要闡述以面向?qū)ο蟮某绦蜷_發(fā)語言eclipse為開發(fā)工具,基于Android之上設(shè)計(jì)一個(gè)計(jì)算器。本文的目標(biāo)

14、就是設(shè)計(jì)并實(shí)現(xiàn)基于Android的計(jì)算器。論文首先介紹了Android開發(fā)平臺(tái)和環(huán)境以及Android工程的重要部分,然后著重針對(duì)計(jì)算器的系統(tǒng)設(shè)計(jì)的具體實(shí)現(xiàn),最后現(xiàn)在計(jì)算器的各種功能并得到了很多好的驗(yàn)證。</p><p>  二.Android開發(fā)平臺(tái)</p><p>  2.1Android平臺(tái)具有以下優(yōu)點(diǎn):</p><p> ?。?)平臺(tái)的開放性允許任何廠商加入

15、,使其擁有更多的開發(fā)者,新穎的應(yīng)用功能及創(chuàng)意可以不斷地出現(xiàn)。</p><p> ?。?)脫離了運(yùn)營商的束縛,讓手機(jī)更加貼近互聯(lián)網(wǎng)。</p><p> ?。?)應(yīng)用程序都是基于java開發(fā)的,java具有一次編寫、到處運(yùn)行的跨平臺(tái)性。能夠?qū)崿F(xiàn)在所有的Android設(shè)備中運(yùn)行,真正做到了硬件的無關(guān)性,降低了開發(fā)者的負(fù)擔(dān)。</p><p> ?。?)提供了標(biāo)準(zhǔn)的API和S

16、DK開發(fā)包,手機(jī)廠商可以根據(jù)需要自行開發(fā)或者使用已有的程序,從而打造出富有特色的Android平臺(tái)。</p><p><b>  2.2操作系統(tǒng)概述</b></p><p>  2.2Android體系結(jié)構(gòu)</p><p>  Android平臺(tái)構(gòu)架從上至下包含五個(gè)部分:應(yīng)用程序、應(yīng)用框架、開發(fā)庫、運(yùn)行時(shí)環(huán)境以及Linux內(nèi)核。如圖2-1所示。

17、</p><p>  圖2-2-1 </p><p><b>  應(yīng)用程序 </b></p><p>  Android同一系列核心應(yīng)用程序包一起發(fā)布,該程序包包括email客戶端、SMS短消息程序、日歷、聯(lián)系人管理程序等。所有的應(yīng)用程序都是Java語言編寫的。</p><p><b>  應(yīng)用框架

18、 </b></p><p>  應(yīng)用框架是進(jìn)行Android開發(fā)的基礎(chǔ)。應(yīng)用程序框架層包含了視圖系統(tǒng)、內(nèi)容提供器、窗口管理器、活動(dòng)管理器、通知管理器、資源管理器、電話管理器和保管管理器9部分。</p><p><b>  開發(fā)庫 </b></p><p>  Android 包含一套C/C++開發(fā)庫,被應(yīng)用于Androi

19、d系統(tǒng)的各種組件中。</p><p><b>  運(yùn)行環(huán)境 </b></p><p>  Android雖然采用Java程序語言來編寫程序,但是不使用J2ME執(zhí)行Java程序,而是自身帶的運(yùn)行環(huán)境。</p><p>  2.3無網(wǎng)絡(luò)環(huán)境配置Android開發(fā)環(huán)境</p><p><b>  1.JDK安裝配

20、置</b></p><p>  1) 安裝Java的JDK至默認(rèn)路徑 D:\Program Files\Java\,一般需要300M的空間,硬盤空間充足的話,所有組件全部安裝。然后完成環(huán)境變量的配置。</p><p>  2) 配置系統(tǒng)環(huán)境變量,否則java編譯器無法工作</p><p>  打開:我的電腦—控制面板—系統(tǒng)屬性—高級(jí)—環(huán)境變量,對(duì)話框下半

21、部分系統(tǒng)變量中,新增以下兩個(gè)變量:</p><p>  變量名:JAVA_HOME</p><p>  變量值:D:\Program Files\Java\jdk1.7.0_04</p><p>  變量名:CLASSPATH </p><p><b>  變量值如下所示:</b></p><

22、p>  .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar</p><p>  然后,修改以下變量:</p><p><b>  變量名:Path</b></p><p>  變量值:將“%JAVA_HOME%\bin;”添加在原變量值之前。</p&g

23、t;<p>  至此,在ms-dos窗口執(zhí)行命令 java -version,看到如下結(jié)果,說明java環(huán)境正常。</p><p>  再運(yùn)行查看編譯器版本號(hào)命令javac -version 看到如下提示,就說明Java編譯器工作正常,到此JDK安裝、java環(huán)境配置完成。</p><p>  2. 配置Eclipse開發(fā)環(huán)境</p><p>  若E

24、clipse啟動(dòng)時(shí)候報(bào)“Failed to create the Java Virtual Machine”錯(cuò)誤,解決辦法:</p><p>  找到eclipse目錄下的eclipse.ini,修改內(nèi)容如下:</p><p>  -startupplugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar--launcher.lib

25、raryplugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.100.v20110502-productorg.eclipse.epp.package.jee.product--launcher.defaultActionopenFile--launcher.XXMaxPermSize128M-showsplashorg.eclipse.platform--

26、launcher.XXMaxPermSize128m--launcher.defaultActionopenFile-vmargs-Dosgi.requiredJavaVersion=1.5-Xms40m-Xmx512m</p><p><b>  3.配置ADT</b></p><p>  打開上面圖4.7的窗口:點(diǎn)擊Add...,Name處輸入(按自

27、己的喜歡名字)我的Android ADT,關(guān)鍵是下面的Location處填寫ADT的官方下載的網(wǎng)址:https://dl-ssl.google.com/android/eclipse/ 如下:</p><p>  圖 修改ADT升級(jí)site</p><p>  Note: If you have trouble acquiring the plugin, try using "h

28、ttp" in the Location URL, instead of "https" (https is preferred for security reasons).</p><p>  點(diǎn)擊OK后,耐心的等他Pending...一會(huì)兒得下圖:</p><p>  圖 eclipse獲取ADT列表</p><p>  點(diǎn)擊Sel

29、ect All,然后Next...跳出如下界面!</p><p>  圖 Eclipse ADT許可</p><p>  選擇I accept...,然后Finish軟件會(huì)自動(dòng)完成后繼的下載任務(wù),把ADT的插件安裝到Eclipse中。如下所示的提示出現(xiàn)。</p><p>  圖 Eclipse ADT安裝過程</p><p>  圖 Ecli

30、pse ADT的警告信息</p><p>  圖 Eclipse ADT安裝完成</p><p>  Restart Now即可,至此ADT安裝完成。在Eclipse啟動(dòng)以后會(huì)看到他的操作菜單里出現(xiàn)了我們熟悉的小機(jī)器人圖標(biāo),點(diǎn)擊它們可以調(diào)用SDK的虛擬機(jī)管理器AVD或者是SDK管理器。</p><p><b>  4.配置SDK路徑</b>&l

31、t;/p><p>  這時(shí)還要完成一步SDK路徑的設(shè)置,點(diǎn)擊菜單windows---找到preferences打開它,找到Android的選項(xiàng)點(diǎn)擊打開,在右側(cè)的Browser里找到我們安裝的SDK,它的路徑在D:\Android\android-sdk-windows,點(diǎn)擊Apply確定后,系統(tǒng)會(huì)自動(dòng)檢測(cè)到SDK中包含的Android操作系統(tǒng)。</p><p>  5.Android tool

32、s環(huán)境變量配置</p><p>  打開:我的電腦—控制面板—系統(tǒng)屬性—高級(jí)—環(huán)境變量,對(duì)話框下半部分系統(tǒng)變量中,和前文添加方式雷同,需要修改的變量名是:Path</p><p>  其中D:\Android\android-sdk-windows\tools是Android SDK的tools目錄,同樣的還有一個(gè),E:\Android\android-sdk-windows\platfo

33、rm-tools,也要添加到path里面,可以和上面的一次添加完成,將變量值: “E:\Android\android-sdk-windows\tools;E:\Android\android-sdk-windows\platform-tools;” 添加在原變量值之前。</p><p>  然后在ms-dos窗口能夠執(zhí)行命令android –h如下圖示,就說明Android SDK的tools也安裝完成。<

34、;/p><p>  6.解壓Android SDK和Eclipse,配置Eclipse的SDK路徑。</p><p>  系統(tǒng)默認(rèn)的是在線安裝新的SDK組件,我們不可能在沒有網(wǎng)絡(luò)連接的情形下升級(jí)應(yīng)用組件!所以選取Use existing SDKs,然后點(diǎn)擊下一步完成經(jīng)一部的配置。完成配置到Windows里找到Android SDK Manager運(yùn)行,檢測(cè)是否可以正常啟動(dòng)。</p>

35、<p>  圖4.42 無網(wǎng)絡(luò)首次運(yùn)行Eclipse配置SDK</p><p>  總體看來其操作也與有網(wǎng)絡(luò)環(huán)境操作雷同,需要先安裝JDK后配置環(huán)境變了,然后完成SDK的解壓,解壓有ADT的Eclipse,最后在Eclipse里重新配置SDK路徑。就可以使用了。</p><p>  三.計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)</p><p>  3.1系統(tǒng)流程和設(shè)計(jì)<

36、;/p><p>  通過main.xml來建立顯示界面,完成后系統(tǒng)開始監(jiān)聽用戶的按鍵輸入,每次輸入系統(tǒng)都會(huì)判定一次用戶輸入的類型,是數(shù)字還是運(yùn)算符號(hào)或者是清除,判定完后分成不同類型如數(shù)字、符號(hào)、基本運(yùn)算等等進(jìn)行進(jìn)一步的處理,根據(jù)用戶的要求繼續(xù)進(jìn)行下一步的操作,最后計(jì)算出結(jié)果并顯示在顯示區(qū)。</p><p>  3.1.1輸入模塊詳細(xì)設(shè)計(jì) 輸入模塊主要的任務(wù)是描述計(jì)算器鍵盤以及實(shí)現(xiàn)鍵盤的

37、監(jiān)聽,即當(dāng)用戶點(diǎn)擊按鍵或者屏幕的時(shí)候監(jiān)聽器會(huì)去調(diào)用相應(yīng)的處理辦法,本模塊還需要為系統(tǒng)提供了一個(gè)較為直觀的鍵盤圖形用戶界面。輸入模塊的功能圖如下圖所示:</p><p><b>  輸入模塊功能圖</b></p><p>  3.1.2顯示模塊詳細(xì)設(shè)計(jì) 顯示模塊主要要完成的任務(wù)是描述計(jì)算器的顯示區(qū),該區(qū)域用于顯示用戶輸入的數(shù)據(jù)以及最終的計(jì)算結(jié)果和一些其他信息。同

38、時(shí)本模塊還將提供調(diào)用和設(shè)置顯示的具體方法。</p><p>  顯示模塊的功能圖如下圖所示:</p><p><b>  顯示模塊功能圖</b></p><p>  3.1.3計(jì)算模塊詳細(xì)設(shè)計(jì) 系統(tǒng)想完成計(jì)算功能必須要處理用戶的輸入,當(dāng)輸入模塊的監(jiān)聽傳到計(jì)算模塊中時(shí),計(jì)算模塊就要根據(jù)相應(yīng)的方法進(jìn)行進(jìn)一步的處理。這部分主要是對(duì)輸入進(jìn)行的邏

39、輯判斷,基本會(huì)通過if else來實(shí)現(xiàn)邏輯判斷。計(jì)算模塊的功能圖如下圖所示:</p><p><b>  計(jì)算模塊功能圖</b></p><p><b>  3.2計(jì)算器模塊</b></p><p><b>  3.3程序流程圖</b></p><p>  main.xml的流

40、程圖</p><p>  JisuanqiActivity.java的流程圖</p><p><b>  3.4 程序</b></p><p>  3.4.1 main.xml部分程序及注釋</p><p><b>  1.頭文件</b></p><p>  <?xml

41、 version="1.0" encoding="utf-8"?></p><p><b>  2.滑動(dòng)框控件</b></p><p>  <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"</p>

42、;<p>  android:layout_width="fill_parent"</p><p>  android:layout_height="fill_parent" ></p><p>  3.線性布局控件:垂直分布</p><p>  <LinearLayout</p>&l

43、t;p>  android:layout_width="fill_parent"</p><p>  android:layout_height="fill_parent"</p><p>  android:orientation="vertical" ></p><p>  4.輸入文本框控

44、件:命名為shuru(為隱形字體)</p><p><b>  <EditText</b></p><p>  android:id="@+id/input"</p><p>  android:layout_width="fill_parent"</p><p>  and

45、roid:layout_height="wrap_content"</p><p>  android:layout_gravity="center"</p><p>  android:editable="false"</p><p>  android:hint="@string/shuru&

46、quot; /></p><p>  5.輸出文本框控件:命名為hello(為隱形字體)</p><p><b>  <EditText</b></p><p>  android:id="@+id/output"</p><p>  android:layout_width="

47、fill_parent"</p><p>  android:layout_height="wrap_content"</p><p>  android:layout_gravity="center"</p><p>  android:editable="false"</p>&

48、lt;p>  android:gravity="right"</p><p>  android:hint="@string/hello" /></p><p><b>  6.相對(duì)布局控件:</b></p><p>  <RelativeLayout</p><p&

49、gt;  android:layout_width="fill_parent"</p><p>  android:layout_height="wrap_content" ></p><p>  7.按鈕控件示例(數(shù)字按鈕7):先獲取ID號(hào),在控制按鈕大小,定義顯示的文字以及文字的大小,其他同理。 </p><p&g

50、t;<b>  <Button</b></p><p>  android:id="@+id/seven"</p><p>  android:layout_width="80dp"</p><p>  android:layout_height="70dp"</p>

51、<p>  android:layout_alignParentLeft="true"</p><p>  android:text="@string/seven"</p><p>  android:textSize="40sp" /></p><p><b>  8.結(jié)尾文

52、件</b></p><p>  </RelativeLayout></p><p>  </LinearLayout></p><p>  </ScrollView></p><p>  3.4.2 strings.xml部分程序及注釋</p><p>  1.給每個(gè)變量

53、和按鈕定義顯示的文本信息</p><p>  <string name="shuru">請(qǐng)按數(shù)字鍵盤輸入數(shù)字</string></p><p>  3.4.3 R.java部分程序及注釋</p><p>  生成所有按鈕的ID號(hào)</p><p><b>  1.包文件</b>&

54、lt;/p><p>  package com.packafge.namespace;</p><p>  public final class R {</p><p>  public static final class attr {</p><p><b>  }</b></p><p>  p

55、ublic static final class drawable {</p><p>  public static final int ic_launcher=0x7f020000;</p><p><b>  }</b></p><p>  public static final class id {</p><p&g

56、t;  2.生成“加法”按鈕的ID號(hào) </p><p>  public static final int add=0x7f050005;</p><p>  JisuanqiActivity.java</p><p>  package com.packafge.namespace;</p><p>  import androi

57、d.app.Activity;</p><p>  import android.os.Bundle;</p><p>  import android.view.View;</p><p>  import android.view.View.OnClickListener;</p><p>  import android.widget.

58、Button;</p><p>  import android.widget.EditText;</p><p>  public class JisuanqiActivity extends Activity {</p><p>  /** Called when the activity is first created. */</p><

59、p>  private EditText output = null;</p><p>  private String str = "";// 保存數(shù)字</p><p>  private String strold = "";// 原數(shù)字</p><p>  private char act = ' '

60、;;// 記錄“加減乘除等于”符號(hào)</p><p>  private int count = 0;// 判斷要計(jì)算的次數(shù),如果超過一個(gè)符號(hào),先算出來一部分</p><p>  private double result = 0;// 計(jì)算的輸出結(jié)果</p><p>  private Boolean errBoolean = false;// 有錯(cuò)誤的時(shí)候?yàn)閠ru

61、e,無錯(cuò)為false</p><p>  private Boolean flagBoolean = false;// 一個(gè)標(biāo)志,如果為true,可以響應(yīng)運(yùn)算消息,如果為false,不響應(yīng)運(yùn)算消息,只有前面是數(shù)字才可以響應(yīng)運(yùn)算消息</p><p><b>  @Override</b></p><p>  public void onCreat

62、e(Bundle savedInstanceState) {</p><p>  super.onCreate(savedInstanceState);</p><p>  setContentView(R.layout.main);</p><p>  // 獲取計(jì)算器按鈕</p><p>  output = (EditText) fin

63、dViewById(R.id.output);</p><p>  btnsubtract = (Button) findViewById(R.id.subtract);</p><p>  // 設(shè)置button監(jiān)聽事件</p><p>  btn0.setOnClickListener(listener);</p><p>  priva

64、te OnClickListener listener = new OnClickListener() {</p><p>  public void onClick(View v) {</p><p>  // TODO Auto-generated method stub</p><p>  3.獲取每個(gè)控件的ID號(hào)</p><p>

65、;  switch (v.getId()) {</p><p>  case R.id.zero:</p><p><b>  num(0);</b></p><p><b>  break;</b></p><p>  case R.id.one:</p><p><

66、b>  num(1);</b></p><p><b>  break;</b></p><p><b>  ………</b></p><p>  case R.id.result:</p><p><b>  result();</b></p>

67、<p>  if (!errBoolean && flagBoolean) {</p><p>  output.setText(String.valueOf(result));</p><p><b>  }</b></p><p><b>  break;</b></p><

68、;p><b>  default:</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  if (strold == "" && act == ' ' && str

69、 == "") {</p><p>  input.setText("");</p><p>  } else if (act == '√') {</p><p>  input.setText(act + strold);</p><p>  } else if (act == 

70、9;s') {</p><p>  input.setText(act + strold);</p><p>  } else if (act == 'p') {</p><p>  input.setText(act + strold);</p><p><b>  } else {</b>&l

71、t;/p><p>  input.setText(strold + act + str);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  4.小數(shù)點(diǎn)函數(shù)</b></p><p>  private

72、 void xiaoshudian(String i) {</p><p>  // TODO Auto-generated method stub</p><p>  str = str + i;</p><p>  flagBoolean = false;</p><p><b>  }</b></p>

73、<p>  5.定義當(dāng)除數(shù)為0的輸出結(jié)果</p><p>  private void result() {</p><p>  // TODO Auto-generated method stub</p><p>  if (flagBoolean) {</p><p>  double a, b;</p><

74、;p>  a = Double.parseDouble(strold);</p><p>  b = Double.parseDouble(str);</p><p>  if (b == 0 && act == '/') {</p><p><b>  clear();</b></p>&l

75、t;p>  output.setText("除數(shù)不能為零!");</p><p>  errBoolean = true;</p><p><b>  }</b></p><p>  if (!errBoolean) {</p><p>  6.各運(yùn)算法則定義</p>&l

76、t;p>  switch (act) {</p><p><b>  case '+':</b></p><p>  result = a + b;</p><p><b>  break;</b></p><p><b>  case '-':<

77、;/b></p><p>  result = a - b;</p><p><b>  break;</b></p><p><b>  case '*':</b></p><p>  result = a * b;</p><p><b>

78、  break;</b></p><p><b>  case '/':</b></p><p>  result = a / b;</p><p><b>  break;</b></p><p><b>  case '√':</b&g

79、t;</p><p>  result = Math.sqrt(a);//調(diào)用開方函數(shù)</p><p><b>  break;</b></p><p><b>  case 's':</b></p><p>  result = Math.sin(a); //調(diào)用sin函數(shù)<

80、/p><p><b>  break;</b></p><p><b>  case 'p':</b></p><p>  result = a * a;</p><p><b>  break;</b></p><p><b> 

81、 default:</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><

82、;b>  }</b></p><p>  7.清零函數(shù)的動(dòng)作及定義</p><p>  private void clear() {</p><p>  // TODO Auto-generated method stub</p><p>  str = strold = "";</p>&

83、lt;p>  count = 0;</p><p>  act = ' ';</p><p>  result = 0;</p><p>  flagBoolean = false;</p><p>  input.setText(strold + act + str);</p><p>  ou

84、tput.setText("");</p><p><b>  }</b></p><p>  8.除法的動(dòng)作及定義“/”</p><p>  private void divide() {</p><p>  // TODO Auto-generated method stub</p>

85、<p>  if (flagBoolean) {</p><p><b>  check();</b></p><p>  act = '/';</p><p>  flagBoolean = false;</p><p><b>  }</b></p>&

86、lt;p><b>  }</b></p><p>  9.乘法的動(dòng)作及定義“*”</p><p>  private void multiply() {</p><p>  // TODO Auto-generated method stub</p><p>  if (flagBoolean) {</p&g

87、t;<p><b>  check();</b></p><p>  act = '*';</p><p>  flagBoolean = false;</p><p><b>  }</b></p><p><b>  }</b></p&g

88、t;<p>  10.平方的動(dòng)作及定義“p”</p><p>  private void pingfang() {</p><p>  // TODO Auto-generated method stub</p><p>  if (flagBoolean) {</p><p><b>  check();</

89、b></p><p>  act = 'p';</p><p>  flagBoolean = false;</p><p><b>  }</b></p><p><b>  }</b></p><p>  11.減法的動(dòng)作及定義“-”</p&g

90、t;<p>  private void sub() {</p><p>  // TODO Auto-generated method stub</p><p>  if (flagBoolean) {</p><p><b>  check();</b></p><p>  act = '-&#

91、39;;</p><p>  flagBoolean = false;</p><p><b>  }</b></p><p><b>  }</b></p><p>  12.開方后的動(dòng)作及定義“√”</p><p>  private void kaifang() {&l

92、t;/p><p>  // TODO Auto-generated method stub</p><p>  if (flagBoolean) {</p><p><b>  chec();</b></p><p>  act = '√';</p><p>  flagBoolean

93、 = true;</p><p><b>  }</b></p><p><b>  }</b></p><p>  13.Sin函數(shù)的動(dòng)作及定義“s”</p><p>  private void saa() {</p><p>  // TODO Auto-generat

94、ed method stub</p><p>  if (flagBoolean) {</p><p><b>  chec();</b></p><p>  act = 's';</p><p>  flagBoolean = true;</p><p><b>  }

95、</b></p><p><b>  }</b></p><p>  14.加法的動(dòng)作及定義“+”</p><p>  private void add() {</p><p>  // TODO Auto-generated method stub</p><p>  if (fla

96、gBoolean) {</p><p><b>  check();</b></p><p>  act = '+';</p><p>  flagBoolean = false;</p><p><b>  }</b></p><p><b>  

97、}</b></p><p>  private void check() {</p><p>  // TODO Auto-generated method stub</p><p>  if (count >= 1) {</p><p><b>  result();</b></p>&

98、lt;p>  str = String.valueOf(result);</p><p><b>  }</b></p><p>  strold = str;</p><p><b>  str = "";</b></p><p><b>  count++;&

99、lt;/b></p><p><b>  }</b></p><p>  private void chec() {</p><p>  // TODO Auto-generated method stub</p><p>  if (count >= 1) {</p><p><

100、;b>  result();</b></p><p>  str = String.valueOf(result);</p><p><b>  }</b></p><p>  strold = str;</p><p><b>  count++;</b></p>

101、<p><b>  }</b></p><p>  private void num(int i) {</p><p>  // TODO Auto-generated method stub</p><p>  str = str + String.valueOf(i);</p><p>  flagBool

102、ean = true;</p><p><b>  }</b></p><p><b>  };</b></p><p><b>  }</b></p><p><b>  四.結(jié)論</b></p><p>  通過兩個(gè)星期的小學(xué)期

103、,我對(duì)基于Android計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)已成功完成。這次課程一開始就讓我覺得很神奇,而自己每次也都能夠按到老師的教導(dǎo)一步步的完成,所以到最后計(jì)算器的整個(gè)設(shè)計(jì)過程及設(shè)計(jì)出的結(jié)果讓我感覺很有成就感。而這次設(shè)計(jì)的計(jì)算器的功能基本符合了普通用戶對(duì)于計(jì)算器的要求,同時(shí)拓展的一些普通計(jì)算器上沒有的部分科學(xué)計(jì)算功能,界面簡(jiǎn)單明了,使用起來十分方便。然而由于是首次接觸到Android系統(tǒng)平臺(tái),無論在知識(shí)層面還是經(jīng)驗(yàn)方面都有著很大的欠缺和不足,因此本系

104、統(tǒng)難免會(huì)有些不盡人意的地方。在以后的設(shè)計(jì)中會(huì)不斷改進(jìn)的。最后,這次小實(shí)習(xí)接觸到了我很感興趣的Android系統(tǒng)平臺(tái),同時(shí)也運(yùn)用到了Java,非常具有實(shí)用性,深深的激起了我對(duì)Android系統(tǒng)和Java系統(tǒng)更深一步的探究。</p><p><b>  五.參考文獻(xiàn)</b></p><p>  [1]《Android開發(fā)入門指南》(第2版) 索蓋林 著</p>

105、<p>  [2]Android手機(jī)的輕量級(jí)訪問控制 劉昌平; 范明鈺; 王光衛(wèi); 鄭秀林; 宮亞峰 計(jì)算機(jī)應(yīng)用研究 2010-07-15</p><p>  [3] 佘志龍等.Google Android SDK開發(fā)范例大全佘志龍.人民郵電出版社2009年07月.</p><p>  [4]《應(yīng)用框架原理與程式設(shè)計(jì)36技》高煥堂 著</p><p>

106、<b>  附錄</b></p><p><b>  Android菜單</b></p><p><b>  計(jì)算器界面</b></p><p><b>  除數(shù)為0的情況</b></p><p>  求正弦函數(shù)及小數(shù)點(diǎn)功能(30 度為 pi/180*3

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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)論