用MATLAB制作簡單計(jì)算器_第1頁
用MATLAB制作簡單計(jì)算器_第2頁
用MATLAB制作簡單計(jì)算器_第3頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、用MATLAB作簡單計(jì)算器安陽工學(xué)院電子信息與電氣工程學(xué)院MATLAB編程與應(yīng)用課程大作業(yè)題目:用MATLAB制作簡單計(jì)算器班級:電子信息工程(專升本)教師成績由以下評分標(biāo)準(zhǔn)累計(jì)得出1、設(shè)計(jì)和仿真結(jié)果正確,分析清晰合理。40%2、大作業(yè)報(bào)告重點(diǎn)突出、闡述清晰。30%3、陳述清晰正確、有說服力,能夠正確回答問題。30%總分 一(上述成績由教師填寫)學(xué)生自評分值(該表格全部由學(xué)生填寫)任務(wù)分 值個人貢獻(xiàn)分值()姓名姓名張新建李國斌(%)1設(shè)計(jì)和仿真5030202報(bào)告502030個人平均分值()5050大作業(yè)總成績(該表格“姓名”和“學(xué)號”由學(xué)生填寫,“成績”由教師填寫)姓名張新建李國斌學(xué)號1302

2、073011302073012909成績1. 計(jì)任務(wù):1、熟悉MATLAB勺主要控件使用方法。2、熟悉MATLAB勺GUI設(shè)計(jì)流程。2. 設(shè)計(jì)方案利用MATLAB GU設(shè)計(jì)實(shí)現(xiàn)一個圖形用戶界面的計(jì)算器程序,要求實(shí)現(xiàn):A. 實(shí)現(xiàn)十進(jìn)制數(shù)勺加、減、乘、除、簡單計(jì)算。B. 科學(xué)計(jì)算函數(shù), 包括正弦、 余弦、 正切、 ( 余切、 開方、指數(shù)等函數(shù)運(yùn)行。C. 能夠保存上次歷史計(jì)算勺答案,先是答案存儲器中得內(nèi)容。D. 有清除鍵,能清除操作。3. 方案實(shí)施通過MATLAB勺gui程序設(shè)計(jì)較為簡單,在gui設(shè)計(jì)中主要用到兩種控件, 顯示框用到文本編輯框( edit text ),說明框用到靜態(tài)文本框( Sta

3、tic text ), 數(shù)字以及運(yùn)算等按鈕用到命令按鈕( push button )。然后在通過各個按鈕勺回 調(diào)函數(shù),實(shí)現(xiàn)簡單勺計(jì)算功能。4. 方案施舍首先用MATLAB GU功能,在繪制一個靜態(tài)文本框和一個文本編輯框,以及24 個命令按鈕,調(diào)整好各控件大小、顏色,整體布局如圖所示:21 圖-1一、布局GUI1.打開Matlab,輸入Guide回車或者在工具欄上點(diǎn)擊圖標(biāo)出現(xiàn)Guide窗口:圖-22.然后雙擊“ Blank GUI(Default)”出現(xiàn) GUI 窗口圖-33.添加按鈕圖-44.根據(jù)按鈕的作用及視覺效果做一定的修改把按鈕的字符串大小、顏色進(jìn)行設(shè)置,對按鈕的位置進(jìn)行排布,盡量使按鈕

4、集中在靜態(tài)文本框下面。最終設(shè)置的靜態(tài)文本框?yàn)榘咨渌粹o均為分紅色。5保存、添加功能函數(shù)把做好的按鈕及靜態(tài)文本框保存后自動彈出Editor的M文本,對然后對相應(yīng)的pushbutt on添加功能函數(shù)。以下是相應(yīng)按鈕的功能函數(shù)。(1)數(shù)字按鍵編寫。在 fun cti on pushbutt on 1_Callback(hObject, eve ntdata, han dies)下輸入:textStri ng = get(ha ndles.text1,Stri ng);textStri ng =strcat(textStri ng,O);set(ha ndles.text1,Stri ng,tex

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

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

7、extString);“ eval ”的作用是將符號表達(dá)式轉(zhuǎn)換成數(shù)值表達(dá)式。再由 set(handles.text1,String,ans)輸出。(4) 按鍵“ back”編程:即顯示一個空字符:set(handles.text1,String,) ;按鍵“ back ”編程:textString = get(handles.text1,String);set(handles.text1,String,) ;ss=char(textString); n=length(textString);textString=ss(1:w-1);%各w個字符串轉(zhuǎn)成w-1個,即刪除了末位字符set(handl

8、es.text1,String,textString)(5) 按鍵“清空”:把靜態(tài)文本框的字符清空,返回一個空格 set(handles.text1,String,)(6) 三角函數(shù)的編輯function cos_Callback(hObject, eventdata, handles)textString=handles.text1; textString=cos(str2num(get(handles.text1,String)*pi/180);set(handles.text1,String,num2str(textString)(get(handles.text1,String)*pi

9、/180 是把角度轉(zhuǎn)換為弧度,這樣在編程環(huán) 境中才能識別, cos 才能起作用。然后執(zhí)行 set 函數(shù),把結(jié)果輸出來。同理在 sin,tan 的回調(diào)函數(shù)中夜輸入相應(yīng)的函數(shù),只需把 textString=cos(str2num(get(handles.text1,String)*pi/180);中的 cos 改為 sin,tan 即可(7) 按鍵“退出” : 關(guān)閉計(jì)算器close(gcf);、計(jì)算器的使用按“ =”后顯示999995689tanXA2sin平方運(yùn)算:25A2圖-7按“二”后顯示圖-85. 通過本次實(shí)驗(yàn)實(shí)現(xiàn)十進(jìn)制數(shù)的加、減、乘、除、簡單計(jì)算對 Matlab 的操作有 了進(jìn)一步的認(rèn)識

10、和了解,通過多次的修改調(diào)查做出實(shí)驗(yàn),驗(yàn)證了實(shí)驗(yàn)的正確性, 大大的提高了我們對 Matlab 功能的認(rèn)識,培養(yǎng)了我們的興趣。6. 任務(wù)分工 張新建:主要負(fù)責(zé)設(shè)計(jì)和仿真; 李國斌:主要負(fù)責(zé)設(shè)計(jì)和實(shí)驗(yàn)報(bào)告的撰寫。三、附各按鍵的程序源代碼 :function pushbutton1_Callback(hObject, eventdata, handles) textString = get(handles.text1,String);textString =strcat(textString,0); set(handles.text1,String,textString)function pushbu

11、tton2_Callback(hObject, eventdata, handles) textString = get(handles.text1,String);textString =strcat(textString,1);set(handles.text1,String,textString)function pushbutton3_Callback(hObject, eventdata, handles) textString = get(handles.text1,String);textString =strcat(textString,2); set(handles.text

12、1,String,textString)function pushbutton4_Callback(hObject, eventdata, handles) textString = get(handles.text1,String);textString =strcat(textString,3); set(handles.text1,String,textString)function pushbutton5_Callback(hObject, eventdata, handles) textString = get(handles.text1,String);textString =st

13、rcat(textString,4); set(handles.text1,String,textString)function pushbutton6_Callback(hObject, eventdata, handles) textString = get(handles.text1,String);textString =strcat(textString,5); set(handles.text1,String,textString)function pushbutton7_Callback(hObject, eventdata, handles) textString = get(

14、handles.text1,String);textString =strcat(textString,6); set(handles.text1,String,textString)function pushbutton9_Callback(hObject, eventdata, handles) textString = get(handles.text1,String);textString =strcat(textString,8); set(handles.text1,String,textString)function pushbutton10_Callback(hObject,

15、eventdata, handles) textString = get(handles.text1,String);textString =strcat(textString,9); set(handles.text1,String,textString)function pushbutton11_Callback(hObject, eventdata, handles) textString = get(handles.text1,String);textString =strcat(textString,+); set(handles.text1,String,textString)fu

16、nction pushbutton12_Callback(hObject, eventdata, handles) textString = get(handles.text1,String);textString =strcat(textString,-); set(handles.text1,String,textString)function pushbutton14_Callback(hObject, eventdata, handles) textString = get(handles.text1,String);textString =strcat(textString,/);

17、set(handles.text1,String,textString)function pushbutton15_Callback(hObject, eventdata, handles) textString = get(handles.text1,String);textString =strcat(textString,.); set(handles.text1,String,textString) function pushbutton16_Callback(hObject, eventdata, handles) textString = get(handles.text1,String);ans =eval(textString);set(handles.text1,String,ans)function pushbutton18_Callback(hObject, eventdata, handles) textString = get(handles.text1,String);set(handle

溫馨提示

  • 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

提交評論