GUI设计的简易计算器附程序.docx
《GUI设计的简易计算器附程序.docx》由会员分享,可在线阅读,更多相关《GUI设计的简易计算器附程序.docx(26页珍藏版)》请在冰豆网上搜索。
GUI设计的简易计算器附程序
电子信息工程系实验报告
成绩:
课程名称:
MATLAB应用
指导教师(签名):
实验项目名称:
GUI计算器设计实验时间:
2012-11-22
班级:
测控081姓名:
学号:
810707132
实验目的:
1.熟悉MATLAB的菜单设计方法
2.熟悉MATLAB的主要控件使用方法
3.熟悉MATLAB的GUI设计流程
4.运用MATLAB的GUI设计一个简单的计算器
实验环境:
MATLAB7.8
实验内容:
functionvarargout=jisuanqi1(varargin)
%JISUANQI1M-fileforjisuanqi1.fig
%JISUANQI1,byitself,createsanewJISUANQI1orraisestheexisting
%singleton*.
%
%H=JISUANQI1returnsthehandletoanewJISUANQI1orthehandleto
%theexistingsingleton*.
%
%JISUANQI1('CALLBACK',hObject,eventData,handles,...)callsthelocal
%functionnamedCALLBACKinJISUANQI1.Mwiththegiveninputarguments.
%
%JISUANQI1('Property','Value',...)createsanewJISUANQI1orraisesthe
%existingsingleton*.Startingfromtheleft,propertyvaluepairsare
%appliedtotheGUIbeforejisuanqi1_OpeningFunctiongetscalled.An
%unrecognizedpropertynameorinvalidvaluemakespropertyapplication
%stop.Allinputsarepassedtojisuanqi1_OpeningFcnviavarargin.
%
%*SeeGUIOptionsonGUIDE'sToolsmenu.Choose"GUIallowsonlyone
%instancetorun(singleton)".
%
%Seealso:
GUIDE,GUIDATA,GUIHANDLES
%Edittheabovetexttomodifytheresponsetohelpjisuanqi1
%LastModifiedbyGUIDEv2.505-Dec-201022:
24:
59
%Begininitializationcode-DONOTEDIT
gui_Singleton=1;
gui_State=struct('gui_Name',mfilename,...
'gui_Singleton',gui_Singleton,...
'gui_OpeningFcn',@jisuanqi1_OpeningFcn,...
'gui_OutputFcn',@jisuanqi1_OutputFcn,...
'gui_LayoutFcn',[],...
'gui_Callback',[]);
ifnargin&&ischar(varargin{1})
gui_State.gui_Callback=str2func(varargin{1});
end
ifnargout
[varargout{1:
nargout}]=gui_mainfcn(gui_State,varargin{:
});
else
gui_mainfcn(gui_State,varargin{:
});
end
%Endinitializationcode-DONOTEDIT
%---Executesjustbeforejisuanqi1ismadevisible.
functionjisuanqi1_OpeningFcn(hObject,eventdata,handles,varargin)
%Thisfunctionhasnooutputargs,seeOutputFcn.
%hObjecthandletofigure
%eventdatareserved-tobedefinedinafutureversionofMATLAB
%handlesstructurewithhandlesanduserdata(seeGUIDATA)
%varargincommandlineargumentstojisuanqi1(seeVARARGIN)
%以下是本实验初始化部分程序的代码:
globalcptc1f;
f=0;
t=0;
p=2;
c1=num2str(0);
c='0.';
set(handles.edit1,'String',c);
guidata(hObject,handles);
%Choosedefaultcommandlineoutputforjisuanqi1
handles.output=hObject;
%Updatehandlesstructure
guidata(hObject,handles);
%UIWAITmakesjisuanqi1waitforuserresponse(seeUIRESUME)
%uiwait(handles.figure1);
%---Outputsfromthisfunctionarereturnedtothecommandline.
functionvarargout=jisuanqi1_OutputFcn(hObject,eventdata,handles)
%varargoutcellarrayforreturningoutputargs(seeVARARGOUT);
%hObjecthandletofigure
%eventdatareserved-tobedefinedinafutureversionofMATLAB
%handlesstructurewithhandlesanduserdata(seeGUIDATA)
%Getdefaultcommandlineoutputfromhandlesstructure
varargout{1}=handles.output;
%---Executesonbuttonpressinpushbutton3.
functionpushbutton3_Callback(hObject,eventdata,handles)
%hObjecthandletopushbutton3(seeGCBO)
%eventdatareserved-tobedefinedinafutureversionofMATLAB
%handlesstructurewithhandlesanduserdata(seeGUIDATA)
%以下是本实验数字‘8’的程序代码:
globaltfc;
iff=='=';
c='0';
c=8+str2num(c)*10;
c=num2str(c);
set(handles.edit1,'String',c);
guidata(hObject,handles);
elseift==0;
c=8+str2num(c)*10;
c=num2str(c);
set(handles.edit1,'String',c);
guidata(hObject,handles);
else
c=strcat(c,'8');
set(handles.edit1,'String',c);
guidata(hObject,handles);
t=t+1;
end
%---Executesonbuttonpressinpushbutton4.
functionpushbutton4_Callback(hObject,eventdata,handles)
%hObjecthandletopushbutton4(seeGCBO)
%eventdatareserved-tobedefinedinafutureversionofMATLAB
%handlesstructurewithhandlesanduserdata(seeGUIDATA)
%以下是本实验数字‘5’的程序代码:
globaltfc;
iff=='=';
c='0';
c=5+str2num(c)*10;
c=num2str(c);
set(handles.edit1,'String',c);
guidata(hObject,handles);
elseift==0;
c=5+str2num(c)*10;
c=num2str(c);
set(handles.edit1,'String',c);
guidata(hObject,handles);
else
c=strcat(c,'5');
set(handles.edit1,'String',c);
guidata(hObject,handles);
t=t+1;
end
%---Executesonbuttonpressinpushbutton5.
functionpushbutton5_Callback(hObject,eventdata,handles)
%hObjecthandletopushbutton5(seeGCBO)
%eventdatareserved-tobedefinedinafutureversionofMATLAB
%handlesstructurewithhandlesanduserdata(seeGUIDATA)
%以下是本实验数字‘2’的程序代码:
globaltfc;
iff=='=';
c='0';
c=2+str2num(c)*10;
c=num2str(c);
set(handles.edit1,'String',c);
guidata(hObject,handles);
elseift==0;
c=2+str2num(c)*10;
c=num2str(c);
set(handles.edit1,'String',c);
guidata(hObject,handles);
else
c=strcat(c,'2');
set(handles.edit1,'String',c);
guidata(hObject,handles);
t=t+1;
end
%---Executesonbuttonpressinpushbutton6.
functionpushbutton6_Callback(hObject,eventdata,handles)
%hObjecthandletopushbutton6(seeGCBO)
%eventdatareserved-tobedefinedinafutureversionofMATLAB
%handlesstructurewithhandlesanduserdata(seeGUIDATA)
%以下是本实验‘+/-’的程序代码:
globalctp;
ifrem(p,2)==0;
c=strcat('-',c);
set(handles.edit1,'String',c);
guidata(hObject,handles);
p=p+1;
else
c=strrep(c,'-','');
set(handles.edit1,'String',c);
guidata(hObject,handles);
p=p+1;
end
%---Executesonbuttonpressinpushbutton7.
functionpushbutton7_Callback(hObject,eventdata,handles)
%hObjecthandletopushbutton7(seeGCBO)
%eventdatareserved-tobedefinedinafutureversionofMATLAB
%handlesstructurewithhandlesanduserdata(seeGUIDATA)
%以下是本实验‘.’的程序代码:
globalct;
t=1;
c=strcat(c,'.');
set(handles.edit1,'String',c);
guidata(hObject,handles);
%---Executesonbuttonpressinpushbutton8.
functionpushbutton8_Callback(hObject,eventdata,handles)
%hObjecthandletopushbutton8(seeGCBO)
%eventdatareserved-tobedefinedinafutureversionofMATLAB
%handlesstructurewithhandlesanduserdata(seeGUIDATA)
%以下是本实验数字‘3’的程序代码:
globaltfc;
iff=='=';
c='0';
c=3+str2num(c)*10;
c=num2str(c);
set(handles.edit1,'String',c);
guidata(hObject,handles);
elseift==0;
c=3+str2num(c)*10;
c=num2str(c);
set(handles.edit1,'String',c);
guidata(hObject,handles);
else
c=strcat(c,'3');
set(handles.edit1,'String',c);
guidata(hObject,handles);
t=t+1;
end
%---Executesonbuttonpressinpushbutton9.
functionpushbutton9_Callback(hObject,eventdata,handles)
%hObjecthandletopushbutton9(seeGCBO)
%eventdatareserved-tobedefinedinafutureversionofMATLAB
%handlesstructurewithhandlesanduserdata(seeGUIDATA)
%以下是本实验数字‘6’的程序代码:
globaltfc;
iff=='=';
c='0';
c=6+str2num(c)*10;
c=num2str(c);
set(handles.edit1,'String',c);
guidata(hObject,handles);
elseift==0;
c=6+str2num(c)*10;
c=num2str(c);
set(handles.edit1,'String',c);
guidata(hObject,handles);
else
c=strcat(c,'6');
set(handles.edit1,'String',c);
guidata(hObject,handles);
t=t+1;
end
%---Executesonbuttonpressinpushbutton10.
functionpushbutton10_Callback(hObject,eventdata,handles)
%hObjecthandletopushbutton10(seeGCBO)
%eventdatareserved-tobedefinedinafutureversionofMATLAB
%handlesstructurewithhandlesanduserdata(seeGUIDATA)
%以下是本实验数字‘9’的程序代码:
globaltfc;
iff=='=';
c='0';
c=9+str2num(c)*10;
c=num2str(c);
set(handles.edit1,'String',c);
guidata(hObject,handles);
elseift==0;
c=9+str2num(c)*10;
c=num2str(c);
set(handles.edit1,'String',c);
guidata(hObject,handles);
else
c=strcat(c,'9');
set(handles.edit1,'String',c);
guidata(hObject,handles);
t=t+1;
end
%---Executesonbuttonpressinpushbutton11.
functionpushbutton11_Callback(hObject,eventdata,handles)
%hObjecthandletopushbutton11(seeGCBO)
%eventdatareserved-tobedefinedinafutureversionofMATLAB
%handlesstructurewithhandlesanduserdata(seeGUIDATA)
%以下是本实验‘+’的程序代码:
globalcc1ft;
iff=='-';
c1=str2num(c1)-str2num(c);
c1=num2str(c1);
set(handles.edit1,'String',c1);
guidata(hObject,handles);
c=num2str(0);
f='+';
elseiff=='/'&str2num(c)==0;
c2='³ýÊý²»ÄÜΪÁã¡£'
set(handles.edit1,'String',c2);
guidata(hObject,handles);
c=num2str(0);
c1=num2str(0);
f='=';
elseiff=='/';
c1=str2num(c1)/str2num(c);
c1=num2str(c1);
set(handles.edit1,'String',c1);
guidata(hObject,handles);
c=num2str(0);
f='+';
elseiff=='*';
c1=str2num(c)*str2num(c1);
c1=num2str(c1);
set(handles.edit1,'String',c1);
guidata(hObject,handles);
c=num2str(0);
f='+';
else
c1=str2num(c)+str2num(c1);
c1=num2str(c1);
set(handles.edit1,'String',c1);
guidata(hObject,handles);
c=num2str(0);
f='+';
end
t=0;
%---Executesonbuttonpressinpushbutton12.
functionpushbutton12_Callback(hObject,eventdata,handles)
%hObjecthandletopushbutton12(seeGCBO)
%eventdatareserved-tobedefinedinafutureversionofMATLAB
%handlesstructurewithhandlesanduserdata(seeGUIDATA)
%以下是本实验‘-’的程序代码:
globalcc1ft;
if(c1==num2str(0)&f==0)|(c1==num2str(0)&f=='=')
c1=str2num(c)-str2num(c1);
c1=num2str(c1);
set(handles.edit1,'String',c1);
guidata(hObject,handles);
c=num2str(0);
f='-';
elseiff=='+';
c1=str2num(c)+str2num(c1);
c1=num2str(c1);
set(handles.edit1,'String',c1);
guidata(hObject,handles);
c=num2str(0);
f='-';
elseiff=='/'&str2num(c)==0;
c2='³ýÊý²»ÄÜΪÁã¡£'
set(handles.edit1,'String',c2);
guidata(hObject,handles);
c=num2str(0);
c1=num2str(0);
f='=';
elseiff=='/';
c1=str2num(c1)/str2num(c);
c1=num2str(c1);
set(handles.edit1,'String',c1);
guidata(hObject,h