当前位置:文档之家› (word完整版)用MATLAB GUI设计简单计算器

(word完整版)用MATLAB GUI设计简单计算器

摘要基于MATLAB GUI的计算器设计是利用GUIDE创建图形用户界面进行计算器设计。

设计计算器时,主要是考虑到计算器的易用性、功能的常用程度进行计算器界面与功能的设计。

通过调整控件和文本的布局及颜色,使界面简单大方、布局合理,达到界面友好的效果。

计算器设计时主要利用到get和set两个函数进行各个控件属性值的传递和设置。

计算器实现的功能有:数字0~9和小数点的输入显示,平方、开平方和对数的输入显示。

进行四则运算、正弦计算、余弦计算、正切计算和余切计算,可以求阶乘、求百分数和求倒数。

可以进行括号及变量x与变量y的输入,结合坐标轴编辑框和曲线颜色编辑框实现函数的曲线绘制。

最后运行调试,实现基于MATLAB GUI的计算器的设计。

MATLAB GUI介绍MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。

MATLAB是matrix和laboratory两个词的组合,意为矩阵工厂,主要面对科学计算、可视化以及交互式程设计的高科技计算环境。

MATLAB是将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言的编辑模式,特别是所附带的30多种面向不同领域的工具箱支持,使得它在许多科学领域中成为计算机辅助设计和分析、算法研究和应用开发的基本工具和首选平台。

MATLAB的图形用户界面(Graphical User Interface,简称GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。

与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。

MATLAB的图形用户界(GUI)是由光标,窗口,菜单、文字说明等对象构成一个用户界面。

用户可以通过键盘输入相关的参数,通过鼠标选择、激活这些对象,使计算机完成相关的计算或者绘制波形等功能.MATLAB的GUI为开发者提供了一个不脱离MATLAB的开发环境,有助于MATLAB程序的GUI集成。

这样可以使开发者不必理会一大堆烦杂的代码,简化程序,但是同样可以实现向决策者提供图文并茂的界面,甚至达到多媒体的效果.可以说MATLAB提供了一个简便的开发环境,可以让开发者快速上手,提高了开发者的工作效率。

MATLAB的图形界面设计是通过对各种图形对象的操作来实现的,因此用户在使用的过程需要深入了解各种图形对象的特征、属性和操作。

由此可见,图形用户界面的设计、制作是一件比较繁琐的工作。

图形用户界面的创建一般有两种常用的方式:第一是通过使用m文件直接动态添加控件;第二是使用GUIDE快速生成GUI界面。

这两种实现的方法都需要使用M语言编程,但是技术的侧重点不同.所谓的GUIDE就是图形用户界面开发环境(Graphical User Interface Development Environment),它向用户提供了一系列的创建用户图形界面的工具。

这些工具大大简化了GUI设计和生成的过程.GUIDE可以完成的任务有如下两点:第一是输出GUI,第二是GUI编程。

GUIDE实际上是一套MATLAB工具集。

打开GUIDE,新建并且保存后,会生成相应的fig文件和m文件,fig文件储存有图形用户界面的外形、菜单构架等信息;m文件则储存设计的程序部分,如主程序、回调函数(Callback)等.在Layout编辑视图,可以使用如下工具:布局编辑器(Layout Editor),对齐工具(Alignment Tool),对象属性观察器(Property Inspector),对象浏览器(Object Browser),菜单编辑器Menu Editor)。

新建一个布局,可以在新窗口中添加各种控件:静态文本(Static Text),编辑(Edit Text),列表框(List box),滚动条(Slider),按钮(Push button),开关按钮(Toggle Button),单选按钮(Radio button),按钮组(Button Group),检查框(Check Box),弹出式菜单(Popup Menu),坐标轴(Axes),面板(Panel)。

每个控件的属性中都含有多个参数,对应各个参数,可以对控件的外观,位置等各方面属性进行修改。

其实GUIDE创建图形用户界面的基础也是图形句柄对象,只不过是具有很好的封装,使用起来简便,而且还能够做到可视化的开发,对于一般的用户使用GUIDE创建图形用户界面应用程序已经足够了。

本文利用GUIDE创建图形用户界面进行计算器设计,设计GUI界面时,应使总体界面简单大方、控件布局合理,最终达到总体界面友好的效果。

本次利用GUIDE创建图形用户界面进行计算器设计。

设计计算器时,主要是考虑到计算器的易用性、功能的常用程度进行计算器界面与功能的设计。

通过调整控件和文本的布局及颜色,使界面简单大方、布局合理,达到界面友好的效果。

计算器设计时主要利用到get和set两个函数进行各个控件属性值的传递和设置,利用strcat函数实现把两个字符串连接起来。

利用length 函数来计算字符串的长度实现后退的功能。

利用eval函数将文本框中的字符串转换成数值表达式,利用M A T L A B计算出结果返回显示.利用坐标轴axes和ezplot函数进行图形的绘制,利用factorial 函数进行求阶乘运算。

利用str2num及num2str实现数值与字符之间的转换.一、设计目的:本题目通过MATLAB的gui程序设计较为简单,在gui设计中主要用到三种控件,文本编辑框(edit text),静态文本框(Static text),命令按钮(push button).然后在通过各个按钮的回调函数,实现简单的计算功能。

二、设计方案:利用MATLAB GUI设计实现一个图形用户界面的计算器程序,要求实现:A.实现十进制数的加、减、乘、除、简单计算。

B。

科学计算函数,包括正弦、余弦、正切、余切、开方、指数等函数运行。

C. 能够保存上次历史计算的答案,先是答案存储器中得内容。

D。

有清除键,能清除操作。

三、方案实施:通过MATLAB的gui程序设计较为简单,在gui设计中主要用到两种控件,显示框用到文本编辑框(edit text),说明框用到静态文本框(Static text),数字以及运算等按钮用到命令按钮(push button)。

然后在通过各个按钮的回调函数,实现简单的计算功能。

计算器程序由MATLAB代码(.m文件)和GUI图形(。

fig)两个部分组成。

程序的使用方式是直接利用图形界面中的按键键入所需数值、运算符等,再按等于号即可得出结果。

首先用MATLAB GUI功能,在绘制一个静态文本框和一个文本编辑框,以及24个命令按钮,调整好各控件大小、颜色,整体布局如图所示:图—11、布局GUI1).打开Matlab,输入Guide 回车或者在工具栏上点击图标出现Guide 窗口:图–22)。

然后双击“Blank GUI(Default)”出现GUI窗口图-33).添加按钮图—44)。

根据按钮的作用及视觉效果做一定的修改把按钮的字符串大小、颜色进行设置,对按钮的位置进行排布,尽量使按钮集中在静态文本框下面.最终设置的静态文本框为白色,其他按钮均为分红色。

5).保存、添加功能函数把做好的按钮及静态文本框保存后自动弹出Editor的M文本,对然后对相应的pushbutton 添加功能函数。

以下是相应按钮的功能函数。

(1)数字按键编写.在function pushbutton1_Callback(hObject, eventdata, handles)下输入:textString = get(handles.text1,’String');textString =strcat(textString,'0’);set(handles.text1,’String’,textString)这是使用句柄handles指向对象text1,并以字符串形式来存储数据文本框text1的内容,并存储数个“0",然后由set(handles.text1,'String’,’textString'在text1中输出。

同理,分别在function pushbutton2~10_Callback(hObject, eventdata, handles)下给1~9数字按键下编写此类程序。

(2).符号键:function pushbutton12_Callback(hObject, eventdata, handles)textString = get(handles.text1,’String');textString =strcat(textString,'+');set(handles。

text1,'String’,textString)strcat的作用是将两个字符串连接起来,就是在已输入的存储数据textString后添加“+”进行运算。

然后执行set(handles。

text1,'String’,textString)。

符号键‘-’、‘*’、‘/’与‘+'的运算函数类似。

“平方运算",主要是由“^2”功能实现.(3)运算符“="的编程:textString = get(handles.text1,’String’);ans =eval(textString);“eval”的作用是将符号表达式转换成数值表达式。

再由set(handles。

text1,’String',ans)输出。

(4)按键“back"编程:即显示一个空字符:set(handles。

text1,’String’,’') ;按键“back”编程:textString = get(handles。

text1,'String’);set(handles。

text1,’String’,’’) ;ss=char(textString);n=length(textString);textString=ss(1:w—1);%将w个字符串转成w—1个,即删除了末位字符set(handles.text1,’String’,textString)(5)按键“清空”:把静态文本框的字符清空,返回一个空格set(handles.text1,'String','’)(6)三角函数的编辑function cos_Callback(hObject, eventdata, handles)textString=handles.text1;textString=cos(str2num(get(handles。

相关主题