Android課程設(shè)計.doc
《Android課程設(shè)計.doc》由會員分享,可在線閱讀,更多相關(guān)《Android課程設(shè)計.doc(28頁珍藏版)》請在裝配圖網(wǎng)上搜索。
課程設(shè)計 題 目 計算器 姓 名 戴雄坤 學(xué) 號 20127364 系 部 理工系 年級專業(yè) 12級計算機 指導(dǎo)教師 李津 2015年 6 月 24 日 中南林業(yè)科技大學(xué)涉外學(xué)院本科課程設(shè)計誠信聲明本人鄭重聲明:所呈交的課程設(shè)計,是本人在指導(dǎo)老師的指導(dǎo)下,獨立進行研究工作所取得的成果,成果不存在知識產(chǎn)權(quán)爭議,除設(shè)計中已經(jīng)注明引用的內(nèi)容外,本設(shè)計不含任何其他個人或集體已經(jīng)發(fā)表或撰寫過的作品成果。對本設(shè)計的研究做出重要貢獻的個人和集體均已在文中以明確方式標(biāo)明。本人完全意識到本聲明的法律結(jié)果由本人承擔(dān)。 課程設(shè)計作者簽名: 二一 五 年 6 月 24日 摘要Android是當(dāng)今最重要的手機開發(fā)平臺之一,它是建立在Java基礎(chǔ)之上的,能夠迅速建立手機軟件的解決方案。Android的功能十分強大,成為當(dāng)今軟件行業(yè)的一股新興力量。Android基于Linux平臺,由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,具有以下5個特點:開放性、應(yīng)用程序無界限、應(yīng)用程序是在平等條件下創(chuàng)建的,應(yīng)用程序可以輕松的嵌入網(wǎng)絡(luò)、應(yīng)用程序可以并行運行。而簡單計算器又是手機上必備的小程序,所以此次創(chuàng)新實踐很有意義。并且具有很強的使用性。關(guān)鍵詞:Android Java基礎(chǔ) 計算器目 錄 1.引言-51.1Android開發(fā)背景-51.2Android開發(fā)環(huán)境-62. Android應(yīng)用程序開發(fā)理論與方法-62.1 Activity的相關(guān)知識-62.2 Intent的相關(guān)知識-73. “計算器”應(yīng)用程序的設(shè)計與實現(xiàn)-73.1擬解決的問題及目標(biāo)-83.2總體設(shè)計-83.3詳細設(shè)計與編碼實現(xiàn)-94. 總結(jié)-265. 參考文獻-271.引言1.1Android開發(fā)背景1.智能手機的市場(1)功能多樣化的智能手機挑戰(zhàn)全球PC出貨量移動互聯(lián)網(wǎng)時代的來臨,直接促進了搭載智能操作系統(tǒng)、具有強大擴展性的智能手機、平板電腦等移動終端產(chǎn)業(yè)的蓬勃發(fā)展。來自美國最大的風(fēng)險投資機構(gòu)KPCB的數(shù)據(jù)顯示,全球智能手機出貨量正在以遠高于臺式電腦、筆記本電腦出貨量的速度快速增長,該機構(gòu)預(yù)計2011年全球智能手機出貨量將達到4.13億,超過臺式電腦與筆記本電腦出貨量的總和。(2)智能手機的用戶使用數(shù)量正在高速增長。據(jù)市場調(diào)研機構(gòu)Gartner信息,2011年全球智能手機的總出貨量將會達到4.68億部,相比2010年實現(xiàn)了57.7%的增長,而谷歌Android操作系統(tǒng)將會在今年之內(nèi)成為全球最大的智能手機操作系統(tǒng)。另外,全球市場調(diào)研機構(gòu)IDC預(yù)計未來5年中國手機市場上,智能手機替代傳統(tǒng)功能手機的趨勢將日益明顯,未來5年中國智能手機市場復(fù)合增長率將達到34.1%,人們對IT設(shè)備智能化的向往是這一增長率能夠?qū)崿F(xiàn)的主要因素,并且與其他國家相比,中國智能手機市場的發(fā)展空間更加廣闊。(3)操作系統(tǒng)格局預(yù)測:Android有望成為智能手機市場主導(dǎo)力量搭載Android操作系統(tǒng)的智能手機目前已經(jīng)成為市場上最炙手可熱的智能產(chǎn)品。來自美國市場研究機構(gòu)Gartner的數(shù)據(jù)顯示,Android操作系統(tǒng)所占的市場份額從2008年的0.5%急劇增長到2011年的15.94%。開放的源代碼和零成本已經(jīng)讓Android在全世界范圍內(nèi)受到青睞并迅速獲得了主要手機廠商和數(shù)百萬軟件開發(fā)者的支持,Gartner預(yù)計,未來Android系統(tǒng)的市場份額有望超過其他操作系統(tǒng),從而成為全球第一大智能手機操作系統(tǒng)。2.安卓手機介紹安卓手機指的是用Android操作系統(tǒng)的手機。安卓(Android)是基于Linux內(nèi)核的操作系統(tǒng),是Google公司在2007年11月5日公布的手機操作系統(tǒng)。同樣都是手機上面用的智能系統(tǒng),安卓的系統(tǒng)是新生系統(tǒng),界面更為華麗,開源性更強,當(dāng)然因為是新生系統(tǒng),所以在第三方軟件方面暫時還不太多。因此,安卓應(yīng)用程序的需求還是很迫切的。3.軟件人才需求據(jù)業(yè)內(nèi)統(tǒng)計,目前國內(nèi)的Android研發(fā)人才缺口至少30萬。由于目前Android技術(shù)較新,無論是相關(guān)書籍、培訓(xùn)還是大學(xué)教育,都處于初級階段,因此Android人才短期將供不應(yīng)求。從長期來看,隨著各種移動應(yīng)用和手機游戲等內(nèi)容需求日益增加,也將激勵大中小型手機應(yīng)用開發(fā)商加大對Android應(yīng)用的開發(fā)力度,因此Android人才的就業(yè)前景也非常廣泛。綜上所述,在這樣的背景下,安卓有很強的生命力。同時,作為一個新生的系統(tǒng),其應(yīng)用程序目前并不多,安卓應(yīng)用程序的需求還是很迫切的,安卓研發(fā)人才的缺口還很大。這些都促進了我們學(xué)習(xí)開發(fā)安卓應(yīng)用程序。 1.2開發(fā)環(huán)境安卓應(yīng)用程序開發(fā)環(huán)境如下:1. JDK7.0orJDK8.0(JREaloneisnotsufficient)2. Eclipse3. AndroidSDK4. ADT-23.0.65. Eclipse安裝ADT插件2.安卓應(yīng)用程序開發(fā)理論與方法1、Activity的相關(guān)知識簡單理解Activity代表一個用戶所能看到的屏幕,Activity主要是處理一個應(yīng)用的整體性工作。Activity是最基本的Android應(yīng)用程序組件,應(yīng)用程序中,一個活動通常就是一個單獨的屏幕。每一個活動都被實現(xiàn)為一個獨立的類,并且從活動基類中繼承而來,活動類將會顯示由視圖控件組成的用戶接口,并對事件做出響應(yīng)。大多數(shù)的應(yīng)用是由多個屏幕顯示組成,因而要用到多個Activity。(1)Activity的相關(guān)方法及相關(guān)函數(shù):A、voidonCreate(Bundle)首次啟動時調(diào)用,接受參數(shù):NullorsavedInstanceState(保存的以前某些狀態(tài)信息)B、voidonStart()說明了將要顯示給用戶的活動C、voidonRestart()將處于停止?fàn)顟B(tài)的活動重新顯示給用戶D、voidonResume()用戶可以開始與活動進行交互時調(diào)用。如動畫播放和音樂播放。E、voidonPause()活動將要進入后臺運行時調(diào)用。(此時前臺啟動了另一個活動)F、voidonStop()不需要某個活動了,就調(diào)用G、voidonDestroy()銷毀活動(2)多個Activity之間的跳轉(zhuǎn):通過Intent類實現(xiàn)屏幕之間的跳轉(zhuǎn)(包括沒有參數(shù)關(guān)系和需要傳遞參數(shù)兩種情況)。(3)兩個Activity之間進行數(shù)據(jù)交換:startActivity()只有Intent一個參數(shù)。publicvoidstartSubActivity(Intentintent,intrequestCode)(requestCode:用來標(biāo)識某一個調(diào)用,一般定義一個常量。)傳過去:函數(shù)原型為:public Intent setData(ContentURI data)然后,參數(shù)帶到新的Activity后,同樣用Activity,getIntent()函數(shù)可得到當(dāng)前過來的Intent對象,然后用getData()就去到參數(shù)了。傳回來:函數(shù)原型為:public final void setRsult(int resultCode,String data)2.Intent的相關(guān)知識Intent是描述應(yīng)用想要做什么。Android使用了Intent這個特殊類,實現(xiàn)在屏幕與屏幕之間移動。Intent數(shù)據(jù)結(jié)構(gòu)兩個最重要的部分是動作和動作對應(yīng)的數(shù)據(jù)。Intent類綁定一次操作,它負責(zé)攜帶這次操作所需要的數(shù)據(jù)以及操作的類型等。3、Layout 用于用戶界面設(shè)計。包含AbsoluteLayout,F(xiàn)rameLayout,GridView,LinearLayout,ListLayout,RadioGroup,TableLayout等等。在本程序中用到的有:(1)線性布局LinearLayout垂直:android:orientation=vertical“水平:android:orientation=horizontal(2)相對布局RelativeLayout讓子元素指定它們相對于其他元素的位置(通過ID來指定)或相對于父布局對象。在RelativeLayout布局里的控件包含豐富的排列屬性:Layoutabove:控件在指定控件的上方Layoutbelow:控件在指定控件的下方Layouttoleftof3. “計算器”應(yīng)用程序的設(shè)計與實現(xiàn) 3.1擬解決的問題及目標(biāo) 本計算器程序要解決日常生活中常見的基本數(shù)據(jù)計算問題,程序要實現(xiàn)的目標(biāo)有如下幾個:(1)要實現(xiàn)基本的加、減、乘、除四則運算。(2)可以實現(xiàn)在前一步計算結(jié)果上繼續(xù)作加、減、乘、除,即連加、減、乘、除。(3)有清空功能,即清除所有數(shù)據(jù),重新開始計算。 (4)還可以進行一些特別的運算,開方.乘方運算。3.2總體設(shè)計1.系統(tǒng)結(jié)構(gòu)圖計算器 基本加減 其它運算乘除運算 加減乘除乘方根號2、功能的操作流程首先用戶根據(jù)自己的實際需要選擇計算的類型,然后進入不同的計算類型,再進行要執(zhí)行的運算,輸入數(shù)據(jù),選擇運算符號,即可得到結(jié)果。3.3詳細設(shè)計與編碼實現(xiàn)1. Android程序圖標(biāo)如下圖所示 2. 計算器界面如下圖所示:布局Main.xml代碼如下: 用戶在文本框中輸入?yún)⒓舆\算的數(shù)據(jù),并點擊要進行的運算符號,然后點擊等號之后,將在等號下方顯示結(jié)果處顯示出計算結(jié)果。點擊delete按鈕,可以將文本框中的內(nèi)容以及顯示的結(jié)果一起清空,用戶可以輸入新的數(shù)據(jù)計算。點擊back可以返回上一步。在文本框中輸入時可以用圖右側(cè)的硬鍵盤,或者是手機自帶的軟鍵盤。 具體的實現(xiàn):主要的思路是,用戶先輸?shù)谝粋€數(shù),然后點擊運算符號,在程序中監(jiān)聽按鈕的點擊,如果點擊了+、-、*、/中某一按鈕,這時就取EditText中的值,通過et.setText(str)實現(xiàn),為了參與運算,需要把字符串類型轉(zhuǎn)換為浮點型,并將其值賦給變量v,代碼為vi=v;用flag的不同值記錄用用戶點擊的不同的運算按鈕。當(dāng)用戶點擊“=”時,就將editText中的內(nèi)容取出,也同樣轉(zhuǎn)化為數(shù)值,并記錄,然后判斷flag的值即可知道對應(yīng)應(yīng)采取哪種計算,進而算出最終結(jié)果,并用顯示出結(jié)果?!扒蹇铡钡膶崿F(xiàn)是使對應(yīng)控件的內(nèi)容取空即可。核心代碼如下:public double calculater()switch(c)case 0:f=g;break;case 1:f=b+g;break;case 2:f=b-g;break;case 3:f=b*g;break;case 4:f=b/g;break;b=f;c=0;return f; Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); /獲得按鍵 final Button number=new Button10;final Button fuhao=new Button11;fuhao0=(Button)findViewById(R.id.button01);fuhao1=(Button)findViewById(R.id.button02);fuhao2=(Button)findViewById(R.id.button03);fuhao3=(Button)findViewById(R.id.button04);fuhao4=(Button)findViewById(R.id.button05);fuhao5=(Button)findViewById(R.id.button06);fuhao6=(Button)findViewById(R.id.button07);fuhao7=(Button)findViewById(R.id.button08);fuhao8=(Button)findViewById(R.id.zheng);fuhao9=(Button)findViewById(R.id.kaifang);fuhao10=(Button)findViewById(R.id.pingfang);number0=(Button)findViewById(R.id.button0);number1=(Button)findViewById(R.id.button1);number2=(Button)findViewById(R.id.button2);number3=(Button)findViewById(R.id.button3);number4=(Button)findViewById(R.id.button4);number5=(Button)findViewById(R.id.button5);number6=(Button)findViewById(R.id.button6);number7=(Button)findViewById(R.id.button7);number8=(Button)findViewById(R.id.button8);number9=(Button)findViewById(R.id.button9); et=(EditText) findViewById(R.id.textView1); et.setText(str); fuhao6.setOnClickListener(new View.OnClickListener() public void onClick(View v) / TODO Auto-generated method stub/*str=;et.setText(str);vi=v;System.out.print(backspace);*/String field_display1=et.getText().toString(); if(field_display1.length()2) str = ; et.setText(str); else et.setText(field_display1.substring(0,field_display1.length()-1); ); fuhao7.setOnClickListener(new View.OnClickListener() public void onClick(View v) / TODO Auto-generated method stubb=0.0;c=0;g=0.0;str=;et.setText(str);/System.out.println(delete);); fuhao8.setOnClickListener(new View.OnClickListener() public void onClick(View v) / TODO Auto-generated method stubif(vi!=fuhao5&str!=)char ch=str.charAt(0);if(ch=-)str=str.replace(-,);elsestr=-+str;et.setText(str);); fuhao9.setOnClickListener(new View.OnClickListener() public void onClick(View v) / TODO Auto-generated method stubif(str!=)double a=Double.parseDouble(str);str=Math.sqrt(a)+;et.setText(str);); fuhao10.setOnClickListener(new View.OnClickListener() public void onClick(View v) / TODO Auto-generated method stubif(str!=)double a=Double.parseDouble(str);str=+a*a;et.setText(str);); /設(shè)定數(shù)字按鍵 number0.setOnClickListener(new View.OnClickListener() public void onClick(View v) / TODO Auto-generated method stubif(flag=1)str=;str+=0;et.setText(str);flag=0; elsechar ch1;ch1=str.toCharArray();if(!(ch1.length=1&ch10=0)str+=0;et.setText(str); vi=v;); number1.setOnClickListener(new View.OnClickListener() public void onClick(View v) / TODO Auto-generated method stubif(flag=1)str=;str+=1;et.setText(str);flag=0; elsestr+=1;et.setText(str); vi=v;); number2.setOnClickListener(new View.OnClickListener() public void onClick(View v) / TODO Auto-generated method stubif(flag=1)str=;str+=2;et.setText(str);flag=0; elsestr+=2;et.setText(str); vi=v;); number3.setOnClickListener(new View.OnClickListener() public void onClick(View v) / TODO Auto-generated method stubif(flag=1)str=;str+=3;et.setText(str);flag=0; elsestr+=3;et.setText(str); vi=v;); number4.setOnClickListener(new View.OnClickListener() public void onClick(View v) / TODO Auto-generated method stubif(flag=1)str=;str+=4;et.setText(str);flag=0; elsestr+=4;et.setText(str); vi=v;- 1.請仔細閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認領(lǐng)!既往收益都歸您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該PPT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- Android 課程設(shè)計
鏈接地址:http://italysoccerbets.com/p-6725028.html