基于MATLAB-GUI的简单计算器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于MATLAB-GUI的简单计算器设计
题目:计算器
完成一个简单的计算器。
要求(但不限于):
GUI上具有数字键盘输入区域,能够进行加、减、乘、除、三角函数等基础运算。
界面简洁、美观
可能需要的控件:
Push Button
Edit Text
Pop-up Menu
1 功能介绍
本程序是一个简单的计算器程序,使用MATLAB软件编写完成。主要具有加、减、乘、除、三角函数等基础运算,并通过GUI进行程序使用的交互。程序交互界面如下:
图1 程序的交互界面
2 功能实现
首先用MATLAB GUI功能,在绘制一个动态文本框和一个文本编辑框,以及25个命令按钮,调整好各控件大小、颜色,整体布局如图所示:
备注:软件版本:MATLAB R2011b
2.1 布局GUI
1、打开MATLAB,在Guide中新建FIG文件
2、然后双击“Blank GUI(Default)”或单击OK键出现GUI窗口
3、添加按钮和动态文本框
4、根据按钮的作用及视觉效果做一定的修改
对按钮的字符串大小、颜色进行设置,对按钮的位置进行排布,尽量使按钮集中在动态文本框下面。最终设置的动态文本框为灰色,其他按钮均为蓝色。
5、保存、添加功能函数
将做好的按钮及动态文本框保存后自动弹出Editor的M文本,然后对相应的pushbutton添加功能函数。以下是相应按钮的功能函数。
(1)数字按键编写。
在function pushbutton1_Callback(hObject, eventdata, handles)下输入:
global jj
a=get(handles.edit1,'String');
if(strcmp(a,'0.')==1)&&(jj==0)
set(handles.edit1,'String','0.')
else
a=strcat(a,'0')
set(handles.edit1,'String',a)
end
jj=0
这是使用句柄handles指向对象edit1,并以字符串形式来存储数据文本框edit1的内容,并存储数个“0”,然后由set(handles.edit1,'String',a)在edit1中输出。
同理,分别在function pushbutton2~10_Callback(hObject, eventdata, handles)下给1~9数字按键下编写此类程序。
(2)符号键:
在function pushbutton11_Callback(hObject, eventdata, handles)下输入:
global jj
global j
a=get(handles.edit1,'String')
a=strcat(a,'+')
if(jj==0)
set(handles.edit1,'String',a)
jj=1;
end
j=0;
strcat的作用是将两个字符串连接起来,就是在已输入的存储数据a后添加“+”进行运算。
然后执行set(handles.edit1,'String',a)。符号键‘-’、‘*’、‘/’、‘.’与‘+’的运算函数类似,“平方运算”主要是由“^2”功能实现。
function pushbutton12_Callback(hObject, eventdata, handles)
global jj
global j
a=get(handles.edit1,'String')
a=strcat(a,'-')
if(jj==0)
set(handles.edit1,'String',a)
jj=1;
end
j=0;
function pushbutton13_Callback(hObject, eventdata, handles) global jj
global j
a=get(handles.edit1,'String')
a=strcat(a,'*')
if(jj==0)
set(handles.edit1,'String',a)
jj=1;
end
j=0;
function pushbutton14_Callback(hObject, eventdata, handles) global jj
global j
a=get(handles.edit1,'String')
a=strcat(a,'/')
if(jj==0)
set(handles.edit1,'String',a)
jj=1;
end
j=0;
function pushbutton15_Callback(hObject, eventdata, handles) global jj
global j
a=get(handles.edit1,'String')
a=strcat(a,'.')
if(jj==0)
set(handles.edit1,'String',a)
jj=1;
end
j=0;
function pushbutton16_Callback(hObject, eventdata, handles) a=get(handles.edit1,'String')
b=eval(a)
set(handles.edit1,'String',num2str(b^2))
(3)运算符“=”的编程:
a=get(handles.edit1,'string')
b=eval(a)
set(handles.edit1,'string',num2str(b))
“eval”的作用是将符号表达式转换成数值表达式再由