欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    用MATLAB GUI设计简单计算器.docx

    • 资源ID:3658315       资源大小:41.57KB        全文页数:12页
    • 资源格式: DOCX        下载积分:6.99金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要6.99金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    用MATLAB GUI设计简单计算器.docx

    用MATLAB GUI设计简单计算器用MATLAB GUI设计简单计算器 摘要 基于MATLAB GUI的计算器设计是利用GUIDE创建图形用户界面进行计算器设计。设计计算器时,主要是考虑到计算器的易用性、功能的常用程度进行计算器界面与功能的设计。通过调整控件和文本的布局及颜色,使界面简单大方、布局合理,达到界面友好的效果。 计算器设计时主要利用到get和set两个函数进行各个控件属性值的传递和设置。计算器实现的功能有:数字09和小数点的输入显示,平方、开平方和对数的输入显示。进行四则运算、正弦计算、余弦计算、正切计算和余切计算,可以求阶乘、求百分数和求倒数。可以进行括号及变量x与变量y的输入,结合坐标轴编辑框和曲线颜色编辑框实现函数的曲线绘制。最后运行调试,实现基于MATLAB GUI的计算器的设计。 MATLAB GUI介绍 MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。 MATLAB是matrix和laboratory两个词的组合,意为矩阵工厂,主要面对科学计算、可视化以及交互式程设计的高科技计算环境。MATLAB是将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言的编辑模式,特别是所附带的30多种面向不同领域的工具箱支持,使得它在许多科学领域中成为计算机辅助设计和分析、算法研究和应用开发的基本工具和首选平台。 MATLAB的图形用户界面是指采用图形方式显示的计算机操作用户界面。与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。MATLAB的图形用户界是由光标,窗口,菜单、文字说明等对象构成一个用户界面。用户可以通过键盘输入相关的参数,通过鼠标选择、激活这些对象,使计算机完成相关的计算或者绘制波形等功能。MATLAB的GUI为开发者提供了一个不脱离MATLAB的开发环境,有助于MATLAB程序的GUI集成。这样可以使开发者不必理会一大堆烦杂的代码,简化程序,但是同样可以实现向决策者提供图文并茂的界面,甚至达到多媒体的效果。可以说MATLAB提供了一个简便的开发环境,可以让开发者快速上手,提高了开发者的工作效率。 MATLAB的图形界面设计是通过对各种图形对象的操作来实现的,因此用户在使用的过程需要深入了解各种图形对象的特征、属性和操作。由此可见,图形用户界面的设计、制作是一件比较繁琐的工作。图形用户界面的创建一般有两种常用的方式:第一是通过使用m文件直接动态添加控件;第二是使用GUIDE快速生成GUI界面。这两种实现的方法都需要使用M语言编程,但是技术的侧重点不同。所谓的GUIDE就是图形用户界面开发环境(Graphical User Interface Development Environment),它向用户提供了一系列的创建用户图形界面的工具。这些工具大大简化了GUI设计和生成的过程。GUIDE可以完成的任务有如下两点:第一是输出GUI,第二是GUI编程。GUIDE- 1 - 用MATLAB GUI设计简单计算器 实际上是一套MATLAB工具集。打开GUIDE,新建并且保存后,会生成相应的fig文件和m文件,fig文件储存有图形用户界面的外形、菜单构架等信息;m文件则储存设计的程序部分,如主程序、回调函数等。在Layout编辑视图,可以使用如下工具:布局编辑器,对齐工具,对象属性观察器,对象浏览器,菜单编辑器Menu Editor)。新建一个布局,可以在新窗口中添加各种控件:静态文本,编辑,列表框,滚动条,按钮(Push button),开关按钮,单选按钮,按钮组,检查框,弹出式菜单,坐标轴,面板。每个控件的属性中都含有多个参数,对应各个参数,可以对控件的外观,位置等各方面属性进行修改。其实GUIDE创建图形用户界面的基础也是图形句柄对象,只不过是具有很好的封装,使用起来简便,而且还能够做到可视化的开发,对于一般的用户使用GUIDE创建图形用户界面应用程序已经足够了。本文利用GUIDE创建图形用户界面进行计算器设计,设计GUI界面时,应使总体界面简单大方、控件布局合理,最终达到总体界面友好的效果。 本次利用GUIDE创建图形用户界面进行计算器设计。设计计算器时,主要是考虑到计算器的易用性、功能的常用程度进行计算器界面与功能的设计。通过调整控件和文本的布局及颜色,使界面简单大方、布局合理,达到界面友好的效果。计算器设计时主要利用到get和set两个函数进行各个控件属性值的传递和设置,利用strcat函数实现把两个字符串连接起来。利用length函数来计算字符串的长度实现后退的功能。利用eval函数将文本框中的字符串转换成数值表达式,利用MATLAB计算出结果返回显示。利用坐标轴axes和ezplot函数进行图形的绘制,利用factorial函数进行求阶乘运算。利用str2num及num2str实现数值与字符之间的转换。 - 2 - 用MATLAB GUI设计简单计算器 一、设计目的: 本题目通过MATLAB的gui程序设计较为简单,在gui设计中主要用到三种控件,文本编辑框,静态文本框,命令按钮。然后在通过各个按钮的回调函数,实现简单的计算功能。 二、设计方案: 利用MATLAB GUI设计实现一个图形用户界面的计算器程序,要求实现: A.实现十进制数的加、减、乘、除、简单计算。 B. 科学计算函数,包括正弦、余弦、正切、余切、开方、指数等函数运行。 C. 能够保存上次历史计算的答案,先是答案存储器中得内容。 D. 有清除键,能清除操作。 三、方案实施: 通过MATLAB的gui程序设计较为简单,在gui设计中主要用到两种控件,显示框用到文本编辑框,说明框用到静态文本框,数字以及运算等按钮用到命令按钮。然后在通过各个按钮的回调函数,实现简单的计算功能。 计算器程序由MATLAB代码和GUI图形两个部分组成。程序的使用方式是直接利用图形界面中的按键键入所需数值、运算符等,再按等于号即可得出结果。首先用MATLAB GUI功能,在绘制一个静态文本框和一个文本编辑框,以及24个命令按钮,调整好各控件大小、颜色,整体布局如图所示: 图-1 - 3 - 用MATLAB GUI设计简单计算器 1、布局GUI 1).打开Matlab,输入Guide 回车或者在工具栏上点击图标口: 出现Guide 窗图2 2).然后双击“Blank GUI(Default)”出现GUI窗口 图-3 3).添加按钮 图-4 4).根据按钮的作用及视觉效果做一定的修改 把按钮的字符串大小、颜色进行设置,对按钮的位置进行排布,尽量使按钮集中在静态文本框下面。最终设置的静态文本框为白色,其他按钮均为分红色。 5).保存、添加功能函数 把做好的按钮及静态文本框保存后自动弹出Editor的M文本,对然后对相应的pushbutton添加功能函数。以下是相应按钮的功能函数。 数字按键编写。 - 4 - 用MATLAB GUI设计简单计算器 在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 pushbutton210_Callback(hObject, eventdata, handles)下给19数字按键下编写此类程序。 .符号键: 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”功能实现。 运算符“=”的编程: textString = get(handles.text1,'String'); ans =eval(textString); “eval”的作用是将符号表达式转换成数值表达式。 再由set(handles.text1,'String',ans)输出。 按键“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) 按键“清空”:把静态文本框的字符清空,返回一个空格 set(handles.text1,'String','') 三角函数的编辑 function cos_Callback(hObject, eventdata, handles) textString=handles.text1; textString=cos(str2num(get(handles.text1,'String')*pi/180); set(handles.text1,'String',num2str(textString) (get(handles.text1,'String')*pi/180是把角度转换为弧度,这样在编程环境中才能识别,cos才能起作用。然后执行set函数,把结果输出来。同理在- 5 - 用MATLAB GUI设计简单计算器 sin,tan的回调函数中夜输入相应的函数,只需把textString=cos(str2num(get(handles.text1,'String')*pi/180); 中的cos改为sin,tan即可 按键“退出”:关闭计算器close(gcf); 2、计算器的使用 加法运算: 图-5 按“=”后显示 图-6 平方运算: 图-7 按“=”后显示 - 6 - 用MATLAB GUI设计简单计算器 图-8 通过本次实验实现十进制数的加、减、乘、除、简单计算对Matlab的操作有了进一步的认识和了解,通过多次的修改调查做出实验,验证了实验的正确性,大大的提高了我们对Matlab功能的认识,培养了我们的兴趣。 3、附各按键的程序源代码: function pushbutton1_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String'); textString =strcat(textString,'0'); set(handles.text1,'String',textString) function pushbutton2_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String'); textString =strcat(textString,'1'); set(handles.text1,'String',textString) function pushbutton3_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String'); textString =strcat(textString,'2'); set(handles.text1,'String',textString) function pushbutton4_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String'); textString =strcat(textString,'3'); set(handles.text1,'String',textString) function pushbutton5_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String'); textString =strcat(textString,'4'); set(handles.text1,'String',textString) function pushbutton6_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String'); textString =strcat(textString,'5'); set(handles.text1,'String',textString) - 7 - 用MATLAB GUI设计简单计算器 function pushbutton7_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String'); textString =strcat(textString,'6'); set(handles.text1,'String',textString) function pushbutton8_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String'); textString =strcat(textString,'7'); set(handles.text1,'String',textString) function pushbutton9_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String'); textString =strcat(textString,'8'); set(handles.text1,'String',textString) function pushbutton10_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String'); textString =strcat(textString,'9'); set(handles.text1,'String',textString) function pushbutton11_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String'); textString =strcat(textString,'+'); set(handles.text1,'String',textString) function pushbutton12_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String'); textString =strcat(textString,'-'); set(handles.text1,'String',textString) function pushbutton13_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String'); textString =strcat(textString,'*'); set(handles.text1,'String',textString) function pushbutton14_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String'); textString =strcat(textString,'/'); set(handles.text1,'String',textString) function pushbutton15_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String'); textString =strcat(textString,'.'); - 8 - 用MATLAB GUI设计简单计算器 set(handles.text1,'String',textString) function pushbutton16_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String'); ans =eval(textString); set(handles.text1,'String',ans) function pushbutton17_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String'); textString =strcat(textString,'2'); set(handles.text1,'String',textString) function pushbutton18_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String'); set(handles.text1,'String','') ; ss=char(textString); n=length(textString); textString=ss(1:w-1); set(handles.text1,'String',textString) function pushbutton19_Callback(hObject, eventdata, handles) set(handles.text1,'String','') function pushbutton20_Callback(hObject, eventdata, handles) close(gcf);四、设计总结 本次是利用MATLAB GUI来设计实现科学计算器的简单功能,实现过程较为简单。首先打开MATLAB建立一个GUI工程,然后利用图形用户界面,设计出计算器的大致外观,创建数字按钮、功能按钮、文本框及坐标轴等,再为每一个按钮设置想要实现的功能,然后就是将对应的函数写到自动生成的回调程序中,然后每个按钮就可以实现对应的功能。 本次设计的科学计算器具有实用性强、功能强大、易操作、移植性好、占用资源少、执行效率高等优点。同时也存在不足的方面,可视化界面没有达到最佳效果,功能不是很全面,操作逻辑不是很清晰,以后还需要进一步完善和改进。 在本次计算器设计的过程中还是遇到很多的困难,首先就是程序的问题,编辑出计算器的界面之后,自动生成的结构程序是一个看起来非常乱的程序,每个按键对应什么功能看不出来,于是在原来的工程中找到每个按键所对应回调函数的序号,这样找到按钮所对应的回调函数编写功能程序。编程的过程中,主要是对变量和句柄的控制,对变量相应的赋值后,要返回给主程序,然后就可以在Static Text中显示出来的。通过这次MATLAB GUI课程设计,使我对MATLAB的操作与GUI界面设计有了更深一步的理解和认识,学习到了以前未曾了解的知识,这次课程设计使我收获很多。 - 9 -

    注意事项

    本文(用MATLAB GUI设计简单计算器.docx)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开