




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Xx大學(xué)計算機與電子信息學(xué)院移動編程技術(shù)安卓程序開發(fā)設(shè)計報告-簡單計算器安卓開發(fā)程序設(shè)計報告題目簡單計算器開發(fā)專業(yè)(班級)網(wǎng)工111班姓名張波波學(xué)號*(*q*q)*指導(dǎo)教師趙(老師)日期2014.5.7目錄TOC o 1-5 h z HYPERLINK l bookmark6一、設(shè)計說明:3設(shè)計內(nèi)容:Android簡單應(yīng)用程序開發(fā),簡單計算器。3 HYPERLINK l bookmark82程序說明:3二、開發(fā)環(huán)境:3 HYPERLINK l bookmark10三、概要設(shè)計:3 HYPERLINK l bookmark123.1系統(tǒng)的總體3 HYPERLINK l bookmark14四、程
2、序流程和系統(tǒng)功能設(shè)計44.1程序流程設(shè)計4 HYPERLINK l bookmark164.2.系統(tǒng)功能設(shè)計54.3基于Android平臺系統(tǒng)具體設(shè)計6 HYPERLINK l bookmark224.3.1總體模塊詳細設(shè)計6 HYPERLINK l bookmark264.3.2輸入模塊詳細設(shè)計6 HYPERLINK l bookmark304.3.3顯示模塊詳細設(shè)計7 HYPERLINK l bookmark344.3.4計算模塊詳細設(shè)計7 HYPERLINK l bookmark36五、計算器系統(tǒng)實現(xiàn)85.1Android應(yīng)用程序構(gòu)成8 HYPERLINK l bookmark38六、截
3、圖說明9 HYPERLINK l bookmark401、圖標92界面10 HYPERLINK l bookmark423運算界面11 HYPERLINK l bookmark444錯誤輸入11 HYPERLINK l bookmark465設(shè)計平臺界面12 HYPERLINK l bookmark486簽名導(dǎo)出apk12 HYPERLINK l bookmark50七、總結(jié)13課程設(shè)計任務(wù)書、設(shè)計說明:1設(shè)計內(nèi)容:Android簡單應(yīng)用程序開發(fā),簡單計算器。2程序說明:1、計算器界面友好,方便使用。2、具有基本的加、減、乘、除功能,還有+、開方、平方功能3、能夠判斷用戶輸入運算數(shù)是否正確。4
4、、4、支持小數(shù)運算。5、具有退格功能,能夠刪除最后一個輸入,ce。6、具有清除功能,刪除所有,c。7、具有結(jié)果存儲功能,能夠顯示存儲器狀態(tài),支持觸屏手機。8、支持最低版本2.0,最高版本4.4。開發(fā)時為4.2開發(fā)環(huán)境:本系統(tǒng)是采用Eclipse+EclipseMe+JDK+ADT作為開發(fā)平臺。事實上為了節(jié)約時間就直接用Google公司安給的直接綁定好的adt-bundle-windows-x86_64開發(fā),只需要配置下環(huán)境變量,無需要關(guān)聯(lián)等操作。、概要設(shè)計:3.1系統(tǒng)的總體整個程序基于android技術(shù)開發(fā),出總體模塊外主要分為輸入模塊、顯示模塊以及計算模塊(包括一些其她功能)這三大部分。在整
5、個系統(tǒng)中總體模塊控制系統(tǒng)的生命周期,輸入模塊部分負責(zé)讀取用戶輸入的數(shù)據(jù),顯示模塊部分負責(zé)顯示用戶之前輸入的數(shù)據(jù)以及顯示最終的計算結(jié)果,計算模塊部分負責(zé)進行數(shù)據(jù)的運算以及一些其她的功能??傮w模塊的作用主要是生成應(yīng)用程序的主類,控制應(yīng)用程序的生命周期。輸入模塊主要描述了計算器鍵盤以及鍵盤的監(jiān)聽即主要負責(zé)讀取用戶的鍵盤輸入以及響應(yīng)觸屏的按鍵,需要監(jiān)聽手機按鍵動作以及用指針事件處理方法處理觸屏的單擊動作(以松開按鍵為準)。同時提供了較為直觀的鍵盤圖形用戶界面。顯示模塊描述了計算器的顯示區(qū),即該區(qū)域用于顯示用戶輸入的數(shù)據(jù)以及最終的計算結(jié)果,同時還負責(zé)顯示一些其她的信息。計算模塊則主要描述了計算器的整體,
6、實現(xiàn)了計算器的界面,負責(zé)計算用戶輸入數(shù)據(jù),包括加、減、乘、除、等各種計算功能,記憶數(shù)據(jù)的相關(guān)功能,退格以及清零的功能。四、程序流程和系統(tǒng)功能設(shè)計4.1程序流程設(shè)計知道了系統(tǒng)的功能以后,我們通過main.xml來建立顯示界面,完成后系統(tǒng)開始監(jiān)聽用戶的按鍵輸入,每次輸入系統(tǒng)都會判斷一次用戶輸入的類型,是數(shù)字還是運算符號或者是清除,判斷完后分成不同類型如數(shù)字,符號,基本運算等等進行進一步的處理,根據(jù)用戶的要求繼續(xù)進行下一步的操作,最后計算出最終結(jié)果并顯示在顯示區(qū)。系統(tǒng)流程圖如圖4-1所示:4.2.系統(tǒng)功能設(shè)計整個系統(tǒng)的功能比較多,比較復(fù)雜,如上所說,可以分為十多個功能模塊,但是邏輯上理解其實不算困難
7、,系統(tǒng)包括普通計算功能,包括加減乘除,退格以及清零功能。下面就讓我們用圖4-2來表示:圖4-2系統(tǒng)的功能圖4.3基于Android平臺系統(tǒng)具體設(shè)計系統(tǒng)除了總體模塊以外主要由三大模塊來組成,即輸入模塊,顯示模塊和計算模塊。用系統(tǒng)框圖來表示即如圖4-3。圖4-3糸統(tǒng)框圖4.3.1總體模塊詳細設(shè)計總體模塊需要完成的任務(wù)主要就是系統(tǒng)的程序啟動類,需要負責(zé)整個系統(tǒng)的生命周期。同時在還要在模塊中完成菜單欄的所有功能,即退出程序,記憶數(shù)據(jù),顯示數(shù)據(jù),清除記憶數(shù)據(jù)這四個功能??傮w模塊的功能圖如圖4-4:圖4-4總休模塊功能圖4.3.2輸入模塊詳細設(shè)計系統(tǒng)如果想完成計算器中的各種功能,首先用戶要能進行數(shù)據(jù)輸入,
8、由于是在觸屏手機上開發(fā)計算器程序,所以要求輸入可以直接使用觸屏進行,所以在設(shè)計的時候就要充分的考慮要這一點。正是由于考慮到這個特殊的地方,所以在進行模塊設(shè)計中,選擇編寫輸入模塊類的時候會特意選取使用了可以支持觸屏輸入的特殊增強型圖形用戶界面類。輸入模塊主要的任務(wù)是描述計算器鍵盤以及實現(xiàn)鍵盤的監(jiān)聽,即當(dāng)用戶點擊按鍵或者屏幕的時候監(jiān)聽器會去調(diào)用相應(yīng)的處理辦法,本模塊還需要為系統(tǒng)提供了一個較為直觀的鍵盤圖形用戶界面。輸入模塊的功能圖如圖4-5:圖5輸人模塊功能圖4.3.3顯示模塊詳細設(shè)計顯示模塊主要要完成的任務(wù)是描述計算器的顯示區(qū),該區(qū)域用于顯示用戶輸入的數(shù)據(jù)以及最終的計算結(jié)果和一些其她信息。同時本
9、模塊還將提供調(diào)用和設(shè)置顯示的具體方法。顯示模塊的功能圖如圖3-6:圖4弋顯示模塊功能圖4.3.4計算模塊詳細設(shè)計系統(tǒng)想要能在屏幕上顯示出計算器的樣子要有整體的布局,在本模塊中要完成布局的具體設(shè)計,使用戶能夠看到整個計算器的畫面。同時系統(tǒng)想完成計算功能必須要處理用戶的輸入,當(dāng)輸入模塊的監(jiān)聽傳到計算模塊中時,計算模塊就要根據(jù)相應(yīng)的方法進行進一步的處理。這部分主要是對輸入進行的邏輯判斷,基本會通過ifelse來實現(xiàn)邏輯判斷。計算模塊的功能圖如圖3-7:圖4訐計算模塊功能圖五、計算器系統(tǒng)實現(xiàn)5.1Android應(yīng)用程序構(gòu)成Android應(yīng)用程序一般是由Activity、Serviece、Content
10、Provider、Intent、IntentReceiver、Notification六個組件構(gòu)成。但并非每一個Android應(yīng)用程序都包含這六個組件。(1)Activity(活動):應(yīng)用程序的表示層。Activity是Android的基本組件。(2)(2)Service(服務(wù)):Android應(yīng)用程序的后臺運行組件。(3)ContentProvider(內(nèi)容提供器):用來管理和分享應(yīng)用程序數(shù)據(jù)庫。(4)(4)Intent(意向):Activity之間的粘合劑。使用Intent,可以在系統(tǒng)范圍內(nèi)向目標活動或者服務(wù)廣播消息,說明希望執(zhí)行某個動作的意圖。(5)IntentReceiver(意向接收
11、器):通過IntentReceiver實現(xiàn)應(yīng)用能夠?qū)σ粋€外部的事件作出響應(yīng),IntentReceiver在AndroidManifest.xml中注冊,但也可以在代碼中使用Context.registerReceiver()進行注冊。左吳caIcuIato-rwSO,Android4.2ZOi亟:sndroid.jsr-F:adt-bundIewindows-xBS_丄匚吳S-FCFRymq.demoOSademoOS.javagen:Ge-nerate-davaFilesFp-ymq.demoOSassetsbinresl25=*drawsib-le-hdpidrawab-le-ldpi17
12、=-dirawab-le-mdpi(75drawab-le-xhdpi|slayoutcijmain.xml7valuescistrings:keIAndroidManif&sii:xml=proguardcfg匡|projectproperrtie-s六、截圖說明1、圖標相機聲強浹的計韓hellazzb(b112界面PADneteni*hltdinAVDBasicControls3運算界面6+/x6:36254刪回BasicConKnls旅志逋的忡算箱MaidwarB-nttoirtg:DPADhs-1inWO23加456減789乘0除HaidwarKtyboirdUseyuuirphysi
13、calkeyboardtn*provideinput4錯誤輸入Hrdwar#K督帥曲rdUseyourphysicalkeyboardtc*pnrvideinputHardwareBuLtflhs5設(shè)計平臺界面tn.4CinClL-2XV,|Ai-draldFtTniiiaC4plgF4T富/淚De5kdock:-1屯ghg:.晨hdlozib|q-?phcmimhvrThliVardrcid-dsi*Gubr-skulSK*虱Android2.2p邑findirddjbr-FPpadL-bunde-ivhdfiws-M#k?sic/審YrqjdamDOJ占rwaHe-Hpi由ZHdbkphd
14、pi丿&hyDvtd;mdn.imld0rjlunvlrrtgi-iml.iiAndreirManiTpstml_progiwrg0?&udv-zzbcaktldtoi/sfc/ymq/dleffiQOS/derrioOS.jawa-ADTFileEdkRelanxsrSource5earhPrqjsaHunWindONHelp=r:QuickZcti士SHnqemci)?_J.SuidCtrnaiffWHlabkSrna*tlHsrtMH型U1NtifJ9CM0nd迫1ExportAndroidlApplicationi|U5P-wagingkrpiJdaisndrodJoeystorePa
15、stm)rd*-*OCrsdsnwhjy6簽名導(dǎo)出apk時xwtAndroidApplicationD8$t0出Cancelf4和I文件主頁共言音三T.笆舍輾卜菠虹1機哥下裁匚崑面社i星世訪問的注*4品鞠:呼逹臺電眶七、總結(jié)課程設(shè)計終于在我的努力下做完了。這個時候我更加深入的了解了Java的特點以及一些相關(guān)知識。與其臨淵羨魚,不如退而結(jié)網(wǎng)。這次Android課程設(shè)計給我的最大的印象就是如果自己有了興趣,就動手去做,困難在你的勇氣和毅力下是抬不了頭的。如果你連失敗都不怕了,那你還怕什么,拾起懶惰的心,勤奮著就會走向成功斬。這次的課程設(shè)計在我未來的時日里,是一個標桿,因為它告訴了我,只要我努力沒有
16、什么事我做不好的。安卓開發(fā)是個很有意思的事情,以后可以在自己手機上安裝自己開發(fā)的一些小程序,也是個非常不錯的事情,目前還沒有個安卓機子,而在其他同學(xué)手機測試過后,還是比較不錯的。注:因為有源文件了,并且程序代碼也還是比較長,就不在報告里面放代碼了。packageymq.demo03;importandroid.app.Activity;importandroid.os.Bundle;importandroid.view.*;importandroid.widget.*;publicclassdemo03extendsActivity/*Calledwhentheactivityisfirstc
17、reated.*/Stringstr=;EditTextet;intc=0,flag=0;doubleb=0.0,g=0.0,f=0.0;Viewvi;publicbooleanonCreateOptionsMenu(Menumenu)/TODOAuto-generatedmethodstubmenu.add(0,1,1,退出);returnsuper.onCreateOptionsMenu(menu);OverridepublicbooleanonOptionsItemSelected(MenuItemitem)/TODOAuto-generatedmethodstubif(item.get
18、ItemId()=1)finish();returnsuper.onOptionsItemSelected(item);/計算方法publicdoublecalculater()switch(c)case0:f=g;break;case1:f=b+g;break;case2:f=b-g;break;case3:f=b*g;break;case4:f=b/g;break;b=f;c=0;returnf;OverridepublicvoidonCreate(BundlesavedInstanceState)super.onCreate(savedInstanceState);setContentV
19、iew(R.layout.main);/獲得按鍵finalButtonnumber=newButton10;finalButtonfuhao=newButton11;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);fu
20、hao5=(Button)findViewById(R.id.button06);fuhao6=(Button)findViewById(R.id.buttonce);fuhao7=(Button)findViewById(R.id.buttonc);fuhao8=(Button)findViewById(R.id.zheng);fuhao9=(Button)findViewById(R.id.kaifang);fuhao10=(Button)findViewById(R.id.pingfang);number0=(Button)findViewById(R.id.button0);numbe
21、r1=(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);numb
22、er8=(Button)findViewById(R.id.button8);number9=(Button)findViewById(R.id.button9);et=(EditText)findViewById(R.id.textView1);et.setText(str);fuhao6.setOnClickListener(newView.OnClickListener()publicvoidonClick(Viewv)/TODOAuto-generatedmethodstub.str=;et.setText(str);vi=v;);fuhao7.setOnClickListener(n
23、ewView.OnClickListener()publicvoidonClick(Viewv)/TODOAuto-generatedmethodstubb=0.0;c=0;g=0.0;.str=;et.setText(str););fuhao8.setOnClickListener(newView.OnClickListener()publicvoidonClick(Viewv)/TODOAuto-generatedmethodstubif(vi!=fuhao5&str!=)charch=str.charAt(0);if(ch=-)str=str.replace(-,);elsestr=-+
24、str;et.setText(str););fuhao9.setOnClickListener(newView.OnClickListener()publicvoidonClick(Viewv)/TODOAuto-generatedmethodstubif(str!=)doublea=Double.parseDouble(str);str=Math.sqrt(a)+;et.setText(str););fuhao10.setOnClickListener(newView.OnClickListener()publicvoidonClick(Viewv)/TODOAuto-generatedme
25、thodstubif(str!=)doublea=Double.parseDouble(str);str=+a*a;et.setText(str););/設(shè)定數(shù)字按鍵number0.setOnClickListener(newView.OnClickListener()publicvoidonClick(Viewv)/TODOAuto-generatedmethodstubif(flag=1).str=;str+=0;et.setText(str);flag=0;elsecharch1;ch1=str.toCharArray();if(!(ch1.length=1&ch10=0)str+=0;
26、et.setText(str);vi=v;);number1.setOnClickListener(newView.OnClickListener()publicvoidonClick(Viewv)/TODOAuto-generatedmethodstubif(flag=1).str=;str+=1;et.setText(str);flag=0;elsestr+=1;et.setText(str);vi=v;);number2.setOnClickListener(newView.OnClickListener()publicvoidonClick(Viewv)/TODOAuto-genera
27、tedmethodstubif(flag=1).str=;str+=2;et.setText(str);flag=0;elsestr+=2;et.setText(str);vi=v;);number3.setOnClickListener(newView.OnClickListener()publicvoidonClick(Viewv)/TODOAuto-generatedmethodstubif(flag=1).str=;str+=3;et.setText(str);flag=0;elsestr+=3;et.setText(str);vi=v;);number4.setOnClickList
28、ener(newView.OnClickListener()publicvoidonClick(Viewv)/TODOAuto-generatedmethodstubif(flag=1).str=;str+=4;et.setText(str);flag=0;elsestr+=4;et.setText(str);vi=v;);number5.setOnClickListener(newView.OnClickListener()publicvoidonClick(Viewv)/TODOAuto-generatedmethodstubif(flag=1).str=;str+=5;et.setTex
29、t(str);flag=0;elsestr+=5;et.setText(str);vi=v;);number6.setOnClickListener(newView.OnClickListener()publicvoidonClick(Viewv)/TODOAuto-generatedmethodstubif(flag=1).str=;str+=6;et.setText(str);flag=0;elsestr+=6;et.setText(str);vi=v;);number7.setOnClickListener(newView.OnClickListener()publicvoidonCli
30、ck(Viewv)/TODOAuto-generatedmethodstubif(flag=1).str=;str+=7;et.setText(str);flag=0;elsestr+=7;et.setText(str);vi=v;);number8.setOnClickListener(newView.OnClickListener()publicvoidonClick(Viewv)/TODOAuto-generatedmethodstubif(flag=1).str=;str+=8;et.setText(str);flag=0;elsestr+=8;et.setText(str);vi=v
31、;);number9.setOnClickListener(newView.OnClickListener()publicvoidonClick(Viewv)/TODOAuto-generatedmethodstubif(flag=1).str=;str+=9;et.setText(str);flag=0;elsestr+=9;et.setText(str);vi=v;);/設(shè)定符號鍵/加fuhao0.setOnClickListener(newView.OnClickListener()publicvoidonClick(Viewv)/TODOAuto-generatedmethodstub
32、if(str!=)if(vi=fuhao0|vi=fuhao1|vi=fuhao2|vi=fuhao3)c=1;elseg=Double.parseDouble(str);calculater();str=+f;et.setText(str);c=1;flag=1;vi=v;);/減fuhao1.setOnClickListener(newView.OnClickListener()publicvoidonClick(Viewv)/TODOAuto-generatedmethodstubif(str!=)if(vi=fuhao0|vi=fuhao1|vi=fuhao2|vi=fuhao3)c=2;elseg=Double.parseDouble(str);calculater();str=+f;et.setText(str);c=2;flag=1;vi=v;);/乘fuhao2.setOnClickListener(newView.OnClickListener()p
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞務(wù)合同范本廣告
- 個人委托門面出租合同范本
- 公租房攤位出租合同范本
- 業(yè)主自建翻車裝修合同范本
- 第14課 文藝復(fù)興運動(教學(xué)設(shè)計)-2024-2025學(xué)年九年級歷史上冊素養(yǎng)提升教學(xué)設(shè)計(統(tǒng)編版)
- 低價轉(zhuǎn)讓合同范本
- 云溪區(qū)土地流轉(zhuǎn)合同范本
- 買新盤合同范本
- 公司員工兼職合同范本
- 代工工廠保密合同范本
- 公司辦公室5S管理規(guī)定(實用含圖片)
- (完整版)餐飲員工入職登記表
- 智能化工程施工工藝圖片講解
- 人教版小學(xué)五年級數(shù)學(xué)下冊教材解讀
- 2022年最新蘇教版五年級下冊科學(xué)全冊教案
- 咳嗽與咳痰課件
- 咖啡樹的修剪方法和技術(shù)_種植技巧
- 小學(xué)四年級數(shù)學(xué)奧數(shù)應(yīng)用題100題
- 綜合布線驗收報告材料
- 《初三心理健康教育》ppt課件
- 重慶鐵塔公司配套設(shè)備安裝施工服務(wù)技術(shù)規(guī)范書
評論
0/150
提交評論