android開發(fā)計算器設(shè)計開發(fā)報告_第1頁
android開發(fā)計算器設(shè)計開發(fā)報告_第2頁
android開發(fā)計算器設(shè)計開發(fā)報告_第3頁
android開發(fā)計算器設(shè)計開發(fā)報告_第4頁
android開發(fā)計算器設(shè)計開發(fā)報告_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Xx大學(xué)計算機與電子信息學(xué)院 移動編程技術(shù) 安卓程序開發(fā)設(shè)計報告-簡單計算器安卓開發(fā)程序設(shè)計報告題目簡單計算器開發(fā)專業(yè)(班級)網(wǎng)工111班姓名張波波學(xué)號952937885(qq)指導(dǎo)教師趙(老師)日期2014.5.7目錄一、設(shè)計說明:31.設(shè)計內(nèi)容: Android簡單應(yīng)用程序開發(fā),簡單計算器。32程序說明:3二、開發(fā)環(huán)境:3三、概要設(shè)計:33.1 系統(tǒng)的總體 3四、程序流程和系統(tǒng)功能設(shè)計44.1程序流程設(shè)計 44.2.系統(tǒng)功能設(shè)計 54.3基于Android平臺系統(tǒng)具體設(shè)計 54.3.1 總體模塊詳細(xì)設(shè)計 54.3.2&#

2、160;輸入模塊詳細(xì)設(shè)計64.3.3 顯示模塊詳細(xì)設(shè)計 74.3.4 計算模塊詳細(xì)設(shè)計7五、計算器系統(tǒng)實現(xiàn) 85.1 Android應(yīng)用程序構(gòu)成 8六、截圖說明91、圖標(biāo)92界面93運算界面94錯誤輸入105設(shè)計平臺界面106簽名導(dǎo)出apk11七、總結(jié)12 課程設(shè)計任務(wù)書一、設(shè)計說明:1.設(shè)計內(nèi)容: Android簡單應(yīng)用程序開發(fā),簡單計算器。2程序說明:1、計算器界面友好,方便使用。2、具有基本的加、減、乘、除功能,還有+、開方、平方功能。3、 能夠判斷用戶輸入運算數(shù)是否正確。4、4、 支持小數(shù)運算。5、 具有退格功能,能夠刪除最后

3、一個輸入,ce。6、 具有清除功能,刪除所有,c。7、 具有結(jié)果存儲功能,能夠顯示存儲器狀態(tài),支持觸屏手機。 8、 支持最低版本2.0,最高版本4.4。開發(fā)時為4.2二、開發(fā)環(huán)境:開發(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ā),出總體模塊外主要分為輸入模塊、顯示模塊以及計算模塊(包括一些其她功能)這三大部

4、分。在整個系統(tǒng)中總體模塊控制系統(tǒng)的生命周期,輸入模塊部分負(fù)責(zé)讀取用戶輸入的數(shù)據(jù),顯示模塊部分負(fù)責(zé)顯示用戶之前輸入的數(shù)據(jù)以及顯示最終的計算結(jié)果,計算模塊部分負(fù)責(zé)進行數(shù)據(jù)的運算以及一些其她的功能??傮w模塊的作用主要是生成應(yīng)用程序的主類,控制應(yīng)用程序的生命周期。 輸入模塊主要描述了計算器鍵盤以及鍵盤的監(jiān)聽即主要負(fù)責(zé)讀取用戶的鍵盤輸入以及響應(yīng)觸屏的按鍵,需要監(jiān)聽手機按鍵動作以及用指針事件處理方法處理觸屏的單擊動作(以松開按鍵為準(zhǔn))。同時提供了較為直觀的鍵盤圖形用戶界面。顯示模塊描述了計算器的顯示區(qū),即該區(qū)域用于顯示用戶輸入的數(shù)據(jù)以及最終的計算結(jié)果,同時還負(fù)責(zé)顯示一些其她的信息。 計

5、算模塊則主要描述了計算器的整體,實現(xiàn)了計算器的界面,負(fù)責(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)的功能比較多,

6、比較復(fù)雜,如上所說,可以分為十多個功能模塊,但是邏輯上理解其實不算困難,系統(tǒng)包括普通計算功能,包括加減乘除,退格以及清零功能。下面就讓我們用圖4-2來表示: 4.3基于Android平臺系統(tǒng)具體設(shè)計 系統(tǒng)除了總體模塊以外主要由三大模塊來組成,即輸入模塊,顯示模塊和計算模塊。用系統(tǒng)框圖來表示即如圖4-3。 4.3.1 總體模塊詳細(xì)設(shè)計 總體模塊需要完成的任務(wù)主要就是系統(tǒng)的程序啟動類,需要負(fù)責(zé)整個系統(tǒng)的生命周期。同時在還要在模塊中完成菜單欄的所有功能,即退出程序,記憶數(shù)據(jù),顯示數(shù)據(jù),清除記憶數(shù)據(jù)這四個功能。 總體模塊的功能圖如圖4-4: 4.3.2 

7、;輸入模塊詳細(xì)設(shè)計系統(tǒng)如果想完成計算器中的各種功能,首先用戶要能進行數(shù)據(jù)輸入,由于是在觸屏手機上開發(fā)計算器程序,所以要求輸入可以直接使用觸屏進行,所以在設(shè)計的時候就要充分的考慮要這一點。正是由于考慮到這個特殊的地方,所以在進行模塊設(shè)計中,選擇編寫輸入模塊類的時候會特意選取使用了可以支持觸屏輸入的特殊增強型圖形用戶界面類。 輸入模塊主要的任務(wù)是描述計算器鍵盤以及實現(xiàn)鍵盤的監(jiān)聽,即當(dāng)用戶點擊按鍵或者屏幕的時候監(jiān)聽器會去調(diào)用相應(yīng)的處理辦法,本模塊還需要為系統(tǒng)提供了一個較為直觀的鍵盤圖形用戶界面。輸入模塊的功能圖如圖4-5: 4.3.3 顯示模塊詳細(xì)設(shè)計 顯示模塊主要要完

8、成的任務(wù)是描述計算器的顯示區(qū),該區(qū)域用于顯示用戶輸入的數(shù)據(jù)以及最終的計算結(jié)果和一些其她信息。同時本模塊還將提供調(diào)用和設(shè)置顯示的具體方法。顯示模塊的功能圖如圖3-6: 4.3.4 計算模塊詳細(xì)設(shè)計系統(tǒng)想要能在屏幕上顯示出計算器的樣子要有整體的布局,在本模塊中要完成布局的具體設(shè)計,使用戶能夠看到整個計算器的畫面。同時系統(tǒng)想完成計算功能必須要處理用戶的輸入,當(dāng)輸入模塊的監(jiān)聽傳到計算模塊中時,計算模塊就要根據(jù)相應(yīng)的方法進行進一步的處理。這部分主要是對輸入進行的邏輯判斷,基本會通過if else來實現(xiàn)邏輯判斷。計算模塊的功能圖如圖3-7: 五、計算器系統(tǒng)實現(xiàn) 5.1

9、0;Android應(yīng)用程序構(gòu)成 Android應(yīng)用程序一般是由Activity、Serviece、Content Provider、Intent、Intent Receiver、Notification六個組件構(gòu)成。但并非每一個Android應(yīng)用程序都包含這六個組件。(1) Activity(活動):應(yīng)用程序的表示層。Activity是Android的基本組件。(2) (2)Service(服務(wù)):Android應(yīng)用程序的后臺運行組件。 (3) Content Provider(內(nèi)容提供器):用來管理和分享應(yīng)用程序數(shù)據(jù)庫。(4) (4)Inte

10、nt(意向):Activity之間的粘合劑。使用Intent,可以在系統(tǒng)范圍內(nèi)向目標(biāo)活動或者服務(wù)廣播消息,說明希望執(zhí)行某個動作的意圖。(5)Intent Receiver(意向接收器):通過Intent Receiver實現(xiàn)應(yīng)用能夠?qū)σ粋€外部的事件作出響應(yīng),Intent Receiver在AndroidManifest.xml中注冊,但也可以在代碼中使用Context.registerReceiver()進行注冊。  六、截圖說明1、圖標(biāo) 2界面3運算界面4錯誤輸入5設(shè)計平臺界面6簽名導(dǎo)出apk 七、總結(jié)課程設(shè)計終于在我的努力下做完了。這個時候我更加深入

11、的了解了Java的特點以及一些相關(guān)知識。 與其臨淵羨魚,不如退而結(jié)網(wǎng)。這次Android課程設(shè)計給我的最大的印象就是如果自己有了興趣,就動手去做,困難在你的勇氣和毅力下是抬不了頭的。如果你連失敗都不怕了,那你還怕什么,拾起懶惰的心,勤奮著就會走向成功斬。這次的課程設(shè)計在我未來的時日里,是一個標(biāo)桿,因為它告訴了我,只要我努力沒有什么事我做不好的。安卓開發(fā)是個很有意思的事情,以后可以在自己手機上安裝自己開發(fā)的一些小程序,也是個非常不錯的事情,目前還沒有個安卓機子,而在其他同學(xué)手機測試過后,還是比較不錯的。注:因為有源文件了,并且程序代碼也還是比較長,就不在報告里面放代碼了。package ymq.

12、demo03;import android.app.Activity;import android.os.Bundle;import android.view.*;import android.widget.*;public class demo03 extends Activity /* Called when the activity is first created. */String str=""EditText et;int c=0,flag=0;double b=0.0,g=0.0,f=0.0;View vi;public boolean onCreateOpt

13、ionsMenu(Menu menu) / TODO Auto-generated method stubmenu.add(0, 1, 1, "退出");return super.onCreateOptionsMenu(menu);Overridepublic boolean onOptionsItemSelected(MenuItem item) / TODO Auto-generated method stubif(item.getItemId()=1)finish();return super.onOptionsItemSelected(item);/計算方法publ

14、ic 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 Butt

15、on10;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);fuhao

16、6=(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);number1=(Button)findViewById(R.id.button1);number2=

17、(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

18、=(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 stubstr=""et.setText(str);vi=v;); fuhao7.setOnClickListener(new View.OnClickListen

19、er() public void onClick(View v) / TODO Auto-generated method stubb=0.0;c=0;g=0.0;str=""et.setText(str);); 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=

20、'-')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

21、.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

22、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) /

23、 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; els

24、estr+=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() publi

25、c 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;); number5.setOnClickListener(new View.OnClickListener() public void onClick(View v) / TODO Auto-generated method stubif(flag=1)str=""str+=5;et.

26、setText(str);flag=0; elsestr+=5;et.setText(str); vi=v;); number6.setOnClickListener(new View.OnClickListener() public void onClick(View v) / TODO Auto-generated method stubif(flag=1)str=""str+=6;et.setText(str);flag=0; elsestr+=6;et.setText(str); vi=v;); number7.setOnClickListener(new View

27、.OnClickListener() public void onClick(View v) / TODO Auto-generated method stubif(flag=1)str=""str+=7;et.setText(str);flag=0; elsestr+=7;et.setText(str); vi=v;); number8.setOnClickListener(new View.OnClickListener() public void onClick(View v) / TODO Auto-generated method stubif(flag=1)st

28、r=""str+=8;et.setText(str);flag=0; elsestr+=8;et.setText(str); vi=v;); number9.setOnClickListener(new View.OnClickListener() public void onClick(View v) / TODO Auto-generated method stubif(flag=1)str=""str+=9;et.setText(str);flag=0; elsestr+=9;et.setText(str); vi=v;); /設(shè)定符號鍵 /加 f

29、uhao0.setOnClickListener(new View.OnClickListener() public void onClick(View v) / TODO Auto-generated method stubif(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.setOnClickLi

30、stener(new View.OnClickListener() public void onClick(View v) / TODO Auto-generated method stubif(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(new View.OnClickListener() public void onClick(View v) / TODO Auto-generated method stubif(str!="")if(vi=fuhao0|vi=fuhao1|vi=fuhao2|v

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論