MATLAB App Designer 计算器的设计

作者初涉App设计,看到有前人写了guide版的计算器,所以萌生想法,想用App Designer来设计一个计算器。

有纰漏请指出,转载请说明。

学习交流请发邮件 1280253714@qq.com

一、效果展示

开启时显示当前时间

点击“历史”按钮时可显示历史输入值

二、核心代码

创建全局变量

properties (Access = private)
        str % the string of the expression
        ans % the answer
        his=''
end

启动时显示当前时间

function startupFcn(app)
            formatOut = 'HH:MM:SS';
            app.monitor.Text=datestr(datetime("now"),formatOut);
end

 把按键相应的字符添加到str中,+-*/ 同理

function btn1Pushed(app, event)
            app.str=strcat(app.str,'1');
            app.monitor.Text=app.str;
end

 “=”按钮,将str添加到history中,判断str是否为空,不为空,则进行计算

function btnEquButtonPushed(app, event)
            app.his = append(app.his,' ',app.str)
            if length(app.str) ~= 0
                app.ans=eval(app.str);
                app.ans=num2str(app.ans)
                app.monitor.Text=app.ans;
                app.str=app.ans;
            end           
end

清空按钮

function clearButtonPushed(app, event)
            app.str='';
            app.his='';
            app.monitor.Text=app.str;
end

 退出

function exitButtonPushed(app, event)
            delete(app.UIFigure);
end

历史输入

function historyButtonPushed(app, event)
            app.monitor.Text=app.his;
end

三、完整代码 

classdef app1 < matlab.apps.AppBase

    % Properties that correspond to app components
    properties (Access = public)
        UIFigure   matlab.ui.Figure
        Toolbar    matlab.ui.container.Toolbar
        PushTool   matlab.ui.container.toolbar.PushTool
        history    matlab.ui.control.Button
        exit       matlab.ui.control.Button
        clear      matlab.ui.control.Button
        backspace  matlab.ui.control.Button
        btnDiv     matlab.ui.control.Button
        btnMul     matlab.ui.control.Button
        btnSub     matlab.ui.control.Button
        btnPlus    matlab.ui.control.Button
        btnEqu     matlab.ui.control.Button
        point      matlab.ui.control.Button
        btn0       matlab.ui.control.Button
        btn3       matlab.ui.control.Button
        btn2       matlab.ui.control.Button
        btn1       matlab.ui.control.Button
        btn6       matlab.ui.control.Button
        btn5       matlab.ui.control.Button
        btn4       matlab.ui.control.Button
        btn9       matlab.ui.control.Button
        btn8       matlab.ui.control.Button
        btn7       matlab.ui.control.Button
        monitor    matlab.ui.control.Label
    end

    
    properties (Access = private)
        str % the string of the expression
        ans % the answer
        his=''
    end
    

    % Callbacks that handle component events
    methods (Access = private)

        % Code that executes after component creation
        function startupFcn(app)
            formatOut = 'HH:MM:SS';
            app.monitor.Text=datestr(datetime("now"),formatOut);
        end

        % Callback function: UIFigure, btn1
        function btn1Pushed(app, event)
            app.str=strcat(app.str,'1');
            app.monitor.Text=app.str;
        end

        % Button pushed function: btn2
        function btn2ButtonPushed(app, event)
            app.str=strcat(app.str,'2');
            app.monitor.Text=app.str;
        end

        % Button pushed function: btnEqu
        function btnEquButtonPushed(app, event)
            app.his = append(app.his,' ',app.str)
            if length(app.str) ~= 0
                app.ans=eval(app.str);
                app.ans=num2str(app.ans)
                app.monitor.Text=app.ans;
                app.str=app.ans;
            end
            
        end

        % Button pushed function: btnPlus
        function btnPlusButtonPushed(app, event)
            app.str=strcat(app.str,'+');
            app.monitor.Text=app.str;
        end

        % Button pushed function: btn3
        function btn3ButtonPushed(app, event)
            app.str=strcat(app.str,'3');
            app.monitor.Text=app.str;
        end

        % Button pushed function: btn4
        function btn4ButtonPushed(app, event)
            app.str=strcat(app.str,'4');
            app.monitor.Text=app.str;
        end

        % Button pushed function: btn5
        function btn5ButtonPushed(app, event)
            app.str=strcat(app.str,'5');
            app.monitor.Text=app.str;
        end

        % Button pushed function: btn6
        function btn6ButtonPushed(app, event)
            app.str=strcat(app.str,'6');
            app.monitor.Text=app.str;
        end

        % Button pushed function: btn7
        function btn7ButtonPushed(app, event)
            app.str=strcat(app.str,'7');
            app.monitor.Text=app.str;
        end

        % Button pushed function: btn8
        function btn8ButtonPushed(app, event)
            app.str=strcat(app.str,'8');
            app.monitor.Text=app.str;
        end

        % Button pushed function: btn9
        function btn9ButtonPushed(app, event)
            app.str=strcat(app.str,'9');
            app.monitor.Text=app.str;
        end

        % Button pushed function: btn0
        function btn0ButtonPushed(app, event)
            app.str=strcat(app.str,'0');
            app.monitor.Text=app.str;
        end

        % Button pushed function: point
        function pointButtonPushed(app, event)
            app.str=strcat(app.str,'.');
            app.monitor.Text=app.str;
        end

        % Button pushed function: btnSub
        function btnSubButtonPushed(app, event)
            app.str=strcat(app.str,'-');
            app.monitor.Text=app.str;
        end

        % Button pushed function: btnMul
        function btnMulButtonPushed(app, event)
            app.str=strcat(app.str,'*');
            app.monitor.Text=app.str;
        end

        % Button pushed function: btnDiv
        function btnDivButtonPushed(app, event)
            app.str=strcat(app.str,'/');
            app.monitor.Text=app.str;
        end

        % Button pushed function: backspace
        function backspaceButtonPushed(app, event)
            L=length(app.str);
            app.str(L)='';
            app.monitor.Text=app.str;
        end

        % Button pushed function: clear
        function clearButtonPushed(app, event)
            app.str='';
            app.his='';
            app.monitor.Text=app.str;
        end

        % Callback function
        function remButtonPushed(app, event)

        end

        % Button pushed function: exit
        function exitButtonPushed(app, event)
            delete(app.UIFigure);
        end

        % Button pushed function: history
        function historyButtonPushed(app, event)
            app.monitor.Text=app.his;
        end
    end

    % Component initialization
    methods (Access = private)

        % Create UIFigure and components
        function createComponents(app)

            % Create UIFigure and hide until all components are created
            app.UIFigure = uifigure('Visible', 'off');
            app.UIFigure.Position = [100 100 429 508];
            app.UIFigure.Name = 'MATLAB App';
            app.UIFigure.ButtonDownFcn = createCallbackFcn(app, @btn1Pushed, true);

            % Create Toolbar
            app.Toolbar = uitoolbar(app.UIFigure);

            % Create PushTool
            app.PushTool = uipushtool(app.Toolbar);

            % Create monitor
            app.monitor = uilabel(app.UIFigure);
            app.monitor.Tag = 'monitor';
            app.monitor.BackgroundColor = [0.502 0.502 0.502];
            app.monitor.HorizontalAlignment = 'right';
            app.monitor.WordWrap = 'on';
            app.monitor.FontSize = 35;
            app.monitor.Position = [54 387 290 122];
            app.monitor.Text = '';

            % Create btn7
            app.btn7 = uibutton(app.UIFigure, 'push');
            app.btn7.ButtonPushedFcn = createCallbackFcn(app, @btn7ButtonPushed, true);
            app.btn7.Tag = 'btn7';
            app.btn7.BackgroundColor = [0.902 0.902 0.902];
            app.btn7.FontSize = 25;
            app.btn7.FontWeight = 'bold';
            app.btn7.Position = [55 300 50 50];
            app.btn7.Text = '7';

            % Create btn8
            app.btn8 = uibutton(app.UIFigure, 'push');
            app.btn8.ButtonPushedFcn = createCallbackFcn(app, @btn8ButtonPushed, true);
            app.btn8.Tag = 'btn8';
            app.btn8.BackgroundColor = [0.902 0.902 0.902];
            app.btn8.FontSize = 25;
            app.btn8.FontWeight = 'bold';
            app.btn8.Position = [135 300 50 50];
            app.btn8.Text = '8';

            % Create btn9
            app.btn9 = uibutton(app.UIFigure, 'push');
            app.btn9.ButtonPushedFcn = createCallbackFcn(app, @btn9ButtonPushed, true);
            app.btn9.Tag = 'btn9';
            app.btn9.BackgroundColor = [0.902 0.902 0.902];
            app.btn9.FontSize = 25;
            app.btn9.FontWeight = 'bold';
            app.btn9.Position = [215 300 50 50];
            app.btn9.Text = '9';

            % Create btn4
            app.btn4 = uibutton(app.UIFigure, 'push');
            app.btn4.ButtonPushedFcn = createCallbackFcn(app, @btn4ButtonPushed, true);
            app.btn4.Tag = 'btn4';
            app.btn4.BackgroundColor = [0.902 0.902 0.902];
            app.btn4.FontSize = 25;
            app.btn4.FontWeight = 'bold';
            app.btn4.Position = [55 230 50 50];
            app.btn4.Text = '4';

            % Create btn5
            app.btn5 = uibutton(app.UIFigure, 'push');
            app.btn5.ButtonPushedFcn = createCallbackFcn(app, @btn5ButtonPushed, true);
            app.btn5.Tag = 'btn5';
            app.btn5.BackgroundColor = [0.902 0.902 0.902];
            app.btn5.FontSize = 25;
            app.btn5.FontWeight = 'bold';
            app.btn5.Position = [135 230 50 50];
            app.btn5.Text = '5';

            % Create btn6
            app.btn6 = uibutton(app.UIFigure, 'push');
            app.btn6.ButtonPushedFcn = createCallbackFcn(app, @btn6ButtonPushed, true);
            app.btn6.Tag = 'btn6';
            app.btn6.BackgroundColor = [0.902 0.902 0.902];
            app.btn6.FontSize = 25;
            app.btn6.FontWeight = 'bold';
            app.btn6.Position = [215 230 50 50];
            app.btn6.Text = '6';

            % Create btn1
            app.btn1 = uibutton(app.UIFigure, 'push');
            app.btn1.ButtonPushedFcn = createCallbackFcn(app, @btn1Pushed, true);
            app.btn1.Tag = 'btn1';
            app.btn1.BackgroundColor = [0.902 0.902 0.902];
            app.btn1.FontSize = 25;
            app.btn1.FontWeight = 'bold';
            app.btn1.Position = [55 160 50 50];
            app.btn1.Text = '1';

            % Create btn2
            app.btn2 = uibutton(app.UIFigure, 'push');
            app.btn2.ButtonPushedFcn = createCallbackFcn(app, @btn2ButtonPushed, true);
            app.btn2.Tag = 'btn2';
            app.btn2.BackgroundColor = [0.902 0.902 0.902];
            app.btn2.FontSize = 25;
            app.btn2.FontWeight = 'bold';
            app.btn2.Position = [135 160 50 50];
            app.btn2.Text = '2';

            % Create btn3
            app.btn3 = uibutton(app.UIFigure, 'push');
            app.btn3.ButtonPushedFcn = createCallbackFcn(app, @btn3ButtonPushed, true);
            app.btn3.Tag = 'btn3';
            app.btn3.BackgroundColor = [0.902 0.902 0.902];
            app.btn3.FontSize = 25;
            app.btn3.FontWeight = 'bold';
            app.btn3.Position = [215 160 50 50];
            app.btn3.Text = '3';

            % Create btn0
            app.btn0 = uibutton(app.UIFigure, 'push');
            app.btn0.ButtonPushedFcn = createCallbackFcn(app, @btn0ButtonPushed, true);
            app.btn0.Tag = 'btn0';
            app.btn0.FontSize = 25;
            app.btn0.FontWeight = 'bold';
            app.btn0.Position = [55 90 50 50];
            app.btn0.Text = '0';

            % Create point
            app.point = uibutton(app.UIFigure, 'push');
            app.point.ButtonPushedFcn = createCallbackFcn(app, @pointButtonPushed, true);
            app.point.Tag = 'btnClear';
            app.point.FontSize = 25;
            app.point.FontWeight = 'bold';
            app.point.Position = [135 90 50 50];
            app.point.Text = '.';

            % Create btnEqu
            app.btnEqu = uibutton(app.UIFigure, 'push');
            app.btnEqu.ButtonPushedFcn = createCallbackFcn(app, @btnEquButtonPushed, true);
            app.btnEqu.Tag = 'btnEqu';
            app.btnEqu.FontSize = 25;
            app.btnEqu.FontWeight = 'bold';
            app.btnEqu.Position = [215 90 50 50];
            app.btnEqu.Text = '=';

            % Create btnPlus
            app.btnPlus = uibutton(app.UIFigure, 'push');
            app.btnPlus.ButtonPushedFcn = createCallbackFcn(app, @btnPlusButtonPushed, true);
            app.btnPlus.Tag = 'btnPlus';
            app.btnPlus.FontSize = 25;
            app.btnPlus.FontWeight = 'bold';
            app.btnPlus.Position = [295 300 50 50];
            app.btnPlus.Text = '+';

            % Create btnSub
            app.btnSub = uibutton(app.UIFigure, 'push');
            app.btnSub.ButtonPushedFcn = createCallbackFcn(app, @btnSubButtonPushed, true);
            app.btnSub.Tag = 'btnSub';
            app.btnSub.FontSize = 25;
            app.btnSub.FontWeight = 'bold';
            app.btnSub.Position = [295 230 50 50];
            app.btnSub.Text = '-';

            % Create btnMul
            app.btnMul = uibutton(app.UIFigure, 'push');
            app.btnMul.ButtonPushedFcn = createCallbackFcn(app, @btnMulButtonPushed, true);
            app.btnMul.Tag = 'btnMul';
            app.btnMul.FontSize = 25;
            app.btnMul.FontWeight = 'bold';
            app.btnMul.Position = [295 160 50 50];
            app.btnMul.Text = '*';

            % Create btnDiv
            app.btnDiv = uibutton(app.UIFigure, 'push');
            app.btnDiv.ButtonPushedFcn = createCallbackFcn(app, @btnDivButtonPushed, true);
            app.btnDiv.Tag = 'btnDiv';
            app.btnDiv.FontSize = 25;
            app.btnDiv.FontWeight = 'bold';
            app.btnDiv.Position = [295 90 50 50];
            app.btnDiv.Text = '/';

            % Create backspace
            app.backspace = uibutton(app.UIFigure, 'push');
            app.backspace.ButtonPushedFcn = createCallbackFcn(app, @backspaceButtonPushed, true);
            app.backspace.Tag = 'btn0';
            app.backspace.FontSize = 25;
            app.backspace.FontWeight = 'bold';
            app.backspace.Position = [215 19 51 50];
            app.backspace.Text = '←';

            % Create clear
            app.clear = uibutton(app.UIFigure, 'push');
            app.clear.ButtonPushedFcn = createCallbackFcn(app, @clearButtonPushed, true);
            app.clear.Tag = 'btnClear';
            app.clear.FontSize = 25;
            app.clear.FontWeight = 'bold';
            app.clear.Position = [295 19 50 50];
            app.clear.Text = 'C';

            % Create exit
            app.exit = uibutton(app.UIFigure, 'push');
            app.exit.ButtonPushedFcn = createCallbackFcn(app, @exitButtonPushed, true);
            app.exit.Tag = 'btnDiv';
            app.exit.BackgroundColor = [0.502 0.502 0.502];
            app.exit.FontSize = 20;
            app.exit.FontWeight = 'bold';
            app.exit.Position = [56 19 49 50];
            app.exit.Text = 'exit';

            % Create history
            app.history = uibutton(app.UIFigure, 'push');
            app.history.ButtonPushedFcn = createCallbackFcn(app, @historyButtonPushed, true);
            app.history.Tag = 'btnClear';
            app.history.FontSize = 20;
            app.history.FontWeight = 'bold';
            app.history.Position = [135 19 50 50];
            app.history.Text = '历史';

            % Show the figure after all components are created
            app.UIFigure.Visible = 'on';
        end
    end

    % App creation and deletion
    methods (Access = public)

        % Construct app
        function app = app1

            % Create UIFigure and components
            createComponents(app)

            % Register the app with App Designer
            registerApp(app, app.UIFigure)

            % Execute the startup function
            runStartupFcn(app, @startupFcn)

            if nargout == 0
                clear app
            end
        end

        % Code that executes before app deletion
        function delete(app)

            % Delete UIFigure when app is deleted
            delete(app.UIFigure)
        end
    end
end

 

 点个赞,加个关注再走呗!

蟹蟹各位观众姥爷!

  • 0
    点赞
  • 79
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Matlab App Designer计算器是一款基于Matlab的应用程序,可以用于进行各种数学计算,包括基本的加减乘除、三角函数、指数函数、对数函数等。该计算器具有用户友好的界面,可以通过简单的拖拽和放置操作来创建各种计算器组件,如按钮、文本框、下拉菜单等。同时,它还支持自定义函数和变量,可以方便地进行复杂的计算和数据处理。 ### 回答2: MATLAB是一个功能强大的数值计算工具,已经广泛应用于科学研究、工程设计、数据分析和其他领域。而在MATLAB中,App Designer是一种可视化的应用程序设计环境,可以大大简化应用程序的设计和开发。今天,我想向大家介绍MATLAB App Designer中的计算器MATLAB计算器主要用于数字计算。用户可以输入数字和操作符,然后得到计算结果。而MATLAB App Designer中的计算器可以实现同样的功能,而且更加智能化和便捷。在计算器的界面上,用户可以直接输入数字、小数点、操作符和括号等,并且界面支持中缀表达式和后缀表达式两种模式。 除了基本的数字计算功能,MATLAB App Designer计算器还支持各种复杂的运算和函数,例如幂函数、对数函数、三角函数和指数函数等等。用户可以通过界面上的按钮或在文本框中操作,直接输入相应的函数和参数,然后得到结果。 在MATLAB App Designer计算器中,用户还可以保存计算记录和历史记录。这样,在需要重新计算或查看之前的结果时,只需要简单地点击按钮或在下拉列表中选择相应的记录即可。此外,它还可以将结果输出到MATLAB的工作空间中,方便用户进一步的操作和处理。 总的来说,MATLAB App Designer计算器是一个功能齐全、操作简单的计算器应用程序,它为用户提供了多种计算方式、方便的操作和智能化功能,是科研人员、工程师、教育者和学生等数字计算需求的优秀工具。 ### 回答3: Matlab App DesignerMatlab软件中的一个新的设计工具,旨在帮助用户快速创建独立的GUI程序。其中最主要的应用场景就是帮助用户开发自己的计算器。 在使用Matlab App Designer设计计算器的时候,我们可以使用“组件库”中的各种控件,例如文本框、按钮、下拉框等,来构建GUI界面。在设计时需要针对不同的操作,如加、减、乘、除等,为不同的按钮和触发事件编写相应的回调函数。通过这些回调函数,我们可以实现计算器的基本计算功能。 实际上,Matlab App Designer还提供了一些强大的功能,例如可以设置计算器的大小、颜色、字体等。此外,还可以将设计计算器保存为单独的应用程序,或者将其导出为MATLAB代码,以便其他用户使用和修改。 在使用Matlab App Designer设计计算器时,需要注意一些细节。例如,可以使用合适的数学库函数来实现计算器的逻辑,同时必须做好输入和输出的验证,避免因输入错误而导致不必要的错误结果。 总之,Matlab App Designer是一个非常强大的计算器设计工具,不仅可以帮助用户快速轻松地创建自己的计算器程序,还可以提高计算器的高效性和准确性。同时,Matlab App Designer也为其他类型的应用程序提供了优秀的创作平台。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值