版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
用MATLABGUI設計簡單計算器用MATLABGUI設計簡單計算器-9-一、設計目的:本題目通過MATLAB的gui程序設計較為簡單,在gui設計中主要用到三種控件,文本編輯框(edit
text),靜態(tài)文本框(Static
text),命令按鈕(button)。然后在通過各個按鈕的回調函數(shù),實現(xiàn)簡單的計算功能。二、設計方案:利用MATLABGUI設計實現(xiàn)一個圖形用戶界面的計算器程序,要求實現(xiàn):A.實現(xiàn)十進制數(shù)的加、減、乘、除、簡單計算。B.科學計算函數(shù),包括正弦、余弦、正切、余切、開方、指數(shù)等函數(shù)運行。C.能夠保存上次歷史計算的答案,先是答案存儲器中得內(nèi)容。D.有清除鍵,能清除操作。三、方案實施:通過MATLAB的gui程序設計較為簡單,在gui設計中主要用到兩種控件,顯示框用到文本編輯框(edittext),說明框用到靜態(tài)文本框(Statictext),數(shù)字以及運算等按鈕用到命令按鈕(pushbutton)。然后在通過各個按鈕的回調函數(shù),實現(xiàn)簡單的計算功能。計算器程序由MATLAB代碼(.m文件)和GUI圖形(.fig)兩個部分組成。程序的使用方式是直接利用圖形界面中的按鍵鍵入所需數(shù)值、運算符等,再按等于號即可得出結果。首先用MATLABGUI功能,在繪制一個靜態(tài)文本框和一個文本編輯框,以及24個命令按鈕,調整好各控件大小、顏色,整體布局如圖所示:圖-1布局GUI1).打開Matlab,輸入Guide回車或者在工具欄上點擊圖標出現(xiàn)Guide窗口:圖–22).然后雙擊“BlankGUI(Default)”出現(xiàn)GUI窗口圖-33).添加按鈕圖-44).根據(jù)按鈕的作用及視覺效果做一定的修改把按鈕的字符串大小、顏色進行設置,對按鈕的位置進行排布,盡量使按鈕集中在靜態(tài)文本框下面。最終設置的靜態(tài)文本框為白色,其他按鈕均為分紅色。5).保存、添加功能函數(shù)把做好的按鈕及靜態(tài)文本框保存后自動彈出Editor的M文本,對然后對相應的pushbutton添加功能函數(shù)。以下是相應按鈕的功能函數(shù)。(1)數(shù)字按鍵編寫。在functionpushbutton1_Callback(hObject,eventdata,handles)下輸入:textString=get(handles.text1,'String');textString=strcat(textString,'0');set(handles.text1,'String',textString)這是使用句柄handles指向對象text1,并以字符串形式來存儲數(shù)據(jù)文本框text1的內(nèi)容,并存儲數(shù)個“0”,然后由set(handles.text1,'String','textString'在text1中輸出。同理,分別在functionpushbutton2~10_Callback(hObject,eventdata,handles)下給1~9數(shù)字按鍵下編寫此類程序。(2).符號鍵:functionpushbutton12_Callback(hObject,eventdata,handles)textString=get(handles.text1,'String');textString=strcat(textString,'+');set(handles.text1,'String',textString)strcat的作用是將兩個字符串連接起來,就是在已輸入的存儲數(shù)據(jù)textString后添加“+”進行運算。然后執(zhí)行set(handles.text1,'String',textString)。符號鍵‘-’、‘*’、‘/’與‘+’的運算函數(shù)類似?!捌椒竭\算”,主要是由“^2”功能實現(xiàn)。(3)運算符“=”的編程:textString=get(handles.text1,'String');ans=eval(textString);“eval”的作用是將符號表達式轉換成數(shù)值表達式。再由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個字符串轉成w-1個,即刪除了末位字符set(handles.text1,'String',textString)(5)按鍵“清空”:把靜態(tài)文本框的字符清空,返回一個空格set(handles.text1,'String','')(6)三角函數(shù)的編輯functioncos_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/180是把角度轉換為弧度,這樣在編程環(huán)境中才能識別,cos才能起作用。然后執(zhí)行set函數(shù),把結果輸出來。同理在sin,tan的回調函數(shù)中夜輸入相應的函數(shù),只需把textString=cos(str2num(get(handles.text1,'String'))*pi/180);中的cos改為sin,tan即可(7)按鍵“退出”:關閉計算器close(gcf);2、計算器的使用加法運算(+):圖-5按“=”后顯示圖-6平方運算:圖-7按“=”后顯示圖-8通過本次實驗實現(xiàn)十進制數(shù)的加、減、乘、除、簡單計算對Matlab的操作有了進一步的認識和了解,通過多次的修改調查做出實驗,驗證了實驗的正確性,大大的提高了我們對Matlab功能的認識,培養(yǎng)了我們的興趣。附各按鍵的程序源代碼:functionpushbutton1_Callback(hObject,eventdata,handles)textString=get(handles.text1,'String');textString=strcat(textString,'0');set(handles.text1,'String',textString)functionpushbutton2_Callback(hObject,eventdata,handles)textString=get(handles.text1,'String');textString=strcat(textString,'1');set(handles.text1,'String',textString)functionpushbutton3_Callback(hObject,eventdata,handles)textString=get(handles.text1,'String');textString=strcat(textString,'2');set(handles.text1,'String',textString)functionpushbutton4_Callback(hObject,eventdata,handles)textString=get(handles.text1,'String');textString=strcat(textString,'3');set(handles.text1,'String',textString)functionpushbutton5_Callback(hObject,eventdata,handles)textString=get(handles.text1,'String');textString=strcat(textString,'4');set(handles.text1,'String',textString)functionpushbutton6_Callback(hObject,eventdata,handles)textString=get(handles.text1,'String');textString=strcat(textString,'5');set(handles.text1,'String',textString)functionpushbutton7_Callback(hObject,eventdata,handles)textString=get(handles.text1,'String');textString=strcat(textString,'6');set(handles.text1,'String',textString)functionpushbutton8_Callback(hObject,eventdata,handles)textString=get(handles.text1,'String');textString=strcat(textString,'7');set(handles.text1,'String',textString)functionpushbutton9_Callback(hObject,eventdata,handles)textString=get(handles.text1,'String');textString=strcat(textString,'8');set(handles.text1,'String',textString)functionpushbutton10_Callback(hObject,eventdata,handles)textString=get(handles.text1,'String');textString=strcat(textString,'9');set(handles.text1,'String',textString)functionpushbutton11_Callback(hObject,eventdata,handles)textString=get(handles.text1,'String');textString=strcat(textString,'+');set(handles.text1,'String',textString)functionpushbutton12_Callback(hObject,eventdata,handles)textString=get(handles.text1,'String');textString=strcat(textString,'-');set(handles.text1,'String',textString)functionpushbutton13_Callback(hObject,eventdata,handles)textString=get(handles.text1,'String');textString=strcat(textString,'*');set(handles.text1,'String',textString)functionpushbutton14_Callback(hObject,eventdata,handles)textString=get(handles.text1,'String');textString=strcat(textString,'/');set(handles.text1,'String',textString)functionpushbutton15_Callback(hObject,eventdata,handles)textString=get(handles.text1,'String');textString=strcat(textString,'.');set(handles.text1,'String',textString)functionpushbutton16_Callback(hObject,eventdata,handles)textString=get(handles.text1,'String');ans=eval(textString);set(handles.text1,'String',ans)functionpushbutton17_Callback(hObject,eventdata,handles)textString=get(handles.text1,'String');textString=strcat(textString,'^2');set(handles.text1,'String',textString)functionpushbutton18_Callback(hObject,eventdata,handles)textString=get(handles.text1,'String');set(handles.text1,'String','');ss=char(textString);n=length(textString);textString=ss(1:w-1);set(handles.text1,'String',textString)functionpushbutton19_Callback(hObject,eventdata,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 市政項目質量安全監(jiān)督方案
- 2025年吉林公務員考試行測真題試卷及解析(乙級)附答案
- 軟件項目開發(fā)全周期管理方案
- 安全員A證考試強化訓練帶答案詳解(典型題)
- 主題班會活動方案與總結范文
- 安全員A證考試模擬考試高能及參考答案詳解【b卷】
- 安全員A證考試綜合檢測模擬卷附答案詳解(奪分金卷)
- 安全員A證考試高分題庫及參考答案詳解(研優(yōu)卷)
- 2025年注冊會計師會計含解析及答案
- 口罩生產(chǎn)工藝流程優(yōu)化方案
- 腎囊腫病人的護理
- 房產(chǎn)評估年終工作總結
- 安徽省蚌埠市2024-2025學年高二上學期期末學業(yè)水平監(jiān)測物理試卷(含答案)
- 2025至2030全球及中國大腦訓練軟件行業(yè)項目調研及市場前景預測評估報告
- 欽州農(nóng)業(yè)無人車項目商業(yè)計劃書
- (2025版)顱內(nèi)動脈粥樣硬化性狹窄診治指南
- 2025年海管水平定向鉆穿越方案研究
- 攝影家協(xié)會作品評選打分細則
- 電子產(chǎn)品三維建模設計細則
- 2025年中國道路交通毫米波雷達市場研究報告
- 設計交付:10kV及以下配網(wǎng)工程的標準與實踐
評論
0/150
提交評論