基于MATLAB-GUI的简单计算器

  • 格式:doc
  • 大小:773.50 KB
  • 文档页数:24

下载文档原格式

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

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

题目:计算器

完成一个简单的计算器。

要求(但不限于):

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

界面简洁、美观

可能需要的控件:

Push Button

Edit Text

Pop-up Menu

1 功能介绍

本程序是一个简单的计算器程序,使用MATLAB软件编写完成。主要具有加、减、乘、除、三角函数等基础运算,并通过GUI进行程序使用的交互。程序交互界面如下:

图1 程序的交互界面

2 功能实现

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

备注:软件版本:MATLAB R2011b

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

global jj

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

global jj

global j

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

function pushbutton12_Callback(hObject, eventdata, handles)

global jj

global j

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

a=strcat(a,'-')

if(jj==0)

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

jj=1;

end

j=0;

function pushbutton13_Callback(hObject, eventdata, handles) global jj

global j

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

a=strcat(a,'*')

if(jj==0)

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

jj=1;

end

j=0;

function pushbutton14_Callback(hObject, eventdata, handles) global jj

global j

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

a=strcat(a,'/')

if(jj==0)

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

jj=1;

end

j=0;

function pushbutton15_Callback(hObject, eventdata, handles) global jj

global j

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

a=strcat(a,'.')

if(jj==0)

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

jj=1;

end

j=0;

function pushbutton16_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”的作用是将符号表达式转换成数值表达式再由