基于matlab gui的App Designer实战之高尔夫手推车销售

这篇博客介绍了如何使用MATLAB的AppDesigner开发一个GUI,用于跟踪高尔夫手推车的生产、库存和销售,预测库存清零时间,并可视化库存变化。用户输入初始库存、生产量和销售计划,程序模拟库存动态并输出关键信息。

高尔夫手推车销售

0.题目背景

销售高尔夫手推车。每周周末,公司都将那一周所生产的手推车转移到仓库(库存)之中。卖出的所有手推车都是从库存中提取。这个过程的一个简单模型为:I(k+1)=P(k)+I(k)-S(k)
其中,
P(k)为第K周所生产的手推车数量;
I(k)为第K周库存中手推车数量;
S(k)为第K周所卖出的手推车数量。
表1 10周计划表

12345678910
销售量50556070707580809055

表1为10周计划中的每周销售额。
假设每周的产量都基于前一周的销售量,所以有P(k)=S(k-1)。
假设第一周的产量为50辆手推车,即P(1)=50。
编写一个MATLAB的GUI程序,要求:
(1) 应能够输入:初始库存数量;初始生产量;10周计划销售量。
(2) 应能够输出:第K周的库存数量;10周之内库存数量减少到0为止的时间,并同时绘制反映库存数量减少到0过程的图形。
(3) 将表1数据保存到数据文件xs.mat中。

1. 原理

  • 使用matlab 自带的 App Designer 进行GUI设计及其代码编写

App 设计工具是交互式开发环境,用于设计 App 布局并对其行为进行编程。它提供 MATLAB® 编辑器的完整集成版本和大量交互式 UI 组件。它还提供网格布局管理器来组织您的用户界面,并提供自动调整布局选项来使您的 App 检测和响应屏幕大小的变化。它允许您通过直接从 App 设计工具工具条将 App 打包为安装程序文件中来分发 App,或通过创建独立的桌面 App 或 Web App 来分发 App(需要 MATLAB Compiler™)。

2.部分代码及功能分析

  • 全局变量定义

        properties (Access = private)
            start_producty;
            start_storey;
            Plan_sales = ones(10,1);
            stores = ones(10,1);
            produce = ones(10,1);
            week = [1;2;3;4;5;6;7;8;9;10];
            figure;
            cellArrayText;
            % Description
        end
    
  • plot按钮Callbacks

    • 获取app中格子里面的数据,绘制相应的图像
        % Button pushed function: plotButton
        function plotButtonPushed(app, event)
            app.Plan_sales(1) = app.sales_1.Value;
            app.Plan_sales(2) = app.sales_2.Value;
            app.Plan_sales(3) = app.sales_3.Value;
            app.Plan_sales(4) = app.sales_4.Value;
            app.Plan_sales(5) = app.sales_5.Value;
            app.Plan_sales(6) = app.sales_6.Value;
            app.Plan_sales(7) = app.sales_7.Value;
            app.Plan_sales(8) = app.sales_8.Value;
            app.Plan_sales(9) = app.sales_9.Value;
            app.Plan_sales(10) = app.sales_10.Value;
            
            %plot(app.UIAxes,app.start_producty,'o');
    
            app.produce(1) = app.StartProEditField.Value;
            app.stores(1) = app.StrarStoEditField.Value;
            flag= 1;
            t = 100;
            for i=1:10
            	if i>1
                app.produce(i)=app.Plan_sales(i-1);
                app.stores(i) = app.stores(i-1) + app.produce(i-1) -app.Plan_sales(i-1);
               		if app.stores(i) < 0
                		app.stores(i) = 0;
                    end
              	end
                if (app.stores(i)==0)&&(flag== 1)
                	t = i;
                    flag = 0;
               	end
           	end
                
           	if (t~=100)
        		app.cellArrayText = sprintf('%s%d%s','第',t,'周库存减少到0');
           	else
               	app.cellArrayText = sprintf('%s','10周内库存没有到0');
           	end
                
      		app.figure = plot(app.UIAxes,app.week,app.stores);
                
       	end
    
    
  • generate按钮Callbacks

    • 在文本框生成是否库存到0的文本
      % Button pushed function: generateButton
    	function generateButtonPushed(app, event)
        	app.textTextArea.Value = app.cellArrayText;
        end
    
  • Clear按钮Callbacks

    • 清除图像及文本数据
    	% Button pushed function: saveButton
    	function saveButtonPushed(app, event)
    		sales = app.Plan_sales;
    		save ('xs.mat','sales');
    	end
    
  • Save按钮Callbacks

    • 保存数据置文件xs.mat中
    	% Button pushed function: clearButton
    	function clearButtonPushed(app, event)
        	app.textTextArea.Value = '';
            delete(app.figure);
       	end
    
  • GUI示意图

3.使用方法

正常使用

​ 在matlab_APP界面内安装该==“GUI_usst_homework2.mlappinstall”==的安装文件,即可正常使用

界面数据是初始过的,可以按需求更改

代码查看

​ 用matlab打开文件 打开==“app_usst_homework2.mlapp”==的app文件,即可看到源代码及GUI界面


所有相关文件已上传GitHub
有兴趣的小伙伴可以看看
https://github.com/Player-ghq/usst_matlab

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值