版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、學(xué)校代碼: 10128學(xué) 號: 課程設(shè)計說明書題 目: 移動版計算器學(xué)生姓名: 學(xué) 院: 信息工程學(xué)院班 級: 計12-1班指導(dǎo)教師: 莊旭菲 2015 年 7 月 目錄第一章 總體功能介紹11.1功能介紹11.2軟件設(shè)計11.2.1系統(tǒng)軟件的結(jié)構(gòu)圖11.2.2功能的操作流程11.2.3計算器模塊1第二章 各功能模塊的具體實現(xiàn)32.1系統(tǒng)主界面32.2基本加減乘除界面92.3其他運算界面12第三章 調(diào)試及運算結(jié)果163.1加法運算結(jié)果163.2減法運算結(jié)果163.3乘法運算結(jié)果173.4除法運算結(jié)果173.5帶括號運算結(jié)果173.6復(fù)合運算結(jié)果17第四章 總結(jié)18 摘要:Android是當(dāng)今最
2、重要的手機(jī)開發(fā)的平臺之一,它是建立在Java基礎(chǔ)上的,能夠迅速建立手機(jī)軟件的解決方案。Android的功能十分強大。成為當(dāng)今軟件行業(yè)的一股新興力量。Android基于Linux平臺,由操作系統(tǒng)、用戶界面和應(yīng)用軟件組成,具有以下特點:開放性、應(yīng)用程序無界限、應(yīng)用程序是在平等條件下創(chuàng)建的、應(yīng)用程序可以輕松的嵌入網(wǎng)絡(luò)、應(yīng)用程序可以并行運行。 第一章 總體功能介紹1.1功能介紹計算器軟件的系統(tǒng)功能介紹:(1) 實現(xiàn)簡單的要實現(xiàn)基本的加、減、乘、除四則運算。 (2) 可以實現(xiàn)在前一步計算結(jié)果上繼續(xù)作加、減、乘、除,即連加、減、乘、 除。(3) 有清空功能,即清除所有數(shù)據(jù),重新開始計算。(4) 擁有后退按
3、鍵,可以實現(xiàn)清除單個錯誤數(shù)據(jù)。(5) 可以實現(xiàn)復(fù)合運算。1.2軟件設(shè)計1.2.1系統(tǒng)軟件的結(jié)構(gòu)圖1.2.2功能的操作流程 首先用戶根據(jù)自己的實際需要選擇計算,得出程序結(jié)果,輸入數(shù)據(jù),選擇運算符號,再輸入數(shù)據(jù),選擇等號,即可以得出結(jié)果。1.2.3計算器模塊圖1-1 MyOntouchListener 類圖圖1-2 Utils類圖圖1-3 MainActivity類圖程序中的類圖如圖1-1,1-2,1-3所示。Utils中主要包含了兩個方法。分別是逆波蘭式的生成以及計算結(jié)果的輸出。這兩個方法為utiNi()以及calculate()圖1-1中的類是MainActivity中的子類MainActiv
4、ity中包含了按鈕的點擊事件以及觸摸設(shè)置背景顏色,按鈕字體顏色等功能。第二章 各功能模塊的具體實現(xiàn)2.1系統(tǒng)主界面 本界面是用來線性布局與網(wǎng)格布局,控件有文本框與按鈕 2.2基本加減乘除界面用戶在文本框中輸入?yún)⒓舆\算的數(shù)據(jù),并且點擊要進(jìn)行的運算符號,點擊等號之后,會顯示出計算結(jié)果。點擊清除按鈕,可以將文本框的內(nèi)容以及顯示的結(jié)果一起清空,用戶可以輸入新的數(shù)據(jù)按鈕計算。復(fù)合運算中的表達(dá)式先生成中綴表達(dá)式,然后轉(zhuǎn)換為逆波蘭式。求逆波蘭式的流程圖如下:圖1-4 逆波蘭式生成的流程圖代碼實現(xiàn):public static String utiNi(String str)boolean b = Patter
5、n.matches(|*/.).+()|-+*/.), str);if (b)String srcStr = str;String desStr = ;boolean errorFlag = true, isIncreaceFlag = false;char stack = new char100;int postion = 0, top = 0;while (postion 0& srcStr.charAt(postion - 1) != ()if(postion=2)&(str.charAt(0)=();else if(postion=1)&(str.charAt(0)=+|str.cha
6、rAt(0)=-);else desStr += ,;desStr += temch;isIncreaceFlag = true;postion+;while (top != 0)if (stacktop = ()errorFlag = false;break;elsedesStr += ,;desStr += stacktop;top-;if (errorFlag = true)return desStr;return null;2.3其他運算界面可以實現(xiàn)的是切換界面風(fēng)格。括號的實現(xiàn)以及清除和后退: else if (.equals(opera) if (firstNumber.equals
7、() ed_out.setText(根號內(nèi)不Null);firstNumber = ;SecondNumber = ;numberString = ;text = ;ed_in.setText(); else result = Math.sqrt(Double.parseDouble(firstNumber);ed_out.setText( + firstNumber + = + String.valueOf(result);ed_in.setText(); else if (.equals(opera) if (firstNumber.equals() ed_out.setText(底數(shù)不N
8、ull);firstNumber = ;SecondNumber = ;numberString = ;text = ;ed_in.setText(); else if (SecondNumber.equals() ed_out.setText(指數(shù)不Null);firstNumber = ;SecondNumber = ;numberString = ;text = ;ed_in.setText(); else result = exponentFun(Double.parseDouble(firstNumber),Double.parseDouble(SecondNumber);ed_ou
9、t.setText(firstNumber + + SecondNumber + = + String.valueOf(result);ed_in.setText(); else if (.equals(opera) if (firstNumber.equals() firstNumber = ;SecondNumber = ;numberString = ;text = ;ed_in.setText(); else result = factorialFun(Double.parseDouble(firstNumber); else if (.equals(text) opera = ;fi
10、rstNumber = numberString;numberString = ;ed_in.setText(numberString);ed_out.setText( + firstNumber); else if (.equals(text) opera = ;firstNumber = numberString;numberString = ;ed_in.setText(numberString);ed_out.setText(firstNumber + ); else if (.equals(text) opera = ;firstNumber = numberString;numbe
11、rString = ;ed_in.setText(numberString);ed_out.setText(firstNumber + );sound(); else if (c.equals(text) opera = ;firstNumber = ;SecondNumber = ;numberString = ;text = ;ed_in.setText();ed_out.setText(); else if (.equals(text) if (!numberString.equals() numberString = String.copyValueOf(numberString.to
12、CharArray(), 0,numberString.length() - 1);ed_in.setText(numberString); else if (.equals(text) numberString = numberString;ed_in.setText(numberString); else numberString = numberString + text;ed_in.setText(numberString););private Double exponentFun(double x, double n) double result = 0.00d;if (n = 0)
13、 result = 1.00d;return result; else if (n = 1) result = x;return result; else if (isEven(n) result = exponentFun(x * x, n / 2);return result; else result = exponentFun(x * x, (n - 1) / 2) * x;return result;private boolean isEven(double n) if (n % 2 = 0) return true; else return false;private Double
14、factorialFun(double n) double result = 1;if (n = 0) result = 1;return result;for (int i = 1; i = n; i+) result = result * i;return result;public void sound()MediaPlayer mediaPlayer=MediaPlayer.create(this, R.raw.nbk);mediaPlayer.start();第三章 調(diào)試及運算結(jié)果3.1加法運算結(jié)果3.2減法運算結(jié)果3.3乘法運算結(jié)果3.4除法運算結(jié)果3.5帶括號運算結(jié)果3.6復(fù)合運
15、算結(jié)果 3.7切換界面風(fēng)格第四章 總結(jié) 通過三周的實訓(xùn)課設(shè)設(shè)計,使我學(xué)習(xí)到了很多的知識。讓我對于Android系統(tǒng)有了更加深刻的了解,并且能夠做一些簡單的應(yīng)用程序,懂得了在做實驗的時候,必須要有一個基礎(chǔ)的知識和探索求知的精神,熟練掌握專業(yè)的基礎(chǔ)知識,只有這樣才可以在實驗中發(fā)現(xiàn)問題和解決問題,同時在實驗中還要有足夠的耐心去發(fā)現(xiàn)問題,去解決問題。設(shè)計制作計算器,首先要實現(xiàn)的是基本的加減乘除四則運算,然后在此基礎(chǔ)上進(jìn)一步完善豐富其運算功能。首先要做的是一個鍵盤。利用button制作,設(shè)置好布局,在輸入界面用兩個文本框輸入數(shù)據(jù)。這樣基本的加減乘除功能已經(jīng)實現(xiàn),但是這樣的話計算器的功能就比較簡單了,所以就需要的是擴(kuò)充功能,我決定增加清除和開方以及多次冪的功能。在原有的界面上進(jìn)行擴(kuò)充。 這也激發(fā)了我今后努力學(xué)習(xí)的興趣,我想這將對我以后的學(xué)習(xí)產(chǎn)生積極的影響。其次,這次課程設(shè)計讓我充分認(rèn)識到團(tuán)隊合作的重要性,只有分工協(xié)作才能保證整個項目的有條不絮。另外在課程設(shè)計的過程中,當(dāng)我們碰到不明白的問題時,指導(dǎo)老師總是耐心的講解,給我們的設(shè)計以極大的幫助,使我們獲益匪淺。因此非常感謝老師的教導(dǎo)。通
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年中共二大會址紀(jì)念館招聘派遣制講解員3名備考題庫及一套參考答案詳解
- 2026年嘉睿招聘(派遣至市第四人民醫(yī)院)備考題庫及完整答案詳解1套
- 2026年中國棉花棉紗交易中心有限責(zé)任公司招聘備考題庫及一套完整答案詳解
- 2026年成都市新都現(xiàn)代交通產(chǎn)業(yè)功能區(qū)管理委員會公開招聘6名編外(聘用)人員的備考題庫含答案詳解
- 2026年廈門高新人才開發(fā)有限公司招聘中心血站醫(yī)師類服務(wù)人員6人備考題庫及參考答案詳解一套
- 2026年廈門弘愛醫(yī)院招聘備考題庫參考答案詳解
- 2026年宜賓市蜀南竹海旅游發(fā)展有限公司招聘7名工作人員備考題庫及答案詳解一套
- 2026年內(nèi)蒙古蘇尼特投資發(fā)展公司招聘9人備考題庫及答案詳解參考
- 2026年安溪六中招聘編外合同制教師備考題庫及答案詳解一套
- 2026年【招聘備考題庫】玉帶河幼兒園江灣分園招聘保安及答案詳解1套
- 糧食存儲與安全知識培訓(xùn)課件
- 乳制品配送服務(wù)質(zhì)量保障措施
- 秋天公開課教學(xué)課件
- 保密文件流轉(zhuǎn)管理辦法
- 《老年人生活照料與基礎(chǔ)護(hù)理實務(wù)》智慧健康養(yǎng)老服務(wù)與管理專業(yè)全套教學(xué)課件
- 呼吸睡眠暫停綜合征科普
- 城投財務(wù)考試試題及答案
- 福建省機(jī)動車維修行業(yè)工時定額和維修費計算方法文檔資料
- DB32/T 3501-2019大規(guī)模教育考試網(wǎng)上評卷技術(shù)規(guī)范
- 4m變更考試試題及答案
- 煤礦重大災(zāi)害治理頂層設(shè)計方案
評論
0/150
提交評論