基于Matlab的簡易計算器_第1頁
基于Matlab的簡易計算器_第2頁
基于Matlab的簡易計算器_第3頁
基于Matlab的簡易計算器_第4頁
基于Matlab的簡易計算器_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、工程設(shè)計報告設(shè)計題目: 基于Matlab的簡易計算器 學(xué) 院: 專 業(yè): 班 級: 學(xué) 號: 姓 名: 電子郵件: 日 期: 2015年12 月 成 績: 指導(dǎo)教師: 裝訂線 西 安 電 子 科 技 大 學(xué)電 子 工 程 學(xué) 院工 程 設(shè) 計 任 務(wù) 書學(xué)生姓名 指導(dǎo)教師 職稱 學(xué)生學(xué)號 專業(yè) 題目 基于Matlab的簡易計算器 任務(wù)與要求任務(wù)如下:利用MATLAB GUI設(shè)計實現(xiàn)一個圖形用戶界面的計算器程序,實現(xiàn):A.實現(xiàn)十進(jìn)制數(shù)的加、減、乘、除、簡單計算。B. 科學(xué)計算函數(shù),包括正弦、余弦、正切、余切、開方、指數(shù)等函數(shù)運行。C. 有清除鍵,能清除操作。 要求如下:A熟練掌握Matlab G

2、UI界面的設(shè)計與應(yīng)用B最終計算器能夠?qū)崿F(xiàn)預(yù)期的相關(guān)功能開始日期 2015年 11月 日 完成日期 2016年1月 日 課程設(shè)計所在單位 本表格由電子工程學(xué)院網(wǎng)絡(luò)信息中心 編輯錄入 . 摘要 基于Matlab GUI計算器設(shè)計時利用GUI的創(chuàng)建圖像用戶界面進(jìn)行計算器設(shè)計。設(shè)計計算器時,主要是考慮到計算器的易用性、功能的常用程度進(jìn)行計算器界面與功能的設(shè)計。通過調(diào)整控件和文本的布局及顏色,使界面簡單大方、布局合理,達(dá)到界面友好的效果。計算器設(shè)計時主要利用到get和set兩個函數(shù)進(jìn)行各個控件屬性值的傳遞和設(shè)置。計算器實現(xiàn)的功能有:數(shù)字09和小數(shù)點的輸入顯示

3、,平方開方和對數(shù)的輸入顯示。進(jìn)行四則運算、正弦函數(shù)、余弦函數(shù)、正切函數(shù)以及反正弦函數(shù)、反余弦函數(shù)、反正切函數(shù)的計算等等。最后運行調(diào)試,實現(xiàn)基于Matlab GUI的計算器的設(shè)計。關(guān)鍵詞:Matlab GUI 計算器AbstractsBased on Matlab GUI calculator design using the user interface to create images of GUI calculator design.Design calculator, mainly considering the ease of use, function calculators cal

4、culator interface and function of the common level of design.By adjusting the control and the layout of the text and color, make the interface simple and easy, rational layout, to achieve the effect of friendly interface. Calculator design used to get and set two main function for each attribute val

5、ue transfer and control Settings.Calculator the functions are: 0 9, according to input and decimal square root and logarithm of input.Arithmetic, sine function and cosine function, tangent function and the arcsine function,arccosine function, the calculation of the arctangent function and so on.Fina

6、lly running debugging, implementation design based on Matlab GUI calculator.Keywords: Matlab GUI calculator目錄摘要3Abstracts3目錄4第一章 緒論51.MATLAB簡介:52本文安排:5第二章 GUI設(shè)計界面62.1打開GUI72.2.添加按鈕72.3.根據(jù)按鈕的作用及視覺效果做一定的修改72.4.保存、添加功能函數(shù)82.4.1 數(shù)字鍵編寫82.4.2 符號鍵的編寫82.4.3 運算符“=”的編寫92.4.4 按鍵“back”的編寫92.4.5 按鍵“清空”的編寫92.4.6 按

7、鍵“退出”的編寫9第三章 計算器的使用和抽樣檢驗103.1 除法運算()103.2 平方運算(2)103.3 函數(shù)cos (/3) 的計算113.4 函數(shù)arcsin(/3) 的計算113.5 以2為底的對數(shù)(log 2)的計算123.6 總結(jié):12第四章 特殊函數(shù)的源代碼及總結(jié)13函數(shù)代碼及思路:13總結(jié):問題及其優(yōu)化14第五章 心得體會16參考文獻(xiàn)17 第一章 緒論1.MATLAB簡介:MATLAB是matrix和laboratory兩個詞的組合,意為矩陣工廠(矩陣實驗室)。是由美國mathworks公司發(fā)布的主要面對科學(xué)計算、可視化以及交互式程序設(shè)計的高科技計算環(huán)境。它將數(shù)值分析、矩陣計

8、算、科學(xué)數(shù)據(jù)可視化以及非線性動態(tài)系統(tǒng)的建模和仿真等諸多強大功能集成在一個易于使用的視窗環(huán)境中,為科學(xué)研究、工程設(shè)計以及必須進(jìn)行有效數(shù)值計算的眾多科學(xué)領(lǐng)域提供了一種全面的解決方案,并在很大程度上擺脫了傳統(tǒng)非交互式程序設(shè)計語言(如C、Fortran)的編輯模式,代表了當(dāng)今國際科學(xué)計算軟件的先進(jìn)水平。MATLAB和Mathematica、Maple并稱為三大數(shù)學(xué)軟件。它在數(shù)學(xué)類科技應(yīng)用軟件中在數(shù)值計算方面首屈一指。MATLAB可以進(jìn)行矩陣運算、繪制函數(shù)和數(shù)據(jù)、實現(xiàn)算法、創(chuàng)建用戶界面、連接其他編程語言的程序等,主要應(yīng)用于工程計算、控制設(shè)計、信號處理與通訊、圖像處理、信號檢測、金融建模設(shè)計與分析等領(lǐng)域。

9、2本文安排:本文第一章是緒論部分,主要是關(guān)于Matlab的一個北京介紹,以及對本文的一個大體上的內(nèi)容上的安排。本文第二章側(cè)重介紹了如何運用Matlab中GUI界面功能設(shè)計一個合理的、實用的簡易計算器,并且介紹了如何在設(shè)計好的計算器中添加功能函數(shù),實現(xiàn)預(yù)期的相關(guān)功能。本文第三章粗略的介紹的計算器的基本使用方法以及相關(guān)的一些計算器功能實現(xiàn)效果的檢驗,并對檢驗結(jié)果作簡單的分析介紹。本文第四章主要對部分特殊函數(shù)的源代碼作簡單的分析與介紹,以及總結(jié)程序在設(shè)計過程中發(fā)現(xiàn)的問題及其相應(yīng)的優(yōu)化方案。本文第五章是對本次作業(yè)的心得體會。本文最后是相關(guān)的參考文獻(xiàn)第二章 GUI設(shè)計界面計算器的效果圖:圖1圖22.1打

10、開GUI輸入Guide 回車或者在工具欄上點擊圖標(biāo)打開Guide 窗口:圖 32.2.添加按鈕圖 42.3.根據(jù)按鈕的作用及視覺效果做一定的修改雙擊按鈕(Puch Button)進(jìn)入按鍵屬性修改顯示字符串大小、字體和顏色,然后對按鈕的位置進(jìn)行排布,盡量使按鈕集中在靜態(tài)文本框下面。圖52.4.保存、添加功能函數(shù) 把做好的按鈕及靜態(tài)文本框保存后自動彈出Editor的M文本,對然后對相應(yīng)的pushbutton添加功能函數(shù)。以下是相應(yīng)按鈕的功能函數(shù)。2.4.1 數(shù)字鍵編寫在function pushbutton1_Callback(hObject, eventdata, handles)下輸入:tex

11、tString = get(handles.text1,String);textString =strcat(textString,0);set(handles.text1,String,textString)這是使用句柄handles指向?qū)ο髏ext1,并以字符串形式來存儲數(shù)據(jù)文本框text1的內(nèi)容,并存儲數(shù)個“0”,然后由set(handles.text1,String,textString在text1中輸出。同理,分別在function pushbutton210_Callback(hObject, eventdata, handles)下給19數(shù)字按鍵下編寫此類程序。2.4.2 符號鍵

12、的編寫function pushbutton12_Callback(hObject, eventdata, handles)textString = get(handles.text1,String);textString =strcat(textString,);set(handles.text1,String,textString)strcat的作用是將兩個字符串連接起來,就是在已輸入的存儲數(shù)據(jù)textString后添加“”進(jìn)行運算。然后執(zhí)行set(handles.text1,String,textString)。符號鍵-、*、/與的運算函數(shù)類似?!捌椒竭\算”,主要是由“2”功能實現(xiàn)。2.

13、4.3 運算符“=”的編寫textString = get(handles.text1,String);ans =eval(textString);“eval”的作用是將符號表達(dá)式轉(zhuǎn)換成數(shù)值表達(dá)式。再由set(handles.text1,String,ans)輸出。2.4.4 按鍵“back”的編寫textString=get(handles.text1, String)w=length(textString)t=char(textString)textString=t(1:w-1) %將w個字符串轉(zhuǎn)成w-1個,即刪除了末位字符set(handles.text1,String,textStri

14、ng)2.4.5 按鍵“清空”的編寫set(handles.text1,String,)2.4.6 按鍵“退出”的編寫close(gcf);第三章 計算器的使用和抽樣檢驗3.1 除法運算() 圖 6圖 7由結(jié)果可知,除法運算功能正確實現(xiàn)。3.2 平方運算(2)圖 8圖 9由結(jié)果可知,乘方運算功能正確實現(xiàn)。3.3 函數(shù)cos (/3) 的計算 圖 10圖 11由結(jié)果可知,cos()運算功能正確實現(xiàn)。3.4 函數(shù)arcsin(/3) 的計算 圖 12圖 13由結(jié)果可知,arcsin()運算功能正確實現(xiàn)。3.5 以2為底的對數(shù)(log 2)的計算圖 14 圖 15調(diào)試的時候發(fā)現(xiàn)一個問題,發(fā)現(xiàn)以2為底

15、的對數(shù)(log 2)計算需要先輸入數(shù)字,然后點擊log2按鈕鍵直接可以計算出正確的結(jié)果,但是不能按照普通計算器那樣先安log2按鈕鍵然后輸入要計算的數(shù)字,再安=鍵顯示結(jié)果,說明書寫的程序還有一些bug,但是我調(diào)試后仍然沒有能夠發(fā)現(xiàn)問題所在,所以該功能還需謹(jǐn)慎使用。13.6 總結(jié):在對計算器其他功能鍵進(jìn)行的檢驗結(jié)果顯示,該計算器除了log2的計算功能存在bug外,其他功能計算的結(jié)果均與實際結(jié)果相吻合,計算器的功能實現(xiàn)的基本完好且能實現(xiàn)較大數(shù)值的運算,計算結(jié)果用科學(xué)技術(shù)法表示。第四章 特殊函數(shù)的源代碼及總結(jié)函數(shù)代碼及思路:4.1 按鍵“”:通過get函數(shù)獲得輸入的字符,函數(shù)strread獲得輸入字

16、符,并用sqrt函數(shù)計算結(jié)果,set函數(shù)進(jìn)行顯示輸出textString = get(handles.text1,String);if(strcmp(textString,0)=1) set(handles.text1,String,0) ;elsea = strread(textString, %f);a=sqrt(a);set(handles.text1,String,a)end4.2 按鍵“sin”通過get函數(shù)獲得輸入的字符,函數(shù)strread獲得輸入字符,并用sin函數(shù)計算結(jié)果,set函數(shù)進(jìn)行顯示輸出:textString = get(handles.text1,String);te

17、xtString = strcat(textString,sin();set(handles.text1,String,textString)4.3 按鍵“cos” :textString = get(handles.text1,String);textString = strcat(textString,cos();set(handles.text1,String,textString)4.4 按鍵“tan” : textString = get(handles.text1,String);if(strcmp(textString,1.57)=1)|(strcmp(textString,-1

18、.57)=1) set(handles.edit1,String,inf);elsetextString = strcat(textString,tan();set(handles.text1,String,textString)end4.5 按鍵“arcsin” : textString = get(handles.text1,String);textString = strcat(textString,asin();set(handles.text1,String,textString)4.6 按鍵“arccos” : textString = get(handles.text1,Stri

19、ng);textString = strcat(textString,acos();set(handles.text1,String,textString)4.7 按鍵“arctan” : textString = get(handles.text1,String);textString = strcat(textString,atan();set(handles.text1,String,textString)4.8 按鍵“l(fā)og2” : textString = get(handles.text1,String);if(strcmp(textString,0)=1) set(handles

20、.text1,String,error) ;elsea = strread(textString, %f);a=log2(a);set(handles.text1,String,a)end總結(jié):問題及其優(yōu)化1.本次課程設(shè)計中開始時遇到的問題是數(shù)據(jù)進(jìn)行清零后,再輸入其他的數(shù)據(jù),清零后的字符0仍會保留,會影響其他數(shù)據(jù),解決辦法是將數(shù)據(jù)用空格替換掉就實現(xiàn)了清空: set(handles.text1,String,)2.在定義正弦余弦等函數(shù)的時候,需要注意其定義域,值域的問題。3開始時我的“sin” 函數(shù)編程如下:textString = get(handles.text1,String);a = strread(textString, %f); a=sin(a);set(handles.text1,String,a)%這樣只能在輸入完數(shù)據(jù)后按“sin”鍵實現(xiàn)運算,很不直觀。修改后可以實現(xiàn)按下sin鍵后顯示 “sin(”再輸入要運算的數(shù)據(jù)之后加上“)”按下“=”鍵后就可以運算出結(jié)果了,這樣相對更直觀明了。textString = get(handles

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論