多语言展示
当前在线:1863今日阅读:103今日分享:49

MATLAB:[1]纯代码实现简单计算器

下面这个例子是一个简单计算器的实现过程,完全用代码实现,只用了一个.m文件。这个计算啊可以实现加减乘除功能。
计算器实现过程
1

所有的代码如下,最后的界面如图所示:%简单计算器  hf=figure('Color',[0,1,1],'Position',[100,200,400,200],...      'Name','简单计算器','NumberTitle','off','MenuBar','none');   %文本1 用于输入数1  ht1=uicontrol(hf,'Style','Text','Position',[0.1,0.8,0.2,0.1],...      'Units','normalized','String','数1');  %文本2 用于输入数2  ht2=uicontrol(hf,'Style','Text','Position',[0.4,0.8,0.2,0.1],...      'Units','normalized','String','数2');  %文本3 用于输入数2  ht3=uicontrol(hf,'Style','Text','Position',[0.7,0.8,0.2,0.1],...      'Units','normalized','String','结果');  %编辑框1 用于输入数1  he1=uicontrol(hf,'Style','Edit','Position',[0.1,0.6,0.2,0.1],...      'Units','normalized','Back',[0,1,0]);  %编辑框2 用于输入数2  he2=uicontrol(hf,'Style','Edit','Position',[0.4,0.6,0.2,0.1],...      'Units','normalized','Back',[0,1,0]);  %编辑框2 用于输入数2  he3=uicontrol(hf,'Style','Edit','Position',[0.7,0.6,0.2,0.1],...      'Units','normalized','Back',[0,1,0]);   %下面这段代码用于实现数1加数2,并把结果显示到编辑框3  ADD=['n1=str2num(get(he1,''String''));','n2=str2num(get(he2,''String''));',...      'res=n1+n2;','set(he3,''string'',res);'];   %下面这段代码用于实现数1减数2,并把结果显示到编辑框3  SUB=['n1=str2num(get(he1,''String''));','n2=str2num(get(he2,''String''));',...      'res=n1-n2;','set(he3,''string'',res);'];   %下面这段代码用于实现数1乘数2,并把结果显示到编辑框3  MUL=['n1=str2num(get(he1,''String''));','n2=str2num(get(he2,''String''));',...      'res=n1*n2;','set(he3,''string'',res);'];   %下面这段代码用于实现数1除数2,并把结果显示到编辑框3  DIV=['n1=str2num(get(he1,''String''));','n2=str2num(get(he2,''String''));',...      'res=n1/n2;','set(he3,''string'',res);'];  %加法按钮  uicontrol(hf,'Style','Push','Position',[0.1,0.3,0.2,0.12],...       'String','+','Units','normalized','Call',ADD);  %减法按钮  uicontrol(hf,'Style','Push','Position',[0.3,0.3,0.2,0.12],...       'String','-','Units','normalized','Call',SUB);   %乘法按钮  uicontrol(hf,'Style','Push','Position',[0.5,0.3,0.2,0.12],...       'String','*','Units','normalized','Call',MUL);  %除法按钮  uicontrol(hf,'Style','Push','Position',[0.7,0.3,0.2,0.12],...       'String','/','Units','normalized','Call',DIV);

2

静态文本的实现用了三行代码,用于显示文字数1、数2和结果:  %文本1 用于输入数1  ht1=uicontrol(hf,'Style','Text','Position',[0.1,0.8,0.2,0.1],...      'Units','normalized','String','数1');  %文本2 用于输入数2  ht2=uicontrol(hf,'Style','Text','Position',[0.4,0.8,0.2,0.1],...      'Units','normalized','String','数2');  %文本3 用于输入数2  ht3=uicontrol(hf,'Style','Text','Position',[0.7,0.8,0.2,0.1],...      'Units','normalized','String','结果');

3

数1、数2和结果:用了编辑框来实现: he1=uicontrol(hf,'Style','Edit','Position',[0.1,0.6,0.2,0.1],...      'Units','normalized','Back',[0,1,0]);  %编辑框2 用于输入数2  he2=uicontrol(hf,'Style','Edit','Position',[0.4,0.6,0.2,0.1],...      'Units','normalized','Back',[0,1,0]);  %编辑框2 用于输入数2  he3=uicontrol(hf,'Style','Edit','Position',[0.7,0.6,0.2,0.1],...      'Units','normalized','Back',[0,1,0]);

4

加减乘除的算法实现放在四个代码块中:   %下面这段代码用于实现数1加数2,并把结果显示到编辑框3  ADD=['n1=str2num(get(he1,''String''));','n2=str2num(get(he2,''String''));',...      'res=n1+n2;','set(he3,''string'',res);'];   %下面这段代码用于实现数1减数2,并把结果显示到编辑框3  SUB=['n1=str2num(get(he1,''String''));','n2=str2num(get(he2,''String''));',...      'res=n1-n2;','set(he3,''string'',res);'];   %下面这段代码用于实现数1乘数2,并把结果显示到编辑框3  MUL=['n1=str2num(get(he1,''String''));','n2=str2num(get(he2,''String''));',...      'res=n1*n2;','set(he3,''string'',res);'];   %下面这段代码用于实现数1除数2,并把结果显示到编辑框3  DIV=['n1=str2num(get(he1,''String''));','n2=str2num(get(he2,''String''));',...      'res=n1/n2;','set(he3,''string'',res);'];

5

下面的代码实现了四个按钮的显示和回调方法的设置:  %加法按钮  uicontrol(hf,'Style','Push','Position',[0.1,0.3,0.2,0.12],...       'String','+','Units','normalized','Call',ADD);  %减法按钮  uicontrol(hf,'Style','Push','Position',[0.3,0.3,0.2,0.12],...       'String','-','Units','normalized','Call',SUB);   %乘法按钮  uicontrol(hf,'Style','Push','Position',[0.5,0.3,0.2,0.12],...       'String','*','Units','normalized','Call',MUL);  %除法按钮  uicontrol(hf,'Style','Push','Position',[0.7,0.3,0.2,0.12],...       'String','/','Units','normalized','Call',DIV);

6

运算效果如图所示,所有功能正常。

推荐信息