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

下載本文檔

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

文檔簡介

1、<p>  操作系統(tǒng) 課程設(shè)計報告書</p><p>  題 目 安卓計算器的開發(fā)與設(shè)計 </p><p>  系 別 計算機(jī)工程系 </p><p>  專 業(yè) 計算機(jī)科學(xué)與技術(shù) </p><p>  班 級

2、 </p><p>  姓 名 </p><p>  指導(dǎo)教師 </p><p>  下達(dá)日期 2013年 6 月 13 日</p><p>  設(shè)計時間自2013 年 7 月 1 日 至 2013 年 7 月 4 日</p><p><b>  目

3、錄</b></p><p><b>  摘 要3</b></p><p><b>  一、設(shè)計概述4</b></p><p><b>  1.設(shè)計背景4</b></p><p><b>  2.設(shè)計目的4</b></p>

4、<p><b>  3.設(shè)計要求4</b></p><p><b>  4.開發(fā)環(huán)境6</b></p><p><b>  二、設(shè)計細(xì)節(jié)7</b></p><p><b>  1.整體思想7</b></p><p><b> 

5、 2.容錯處理7</b></p><p>  3.數(shù)據(jù)結(jié)構(gòu)的設(shè)計8</p><p>  4.用戶界面的實(shí)現(xiàn)8</p><p><b>  5.文件結(jié)構(gòu)9</b></p><p>  6.界面組件設(shè)計10</p><p>  (1) XML文件生成11</p>

6、<p>  (2)用戶界面在程序代碼實(shí)現(xiàn)11</p><p>  (3)用戶自定義頁面組件11</p><p><b>  7.程序流程12</b></p><p>  三、詳細(xì)設(shè)計與實(shí)現(xiàn)13</p><p>  1.開發(fā)環(huán)境搭建13</p><p>  (1)安裝Androi

7、d 開發(fā)插件13</p><p>  (2)配置android sdk15</p><p>  2.圖形界面設(shè)計17</p><p>  3.程序功能實(shí)現(xiàn)22</p><p><b>  四、測試分析28</b></p><p>  1.模擬器創(chuàng)建28</p><p

8、><b>  2.計算功能29</b></p><p><b>  3.應(yīng)用卸載30</b></p><p>  3.應(yīng)用導(dǎo)出為.APK文件30</p><p><b>  小結(jié)31</b></p><p><b>  致 謝32</b>&

9、lt;/p><p><b>  摘 要</b></p><p>  Android成功地成為了最具有潛力的新一代的手機(jī)應(yīng)用軟件。正如了標(biāo)準(zhǔn)化PC和Macintosh平臺上創(chuàng)建的桌面和服務(wù)器軟件市場,在Android上,通過提供一個標(biāo)準(zhǔn)的手機(jī)應(yīng)用環(huán)境,將增加移動應(yīng)用程序和應(yīng)用開發(fā)商的利潤。</p><p>  Android給開發(fā)人員提供了一種獨(dú)特

10、的,創(chuàng)造性的應(yīng)用開發(fā)方式,并且應(yīng)用到客戶手機(jī)中?,F(xiàn)在出現(xiàn)了成千上萬的Android手機(jī)用戶,正在尋找最優(yōu)秀的手機(jī)應(yīng)用程序。然后把這些優(yōu)秀的應(yīng)用程序應(yīng)用到手機(jī)中。</p><p>  本程序是一個基于現(xiàn)有手機(jī)計算器開發(fā)的在觸屏手機(jī)上運(yùn)行的簡單計算器,使用戶可以更加簡單便捷的使用計算器的功能,在此次程序設(shè)計中所做的工作主要是設(shè)計程序的圖形化操作界面,以及利用編程語言實(shí)現(xiàn)整個程序的計算功能,使其能夠正確地運(yùn)行。<

11、/p><p>  關(guān)鍵詞:應(yīng)用程序,操作系統(tǒng),Android,應(yīng)用開發(fā),計算器</p><p><b>  一、設(shè)計概述</b></p><p><b>  1.設(shè)計背景</b></p><p>  隨著社會的發(fā)展,經(jīng)濟(jì)水平的提高,手機(jī)越來越普及。同時伴隨著移動互聯(lián)網(wǎng)技術(shù)的發(fā)展,手機(jī)的功能也變得越來越豐

12、富。從原來只具有簡單通信功能的非智能手機(jī)到現(xiàn)在具有手機(jī)操作系統(tǒng),除通話功能以外,還集上網(wǎng)、聊天、炒股、收發(fā)郵件等功能于一身的智能手機(jī)系統(tǒng)。</p><p>  Java語言是當(dāng)今流行的網(wǎng)絡(luò)編程語言,它具有面向?qū)ο?、跨平臺、分布應(yīng)用等特點(diǎn)。面向?qū)ο蟮拈_發(fā)方法是當(dāng)今世界最流行的開發(fā)方法,它不僅具有更貼近自然的語義,而且有利于軟件的維護(hù)和繼承。</p><p><b>  2.設(shè)計目的

13、</b></p><p>  通過此次課程設(shè)計,鞏固所學(xué)操作系統(tǒng)與Java語言的基本知識,增進(jìn)Java語言編輯基本功,掌握J(rèn)DK、Editplus、Eclipse、JCreator等開發(fā)工具的運(yùn)用,拓寬常用類庫的應(yīng)用。使學(xué)生通過該教學(xué)環(huán)節(jié)與手段,把所學(xué)課程及相關(guān)知識加以融會貫通,全面掌握J(rèn)ava語言的編程思想及面向?qū)ο蟪绦蛟O(shè)計的方法,為今后從事實(shí)際工作打下堅實(shí)的基礎(chǔ)。</p><p

14、><b>  3.設(shè)計要求</b></p><p>  根據(jù)用戶的實(shí)際要求,程序應(yīng)實(shí)現(xiàn)以下功能:計算器界面友好,方便使用,具有基本的加、減、乘、除功能,能夠判斷用戶輸入運(yùn)算數(shù)是否正確,支持小數(shù)運(yùn)算,具有退格功能,能夠刪除最后一個輸入,具有清除功能,即“C”。</p><p>  整個程序基于Android技術(shù)開發(fā),除總體模塊外主要分為輸入模塊、顯示模塊以及計算模

15、塊這三大部分。在整個系統(tǒng)中總體模塊控制系統(tǒng)的生命周期,輸入模塊部分負(fù)責(zé)讀取用戶輸入的數(shù)據(jù),顯示模塊部分負(fù)責(zé)顯示用戶之前輸入的數(shù)據(jù)以及顯示最終的計算結(jié)果,計算機(jī)模塊部分負(fù)責(zé)進(jìn)行數(shù)據(jù)的運(yùn)算以及一些其他的功能。下面較為詳細(xì)的做了說明。</p><p>  具體的說,總體模塊的作用主要是生成應(yīng)用程序的主類,控制應(yīng)用程序的生命周期。輸入模塊主要描述了計算器鍵盤以及鍵盤的監(jiān)聽即主要負(fù)責(zé)讀取用戶的鍵盤輸入以及響應(yīng)觸屏的按鍵,需

16、要監(jiān)聽手機(jī)動作以及用指針事件處理方法處理觸屏的單擊動作。同時提供了較為直觀的鍵盤圖形用戶界面。</p><p>  顯示模塊描述了計算器的顯示區(qū),即該區(qū)域用于顯示用戶輸入的數(shù)據(jù)以及最終的計算結(jié)果,同時負(fù)責(zé)顯示一些其他的信息。</p><p>  計算模塊則主要描述了計算器的整體,實(shí)現(xiàn)了計算器的界面,負(fù)責(zé)計算用戶輸入數(shù)據(jù),包括加、減、乘、除等各種功能,記憶數(shù)據(jù)的相關(guān)功能,退格以及清零的功能。

17、</p><p>  系統(tǒng)除了總體模塊以外主要由三大模塊來組成,即輸入模塊、顯示模塊和計算模塊,如下圖所示:</p><p><b>  三大模塊</b></p><p>  輸入模塊主要描述了計算器鍵盤以及鍵盤的監(jiān)聽即主要負(fù)責(zé)讀取用戶的鍵盤輸入以及響應(yīng)觸屏的按鍵,需要監(jiān)聽手機(jī)按鍵動作以及用指針事件處理方法處理觸屏的單擊動作(以松開按鍵為準(zhǔn))。

18、同時提供了較為直觀的鍵盤圖形用戶界面。顯示模塊描述了計算器的顯示區(qū),即該區(qū)域用于顯示用戶輸入的數(shù)據(jù)以及最終的計算結(jié)果,同時還負(fù)責(zé)顯示一些其他的信息。計算模塊則主要描述了計算器的整體,實(shí)現(xiàn)了計算器的界面,負(fù)責(zé)計算用戶輸入數(shù)據(jù),包括加、減、乘、除、等各種計算功能,記憶數(shù)據(jù)的相關(guān)功能,退格以及清零的功能。</p><p><b>  4.開發(fā)環(huán)境</b></p><p> 

19、 Android是Google于2007年11月5日宣布的基于Linux平臺的開源手機(jī)操作系統(tǒng)的名稱,該平臺由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,號稱是首個為移動終端打造的真正開放和完整的移動軟件??梢园阉唵卫斫獬?Linux上套了一個 JAVA 的殼。 </p><p>  Android 的平臺基本上是免費(fèi)的,雖然有部份原生鏈接庫會要求費(fèi)用,但大部份是免權(quán)利金。 Android 的程序可以采用 JAV

20、A 開發(fā), 因為它的虛擬機(jī)(Virtual Machine) Dalvik,只是它將 JAVA 的 bytecode 轉(zhuǎn)成自己的格式,回避掉需要付給 SUN 有關(guān) JAVA 的授權(quán)費(fèi)用。因此,Android 開發(fā)環(huán)境是需要 JDK 的。</p><p>  Eclipse 是一個開放源代碼的、基于Java的可擴(kuò)展開發(fā)平臺。就其本身而言,它只是一個框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,Eclip

21、se 附帶了一個標(biāo)準(zhǔn)的插件集,包括Java開發(fā)工具(Java Development Kit,JDK)。雖然大多數(shù)用戶很樂于將 Eclipse 當(dāng)作 Java 集成開發(fā)環(huán)境(IDE)來使用,但 Eclipse 的目標(biāo)卻不僅限于此。Eclipse 還包括插件開發(fā)環(huán)境(Plug-in Development Environment,PDE),這個組件主要針對希望擴(kuò)展 Eclipse 的軟件開發(fā)人員,因為它允許他們構(gòu)建與 Eclipse 環(huán)境

22、無縫集成的工具。由于 Eclipse 中的每樣?xùn)|西都是插件,對于給 Eclipse 提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場所。這種平等和一致性并不僅限于 Java 開發(fā)工具。盡管 Eclipse 是使用 Java 語言開發(fā)的,但它的用途并不限于 Java 語言;例如,支持諸如 C/C++ 和 COBOL 等編程語言的插件已經(jīng)可用,或預(yù)計將會推出。Ecl</p><p&

23、gt;<b>  二、設(shè)計細(xì)節(jié)</b></p><p><b>  1.整體思想</b></p><p>  在整個過程中,首先應(yīng)該對輸入進(jìn)行容錯處理,這樣有利于提高用戶體驗。對于用戶的按鍵輸入,需要及時地顯示在第一個EditView中。在EditView中顯示的是一個字符串,用戶每輸入一個操作,字符串發(fā)生相應(yīng)改變,然后在EditView中反映出

24、來。</p><p>  接著便是對第一個EditView中的字符串進(jìn)行處理。通過程序設(shè)計,可以將字符串中的數(shù)據(jù)和操作符分別存在兩個棧中。</p><p>  然后需要設(shè)計算法處理兩個棧,通過算法得出字符串表達(dá)式的運(yùn)算結(jié)果,再將運(yùn)算結(jié)果反映在第二個EditView中的字符串中。</p><p><b>  2.容錯處理</b></p>

25、;<p>  用戶在輸入過程中,肯定會存在一定的錯誤,程序設(shè)計過程中需要對應(yīng)用程序進(jìn)行容錯處理。容錯設(shè)計比如:在輸入過程中小數(shù)的話只能有一個小數(shù)點(diǎn),操作符不能連續(xù)輸入,整數(shù)數(shù)據(jù)的開頭不能出現(xiàn)0等等。</p><p>  在設(shè)計的應(yīng)用程序中,設(shè)計了幾個標(biāo)記flag,每按下一個按鍵,若是按鍵是合理的話,都會引起標(biāo)記flag的改變。標(biāo)記flag將會限制接下來的輸入是否有效,無效則不做任何處理。</p

26、><p>  flag0=0:處理0的輸出,為1則表示數(shù)字的開頭有一個0。當(dāng)flag0=1時,不能再輸入0,當(dāng)再輸入數(shù)字或者操作符時,flag0重新置0。</p><p>  flag1=0:處理0的輸出,每個數(shù)字開頭的標(biāo)志 數(shù)值為0表示為數(shù)字開頭。當(dāng)flag1=0時,如果先輸入0再輸入1的話,前面的0自動消除。還有當(dāng)flag1=0時,不能輸入小數(shù)點(diǎn)等等。</p><p&g

27、t;  flag2=0:處理小數(shù)點(diǎn),一個數(shù)字最多只能有一個小數(shù)點(diǎn)。當(dāng)數(shù)字中有小數(shù)點(diǎn)時,flag2變?yōu)?,此后不能再輸入小數(shù)點(diǎn),輸入操作符等操作后,flag2又變?yōu)?。</p><p>  flag3=0:處理運(yùn)算符的輸出。很明顯不能連續(xù)輸入操作符,用此標(biāo)志,來限制連續(xù)操作符的輸入。</p><p>  flag4=0:處理ON/OFF問題。當(dāng)OFF之后,flag變?yōu)?,只有當(dāng)flag等于1

28、時,ON按鈕才能進(jìn)行操作。</p><p>  flag5=0:處理等號問題。很明顯操作符之后不能按下等號按鈕,等號按鈕按下之后要在第二個EditView中顯示結(jié)果、將顯示輸出的EditView清空。</p><p><b>  3.數(shù)據(jù)結(jié)構(gòu)的設(shè)計</b></p><p>  在程序設(shè)計過程中,需要設(shè)計數(shù)據(jù)結(jié)構(gòu)來存儲數(shù)字、操作符和容錯標(biāo)記,在本

29、程序中使用了棧,對這些數(shù)據(jù)進(jìn)行了存儲。</p><p><b>  4.用戶界面的實(shí)現(xiàn)</b></p><p>  每一個應(yīng)用程序,我們都要設(shè)計一個圖標(biāo),可以說圖標(biāo)是應(yīng)用程序的名片,好的圖標(biāo)能夠很快地吸引用戶。</p><p>  本人在網(wǎng)上尋找了一個圖標(biāo)作為計算器應(yīng)用的圖標(biāo),如圖所示。</p><p>  由于不同的a

30、ndroid手機(jī)有著不同的分辨率,將不同分辨率的圖標(biāo)圖片放置在相應(yīng)位置,drawable-hdpi中放置分辨率最高的圖標(biāo),drawable-mdpi中放置分辨率中等的圖標(biāo),drawable-ldpi中放置分辨率最低的圖標(biāo),實(shí)現(xiàn)效果如下。</p><p><b>  5.文件結(jié)構(gòu)</b></p><p>  在Eclipse建立計算器的Android項目工程,計算器的工

31、程文件名為Calculator。然后創(chuàng)建存放源文件、資源文件、頁面文件等各個文件夾。整個工程項目的目錄結(jié)構(gòu)如圖所示。</p><p>  其中src和gen文件夾下是整個項目的源文件,所有的java代碼都在這兩個文件夾下。src文件夾存放的是本文中開發(fā)的所有java文件。這java文件是整個項目的代碼。gen下面的R.java文件為Eclipse自動生成的系統(tǒng)文件,此文件中包含了本文開發(fā)過程中所吸引的資源的標(biāo)示。

32、</p><p>  res是存放整個系統(tǒng)中所用到的所有資源,其中, Drawble文件夾存放的是本文開發(fā)過程中所用到的所有圖片。Drawble包括drawable-hdpi,drawable-ldpi,drawable-mdpi三個文件夾,這是Adroid2.1版本的改進(jìn),是為了適應(yīng)Android手機(jī)系統(tǒng)不同的屏幕大小而設(shè)計的。用高分辨率的屏幕時,頁面所需要的圖片在drawable-hdpi中,用地分辨率的屏幕

33、時,則采用drawable-ldpi文件夾下的資源圖片;而普通分辨率時采用drawable-mdpi文件夾下的圖片資源。因此這種設(shè)計具有很好的版本適應(yīng)性及兼容性,大大提高了用戶體驗。</p><p>  AndroidManifest.xml是每個Android程序中所必需的,它位于Android工程的根目錄,描述了package中的全局?jǐn)?shù)據(jù),包括package中的組件,各自的實(shí)現(xiàn)類,各種能被處理的類和啟動位置等

34、。Manifest文件的主要功能是聲明應(yīng)用程序的組件。例如,一個activitiy必須要有一個<Activity>標(biāo)志對應(yīng),無論它是供應(yīng)外部使用還是只用于自己的package中。如果一個Activity沒有對應(yīng)的標(biāo)記,他將不能被運(yùn)行。</p><p>  Layout文件夾下面存放了本文所用到的所有用戶界面的XML布局文件。這些用戶界面資源文件定義后系統(tǒng)會在gen文件夾下的R.java文件中生成對應(yīng)的

35、資源引用符號。當(dāng)系統(tǒng)調(diào)用生成用戶界面時,只需要引用對應(yīng)的引用符號即可。</p><p>  Values文件夾下存放的是本系統(tǒng)所用到的文字及數(shù)字資源,這些資源以鍵值得形式存放。如<string name=”save_toast”>The file has been saved<sring>。這些文字或數(shù)值資源對放在,<resources></resources>為開

36、頭結(jié)尾的標(biāo)簽對xml文件中。Values-zh-rCN文件夾存放的是資源的英文形式,當(dāng)程序所運(yùn)行的系統(tǒng)平臺為英文系統(tǒng)時,調(diào)用values文件夾下資源;當(dāng)程序所運(yùn)行的平臺為中文時,調(diào)用Values-zh-rCN文件夾下資源,顯示中文方式。</p><p><b>  6.界面組件設(shè)計</b></p><p>  基于Android的手機(jī)計算器,是以用戶為中心的。因此構(gòu)建

37、良好的用戶界面是很重要的。Android構(gòu)建用戶界面有以下三種方式:</p><p><b>  XML文件生成</b></p><p>  根據(jù)MVC原則,UI應(yīng)該與程序邏輯相分離,因此,在XML中定義UI結(jié)構(gòu)是強(qiáng)烈推薦的。常用的方式是用圖形化的方式來編寫布局Layout,這些布局保存在XML文件中,然后編譯成資源,在程序中Activity通過setContentV

38、iew()方法來加載,然后通過findViewByld()方式來獲得每一個界面組件的引用。實(shí)現(xiàn)過程及步驟。在layout文件夾下定義自己的XML頁面。</p><p>  用XML實(shí)現(xiàn)用戶界面具有以下優(yōu)點(diǎn):</p><p>  1)XML文件結(jié)構(gòu)清晰,易于擴(kuò)展,系統(tǒng)可擴(kuò)展性好。</p><p>  2) 用戶界面與業(yè)務(wù)邏輯完全分離,降低了系統(tǒng)界面與業(yè)務(wù)邏輯的耦合性。

39、</p><p>  3)XML文件簡單易懂,可維護(hù)性好。</p><p>  缺點(diǎn)是:XML文件構(gòu)建的界面已在配置文件中實(shí)現(xiàn),無法在系統(tǒng)運(yùn)行時動態(tài)更新頁面。</p><p>  用戶界面在程序代碼實(shí)現(xiàn)</p><p>  對于一些開發(fā)者而言,喜歡最直觀的方式,既代碼中動態(tài)生成的方式。這種方式和XML定義是完全等價的。在程序中代碼構(gòu)建的方式還

40、可以在系統(tǒng)運(yùn)行時動態(tài)更改頁面布局及效果</p><p><b>  用戶自定義頁面組件</b></p><p>  由于Android應(yīng)用程序中的用戶界面都是View及View的各個子類如Button,TextView等子View及各種容器ViewGroup如LinearLayout、RealtiveLayout等ViewGroup構(gòu)成。因此要實(shí)現(xiàn)自己定制化的界面及頁

41、組件只需要繼承View類。自定義組件的步驟是:</p><p>  a)創(chuàng)建類,并繼承Android.view.View。</p><p>  b) 重寫構(gòu)造函數(shù),wtNumber()、wtOperater()等方法。</p><p>  c) 注冊構(gòu)件到頁面布局文件中。</p><p><b>  7.程序流程</b>

42、</p><p><b>  輸入模塊</b></p><p><b>  計算模塊</b></p><p><b>  顯示模塊</b></p><p><b>  三、詳細(xì)設(shè)計與實(shí)現(xiàn)</b></p><p><b> 

43、 1.開發(fā)環(huán)境搭建</b></p><p>  (1)安裝Android 開發(fā)插件</p><p>  打開Eclipse, 在菜單欄上選擇 help->Install New SoftWare</p><p>  點(diǎn)擊 Add按鈕,出現(xiàn)如下界面</p><p>  輸入網(wǎng)址

44、: https://dl-ssl.google.com/android/eclipse/</p><p>  名稱: Android,點(diǎn)擊確定。</p><p>  點(diǎn)擊 Next->Next按鈕</p><p>  選擇 I accept the terms of the license agreements,點(diǎn)擊Ne

45、xt,進(jìn)入安裝插件界面。</p><p>  安裝完成后,重啟Eclipse。</p><p>  (2)配置android sdk</p><p>  點(diǎn)擊菜單window->preferences, 選擇Android SDK解壓后的目錄</p><p>  升級SDK版本,選擇菜單 window->Android sdk a

46、nd avd manager 出現(xiàn)如下界面</p><p>  選擇update all按鈕,進(jìn)入安裝</p><p><b>  安裝完成如下:</b></p><p><b>  2.圖形界面設(shè)計</b></p><p>  圖形化設(shè)計框架代碼:</p><p>

47、;<b>  MAIN.XML</b></p><p>  <?xml version="1.0" encoding="utf-8"?></p><p>  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&

48、quot;</p><p>  android:layout_width="fill_parent"</p><p>  android:layout_height="fill_parent"</p><p>  android:background="@drawable/background"</p

49、><p>  android:gravity="center"</p><p>  android:orientation="vertical" ></p><p>  <LinearLayout android:layout_width="fill_parent" </p><

50、p>  android:layout_height="wrap_content" </p><p>  android:gravity="center"</p><p>  android:orientation="vertical"></p><p><b>  <EditTe

51、xt</b></p><p>  android:id="@+id/etResult"</p><p>  android:layout_width="280px"</p><p>  android:layout_height="wrap_content"</p><p&g

52、t;  android:gravity="right"</p><p>  android:singleLine="true"</p><p>  android:textSize="20sp" /></p><p>  </LinearLayout></p><p&g

53、t;  <!-- 加plus 減subtract 乘multiply 除divide --></p><p>  <LinearLayout android:layout_width="fill_parent" </p><p>  android:layout_height="wrap_content"

54、 </p><p>  android:orientation="horizontal"</p><p>  android:gravity="center"></p><p>  <Button android:id="@+id/btMultiply"</p><p>

55、  android:text="*"</p><p>  android:layout_width="70px"</p><p>  android:layout_height="70px"</p><p>  android:textSize="20sp"</p><

56、;p>  android:gravity="center"</p><p>  android:layout_gravity="center_horizontal"/></p><p>  <Button android:id="@+id/btDivide"</p><p>  andro

57、id:text="/"</p><p>  android:layout_width="70px"</p><p>  android:layout_height="70px"</p><p>  android:textSize="20sp"</p><p> 

58、 android:gravity="center"</p><p>  android:layout_gravity="center_horizontal"/></p><p>  <Button android:id="@+id/btPlus"</p><p>  android:text=&

59、quot;+"</p><p>  android:layout_width="70px"</p><p>  android:layout_height="70px"</p><p>  android:textSize="20sp"</p><p>  android:

60、gravity="center"</p><p>  android:layout_gravity="center_horizontal"/></p><p>  <Button android:id="@+id/btSubtract"</p><p>  android:text="

61、-"</p><p>  android:layout_width="70px"</p><p>  android:layout_height="70px"</p><p>  android:textSize="20sp"</p><p>  android:gravi

62、ty="center"</p><p>  android:layout_gravity="center_horizontal"/></p><p>  </LinearLayout></p><p>  <!-- 7 8 9 delete --></p><p>  &l

63、t;LinearLayout android:layout_width="fill_parent" </p><p>  android:layout_height="wrap_content" </p><p>  android:orientation="horizontal"</p><p>  an

64、droid:gravity="center"></p><p>  <Button android:id="@+id/bt7"</p><p>  android:text="7"</p><p>  android:layout_width="70px"</p>

65、<p>  android:layout_height="70px"</p><p>  android:textSize="20sp"</p><p>  android:gravity="center"</p><p>  android:layout_gravity="cent

66、er_horizontal"/></p><p>  <Button android:id="@+id/bt8"</p><p>  android:text="8"</p><p>  android:layout_width="70px"</p><p> 

67、 android:layout_height="70px"</p><p>  android:textSize="20sp"</p><p>  android:gravity="center"</p><p>  android:layout_gravity="center_horizonta

68、l"/></p><p>  <Button android:id="@+id/bt9"</p><p>  android:text="9"</p><p>  android:layout_width="70px"</p><p>  android:lay

69、out_height="70px"</p><p>  android:textSize="20sp"</p><p>  android:gravity="center"</p><p>  android:layout_gravity="center_horizontal"/>

70、</p><p><b>  <Button</b></p><p>  android:id="@+id/btDelete"</p><p>  android:layout_width="70px"</p><p>  android:layout_height=&quo

71、t;70px"</p><p>  android:layout_gravity="center_horizontal"</p><p>  android:gravity="center"</p><p>  android:text="←"</p><p>  andr

72、oid:textSize="20sp" /></p><p>  </LinearLayout></p><p>  <!-- 4 5 6 ce(清空) --></p><p>  <LinearLayout android:layout_width="fill_parent" </p

73、><p>  android:layout_height="wrap_content" </p><p>  android:orientation="horizontal"</p><p>  android:gravity="center" ></p><p>  <Bu

74、tton android:id="@+id/bt4"</p><p>  android:text="4"</p><p>  android:layout_width="70px"</p><p>  android:layout_height="70px"</p>&l

75、t;p>  android:textSize="20sp"</p><p>  android:gravity="center"</p><p>  android:layout_gravity="center_horizontal"/></p><p>  <Button android

76、:id="@+id/bt5"</p><p>  android:text="5"</p><p>  android:layout_width="70px"</p><p>  android:layout_height="70px"</p><p>  and

77、roid:textSize="20sp"</p><p>  android:gravity="center"</p><p>  android:layout_gravity="center_horizontal"/></p><p>  <Button android:id="@+

78、id/bt6"</p><p>  android:text="6"</p><p>  android:layout_width="70px"</p><p>  android:layout_height="70px"</p><p>  android:textSiz

79、e="20sp"</p><p>  android:gravity="center"</p><p>  android:layout_gravity="center_horizontal"/></p><p>  <Button android:id="@+id/btCe"

80、;</p><p>  android:text="C"</p><p>  android:layout_width="70px"</p><p>  android:layout_height="70px"</p><p>  android:textSize="20s

81、p"</p><p>  android:gravity="center"</p><p>  android:layout_gravity="center_horizontal"/></p><p>  </LinearLayout> </p><p>  <!--

82、1 2 3 以及 . 0 = --></p><p>  <LinearLayout android:layout_width="fill_parent" </p><p>  android:layout_height="wrap_content" </p><p>  android:gravity=&q

83、uot;center"</p><p>  android:layout_gravity="center_horizontal"</p><p>  android:orientation="horizontal"></p><p>  <LinearLayout android:layout_width

84、="wrap_content" </p><p>  android:layout_height="wrap_content" </p><p>  android:orientation="vertical"></p><p>  <LinearLayout android:layout_wi

85、dth="wrap_content" </p><p>  android:layout_height="wrap_content" </p><p>  android:orientation="horizontal"></p><p><b>  <Button</b>

86、</p><p>  android:id="@+id/bt1"</p><p>  android:layout_width="70px"</p><p>  android:layout_height="70px"</p><p>  android:layout_gravity

87、="center_horizontal"</p><p>  android:gravity="center"</p><p>  android:text="1"</p><p>  android:textSize="20sp" /></p><p>

88、  <Button android:id="@+id/bt2"</p><p>  android:text="2"</p><p>  android:layout_width="70px"</p><p>  android:layout_height="70px"</p

89、><p>  android:textSize="20sp"</p><p>  android:gravity="center"</p><p>  android:layout_gravity="center_horizontal"/></p><p>  <Button

90、 android:id="@+id/bt3"</p><p>  android:text="3"</p><p>  android:layout_width="70px"</p><p>  android:layout_height="70px"</p><p&

91、gt;  android:textSize="20sp"</p><p>  android:gravity="center"</p><p>  android:layout_gravity="center_horizontal"/></p><p>  </LinearLayout>&

92、lt;/p><p>  <LinearLayout android:layout_width="wrap_content" </p><p>  android:layout_height="wrap_content" </p><p>  android:orientation="horizontal"

93、></p><p>  <Button android:id="@+id/btPoint"</p><p>  android:text="."</p><p>  android:layout_width="70px"</p><p>  android:layout_

94、height="70px"</p><p>  android:textSize="20sp"</p><p>  android:gravity="center"</p><p>  android:layout_gravity="center_horizontal"/><

95、/p><p>  <Button android:id="@+id/bt0"</p><p>  android:text="0"</p><p>  android:layout_width="140px"</p><p>  android:layout_height=&quo

96、t;70px"</p><p>  android:textSize="20sp"</p><p>  android:gravity="center"</p><p>  android:layout_gravity="center_horizontal"/></p><

97、;p>  </LinearLayout></p><p>  </LinearLayout></p><p>  <LinearLayout </p><p>  android:layout_width="wrap_content"</p><p>  android:layout_h

98、eight="wrap_content"</p><p>  android:orientation="vertical"></p><p>  <Button android:id="@+id/btDeng"</p><p>  android:text="="</p

99、><p>  android:layout_width="70px"</p><p>  android:layout_height="140px"</p><p>  android:textSize="20sp"</p><p>  android:gravity="cen

100、ter"</p><p>  android:layout_gravity="center_horizontal"/></p><p>  </LinearLayout></p><p>  </LinearLayout></p><p>  </LinearLayout>

101、;</p><p><b>  3.程序功能實(shí)現(xiàn)</b></p><p>  CalculatorActivity.java</p><p>  package com.he;</p><p>  import android.app.Activity;</p><p>  import andr

102、oid.os.Bundle;</p><p>  import android.text.InputType;</p><p>  import android.view.View;</p><p>  import android.view.View.OnClickListener;</p><p>  import android.wid

103、get.Button;</p><p>  import android.widget.EditText;</p><p>  import android.widget.Toast;</p><p>  public class CalculatorActivity extends Activity {</p><p>  //加plus

104、 減subtract 乘multiply 除divide</p><p>  private EditText etResult;</p><p>  private Button btPlus;</p><p>  private Button btSub;</p><p>  private Button btM

105、ultiply;</p><p>  private Button btDivide;</p><p>  private Button btDelete;</p><p>  private Button btCe;</p><p>  private Button btPoint;</p><p>  privat

106、e Button btDeng;</p><p>  private Button bt0;</p><p>  private Button bt1;</p><p>  private Button bt2;</p><p>  private Button bt3;</p><p>  private Butto

107、n bt4;</p><p>  private Button bt5;</p><p>  private Button bt6;</p><p>  private Button bt7;</p><p>  private Button bt8;</p><p>  private Button bt9;<

108、/p><p>  /** Called when the activity is first created. */</p><p><b>  @Override</b></p><p>  public void onCreate(Bundle savedInstanceState) {</p><p>  super.

109、onCreate(savedInstanceState);</p><p>  setContentView(R.layout.main);</p><p>  etResult=(EditText)findViewById(R.id.etResult);</p><p>  btPlus=(Button)findViewById(R.id.btPlus);<

110、/p><p>  btSub=(Button)findViewById(R.id.btSubtract);</p><p>  btMultiply=(Button)findViewById(R.id.btMultiply);</p><p>  btDivide=(Button)findViewById(R.id.btDivide);</p><p

111、>  btDelete=(Button)findViewById(R.id.btDelete);</p><p>  btDeng=(Button)findViewById(R.id.btDeng);</p><p>  btPoint=(Button)findViewById(R.id.btPoint);</p><p>  btCe=(Button)fin

112、dViewById(R.id.btCe);</p><p>  bt0=(Button)findViewById(R.id.bt0);</p><p>  bt1=(Button)findViewById(R.id.bt1);</p><p>  bt2=(Button)findViewById(R.id.bt2);</p><p>  bt

113、3=(Button)findViewById(R.id.bt3);</p><p>  bt4=(Button)findViewById(R.id.bt4);</p><p>  bt5=(Button)findViewById(R.id.bt5);</p><p>  bt6=(Button)findViewById(R.id.bt6);</p>&

114、lt;p>  bt7=(Button)findViewById(R.id.bt7);</p><p>  bt8=(Button)findViewById(R.id.bt8);</p><p>  bt9=(Button)findViewById(R.id.bt9);</p><p>  etResult.setInputType(InputType.TYPE

115、_NULL); </p><p><b>  /** .按鈕*/</b></p><p>  btPoint.setOnClickListener(new OnClickListener() {</p><p>  public void onClick(View arg0) {</p><p>  String str

116、1=etResult.getText().toString();</p><p>  if(str1.equals("")){</p><p>  etResult.setText("");</p><p><b>  }else{</b></p><p>  etResult.s

117、etText(str1+btPoint.getText().toString());</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  });</b></p><p>  /** 0---------9的數(shù)字按鈕*/&l

118、t;/p><p>  bt0.setOnClickListener(new OnClickListener() {</p><p>  public void onClick(View arg0) {</p><p>  String str1=etResult.getText().toString();</p><p>  if(str1.eq

119、uals("")){</p><p>  etResult.setText("");</p><p><b>  }else{</b></p><p>  etResult.setText(str1+bt0.getText().toString());</p><p><b&

120、gt;  }</b></p><p><b>  }</b></p><p><b>  });</b></p><p>  bt1.setOnClickListener(new OnClickListener() {</p><p>  public void onClick(View

121、 arg0) {</p><p>  String str1=etResult.getText().toString();</p><p>  etResult.setText(str1+bt1.getText().toString());</p><p><b>  }</b></p><p><b>  }

122、);</b></p><p>  bt2.setOnClickListener(new OnClickListener() {</p><p>  public void onClick(View arg0) {</p><p>  String str1=etResult.getText().toString();</p><p&g

123、t;  etResult.setText(str1+bt2.getText().toString());</p><p><b>  }</b></p><p><b>  });</b></p><p>  bt3.setOnClickListener(new OnClickListener() {</p>

124、<p>  public void onClick(View arg0) {</p><p>  String str1=etResult.getText().toString();</p><p>  etResult.setText(str1+bt3.getText().toString());</p><p><b>  }</b&

125、gt;</p><p><b>  });</b></p><p>  bt4.setOnClickListener(new OnClickListener() {</p><p>  public void onClick(View arg0) {</p><p>  String str1=etResult.getT

126、ext().toString();</p><p>  etResult.setText(str1+bt4.getText().toString());</p><p><b>  }</b></p><p><b>  });</b></p><p>  bt5.setOnClickListene

127、r(new OnClickListener() {</p><p>  public void onClick(View arg0) {</p><p>  String str1=etResult.getText().toString();</p><p>  etResult.setText(str1+bt5.getText().toString());<

128、/p><p><b>  }</b></p><p><b>  });</b></p><p>  bt6.setOnClickListener(new OnClickListener() {</p><p>  public void onClick(View arg0) {</p>

129、<p>  String str1=etResult.getText().toString();</p><p>  etResult.setText(str1+bt6.getText().toString());</p><p><b>  }</b></p><p><b>  });</b></p&g

130、t;<p>  bt7.setOnClickListener(new OnClickListener() {</p><p>  public void onClick(View arg0) {</p><p>  String str1=etResult.getText().toString();</p><p>  etResult.setText

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論