計(jì)算器安卓設(shè)計(jì)[共24頁(yè)]
《計(jì)算器安卓設(shè)計(jì)[共24頁(yè)]》由會(huì)員分享,可在線閱讀,更多相關(guān)《計(jì)算器安卓設(shè)計(jì)[共24頁(yè)](24頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、成績(jī) 課程設(shè)計(jì)報(bào)告 題 目 ANDROID開(kāi)發(fā) 課 程 名 稱 簡(jiǎn)單計(jì)算器 院 部 名 稱 計(jì)算機(jī)工程學(xué)院 專 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) 班 級(jí) 15計(jì)算機(jī)科學(xué)與技術(shù) 學(xué) 生 姓 名 周江成 學(xué) 號(hào) 1513902035 課程設(shè)計(jì)地點(diǎn) 1416 課程設(shè)計(jì)學(xué)時(shí)
2、 指 導(dǎo) 教 師 葉崧 金陵科技學(xué)院教務(wù)處制 課程設(shè)計(jì)報(bào)告書(shū)寫(xiě)要求 課程設(shè)計(jì)報(bào)告原則上要求學(xué)生手寫(xiě),要求書(shū)寫(xiě)工整。若因課程特點(diǎn)需打印的,要遵照以下字體、字號(hào)、間距等的具體要求。紙張一律采用A4的紙張。 課程設(shè)計(jì)報(bào)告書(shū)寫(xiě)說(shuō)明 課程設(shè)計(jì)報(bào)告應(yīng)包含以下七部分內(nèi)容:1、摘要2、目錄3、前言/引言 4.正文 5. 結(jié)論6. 參考文獻(xiàn)7. 附錄,每部分的書(shū)寫(xiě)要求參見(jiàn)具體條目要求。 填寫(xiě)注意事項(xiàng) (1)準(zhǔn)確說(shuō)明,層次清晰。 (2)盡量采用專用術(shù)語(yǔ)來(lái)說(shuō)明事物。 (3)外文、符號(hào)、公式要準(zhǔn)確,應(yīng)使用統(tǒng)一規(guī)定的名詞和符號(hào)。 (4)
3、應(yīng)獨(dú)立完成課程設(shè)計(jì)報(bào)告的書(shū)寫(xiě),嚴(yán)禁抄襲、復(fù)印,一經(jīng)發(fā)現(xiàn),以零分論處。 課程設(shè)計(jì)報(bào)告批改說(shuō)明 課程設(shè)計(jì)報(bào)告的批改要及時(shí)、認(rèn)真、仔細(xì),一律用紅色筆批改。課程設(shè)計(jì)報(bào)告的批改成績(jī)采用五級(jí)計(jì)分制或百分制,具體評(píng)分標(biāo)準(zhǔn)由各院部自行制定。 課程設(shè)計(jì)報(bào)告裝訂要求 報(bào)告批改完畢后,任課老師應(yīng)將課程設(shè)計(jì)報(bào)告以自然班為單位、按學(xué)號(hào)升序排列,并附上一份該課程設(shè)計(jì)的教學(xué)大綱。 金陵科技學(xué)院課程設(shè)計(jì)報(bào)告 課程設(shè)計(jì)題目: 簡(jiǎn)單計(jì)算器 1、 摘要(所進(jìn)行設(shè)計(jì)工作的主旨、
4、緣起、 目的,設(shè)計(jì)工作的主要內(nèi)容、過(guò)程,采用的方法及取得的成果。關(guān)鍵字(Key Words): 一般3~5個(gè),最能代表報(bào)告內(nèi)容特征,或在報(bào)告起關(guān)鍵作用,最能說(shuō)明問(wèn)題的詞組) 目前手機(jī)可以說(shuō)是普及率非常高的電子設(shè)備了,由于其便于攜帶,使用方便,資費(fèi)適中等等原因,現(xiàn)在手機(jī)已經(jīng)在一定程度開(kāi)始代替固定電話的通話功能,以及一些原來(lái)電腦軟件上的功能了。手機(jī)上的軟件也隨著手機(jī)的發(fā)展變得豐富起來(lái)了,時(shí)至今日已經(jīng)出現(xiàn)了很多專門(mén)制作手機(jī)軟件的公司,雖然制作的多是游戲軟件,但是一些輔助性的工具軟件也有了很多.我在此次系統(tǒng)中所做的工作主要是設(shè)計(jì)整個(gè)系統(tǒng)以及利用編程語(yǔ)言實(shí)現(xiàn)整個(gè)系統(tǒng),使系統(tǒng)能夠正確的運(yùn)行計(jì)算功能。
5、 本程序是一個(gè)基于現(xiàn)有手機(jī)計(jì)算器開(kāi)發(fā)的在觸屏手機(jī)上運(yùn)行的簡(jiǎn)單計(jì)算器,使用戶可以更加簡(jiǎn)單便捷的使用計(jì)算器功能,在此次程序設(shè)計(jì)中所做的工作主要是設(shè)計(jì)程序的圖形化操作界面,以及利用編程語(yǔ)言實(shí)現(xiàn)整個(gè)程序的計(jì)算功能,使其能夠正確運(yùn)行。 設(shè)計(jì)的計(jì)算器應(yīng)用程序可以完成加法、減法、乘法以及除法,并且具有刪除和清空的功能。 關(guān)鍵詞:Android、應(yīng)用開(kāi)發(fā)、計(jì)算器 二、目錄 一.前言 二.正文 1. 開(kāi)發(fā)環(huán)境 2. 程序流程設(shè)計(jì) 3. 系統(tǒng)功能設(shè)計(jì) 4. 基于Android平臺(tái)系統(tǒng)具體設(shè)計(jì) 5. 總體模塊詳細(xì)設(shè)計(jì) 6. 輸入模塊詳細(xì)設(shè)計(jì) 7. 顯示模塊詳細(xì)設(shè)計(jì)
6、 8. 計(jì)算模塊詳細(xì)設(shè)計(jì) 9. 界面設(shè)計(jì)截圖 三.總結(jié) 四.參考文獻(xiàn) 五.附錄 I 三、前言(說(shuō)明本次課程設(shè)計(jì)課題意義,本課題相關(guān)技術(shù)特點(diǎn),擬采用的方案或路線) 通過(guò)此次課程設(shè)計(jì),鞏固所學(xué)Java語(yǔ)言的基礎(chǔ)知識(shí),增進(jìn)Java語(yǔ)言編輯基本功,掌握J(rèn)DK,Android Studio等開(kāi)發(fā)工具的應(yīng)用,拓展常用類庫(kù)的應(yīng)用。使學(xué)生通過(guò)該教學(xué)環(huán)節(jié)與手段,把所學(xué)課程及相關(guān)知識(shí)加以融匯貫通,全面掌握J(rèn)ava語(yǔ)言的編程思想及面向?qū)ο蟪绦蛟O(shè)計(jì)的方法。 加法運(yùn)算 根據(jù)用戶的實(shí)際要求,程序應(yīng)實(shí)現(xiàn)以下功能:計(jì)算器界面友好,方便使用,具有基本的加、減、乘、除功能,能夠判斷用戶輸入運(yùn)算數(shù)是
7、否正確,支持小數(shù)點(diǎn)運(yùn)算,具有退格功能,能夠刪除最后一個(gè)輸入,具有清除功能。 減法運(yùn)算 記憶相關(guān)功能 計(jì)算器 乘法運(yùn)算 清除相關(guān)功能 除法運(yùn)算 整個(gè)程序基于Android技術(shù)開(kāi)發(fā),除總體模塊外主要分為輸入模塊、顯示模塊以及計(jì)算模塊這三大部分。在整個(gè)系統(tǒng)中總體模塊控制系統(tǒng)的生命周期,輸入模塊部分負(fù)責(zé)讀取用戶輸入的數(shù)據(jù),顯示模塊部分負(fù)責(zé)顯示用戶之前輸入的數(shù)據(jù)以及顯示最終的計(jì)算結(jié)果,計(jì)算機(jī)模塊負(fù)責(zé)進(jìn)行數(shù)據(jù)的運(yùn)算以及一些其他的功能。 具體的說(shuō),總體模塊的作用主要是生成應(yīng)用程序的主類,控制應(yīng)用程序的生命周期。輸入模塊只要描述了計(jì)算器鍵盤(pán)以及鍵盤(pán)的監(jiān)聽(tīng)即主要負(fù)責(zé)讀取用戶的
8、鍵盤(pán)輸入以及響應(yīng)觸屏的按鍵,需要監(jiān)聽(tīng)手機(jī)動(dòng)作以及指針事件處理觸屏的單擊操作,同時(shí)提供了較為直觀的鍵盤(pán)圖形用戶界面。顯示模塊描述了計(jì)算器的顯示區(qū),即該區(qū)域用于顯示用戶輸入的數(shù)據(jù)以及最終的計(jì)算結(jié)果,同時(shí)負(fù)責(zé)顯示一些其他的信息。 計(jì)算模塊則主要描述了計(jì)算器的整體,實(shí)現(xiàn)了計(jì)算器的界面,負(fù)責(zé)計(jì)算用戶輸入的數(shù)據(jù),包括加、減、乘、除等各種功能,退格以及清零的功能。 系統(tǒng)除了總體模塊以外主要由三大模塊來(lái)組成,即輸入模塊、顯示模塊和計(jì)算模塊,如下圖所示: 總體系統(tǒng) 顯示模塊 計(jì)算模塊 輸入模塊 三大模塊 輸入模塊主要描述了計(jì)算器鍵盤(pán)以及鍵盤(pán)的監(jiān)聽(tīng)即負(fù)責(zé)讀取用戶的鍵
9、盤(pán)輸入以及響應(yīng)觸屏的按鍵,需要監(jiān)聽(tīng)手機(jī)按鍵的動(dòng)作以及指針事件處理方法處理觸屏的單擊操作(以松開(kāi)按鍵為標(biāo)準(zhǔn))。同時(shí)提供了較為直觀的鍵盤(pán)圖形用戶界面。顯示模塊描述了計(jì)算器的顯示區(qū),即該區(qū)域用于顯示用戶輸入的數(shù)據(jù)以及最終的計(jì)算結(jié)果,同時(shí)負(fù)責(zé)顯示一些其他的信息。計(jì)算模塊則主要描述了計(jì)算器的整體,實(shí)現(xiàn)了計(jì)算器的界面,負(fù)責(zé)計(jì)算用戶輸入的數(shù)據(jù),包括加、減、乘、除等各種功能,退格以及清零的功能。 4、 正文(包含所進(jìn)行設(shè)計(jì)的整體內(nèi)容) 1、開(kāi)發(fā)環(huán)境 Android是Google于2007年11月5日宣布基于Linux平臺(tái)的開(kāi)源手機(jī)操作系統(tǒng)的名稱,該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組
10、成,號(hào)稱是首個(gè)移動(dòng)端打造的真正開(kāi)放和完整的移動(dòng)軟件??梢园阉斫獬蒐inux上套了一個(gè)JAVA的殼。 Android的平臺(tái)基本上是免費(fèi)的,雖然有部分原生鏈接庫(kù)會(huì)要求費(fèi)用,但大部分是免權(quán)利金的。Android的程序可以采用JAVA開(kāi)發(fā),因?yàn)樗奶摂M機(jī)Dalvik,只是它將JAVA的bytecode轉(zhuǎn)成自己的格式,回避掉需要付給SUN有關(guān)JAVA的授權(quán)費(fèi)用,因此,Android開(kāi)發(fā)環(huán)境是需要JDK的。 Android Studio 是一個(gè)Android集成開(kāi)發(fā)工具,基于IntelliJ IDEA. 類似EclipseADT,Android Studio 提供了集成的 Android 開(kāi)發(fā)工具用
11、于開(kāi)發(fā)和調(diào)試。 2、程序流程設(shè)計(jì) 知道了系統(tǒng)的功能以后,我們通過(guò)main.xml來(lái)建立顯示界面,完成后系統(tǒng)開(kāi)始監(jiān)聽(tīng)用戶的按鍵輸入,每次輸入系統(tǒng)都會(huì)判斷一次用戶輸入的類型,是數(shù)字還是運(yùn)算符號(hào)或者是清除,判斷完后分成不同類型如數(shù)字,符號(hào),基本運(yùn)算等等進(jìn)行進(jìn)一步的處理,根據(jù)用戶的要求繼續(xù)進(jìn)行下一步的操作,最后計(jì)算出最終結(jié)果并顯示在顯示區(qū)。 流程設(shè)計(jì)圖如下所示: 開(kāi)始 監(jiān)聽(tīng)用戶按鍵輸入 系統(tǒng)重置 判斷是否清零操作 是 否 判斷是否結(jié)算結(jié)果
12、 否 是 按照用戶要求進(jìn)行計(jì)算 在顯示區(qū)顯示計(jì)算結(jié)果 3、系統(tǒng)功能設(shè)計(jì) 整個(gè)系統(tǒng)的功能比較多,比較復(fù)雜,如上所說(shuō),可以分為十多個(gè)功能模塊,但是邏輯上理解其實(shí)不算難,系統(tǒng)包括如普通計(jì)算功能,包括加減乘除,退格以及清零功能。 加法運(yùn)算 記憶相關(guān)功能 減法運(yùn)算 計(jì)算器 清除相關(guān)功能 乘法運(yùn)算 除法運(yùn)算 4、 基于Android平臺(tái)系統(tǒng)具體設(shè)計(jì) 系統(tǒng)除了總體模塊以外主要由三大模塊來(lái)組成,即輸入模塊,顯示模
13、塊和計(jì)算模塊。用系統(tǒng)框圖來(lái)顯示。即如下圖: 總體系統(tǒng) 顯示模塊 計(jì)算模塊 輸入模塊 5、 總體模塊詳細(xì)設(shè)計(jì) 總體模塊需要完成的任務(wù)主要就是系統(tǒng)的程序啟動(dòng)類,需要負(fù)責(zé)整個(gè)系統(tǒng)的生命周期。同時(shí)還要在模塊中完成菜單欄上的所有功能,退出程序,記憶數(shù)據(jù),顯示數(shù)據(jù),清除記憶數(shù)據(jù)這四個(gè)功能 總體模塊 如下: 完成程序啟動(dòng)類 完成菜單功能 6、 輸入模塊詳細(xì)設(shè)計(jì) 系統(tǒng)如果想要完成計(jì)算器中的各種功能,首先用戶要能進(jìn)行數(shù)據(jù)輸入,由于是在觸屏手機(jī)上開(kāi)發(fā)計(jì)算器程序,所以要求輸入可以直接使用觸屏進(jìn)行,所以在設(shè)計(jì)的時(shí)候就要充分考慮這一點(diǎn)。所以在進(jìn)
14、行模塊設(shè)計(jì)師,選擇編寫(xiě)輸入模塊類的時(shí)候會(huì)選取使用了可以支持觸屏輸入的特殊增強(qiáng)行的圖形用戶界面類。 輸入模塊主要的任務(wù)是描述計(jì)算器鍵盤(pán)以及實(shí)現(xiàn)鍵盤(pán)監(jiān)聽(tīng),即當(dāng)用戶點(diǎn)擊按鍵或者屏幕的時(shí)候監(jiān)聽(tīng)器會(huì)去調(diào)用相應(yīng)的處理辦法,本模塊還需要為系統(tǒng)提供一個(gè)較為直接的鍵盤(pán)圖形用戶界面。 輸入模塊 如下: 輸入模塊 實(shí)現(xiàn)按鍵監(jiān)聽(tīng) 描述計(jì)算器鍵盤(pán) 實(shí)現(xiàn)按鍵監(jiān)聽(tīng) 實(shí)現(xiàn)按鍵監(jiān)聽(tīng) 描述計(jì)算器鍵盤(pán) 7、 顯示模塊詳細(xì)設(shè)計(jì) 顯示模塊主要完成的任務(wù)是描述計(jì)算器的顯示區(qū),該區(qū)域用于顯示用戶輸入的數(shù)據(jù)以及最終的計(jì)算結(jié)果和一些其他信息。同時(shí)本模塊還將提供和設(shè)置顯示
15、的具體方法。 顯示模塊 如圖: 設(shè)置顯示區(qū)數(shù)據(jù)方法 調(diào)用顯示區(qū)數(shù)據(jù)方法 顯示區(qū)的相關(guān)設(shè)置 8、 計(jì)算模塊詳細(xì)設(shè)計(jì) 系統(tǒng)想要能在屏幕上顯示出計(jì)算器的樣子要有整體的布局,在本模塊中要完成布局的具體設(shè)計(jì),使用戶能夠看到整個(gè)計(jì)算器的界面。同時(shí)系統(tǒng)想要完成計(jì)算功能必須要處理用戶的輸入,當(dāng)輸入模塊的監(jiān)聽(tīng)傳到計(jì)算模塊中,計(jì)算模塊就要根據(jù)相應(yīng)的方法進(jìn)行進(jìn)一步邏輯判斷。 如下: 計(jì)算模塊 整體布局 邏輯判斷 數(shù)值輸入判斷 運(yùn)算輸入判斷 高級(jí)功能 普通運(yùn)算 清零復(fù)位功能 記憶相關(guān)功能
16、 9、 界面設(shè)計(jì)截圖 五、結(jié)論(對(duì)整個(gè)設(shè)計(jì)工作的總結(jié),可以包括作者提出的建議、下一步工作的設(shè)想及改進(jìn)意見(jiàn)等) 課程設(shè)計(jì)終于在我的努力下做完了。這個(gè)時(shí)候我更加深入的了解了Java的特點(diǎn)以及一些相關(guān)知識(shí)。與其臨淵羨魚(yú),不如退而結(jié)網(wǎng)。這次Android課程設(shè)計(jì)給我的最大的印象就是如果自己有了興趣,就動(dòng)手去做,困難在你的勇氣和毅力下是抬不了頭的。如果你連失敗都不怕了,那你還怕什么,拾起懶惰的心,勤奮著就會(huì)走向成功斬。這次的課程設(shè)計(jì)在我未來(lái)的時(shí)日里,是一個(gè)標(biāo)桿,因?yàn)樗嬖V了我,只要我努力沒(méi)有什么事我做不好的。安卓開(kāi)發(fā)是個(gè)很有意思的事情,以后可以在自己手機(jī)上安裝自己開(kāi)發(fā)的一些小程序,
17、也是個(gè)非常不錯(cuò)的事情,目前還沒(méi)有個(gè)安卓機(jī)子,而在其他同學(xué)手機(jī)測(cè)試過(guò)后,還是比較不錯(cuò)的 六、參考文獻(xiàn)(撰寫(xiě)論文過(guò)程中所參考的文章、書(shū)本及其它文獻(xiàn)。) [1] 王小科,Android入門(mén)經(jīng)典[M],北京:機(jī)械工業(yè)出版社,2013年. [2] DevDiv移動(dòng)開(kāi)發(fā)社區(qū),Android開(kāi)發(fā)實(shí)戰(zhàn)體驗(yàn)[M],北京:海洋出版社,2013 [3] 第一行代碼 [4] 2015最新Android基礎(chǔ)入門(mén)教程 7、 附錄(相關(guān)圖紙及源程序等) 目錄結(jié)構(gòu) Activity_main.xml中的源代碼
18、1.0" encoding="utf-8"?>
20、ndroid:id="@+id/et_input"
android:editable="false"
android:gravity="right|bottom"
/>
21、 android:orientation="horizontal"
android:layout_below="@+id/et_input"
android:layout_alignParentStart="true"
android:weightSum="1">
25、************
26、d:layout_alignParentStart="true"
android:weightSum="1">
27、_weight="0.54" />
28、 android:layout_width="59dp"
android:layout_height="74dp"
android:text="9"
android:textSize="20sp"
android:id="@+id/btn_9"
/>
29、 android:text="-"
android:textSize="20sp"
android:id="@+id/btn_minus"
/>
31、idth="60dp"
android:layout_height="74dp"
android:text="4"
android:textSize="20sp"
android:id="@+id/btn_4"
android:layout_weight="0.54" />
32、"74dp"
android:text="5"
android:textSize="20sp"
android:id="@+id/btn_5"
android:layout_weight="0.46" />
33、 android:textSize="20sp"
android:id="@+id/btn_6"
/>
34、 />
35、 android:orientation="horizontal"
android:layout_below="@+id/et_input"
android:layout_alignParentStart="true"
android:weightSum="1">
36、 android:textSize="20sp"
android:id="@+id/btn_1"
android:layout_weight="0.54" />
37、 android:id="@+id/btn_2"
android:layout_weight="0.46" />
38、 39、
android:layout_height="wrap_content"
android:gravity="center"
android:layout_marginTop="290dp"
android:orientation="horizontal"
android:layout_below="@+id/et_input"
android:layout_alignParentStart="true"
android:weightSum="1">
40、 41、="223dp"
android:layout_height="74dp"
android:text="="
android:textSize="20sp"
android:id="@+id/btn_equal"
android:layout_weight="0.24" />
42、mple.work; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; public class MainActivity extends AppCompatActivity implements View.OnClickListener { Button btn_0 ; Butto
43、n btn_1; Button btn_2; Button btn_3 ; Button btn_4 ; Button btn_5 ; Button btn_6 ; //數(shù)字按鈕 Button btn_7 ; Button btn_8 ; Button btn_9 ; Button btn_point ; //小數(shù)點(diǎn)按鈕 Button btn_clear ; Button btn_del ; Button btn_pluse ; Button btn_minus
44、 ; Button btn_multiply ; Button btn_divide ; Button btn_equle ; EditText et_input ; boolean clear_flag ;//清空標(biāo)識(shí) @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_ma
45、in); btn_0 = (Button) findViewById(R.id.btn_0) ; btn_1 = (Button) findViewById(R.id.btn_1) ; btn_2 = (Button) findViewById(R.id.btn_2) ; btn_3 = (Button) findViewById(R.id.btn_3) ; btn_4 = (Button) findViewById(R.id.btn_4) ; btn_5 = (Button) find
46、ViewById(R.id.btn_5) ; btn_6 = (Button) findViewById(R.id.btn_6) ; btn_7 = (Button) findViewById(R.id.btn_7) ; btn_8 = (Button) findViewById(R.id.btn_8) ; btn_9 = (Button) findViewById(R.id.btn_9) ; btn_point = (Button) findViewById(R.id.btn_point) ;
47、 btn_clear = (Button) findViewById(R.id.btn_clear) ; btn_del = (Button) findViewById(R.id.btn_del) ; btn_pluse = (Button) findViewById(R.id.btn_plus) ; btn_minus = (Button) findViewById(R.id.btn_minus) ; btn_multiply = (Button) findViewById(R.id.btn_multiply)
48、; btn_divide = (Button) findViewById(R.id.btn_divide) ; btn_equle = (Button) findViewById(R.id.btn_equal) ; //以上實(shí)例化按鈕 et_input = (EditText) findViewById(R.id.et_input); //實(shí)例化之后的顯示屏 btn_0.setOnClickListener(this); btn_1.setOnClickListener(this);
49、 btn_2.setOnClickListener(this); btn_3.setOnClickListener(this); btn_4.setOnClickListener(this); btn_5.setOnClickListener(this); btn_6.setOnClickListener(this); btn_7.setOnClickListener(this); btn_8.setOnClickListener(this); btn_9.setO
50、nClickListener(this); btn_point.setOnClickListener(this); btn_clear.setOnClickListener(this); btn_del.setOnClickListener(this); btn_pluse.setOnClickListener(this); btn_minus.setOnClickListener(this); btn_multiply.setOnClickListener(this);
51、 btn_divide.setOnClickListener(this); btn_equle.setOnClickListener(this); //設(shè)置以上按鈕的點(diǎn)擊事件 } @Override public void onClick(View v) { String str = et_input.getText().toString(); switch (v.getId()) { case R.id.btn_0: case
52、 R.id.btn_1: case R.id.btn_2: case R.id.btn_3: case R.id.btn_4: case R.id.btn_5: case R.id.btn_6: case R.id.btn_7: case R.id.btn_8: case R.id.btn_9: case R.id.btn_point:
53、 if (clear_flag) { clear_flag =false ; str ="" ; et_input.setText(""); } et_input.setText(str + ((Button)v).getText()); break ; case R.id.btn_plus: case R.id
54、.btn_minus: case R.id.btn_multiply: case R.id.btn_divide: if (clear_flag) { clear_flag =false ; str ="" ; et_input.setText(""); } et_input.setText(str+ " " + ((
55、Button)v).getText()+" "); break; case R.id.btn_del: if (clear_flag) { clear_flag =false ; str ="" ; et_input.setText(""); }else if (str!=null&&!str.equals("")){
56、 et_input.setText(str.substring(0,str.length()-1)); } break; case R.id.btn_clear: clear_flag =false ; str ="" ; et_input.setText(""); case R.id.btn_equal: getResult
57、(); break ; } } /* 單獨(dú)的調(diào)用運(yùn)算結(jié)果 * * * */ private void getResult(){ String exp = et_input.getText().toString(); if (exp == null||exp.equals("")){ return; } if(!exp.contains(" ")) { ret
58、urn; } if (clear_flag){ clear_flag = false ; return; } clear_flag = true ; double result = 0 ; String s1 = exp.substring(0,exp.indexOf(" ")); //運(yùn)算符前面的字符串 String op = exp.substring(exp.indexOf(" ")+1,exp.indexO
59、f(" ")+2) ; String s2 = exp.substring(exp.indexOf(" ")+3) ; if (!s1.equals(" ")&&!s2.equals(" ")){ double d1 = Double.parseDouble(s1) ; double d2 = Double.parseDouble(s2) ; if (op.equals("+")){ result = d1 + d2 ;
60、 }else if (op.equals("-")){ result = d1 - d2 ; }else if (op.equals("*")){ result = d1 * d2 ; }else if (op.equals("/")){ if(d2 == 0){ result = 0 ; }else { re
61、sult = d1/d2 ; } } if (s1.contains(".")&&s2.contains(".")) { int r = (int) result; et_input.setText(r+""); }else { et_input.setText(result+""); } }else if (!s1.equals(""
62、)&&s2.equals("")){ et_input.setText(exp); }else if (s1.equals("")&&!s2.equals("")){ double d2 = Double.parseDouble(s2) ; if (op.equals("+")){ result = 0 + d2 ; }else if (op.equals("-")){ result = 0 - d2
63、 ; }else if (op.equals("*")){ result = 0 ; }else if (op.equals("/")){ result = 0 ; } if (s2.contains(".")) { int r = (int) result; et_input.setText(r+""); }else
64、{
et_input.setText(result+"");
}
}else {
et_input.setText("");
}
}
}
AndroidMainfest.xml中的相關(guān)設(shè)置,代碼如下:
65、on
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 110中國(guó)人民警察節(jié)(筑牢忠誠(chéng)警魂感受別樣警彩)
- 2025正字當(dāng)頭廉字入心爭(zhēng)當(dāng)公安隊(duì)伍鐵軍
- XX國(guó)企干部警示教育片觀后感筑牢信仰之基堅(jiān)守廉潔底線
- 2025做擔(dān)當(dāng)時(shí)代大任的中國(guó)青年P(guān)PT青年思想教育微黨課
- 2025新年工作部署會(huì)圍繞六個(gè)干字提要求
- XX地區(qū)中小學(xué)期末考試經(jīng)驗(yàn)總結(jié)(認(rèn)真復(fù)習(xí)輕松應(yīng)考)
- 支部書(shū)記上黨課筑牢清廉信念為高質(zhì)量發(fā)展?fàn)I造風(fēng)清氣正的環(huán)境
- 冬季消防安全知識(shí)培訓(xùn)冬季用電防火安全
- 2025加強(qiáng)政治引領(lǐng)(政治引領(lǐng)是現(xiàn)代政黨的重要功能)
- 主播直播培訓(xùn)直播技巧與方法
- 2025六廉六進(jìn)持續(xù)涵養(yǎng)良好政治生態(tài)
- 員工職業(yè)生涯規(guī)劃方案制定個(gè)人職業(yè)生涯規(guī)劃
- 2024年XX地區(qū)黨建引領(lǐng)鄉(xiāng)村振興工作總結(jié)
- XX中小學(xué)期末考試經(jīng)驗(yàn)總結(jié)(認(rèn)真復(fù)習(xí)輕松應(yīng)考)
- 幼兒園期末家長(zhǎng)會(huì)長(zhǎng)長(zhǎng)的路慢慢地走