0

我有一个项目,我必须做以下事情;

您有一家小型企业,并且销售 6 种不同的产品。在 20p 到 25.00 英镑的范围内选择您的产品及其价格(这些可能完全是虚构的)。您的商店有 4 名员工,其中一名将在购买时在收银台。您的任务是编写 MATLAB 代码来为虚构交易准备收据,如下所述。收银台有一位顾客。他们想购买 3 个随机产品,每个产品都有特定数量。例如,客户想要 2 个卡布奇诺、1 个羊角面包和 6 个覆盆子松饼。(1) 从您的列表中随机选择 3 个产品。为每个产品选择 1 到 9 之间的随机数量。 (2) 计算总成本。(3)随机选择工作人员完成交易。(4) 假设价格包含 20% 的增值税。计算价格中包含的增值税金额。(6) 在 MATLAB 命令窗口中将收据准备为文本。使用当前日期和时间(检查 datestr(now,0))。您的代码应以图片中显示的格式输出收据。应该有 60 个符号。选择我们自己的店铺名称。

收据示例。

到目前为止,我的代码如下:

clear all
clc
close all

items = {'apples   ','carrots  ','tomatoes','lemons   ','potatoes','kiwis   '};%    products
price = {3.10, 1.70, 4.00, 1.65, 9.32, 5.28};% item prices. I set spaces for each entry     in order to maintain the border format.
employee = {'James','Karina','George','Stacey'};%the employees array
disp(sprintf('+-----------------------------------------------+'));

disp(sprintf('|\t%s \t\t\tAlex''s Shop |\n|\t\t\t\t\t\t\t\t\t\t\t\t|',     datestr(now,0)));

totalPrice = 0;
for i = 1:3
    randItems = items {ceil(rand*6)};
    randprice = price {ceil(rand*6)};
    randQuantity = ceil(rand*9);% random quantity from 1 to 9 pieces
    randEmployee = employee{ceil(rand*4)};
    itemTotal = randprice * randQuantity;%total price of individual item
    totalPrice = totalPrice + itemTotal;

    disp(sprintf('|\t%s\t (%d) x %.2f = £ %.2f \t\t\t|', randItems, randQuantity, randprice, itemTotal))

end

disp(sprintf('|\t\t\t\t-----------------------------\t|'));

disp(sprintf('|\t\t\t\t\t\t\t\t\t\t\t\t|\n|\t Total to pay   \t £     %.2f\t\t\t\t|',totalPrice));

disp(sprintf('|\t VAT \t\t\t\t £ %.2f\t\t\t\t| \n|\t\t\t\t\t\t\t\t\t\t\t\t|',     totalPrice*0.2));

disp(sprintf('|\tThank you! You have been served by %s\t|\t', randEmployee));

disp(sprintf('+-----------------------------------------------+'));

我的问题当然是以下。从项目列表中选择一个随机项目后,我也会选择一个随机价格来分配。不过我不想要这个。我想找到一种方法,在生成要添加到购物篮的随机项目时,为要自动打印的每个项目分配预设价格。我希望这个解释对您来说已经足够了,如果您有任何问题,请随时提出。先感谢您。

4

1 回答 1

1

当你写

randItems = items {ceil(rand*6)};
randprice = price {ceil(rand*6)};

你计算一个随机索引到数组items中,然后你计算一个随机索引到数组price中。如果您将计算的索引分配ceil(rand*6)给一个名为 eg 的单独变量,index则可以重新使用它来从items和中选择例如项目#3 price。因此,第 i 个项目将始终以第 i 个价格出现。

于 2012-02-29T12:56:17.217 回答