基于安卓開發(fā)的計(jì)算器課程設(shè)計(jì)報(bào)告_第1頁
基于安卓開發(fā)的計(jì)算器課程設(shè)計(jì)報(bào)告_第2頁
基于安卓開發(fā)的計(jì)算器課程設(shè)計(jì)報(bào)告_第3頁
基于安卓開發(fā)的計(jì)算器課程設(shè)計(jì)報(bào)告_第4頁
基于安卓開發(fā)的計(jì)算器課程設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、大慶師范學(xué)院ANDROID應(yīng)用設(shè)計(jì)課程設(shè)計(jì)報(bào)告題目:簡易計(jì)算器專業(yè)班級(jí):計(jì)算機(jī)科學(xué)與技術(shù)一班 設(shè) 計(jì) 者: 指導(dǎo)老師: PPPP 設(shè)計(jì)時(shí)間:2016-2017(1) 報(bào)告完成日期 2016 年12月30日1 設(shè)計(jì)任務(wù)及要求設(shè)計(jì)一款基于Android系統(tǒng)下的計(jì)算器,實(shí)現(xiàn)一般計(jì)算器可以進(jìn)行的加減乘除算法,以及清零操作。本人學(xué)習(xí)Android有近半年的時(shí)間。由于不同的Android手機(jī)有著不同的分辨率,將不同分辨率的圖標(biāo)圖片放置在相應(yīng)位置。Drawable-hdpi中放置分辨率最高的圖標(biāo),drawable-ldpi中放置分辨率中等的圖標(biāo),drawable-mdpi中放置在分辨率最低的圖標(biāo)。界面設(shè)計(jì)應(yīng)

2、該就盡量簡潔而美觀,應(yīng)該具有良好的交互性。在整個(gè)過程中,首先應(yīng)該對(duì)輸入進(jìn)行容錯(cuò)處理,這樣有利于提高用戶體驗(yàn)。對(duì)于用戶的按鍵輸入,需要及時(shí)的現(xiàn)實(shí)在第一個(gè)EditView中。用戶在輸入過程中,肯定會(huì)存在一定的錯(cuò)誤,程序設(shè)計(jì)過程中需要對(duì)應(yīng)用程序進(jìn)行容錯(cuò)處理。容錯(cuò)設(shè)計(jì)比如:在輸入過程中小數(shù)的話只能有一個(gè)小數(shù)點(diǎn),操作符不能連續(xù)輸入,整數(shù)數(shù)據(jù)的開頭不能出現(xiàn)0等等。在程序設(shè)計(jì)過程中,需要設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)來存儲(chǔ)數(shù)字、操作符和容錯(cuò)標(biāo)記,在本文中使用了棧,對(duì)這些數(shù)據(jù)進(jìn)行了存儲(chǔ)。2設(shè)計(jì)原理及總體框圖 將表達(dá)式轉(zhuǎn)為字符串類進(jìn)行存儲(chǔ)。 將表達(dá)式的字符串進(jìn)行處理,將數(shù)字和運(yùn)算符分別存放在兩個(gè)棧中(也可以使 用隊(duì)列,理論上使用

3、隊(duì)列更為合理,在這我使用棧來實(shí)現(xiàn))。 由于棧是后進(jìn)先出的,所以先將兩個(gè)棧進(jìn)行逆序。 設(shè)計(jì)方法來處理兩個(gè)棧從而得到相應(yīng)的計(jì)算結(jié)果。原理:將操作符設(shè)計(jì)優(yōu)先級(jí),乘除優(yōu)先級(jí)設(shè)置為2,加減優(yōu)先級(jí)設(shè)置為1。 一、從操作符棧中彈出兩個(gè)操作符,假設(shè)為symbol1和symbol2,比較兩個(gè)操作付的優(yōu)先級(jí),如果symbol1的優(yōu)先級(jí)大于等于symbol2的則執(zhí)行二,否則執(zhí)行三。 二、從數(shù)字棧中彈出兩個(gè)數(shù)字,計(jì)算這兩個(gè)數(shù)字在操作符symbol1下的運(yùn)算結(jié)果,結(jié)束后將結(jié)果壓入數(shù)字棧,將symbol2壓入操作符棧,最后返回一。 3、 從數(shù)字棧中彈出三個(gè)數(shù)字,計(jì)算后兩個(gè)數(shù)字在操作符symbol2下的運(yùn)算結(jié)果,結(jié)束后將運(yùn)

4、算結(jié)果壓入棧,將剩下的第一個(gè)數(shù)字壓入棧,將操作符symbol1壓入站,最后返回一。結(jié)構(gòu)框圖如下所示: 圖1:簡易計(jì)算器整體結(jié)構(gòu)框圖小組分工:組長:ukuk責(zé)程序算法查找及編寫,仿真環(huán)境調(diào)試及運(yùn)行; 組員:ukuk負(fù)責(zé)定義按鍵代碼及其他代碼查找,編寫; uk負(fù)責(zé)材料匯總、文檔報(bào)告編寫、及相關(guān)書籍資料查詢。3 詳細(xì)設(shè)計(jì) 部分源代碼:private Button bt_1;private Button bt_2;private Button bt_3;private Button bt_4;private Button bt_5;private Button bt_6;private Button

5、bt_7;private Button bt_8;private Button bt_9;private Button bt_0;private Button bt_add;private Button bt_sub; / 減private Button bt_multiply; / 乘private Button bt_divide; / 除private Button bt_back;private Button bt_equal; / 等于private Button bt_point; / 點(diǎn)private Button bt_clear; / 清除private EditText e

6、t_play; / 顯示private String str_oper = +; / 運(yùn)算符private StringBuffer str_display = new StringBuffer(); / 顯示private String str_result; / 結(jié)果顯示private double num1;private double num2;private boolean flag = true; / 小數(shù)點(diǎn)個(gè)數(shù)開關(guān)控制;private boolean b_sub, b_mul, b_div; / 運(yùn)算符開關(guān)控制此段代碼為相關(guān)按鍵定義(包括加減乘除,等于號(hào),小數(shù)點(diǎn),clear清除以

7、及數(shù)字鍵)。說明:每完成一次計(jì)算后,需先clear 清除記憶,當(dāng)然也可以連算。 設(shè)計(jì)按鍵的大小bt_point.setOnClickListener(new OnClickListener()bt_back.setOnClickListener(new OnClickListener()bt_add.setOnClickListener(new OnClickListener()bt_sub.setOnClickListener(new OnClickListener()bt_multiply.setOnClickListener(new OnClickListener()bt_divide.

8、setOnClickListener(new OnClickListener()bt_clear.setOnClickListener(new OnClickListener()bt_equal.setOnClickListener(new OnClickListener()計(jì)算器執(zhí)行各項(xiàng)運(yùn)算功能語句(小數(shù)點(diǎn),加減乘除,清零.)bt_add.setOnClickListener(new OnClickListener()Overridepublic void onClick(View v)str_oper = +;if (!(str_display.toString() = )num1 +=

9、Double.parseDouble(str_display.toString();str_display = new StringBuffer();if (!(str_result = null)num1 = Double.parseDouble(str_result);str_result = null;et_play.setText(String.valueOf(num1);flag = true;);計(jì)算器進(jìn)行加法運(yùn)算的子程序代碼如上Toast.makeText(Android_calculatorActivity.this,除數(shù)不能為0!, Toast.LENGTH_LONG).sh

10、ow();此段注意除數(shù)不能為0!Toast.makeText(CalculaterActivity.this, 被乘數(shù)或乘數(shù)不能為空!, Toast.LENGTH_SHORT).show();4 測(cè)試與分析測(cè)試過程:安裝相關(guān)軟件,JDK安裝配置安裝Java的JDK至默認(rèn)路徑 D:Program FilesJava,一般需要300M的空間,硬盤空間充足的話,所有組件全部安裝。然后完成環(huán)境變量的配置。 配置Eclipse開發(fā)環(huán)境,設(shè)置代碼字體大小,調(diào)整為12(或14),顯示行號(hào),代碼格式化,改變一行能容納的最大字符數(shù),設(shè)置智能提示,運(yùn)行eclipse.exe完成路徑設(shè)置后,選擇菜單HelpInst

11、all New Software. 圖2:Install工作界面配置SDK路徑:(1)安裝java開發(fā)的JDK到本機(jī),配置好環(huán)境變量,具體操作見前文步驟1-6。(2)解壓Android SDK和Eclipse,配置Eclipse的SDK路徑。系統(tǒng)默認(rèn)的是在線安裝新的SDK組件,我們不可能在沒有網(wǎng)絡(luò)連接的情形下升級(jí)應(yīng)用組件!所以選取Use existing SDKs,然后點(diǎn)擊下一步完成經(jīng)一部的配置。完成配置到Windows里找到Android SDK Manager運(yùn)行,檢測(cè)是否可以正常啟動(dòng)。 圖3:配置完成的Eclipse總結(jié):需要先安裝JDK后配置環(huán)境變了,然后完成SDK的解壓,解壓有ADT

12、的Eclipse,最后在Eclipse里重新配置SDK路徑。就可以使用了。至此Android開發(fā)環(huán)境就基本搭建完成了??傮w看來其操作也與有網(wǎng)絡(luò)環(huán)境操作雷同,需要先安裝JDK后配置環(huán)境變了,然后完成SDK的解壓,解壓有ADT的Eclipse,最后在Eclipse里重新配置SDK路徑就可以使用了。測(cè)試情況如下圖: 圖4:簡易計(jì)算器的代碼編譯及運(yùn)行 圖5:eclipse環(huán)境下運(yùn)行程序(計(jì)算器界面)接下來演示實(shí)際算法:7+9(如圖6、7、8) 圖6 圖7 圖8在實(shí)現(xiàn)此過程中,輸入模塊主要描述了計(jì)算器鍵盤以及鍵盤的監(jiān)聽即主要負(fù)責(zé)讀取用戶的鍵盤輸入以及響應(yīng)觸屏的按鍵,當(dāng)用戶點(diǎn)擊按鍵或者屏幕的時(shí)候監(jiān)聽器會(huì)去調(diào)用相應(yīng)功能的按鍵,分別是清零,0,1,2,3,4,5,6,7,8,9,+,-,*,/,.=,返回。顯示模塊主要描述了計(jì)算器的顯示區(qū),即該區(qū)域用于顯示用戶輸入的數(shù)據(jù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論