基于MATLABGUI的简单计算器.docx

上传人:b****4 文档编号:3073587 上传时间:2022-11-17 格式:DOCX 页数:29 大小:420.03KB
下载 相关 举报
基于MATLABGUI的简单计算器.docx_第1页
第1页 / 共29页
基于MATLABGUI的简单计算器.docx_第2页
第2页 / 共29页
基于MATLABGUI的简单计算器.docx_第3页
第3页 / 共29页
基于MATLABGUI的简单计算器.docx_第4页
第4页 / 共29页
基于MATLABGUI的简单计算器.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

基于MATLABGUI的简单计算器.docx

《基于MATLABGUI的简单计算器.docx》由会员分享,可在线阅读,更多相关《基于MATLABGUI的简单计算器.docx(29页珍藏版)》请在冰豆网上搜索。

基于MATLABGUI的简单计算器.docx

基于MATLABGUI的简单计算器

基于MATLAB-GUI的简单计算器设计

题目:

计算器

完成一个简单的计算器。

要求(但不限于):

GUI上具有数字键盘输入区域,能够进行加、减、乘、除、三角函数等基础运算。

界面简洁、美观

可能需要的控件:

PushButton

EditText

Pop-upMenu

1功能介绍

本程序是一个简单的计算器程序,使用MATLAB软件编写完成。

主要具有加、减、乘、除、三角函数等基础运算,并通过GUI进行程序使用的交互。

程序交互界面如下:

图1程序的交互界面

2功能实现

首先用MATLAB GUI功能,在绘制一个动态文本框和一个文本编辑框,以及25个命令按钮,调整好各控件大小、颜色,整体布局如图所示:

备注:

软件版本:

MATLABR2011b

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)下输入:

globaljj

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)下输入:

 globaljj

globalj

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”功能实现。

 

functionpushbutton12_Callback(hObject,eventdata,handles)

globaljj

globalj

a=get(handles.edit1,'String')

a=strcat(a,'-')

if(jj==0)

set(handles.edit1,'String',a)

jj=1;

end

j=0;

functionpushbutton13_Callback(hObject,eventdata,handles)

globaljj

globalj

a=get(handles.edit1,'String')

a=strcat(a,'*')

if(jj==0)

set(handles.edit1,'String',a)

jj=1;

end

j=0;

functionpushbutton14_Callback(hObject,eventdata,handles)

globaljj

globalj

a=get(handles.edit1,'String')

a=strcat(a,'/')

if(jj==0)

set(handles.edit1,'String',a)

jj=1;

end

j=0;

functionpushbutton15_Callback(hObject,eventdata,handles)

globaljj

globalj

a=get(handles.edit1,'String')

a=strcat(a,'.')

if(jj==0)

set(handles.edit1,'String',a)

jj=1;

end

j=0;

functionpushbutton16_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”的作用是将符号表达式转换成数值表达式再由set(handles.edit1,'string',num2str(b))

输出。

 

(4)按键“back”编程:

即显示一个空字符:

set(handles.edit1,'String',a)

按键“back”编程:

 

globaljj

a=get(handles.edit1,'String');

if(strcmp(a,'0.')==1)&(jj==0)

set(handles.edit1,'String','0.')

else

ss=char(a);

l=length(a);

a=ss(1:

l-1);

set(handles.edit1,'String',a)

end

jj=0;

(5)按键“清零”:

把动态文本框的字符清空,返回一个空格。

 set(handles.edit1,'String','0')

(6)三角函数的编辑 

functionpushbutton17_Callback(hObject,eventdata,handles)

a=get(handles.edit1,'String');

b=eval(a)

b=b*pi/180;

b=sin(b);

set(handles.edit1,'String',b)

b=b*pi/180是把角度转换为弧度,这样在编程环境中才能识别,sin才能起作用。

然后执行set函数,把结果输出来。

同理在cos,tan,cot的回调函数中也输入相应的函数,只需把b=sin(b);中的sin改为cos,tan,cot即可 

(7)按键“()”:

在输入数据时添加括号,以便数据的优先计算。

globaljj

a=get(handles.edit1,'String')

if(strcmp(a,'0')==1)&&(jj==0)

set(handles.edit1,'String','(')

else

a=strcat(a,'(')

set(handles.edit1,'String',a)

end

jj=0

a=get(handles.edit1,'String')

s1=strcat(a,')')

set(handles.edit1,'String',s1)

2.2计算器的使用

加法运算(+):

按“=”后显示:

减法(-)、乘法(*)、除法(/)运算与加法(+)运算类似。

点号(.)、括号(()):

平方(X^2)运算:

按下(X^2)后

三角函数(sin、cos、tan、cot)运算:

按下(sin、cos、tan、cot)后

back、清零功能:

3程序总结

本程序实现简单的科学运算功能及便捷的图形化交互界面。

具有以下优点:

优点:

1、GUI内数据传递非常简便。

非常简便的实现了前台与后台、前台与前台、后台与后台之间的参数传递。

2、图形化用户交互界面简洁明了。

在制作计算器界面时操作简单,制作完成后程序的输入框直接弹出,可以直接写入,即可运行计算器。

简单的实现了设计与编程的数据传递。

4课程总结

1、通过MATLAB简单计算器的设计,初步了解了关于MATLAB图形用户界面的部分控件的使用方法。

 

2、MATLAB的GUI提供的很多实用的控件,方便用于设计属于自己的图形界面。

 

3、Matlab具有强大、丰富的内置函数和工具箱,界面设计时更加简洁、快捷与直观。

5参考文献

[1]《MATLAB语言及其在电子信息工程中的应用》王洪元主编清华大学出版社

[2]《MATLAB中GUI的应用》王洪元主编清华大学出版社

附录(主要程序)

functionvarargout=untitled66(varargin)

%UNTITLED66MATLABcodeforuntitled66.fig

%UNTITLED66,byitself,createsanewUNTITLED66orraisestheexisting

%singleton*.

%

%H=UNTITLED66returnsthehandletoanewUNTITLED66orthehandleto

%theexistingsingleton*.

%

%UNTITLED66('CALLBACK',hObject,eventData,handles,...)callsthelocal

%functionnamedCALLBACKinUNTITLED66.Mwiththegiveninputarguments.

%

%UNTITLED66('Property','Value',...)createsanewUNTITLED66orraisesthe

%existingsingleton*.Startingfromtheleft,propertyvaluepairsare

%appliedtotheGUIbeforeuntitled66_OpeningFcngetscalled.An

%unrecognizedpropertynameorinvalidvaluemakespropertyapplication

%stop.Allinputsarepassedtountitled66_OpeningFcnviavarargin.

%

%*SeeGUIOptionsonGUIDE'sToolsmenu.Choose"GUIallowsonlyone

%instancetorun(singleton)".

%

%Seealso:

GUIDE,GUIDATA,GUIHANDLES

%

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1