基于MATLAB在GUI计算器设计的应用.docx
《基于MATLAB在GUI计算器设计的应用.docx》由会员分享,可在线阅读,更多相关《基于MATLAB在GUI计算器设计的应用.docx(14页珍藏版)》请在冰豆网上搜索。
基于MATLAB在GUI计算器设计的应用
基于MATLAB在GUI计算器设计的应用
——matlab课程大作业
姓名:
卢伟峰
学号:
084633237
班级:
电科082
指导教师:
朱静
摘要:
matlab是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。
使用MATLAB,您可以较使用传统的编程语言(如C、C++和Fortran)更快地解决技术计算问题。
matlab的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。
附加的工具箱(单独提供的专用matlab函数集)扩展了matlab环境,以解决这些应用领域内特定类型的问题。
matlab提供了很多用于记录和分享工作成果的功能。
可以将您的matlab代码与其他语言和应用程序集成,来分发您的matlab算法和应用。
主要功能
●此高级语言可用于技术计算
●此开发环境可对代码、文件和数据进行管理
●交互式工具可以按迭代的方式探查、设计及求解问题
●数学函数可用于线性代数、统计、傅立叶分析、筛选、优化以及数值积分等
●二维和三维图形函数可用于可视化数据
●各种工具可用于构建自定义的图形用户界面
●各种函数可将基于matlab的算法与外部应用程序和语言(如C、C++、Fortran、Java、COM以及MicrosoftExcel)集成
matlab在计算科学,自然科学,社会科学等多方面都有很多应用,本文以matlab为工具,主要研究它在GUI计算器设计方面的应用。
关键词:
GUI界面MATMAB计算器加减乘除三角反三角
目录
1.前言
2.计算器总体设计思路
3.详细设计及实现
3.1GUI界面设计
3.2关键函数设计及代码分析
3.2.1打开函数;
3.2.2C键(清屏);
3.2.3数字按键函数;
3.2.4四则运算按键;
3.2.5等号运算;
3.2.6三角函数及反三角函数;
3.2.7删除键;
4.设计结果和运行测试
4.1四则运算测试;
4.2三角函数及反三角函数测试;
4.4第二功能键测试;
5.结束语
参考文献
谢辞
前言
Matlab是一种解释性执行语言,具有强大的计算、仿真、绘图等功能。
由于它使用简单,扩充方便,尤其是世界上有成千上万的不同领域的科研工作者不停的在自己的科研过程中扩充matlab的功能,使其成为了巨大的知识宝库。
可以毫不夸张的说,哪怕是你知真正理解了一个工具箱,那么就是理解了一门非常重要的科学知识。
科研工作者通常可以通过matlab来学习某个领域的科学知识,这就是matlab真正在全世界推广开来的原因。
目前的matlab版本已经可以方便的设计漂亮的界面,它可以象vb等语言一样设计漂亮的用户接口,同时因为有最丰富的函数库(工具箱)所以计算的功能实现也很简单,进一步受到了科研工作者的欢迎。
我们利用matlab提供的图形设计界面(GUI),设计了计算器,通过参考教材和网络代码资源,设计了一个简单的科学运算器。
计算器程序主要是用MATLABGUI来制作,界面主要由一个静态文本框和运算按钮来实现。
实现的运算功能有四则运算:
加、减、乘、除、和三角函数运算:
sin、cos、tan、及用第二功能键(Shift)实现反三角函数:
asin、acos、atan。
另外还增加了平方根sqrt。
有些计算功能主要调用了Matlab的自定义函数。
该计算器具有计算结果准确,操作简单方便等优点。
通过这个毕业课题设计与开发,我可以深入的学习好各个专业课的理论知识,将理论与实践很好的结合起来,做到学以致用,并且可以更好的学习开发工具的知识和用法,领会VisualBasic编程的基本过程和精要之处。
同时也可以把大学以来所学的知识重新巩固一遍,除此之外,通过毕业的课题设计,激励自学一些课外的知识来补充自己的知识面,为以后的继续学习深造打好基础。
正文:
2.计算器总体设计思路
计算器程序主要是用MATLABGUI来制作,界面主要由一个静态文本框和运算按钮来实现。
实现的运算功能有四则运算:
加、减、乘、除、和三角函数运算:
sin、cos、tan、及用第二功能键(Shift)实现反三角函数:
asin、acos、atan。
另外还增加了平方根sqrt。
有些计算功能主要调用了Matlab的自定义函数。
该计算器具有计算结果准确,操作简单方便等优点。
计算器主要分为简单计算器和简单科学计算器,参照《JSP课程设计》具体功能如下图所示
图2-1系统功能图
图2-2简单计算器功能图
3.详细设计及实现
3.1GUI界面设计
Matlab为我们提供了一个可视化的图形界面开发环境GUIDE,通过点击相应按钮,我们看到了GUI的子菜单,在子菜单中,我们可以打开一个以创建的GUI,或自己新建一个GUI界面。
在自己新建了GUI的界面后,我们就看到了GUI开发环境,及用户界面。
。
如果用户想打开一个新的图形界面开发环境,则可以选择Matlab命令窗口中的File/New菜单下的GUI子菜单,也可以点击按钮
,则可以得出如图3-1所示的图形开始界面。
选择默认选项,单击“OK”按钮,便进入GUIDE程序的主窗口(该窗口又称为Guide的控制面板),如图3-2所示。
设计用户交互界面的过程就是把需要用到的控件从控制面板拖到(或者复制到)界面布局编辑区,并使用对齐工具把这些控件排列整齐合理的过程。
最后设计界面如图3-3
图3-1
图3-2
图3-3
3.2关键函数设计及代码分析
3.2.1打开函数:
%---Executesjustbeforecalcismadevisible.
functioncalc_OpeningFcn(hObject,eventdata,handles,varargin)
handles.output=hObject;
guidata(hObject,handles);
globaljjshift
set(handles.text1,'String','0.');
jj=0;
shift=0;
functionvarargout=calc_OutputFcn(hObject,eventdata,handles)
varargout{1}=handles.output;
3.2.2C键(清屏)
%---Executesonbuttonpressinclear.
functionclear_Callback(hObject,eventdata,handles)
globaljjshift
set(handles.text1,'String','0.');
jj=0;
shift=0;
end
3.2.3数字按键函数
%---Executesonbuttonpressinpushbutton7.
functionpushbutton7_Callback(hObject,eventdata,handles)
globaljj
textString=get(handles.text1,'String');
if(strcmp(textString,'0.')==1)&(jj==0)
set(handles.text1,'String','7');
else
textString=strcat(textString,'7');
set(handles.text1,'String',textString)
end
jj=0;
注:
其余数字按钮代码同上类似,相应的数字替换1就可以了。
3.2.4四则运算按键
%---Executesonbuttonpressinadd.
functionpushbutton4_Callback(hObject,eventdata,handles)
globaljj
textString=get(handles.text1,'String');
if(strcmp(textString,'0.')==1)&(jj==0)
set(handles.text1,'String','4');
else
textString=strcat(textString,'4');
set(handles.text1,'String',textString)
end
jj=0;
注:
其余减法、乘法、除法和上述代码类似,将‘+’替换就可以了。
3.2.5等号运算
%---Executesonbuttonpressinequ.
functionequ_Callback(hObject,eventdata,handles)
textString=get(handles.text1,'String');
textString=get(handles.text1,'String');%取屏幕内容
ans=eval(textString);%运算屏幕内容表达式
set(handles.text1,'String',ans)%显示运算结果
3.2.6三角函数及反三角函数
%---Executesonbuttonpressinsin.
functionsin_Callback(hObject,eventdata,handles)
globalshift
if(shift==0)
result=sin(str2num(get(handles.text1,'string'))*pi/180);
set(handles.text1,'String',num2str(result));
else
result=asin(str2num(get(handles.text1,'string')))*180/pi;
set(handles.text1,'String',num2str(result));
end
注:
其余科学计算和上述类似。
3.2.7删除键
%---Executesonbuttonpressinback.
functionback_Callback(hObject,eventdata,handles)
globaljj
textString=get(handles.text1,'String');
if(strcmp(textString,'0.')==1)&(jj==0)
set(handles.text1,'String','0.');
else
ss=char(textString);
l=length(textString);
textString=ss(1:
l-1);
set(handles.text1,'String',textString)
end
jj=0;
4.设计结果和运行测试
4.1四则运算测试:
加法运算,第一个操作数输入为“124546546”,第二操作数输入为“54654651”,输入“124546546+54654651=”,如图4-1所示。
图4-1计算124546546+54654651的结果
除法运算,第一个操作数输入“2012”,第二个操作数输入为“4”,输入“45456/12=”后的结果如图4-2所示
图4-2计算45456/12的结果
4.2三角函数及反三角函数测试
现以0.5余弦操作为例,先输入“0.5”,然后点击“shift”按钮,再点击“sin”按钮,计算结果为下图4-3所示
图4-3计算“0.5”的反正弦值
4.3开方测试
先输入操作数“2”,然后点击“sqrt”按钮后的结果如图4-4所示
图4-4计算“2”的开方界面
5.结束语
Matlab利用计算机的优势,设计GUI图像比传统实验方法更加迅速准确,在操作性上也有很大提升。
除了在GUI图像设计的功能外,matlab还具有很强大的信号处理功能,数学计算功能等。
参考文献:
罗建军编写的《matlab教程》西安交大出版
孙兆林编写的《matlab图像处理》清华大学出版
徐金明主编的《matlab实用教程》清华大学出版
完结