高尔夫手推车销售
0.题目背景
销售高尔夫手推车。每周周末,公司都将那一周所生产的手推车转移到仓库(库存)之中。卖出的所有手推车都是从库存中提取。这个过程的一个简单模型为:I(k+1)=P(k)+I(k)-S(k)
其中,
P(k)为第K周所生产的手推车数量;
I(k)为第K周库存中手推车数量;
S(k)为第K周所卖出的手推车数量。
表1 10周计划表
| 周 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|
| 销售量 | 50 | 55 | 60 | 70 | 70 | 75 | 80 | 80 | 90 | 55 |
表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 -

3.使用方法
正常使用
在matlab_APP界面内安装该==“GUI_usst_homework2.mlappinstall”==的安装文件,即可正常使用
界面数据是初始过的,可以按需求更改
代码查看
用matlab打开文件 打开==“app_usst_homework2.mlapp”==的app文件,即可看到源代码及GUI界面
所有相关文件已上传GitHub
有兴趣的小伙伴可以看看
https://github.com/Player-ghq/usst_matlab
这篇博客介绍了如何使用MATLAB的AppDesigner开发一个GUI,用于跟踪高尔夫手推车的生产、库存和销售,预测库存清零时间,并可视化库存变化。用户输入初始库存、生产量和销售计划,程序模拟库存动态并输出关键信息。
1598

被折叠的 条评论
为什么被折叠?



