用matlab 利用m(函数)文件设计一个简单的自动售货机程序(至少有5种货品)
时间: 2024-10-26 11:16:39 浏览: 19
在MATLAB中,我们可以创建一个自动售货机(Vending Machine)的简单模拟,利用M文件(.m文件)来处理基本的操作。下面是一个简单的示例:
首先,我们创建一个包含货品信息的结构数组,如价格、库存等:
```matlab
% 定义货品数据结构
products = struct('name', {'饮料A', '饼干B', '巧克力C', '薯片D', '糖果E'}, 'price', [1.5, 0.5, 2.0, 1.0, 0.7], 'stock', [10, 20, 5, 15, 18]);
```
然后,我们可以编写两个核心功能的M文件函数:
1. `dispProducts()`: 显示当前可用的货品及其价格。
```matlab
function dispProducts()
fprintf('当前货品:\n');
for i = 1:length(products)
fprintf('%s - %.1f元,库存:%d\n', products(i).name, products(i).price, products(i).stock);
end
end
```
2. `purchaseProduct(name)`: 用户选择商品并购买,检查库存和支付。
```matlab
function result = purchaseProduct(name)
% 检查是否有此产品
idx = find(strcmp({products.name}, name));
if isempty(idx)
fprintf('抱歉,暂无%s。\n', name);
return;
end
% 减少库存并返回结果
if products.stock(idx) > 0
products.stock(idx) = products.stock(idx) - 1;
result = sprintf('%s已购入,支付%.1f元。\n', name, products.price(idx));
else
result = sprintf('对不起,%s已售罄。\n', name);
end
end
```
最后,在主脚本中调用这两个函数:
```matlab
% 主函数
function main()
dispProducts(); % 显示初始货品列表
choice = input('请输入想要购买的商品名称(输入Q退出): ', 's');
while ~strcmpi(choice, 'q')
if isfield(products, 'stock') && products.stock(find(strcmp({products.name}, choice))) > 0
purchaseProduct(choice);
else
fprintf('错误的选择!\n');
end
dispProducts(); % 更新显示
choice = input('请选择或输入Q退出: ', 's');
end
end
```
你可以运行`main()`函数开始操作这个简单的自动售货机。
阅读全文