matlab GUI 设计(简易科学计算器)

  • 格式:doc
  • 大小:808.50 KB
  • 文档页数:23

下载文档原格式

  / 23
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

M

A

T

L

A

B

班级:

姓名:

学号:

计算器

➢题目

本题目通过MATLAB的gui程序设计较为简单,在gui设计中主要用到三种控件,文本编辑框(edit text),静态文本框(Static text),命令按钮(push button)。然后在通过各个按钮的回调函数,实现简单的计算功能。

➢1、功能介绍

(1)具有友好的用户图形界面。实现十进制数的加、减、乘、除、乘方、开方等简单计算。

(2)具有科学计算函数,包括(反)正弦、(反)余弦、(反)正切、(反)余切、开方、指数等函数运行。(注:三角函数计算的是弧度而不是角度)。

(3)有清除键,能清除操作。

➢2、功能实现

程序由两个部分组成:MATLAB代码(.m文件)和GUI图形(.fig)。

程序使用的流程:直接利用图形界面中的按键键入所需数值、运算符等即可得出结果。

备注:软件版本:MATLAB 2011b

首先用MATLAB GUI功能,在绘制一个静态文本框和一个文本编辑框,以及33个命令按钮,调整好各控件大小、颜色,整体布局如图所示:(附录中有相关属性修改介绍)

然后通过双击各个按钮来改写其属性,在m文件中编写其回调函数,最后在运行调试。

2.1 各功能界面设计

GUI设计界面:注:底部边框用(Panel)工具添加,有两种设计顺序。(1、先加底部边框,再在底部边框上画功能键。2、先画功能键,布好局,画底框,全选功能键拖动到底框上。)

2.2 各功能模块实现(可根据需要增减功能键)

算法设计:

1. 数字键设计:0—9以及小数点函数都一样,只是参数不同:

例如:按键‘1’响应:

global jj

textString = get(handles.text1,'String');

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

set(handles.text1,'String','1') ;

else

textString =strcat(textString,'1');

set(handles.text1,'String',textString)

end

jj=0;

2. 四则运算函数:

‘+’功能响应:

textString = get(handles.text1,'String');

textString =strcat(textString,'+');

set(handles.text1,'String',textString)

‘-’功能响应:

textString = get(handles.text1,'String');

textString =strcat(textString,'-');

set(handles.text1,'String',textString)

‘×’功能响应:

textString = get(handles.text1,'String');

textString =strcat(textString,'*');

set(handles.text1,'String',textString)

‘÷’功能响应:

textString = get(handles.text1,'String');

textString =strcat(textString,'/');

set(handles.text1,'String',textString)

3. 科学计算函数:

例如:‘sin’功能响应:

textString = get(handles.text1,'String');

if(strcmp(textString,'0.')==1)

set(handles.text1,'String','0.') ;

else

a = strread(textString, '%f');

a=sin(a);

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

end

4. 退格键(DEL):通过取屏幕值,计算出其字符长度,然后取其前N-1项的值来实现退格:

global jj

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;

5. 清屏键函数(AC):

set(handles.text1,'String','0.') ;

2.3 各模块程序添加方法

选中一个需添加程序的功能键,右击,View Callbacks,Callback,出现如下图所示界面。(红色框中为所需添加的程序)其他功能键添加方法类似。

2.4 各模块实现结果

(1)数字键:

(2)四则运算函数: