版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 學(xué)年論文</b></p><p> ?。ㄕn程論文、課程設(shè)計)</p><p> 題 目: 基于Android計算器的設(shè)計與實(shí)現(xiàn) </p><p> 作 者 </p><p> 所在學(xué)院: 信息科學(xué)與工程學(xué)院
2、 </p><p> 專業(yè)年級: 通行09-1 </p><p> 指導(dǎo)教師: </p><p> 職 稱: </p><p> 2012 年 6 月 24 日<
3、;/p><p> 基于Android計算器的設(shè)計與實(shí)現(xiàn)</p><p><b> 摘要</b></p><p> 隨著社會的發(fā)展,經(jīng)濟(jì)水平的提高,手機(jī)越來越普及。同時伴隨著移動互聯(lián)網(wǎng)技術(shù)的發(fā)展,手機(jī)的功能也變得越來越豐富。從原來只具有簡單通信功能的非智能手機(jī)到現(xiàn)在具有手機(jī)操作系統(tǒng),除通話功能以外,還集上網(wǎng)、聊天、炒股、收發(fā)郵件等功能于一身的智
4、能手機(jī)系統(tǒng)。由Google公司牽頭眾多實(shí)力雄厚的軟硬件廠商加盟成立了OMS聯(lián)盟,并推出的Android平臺手機(jī)系統(tǒng)。作為時代的新生兒,Android手機(jī)操作平臺有著得天獨(dú)厚的優(yōu)勢廣闊的發(fā)展前景。而計算器作為現(xiàn)在人們?nèi)粘I钪谐S玫囊环N工具也已經(jīng)可以說是人們?nèi)粘I钪斜夭豢缮俚墓ぞ吡恕S嬎闫鞯陌l(fā)展同樣經(jīng)歷了漫長的過程,凝聚無數(shù)先人的智慧,甚至連計算機(jī)的發(fā)展都可以說是源于計算器的發(fā)展。本文正是基于Android平臺開發(fā)的計算器。論文主要闡述
5、以面向?qū)ο蟮某绦蜷_發(fā)語言eclipse為開發(fā)工具, 設(shè)計并實(shí)現(xiàn)基于Android的計算器。</p><p> 關(guān)鍵詞:手機(jī) Android 用戶界面 計算器</p><p><b> 一.引言</b></p><p><b> 1.智能手機(jī)簡介</b></p><p>
6、 智能手機(jī)具有獨(dú)立的操作系統(tǒng),像個人電腦一樣支持用戶自行安裝軟件、游戲等第三方服務(wù)商提供的程序,并通過此類程序不斷對手機(jī)的功能進(jìn)行擴(kuò)充,同時可通過移動通訊網(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ù)提供個廣闊的舞臺,很多增值業(yè)務(wù)可以就此展開,如:股票、新聞、天氣、交通、商品、應(yīng)用程序下載、音樂圖片下載等等。結(jié)合3G通信網(wǎng)絡(luò)的支持,智能手機(jī)的發(fā)展,勢必將成為一個功能強(qiáng)大,集通話、短信、網(wǎng)絡(luò)接入、影視娛樂為一體的綜合性個人手持終端設(shè)備。</p><p> 2.現(xiàn)今智能手機(jī)的發(fā)展</p&g
8、t;<p> ?。?). 四核處理器時代的即將到來</p><p> 今年的智能手機(jī)使用的處理器主要還是雙核處理器,2012年,更多的智能手機(jī)將運(yùn)行4核處理器。前幾天我們剛報道過一款4核處理器 Tegra 3,這是世界上首款4核心移動芯片,性能表現(xiàn)要優(yōu)于之前雙核心的 Tegra 芯片3倍,在多任務(wù)處理,網(wǎng)絡(luò)瀏覽和應(yīng)用表現(xiàn)流暢度上都有明顯提升。</p><p> ?。?).
9、越來越多的智能手機(jī)將支持近場通信技術(shù)(NFC)</p><p> NFC 技術(shù)能夠逐漸取代信用卡來實(shí)現(xiàn)移動支付,用戶只需拿著支持 NFC 的智能手機(jī)在支付設(shè)備旁一搖就能實(shí)現(xiàn)移動支付。</p><p> ?。?). 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ī)的一個標(biāo)準(zhǔn),但愿到時手機(jī)廠商和無線運(yùn)營商能解決智能手機(jī)的電池續(xù)航問題。</p><p> (5). 聲音控制技術(shù)的不斷發(fā)展</p><p> 語音助手 Siri 是
11、 iPhone 4S 最大亮點(diǎn),引起了廣泛關(guān)注。谷歌和微軟無疑也會將越來越多的聲音控制技術(shù)引入到自己的智能手機(jī)平臺。</p><p> ?。?). 價格競爭更為激烈</p><p> 微軟 CEO 也表示,微軟也將盡力降低 Windows Phone 智能手機(jī)的生產(chǎn)成本,從而降低銷售價格。</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ī)的一個必不可少的功能。谷歌不久前剛剛發(fā)布了升級版地增強(qiáng)現(xiàn)實(shí)瀏覽器 Live View。</p><p><b> 2.課題意義</b></p><p> 隨著通信技術(shù)的發(fā)展,3G從制定出到現(xiàn)在越來越被人們關(guān)注。“3G”或“三代”是第三代移動技術(shù)的簡稱,是指支持告訴數(shù)
13、據(jù)傳輸?shù)姆涓C移動通信技術(shù)。目前3G存在四種標(biāo)準(zhǔn):CDMA2000、WCDMA-SCDMA、WIMAX。其中TD-SCDMA是由中國大陸?yīng)氉灾贫ǖ?G標(biāo)準(zhǔn)。</p><p> 為了推動我國智能手機(jī)的發(fā)展,實(shí)現(xiàn)多功能的智能手機(jī),方便人們豐富多彩而又快節(jié)奏的生活。本文正式基于Android 平臺開發(fā)的計算器。論文主要闡述以面向?qū)ο蟮某绦蜷_發(fā)語言eclipse為開發(fā)工具,基于Android之上設(shè)計一個計算器。本文的目標(biāo)
14、就是設(shè)計并實(shí)現(xiàn)基于Android的計算器。論文首先介紹了Android開發(fā)平臺和環(huán)境以及Android工程的重要部分,然后著重針對計算器的系統(tǒng)設(shè)計的具體實(shí)現(xiàn),最后現(xiàn)在計算器的各種功能并得到了很多好的驗(yàn)證。</p><p> 二.Android開發(fā)平臺</p><p> 2.1Android平臺具有以下優(yōu)點(diǎn):</p><p> ?。?)平臺的開放性允許任何廠商加入
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)行的跨平臺性。能夠?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平臺。</p><p><b> 2.2操作系統(tǒng)概述</b></p><p> 2.2Android體系結(jié)構(gòu)</p><p> Android平臺構(gòu)架從上至下包含五個部分:應(yīng)用程序、應(yīng)用框架、開發(fā)庫、運(yùn)行時環(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)容提供器、窗口管理器、活動管理器、通知管理器、資源管理器、電話管理器和保管管理器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)屬性—高級—環(huán)境變量,對話框下半
21、部分系統(tǒng)變量中,新增以下兩個變量:</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)行查看編譯器版本號命令javac -version 看到如下提示,就說明Java編譯器工作正常,到此JDK安裝、java環(huán)境配置完成。</p><p> 2. 配置Eclipse開發(fā)環(huán)境</p><p> 若E
24、clipse啟動時候報“Failed to create the Java Virtual Machine”錯誤,解決辦法:</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升級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...一會兒得下圖:</p><p> 圖 eclipse獲取ADT列表</p><p> 點(diǎn)擊Sel
29、ect All,然后Next...跳出如下界面!</p><p> 圖 Eclipse ADT許可</p><p> 選擇I accept...,然后Finish軟件會自動完成后繼的下載任務(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啟動以后會看到他的操作菜單里出現(xiàn)了我們熟悉的小機(jī)器人圖標(biāo),點(diǎn)擊它們可以調(diào)用SDK的虛擬機(jī)管理器AVD或者是SDK管理器。</p><p><b> 4.配置SDK路徑</b>&l
31、t;/p><p> 這時還要完成一步SDK路徑的設(shè)置,點(diǎn)擊菜單windows---找到preferences打開它,找到Android的選項(xiàng)點(diǎn)擊打開,在右側(cè)的Browser里找到我們安裝的SDK,它的路徑在D:\Android\android-sdk-windows,點(diǎn)擊Apply確定后,系統(tǒng)會自動檢測到SDK中包含的Android操作系統(tǒng)。</p><p> 5.Android tool
32、s環(huán)境變量配置</p><p> 打開:我的電腦—控制面板—系統(tǒng)屬性—高級—環(huán)境變量,對話框下半部分系統(tǒng)變量中,和前文添加方式雷同,需要修改的變量名是:Path</p><p> 其中D:\Android\android-sdk-windows\tools是Android SDK的tools目錄,同樣的還有一個,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ò)連接的情形下升級應(yīng)用組件!所以選取Use existing SDKs,然后點(diǎn)擊下一步完成經(jīng)一部的配置。完成配置到Windows里找到Android SDK Manager運(yùn)行,檢測是否可以正常啟動。</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> 三.計算器的設(shè)計與實(shí)現(xiàn)</p><p> 3.1系統(tǒng)流程和設(shè)計<
36、;/p><p> 通過main.xml來建立顯示界面,完成后系統(tǒng)開始監(jiān)聽用戶的按鍵輸入,每次輸入系統(tǒng)都會判定一次用戶輸入的類型,是數(shù)字還是運(yùn)算符號或者是清除,判定完后分成不同類型如數(shù)字、符號、基本運(yùn)算等等進(jìn)行進(jìn)一步的處理,根據(jù)用戶的要求繼續(xù)進(jìn)行下一步的操作,最后計算出結(jié)果并顯示在顯示區(qū)。</p><p> 3.1.1輸入模塊詳細(xì)設(shè)計 輸入模塊主要的任務(wù)是描述計算器鍵盤以及實(shí)現(xiàn)鍵盤的
37、監(jiān)聽,即當(dāng)用戶點(diǎn)擊按鍵或者屏幕的時候監(jiān)聽器會去調(diào)用相應(yīng)的處理辦法,本模塊還需要為系統(tǒng)提供了一個較為直觀的鍵盤圖形用戶界面。輸入模塊的功能圖如下圖所示:</p><p><b> 輸入模塊功能圖</b></p><p> 3.1.2顯示模塊詳細(xì)設(shè)計 顯示模塊主要要完成的任務(wù)是描述計算器的顯示區(qū),該區(qū)域用于顯示用戶輸入的數(shù)據(jù)以及最終的計算結(jié)果和一些其他信息。同
38、時本模塊還將提供調(diào)用和設(shè)置顯示的具體方法。</p><p> 顯示模塊的功能圖如下圖所示:</p><p><b> 顯示模塊功能圖</b></p><p> 3.1.3計算模塊詳細(xì)設(shè)計 系統(tǒng)想完成計算功能必須要處理用戶的輸入,當(dāng)輸入模塊的監(jiān)聽傳到計算模塊中時,計算模塊就要根據(jù)相應(yīng)的方法進(jìn)行進(jìn)一步的處理。這部分主要是對輸入進(jìn)行的邏
39、輯判斷,基本會通過if else來實(shí)現(xiàn)邏輯判斷。計算模塊的功能圖如下圖所示:</p><p><b> 計算模塊功能圖</b></p><p><b> 3.2計算器模塊</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.滑動框控件</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.相對布局控件:</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號,在控制按鈕大小,定義顯示的文字以及文字的大小,其他同理。 </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.給每個變量
53、和按鈕定義顯示的文本信息</p><p> <string name="shuru">請按數(shù)字鍵盤輸入數(shù)字</string></p><p> 3.4.3 R.java部分程序及注釋</p><p> 生成所有按鈕的ID號</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號 </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、;;// 記錄“加減乘除等于”符號</p><p> private int count = 0;// 判斷要計算的次數(shù),如果超過一個符號,先算出來一部分</p><p> private double result = 0;// 計算的輸出結(jié)果</p><p> private Boolean errBoolean = false;// 有錯誤的時候?yàn)閠ru
61、e,無錯為false</p><p> private Boolean flagBoolean = false;// 一個標(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> // 獲取計算器按鈕</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.獲取每個控件的ID號</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ù)的動作及定義</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.除法的動作及定義“/”</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.乘法的動作及定義“*”</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.平方的動作及定義“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.減法的動作及定義“-”</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.開方后的動作及定義“√”</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ù)的動作及定義“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.加法的動作及定義“+”</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> 通過兩個星期的小學(xué)期
103、,我對基于Android計算器的設(shè)計與實(shí)現(xiàn)已成功完成。這次課程一開始就讓我覺得很神奇,而自己每次也都能夠按到老師的教導(dǎo)一步步的完成,所以到最后計算器的整個設(shè)計過程及設(shè)計出的結(jié)果讓我感覺很有成就感。而這次設(shè)計的計算器的功能基本符合了普通用戶對于計算器的要求,同時拓展的一些普通計算器上沒有的部分科學(xué)計算功能,界面簡單明了,使用起來十分方便。然而由于是首次接觸到Android系統(tǒng)平臺,無論在知識層面還是經(jīng)驗(yàn)方面都有著很大的欠缺和不足,因此本系
104、統(tǒng)難免會有些不盡人意的地方。在以后的設(shè)計中會不斷改進(jìn)的。最后,這次小實(shí)習(xí)接觸到了我很感興趣的Android系統(tǒng)平臺,同時也運(yùn)用到了Java,非常具有實(shí)用性,深深的激起了我對Android系統(tǒng)和Java系統(tǒng)更深一步的探究。</p><p><b> 五.參考文獻(xiàn)</b></p><p> [1]《Android開發(fā)入門指南》(第2版) 索蓋林 著</p>
105、<p> [2]Android手機(jī)的輕量級訪問控制 劉昌平; 范明鈺; 王光衛(wèi); 鄭秀林; 宮亞峰 計算機(jī)應(yīng)用研究 2010-07-15</p><p> [3] 佘志龍等.Google Android SDK開發(fā)范例大全佘志龍.人民郵電出版社2009年07月.</p><p> [4]《應(yīng)用框架原理與程式設(shè)計36技》高煥堂 著</p><p>
106、<b> 附錄</b></p><p><b> Android菜單</b></p><p><b> 計算器界面</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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 計算器的設(shè)計與實(shí)現(xiàn)課程設(shè)計論文
- android開發(fā)計算器課程設(shè)計
- java計算器課程設(shè)計-- 計算器的設(shè)計與實(shí)現(xiàn)
- java課程設(shè)計--計算器的設(shè)計與實(shí)現(xiàn)
- 基于android計算器功能的實(shí)現(xiàn)設(shè)計
- java實(shí)現(xiàn)計算器課程設(shè)計
- 基于android計算器的設(shè)計與開發(fā)論文.docx
- 課程設(shè)計-計算器
- 計算器java課程設(shè)計--簡單計算器
- 基于android計算器的設(shè)計與開發(fā)
- c++課程設(shè)計報告---計算器的設(shè)計與實(shí)現(xiàn)
- 計算器課程設(shè)計---計算器仿真程序設(shè)計
- 三種語言實(shí)現(xiàn)計算器課程設(shè)計--計算器
- labview課程設(shè)計---基于labview的計算器設(shè)計
- android計算器設(shè)計
- 課程設(shè)計報告---計算器設(shè)計
- java課程設(shè)計—計算器
- java課程設(shè)計計算器
- java計算器課程設(shè)計
- 基于java的小型計算器課程設(shè)計
評論
0/150
提交評論