资源描述
电子信息工程系实验报告
成 绩:
课程名称:MATLAB语言
指导教师(签名):
实验项目名称:MATLAB图形用户界面设计 实验时间:2010-5-8
班级: 姓名: 学号:
实验目的: 1、熟悉MATLAB的主要控件使用方法。
2、熟悉MATLAB的GUI设计流程。
实验环境:硬件配置( Pentium(R) 4 CPU 2.40GHz,1GB内存)
操作系统(Windows XP)
编程软件:MATLAB7.0
实验内容与结果:
使用MATLAB的GUI接口设计一个简单的计算器。
效果图:
程序源码部分函数及相关注释:
%0~9数字键及小数点按钮代码范例
%全局变量locaval用于存储用户输入的多位数值
%全局变量gloval2用于存储待处理的第二位数值
function pushbutton1_Callback(hObject, eventdata, handles)
global locaval;
a = get(handles.pushbutton1,'String');
locaval=strcat(locaval,a);
set(handles.text1,'String',locaval);
global gloval2
gloval2=locaval;
guidata(hObject, handles);
%运算符按钮处理“+、-、*、\”范例
%全局变量flagnum存储运算符标志
%全局变量global1用于储存第一个待处理数值
function pushbutton10_Callback(hObject, eventdata, handles)
a = get(handles.pushbutton10,'String');
b = get(handles.text1,'String');
set(handles.text1,'String',a);
global flagnum
global gloval1
global locaval
locaval=' ';
flagnum=1;
gloval1=b;
guidata(hObject, handles);
%取相反数按钮“+\-”代码
%算法实现:用零减去文本框现在的值,再赋值给文本框
function pushbutton14_Callback(hObject, eventdata, handles)
global locaval;
locaval=str2num(locaval);
locaval=0-locaval;
locaval=num2str(locaval);
set(handles.text1,'String',locaval);
global gloval2
gloval2=locaval;
guidata(hObject, handles);
% 等号按钮运算实现
%根据flagnum运算标志用switch决策语句实现相应计算
%需注意相应数据类型的转化
function pushbutton17_Callback(hObject, eventdata, handles)
global flagnum
global gloval1
global gloval2
global locaval
locaval=' ';
gloval1=str2num(gloval1);
gloval2=str2num(gloval2);
case1=gloval1/gloval2;
case2=gloval1*gloval2;
case3=gloval1-gloval2;
case4=gloval1+gloval2;
case1=num2str(case1);
case2=num2str(case2);
case3=num2str(case3);
case4=num2str(case4);
switch flagnum;
case 1
set(handles.text1,'String',case1);
case 2
set(handles.text1,'String',case2);
case 3
set(handles.text1,'String',case3);
case 4
set(handles.text1,'String',case4);
end
guidata(hObject,handles)
% BackSpace按钮函数
%算法实现:MATLAB是用矩阵存储数据的,相应的可以取文本框的前N-1实现其功能
function pushbutton19_Callback(hObject, eventdata, handles)
textString = get(handles.text1,'String');
if(strcmp(textString,'0.')==1)
set(handles.text1,'String','0.') ;
else
ss=char(textString);
l=length(textString);
textString=ss(1:l-1);
set(handles.text1,'String',textString)
end
guidata(hObject,handles)
%C清除按钮函数
%把全局变量locaval清零
function pushbutton20_Callback(hObject, eventdata, handles)
global locaval
locaval=' ';
set(handles.text1,'String','0.');
guidata(hObject,handles)
%开平方函数
function pushbutton22_Callback(hObject, eventdata, handles)
textString = get(handles.text1,'String');
textString=str2num(textString);
textString=sqrt(textString);
textString=num2str(textString);
set(handles.text1,'String',textString);
locaval=' ';
guidata(hObject,handles)
%取1/x函数
function pushbutton24_Callback(hObject, eventdata, handles)
global locaval
locaval=str2num(locaval);
locaval=1/locaval;
set(handles.text1,'String',locaval);
locaval=' ';
guidata(hObject,handles)
实验心得:
!、通过MATLAB简单计算器的设计,初步了解了关于MATLAB图形用户界面的部分控件的使用方法。
2、 MATLAB的GUI提供的很多实用的控件,方便用于设计属于自己的图形界面。
源码:
function varargout = bt0(varargin)
% BT0 M-file for bt0.fig
% BT0, by itself, creates a new BT0 or raises the existing
% singleton*.
%
% H = BT0 returns the handle to a new BT0 or the handle to
% the existing singleton*.
%
% BT0('Property','Value',...) creates a new BT0 using the
% given property value pairs. Unrecognized properties are passed via
% varargin to bt0_OpeningFcn. This calling syntax produces a
% warning when there is an existing singleton*.
%
% BT0('CALLBACK') and BT0('CALLBACK',hObject,...) call the
% local function named CALLBACK in BT0.M with the given input
% arguments.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help bt0
% Last Modified by GUIDE v2.5 04-May-2010 14:01:00
% Begin initialization code - DO NOT EDIT
global gloval1;
global gloval2;
global flagnum;
global locaval;
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @bt0_OpeningFcn, ...
'gui_OutputFcn', @bt0_OutputFcn, ...
'gui_LayoutFcn', [], ...
'gui_Callback', []);
if nargin & isstr(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before bt0 is made visible.
function bt0_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin unrecognized PropertyName/PropertyValue pairs from the
% command line (see VARARGIN)
% Choose default command line output for bt0
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes bt0 wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = bt0_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global locaval;
a = get(handles.pushbutton1,'String');
locaval=strcat(locaval,a);
set(handles.text1,'String',locaval);
global gloval2
gloval2=locaval;
guidata(hObject, handles);
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global locaval;
a = get(handles.pushbutton2,'String');
locaval=strcat(locaval,a);
set(handles.text1,'String',locaval);
global gloval2
gloval2=locaval;
guidata(hObject, handles);
% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global locaval
a = get(handles.pushbutton3,'String');
locaval=strcat(locaval,a);
set(handles.text1,'String',locaval);
global gloval2
gloval2=locaval;
guidata(hObject, handles);
% --- Executes on button press in pushbutton4.
function pushbutton4_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global locaval
a = get(handles.pushbutton4,'String');
locaval=strcat(locaval,a);
set(handles.text1,'String',locaval);
global gloval2
gloval2=locaval;
guidata(hObject, handles);
% --- Executes on button press in pushbutton5.
function pushbutton5_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton5 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global locaval
a = get(handles.pushbutton5,'String');
locaval=strcat(locaval,a);
set(handles.text1,'String',locaval);
global gloval2
gloval2=locaval;
guidata(hObject, handles);
% --- Executes on button press in pushbutton6.
function pushbutton6_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton6 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global locaval
a = get(handles.pushbutton6,'String');
locaval=strcat(locaval,a);
set(handles.text1,'String',locaval);
global gloval2
gloval2=locaval;
guidata(hObject, handles);
% --- Executes on button press in pushbutton7.
function pushbutton7_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton7 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global locaval
a = get(handles.pushbutton7,'String');
locaval=strcat(locaval,a)
set(handles.text1,'String',locaval);
global gloval2
gloval2=locaval;
guidata(hObject, handles);
% --- Executes on button press in pushbutton8.
function pushbutton8_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton8 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global locaval
a = get(handles.pushbutton8,'String');
locaval=strcat(locaval,a);
set(handles.text1,'String',locaval);
global gloval2
gloval2=locaval;
guidata(hObject, handles);
% --- Executes on button press in pushbutton9.
function pushbutton9_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton9 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global locaval
a = get(handles.pushbutton9,'String');
locaval=strcat(locaval,a);
set(handles.text1,'String',locaval);
global gloval2
gloval2=locaval;
guidata(hObject, handles);
% --- Executes on button press in pushbutton10.
function pushbutton10_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton10 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
a = get(handles.pushbutton10,'String');
b = get(handles.text1,'String');
set(handles.text1,'String',a);
global flagnum
global gloval1
global locaval
locaval=' ';
flagnum=1;
gloval1=b;
guidata(hObject, handles);
% --- Executes on button press in pushbutton11.
function pushbutton11_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton11 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
a = get(handles.pushbutton11,'String');
b = get(handles.text1,'String');
set(handles.text1,'String',a);
global flagnum
global gloval1
global locaval
locaval=' ';
flagnum=2;
gloval1=b;
guidata(hObject, handles);
% --- Executes on button press in pushbutton12.
function pushbutton12_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton12 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
a = get(handles.pushbutton12,'String');
b = get(handles.text1,'String');
set(handles.text1,'String',a);
global flagnum
global gloval1
global locaval
locaval=' ';
flagnum=3;
gloval1=b;
guidata(hObject, handles);
% --- If Enable == 'on', executes on mouse press in 5 pixel border.
% --- Otherwise, executes on mouse press in 5 pixel border or over pushbutton13.
function pushbutton13_ButtonDownFcn(hObject, eventdata, handles)
% hObject handle to pushbutton13 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global locaval
a = get(handles.pushbutton13,'String');
locaval=strcat(locaval,a);
set(handles.text1,'String',locaval);
global gloval2
gloval2=locaval;
guidata(hObject, handles);
% --- Executes on button press in pushbutton13.
function pushbutton13_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton13 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global locaval
a = get(handles.pushbutton13,'String');
locaval=strcat(locaval,a);
set(handles.text1,'String',locaval);
global gloval2
gloval2=a;
guidata(hObject, handles);
% --- Executes on button press in pushbutton14.
function pushbutton14_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton14 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global locaval;
locaval=str2num(locaval);
locaval=0-locaval;
locaval=num2str(locaval);
set(handles.text1,'String',locaval);
global gloval2
gloval2=locaval;
guidata(hObject, handles);
% --- Executes on button press in pushbutton15.
function pushbutton15_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton15 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
a = get(handles.pushbutton15,'String');
set(handles.text1,'String',a);
guidata(hObject, handles);
% --- Executes on button press in pushbutton16.
function pushbutton16_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton16 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
a = get(handles.pushbutton16,'String');
b = get(handles.text1,'String');
set(handles.text1,'String',a);
global flagnum
global gloval1
global locaval
locaval=' ';
flagnum=4;
gloval1=b;
guidata(hObject, handles);
% --- Executes on button press in pushbutton17.
function pushbutton17_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton17 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global flagnum
global gloval1
global gloval2
global locaval
locaval=' ';
gloval1=str2num(gloval1);
gloval2=str2num(gloval2);
case1=gloval1/gloval2;
case2=gloval1*gloval2;
case3=gloval1-gloval2;
case4=gloval1+gloval2;
case1=num2str(case1);
case2=num2str(cas
展开阅读全文