- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
姓名: 曹慈航 班级: 12级电气自动化2班 学号:1208441044
PAGE24 / NUMPAGES24
基于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;
文档评论(0)