MATLAB收据打印随机值问题

时间:2012-02-29 12:46:37

标签: arrays matlab random receipt

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

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

receipt example.

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

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('+-----------------------------------------------+'));

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

1 个答案:

答案 0 :(得分:1)

写作时

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

您计算数组items中的随机索引,然后计算数组price中的随机索引。如果您将通过ceil(rand*6)计算的索引分配给单独的变量,例如, index,您可以重新使用它来选择itemsprice中的第3项。因此,第i项将始终显示第i个价格。