私は次のことを行う必要があるプロジェクトを持っています。MATLABレシート印刷の乱数値の問題
あなたは中小企業で、6種類の製品を販売しています。あなたの製品 とその価格を20pから£25.00の範囲で選択してください(これらは完全に架空かもしれません)。 ショップには4人の従業員がいて、そのうちの1人は購入時までです。 下記の のように架空のトランザクションの領収書を準備するMATLABコードを記述します。 までのところに顧客がいます。彼らはそれぞれ特定の 量の3つのランダムな商品を購入したいと考えています。たとえば、2つのカプチーノ、1つのクロワッサン、6つのラズベリーの マフィンが必要です。 (1)あなたのリストからランダムに3つの製品を選択してください。各製品について、1から9の間のランダム数量 を選択してください。 (2)合計コストを計算します。 (3)取引を完了するためにスタッフメンバーをランダムに選択します。 (4)価格に20%のVATが含まれているとします。価格に含まれるVATの金額を計算します。 (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('+-----------------------------------------------+'));
私の問題は次の通りである:
これまでの私のコードは次のようです。アイテムリストからランダムなアイテムを選択すると、割り当てられるランダムな価格も選択されます。私はこれを望んでいない。私はバスケットに追加するランダムなアイテムを生成するときに、自動的に印刷される各アイテムに事前設定された価格を割り当てる方法を探したいと思います。ご質問がありましたら、この説明があなたにとって十分であることを願っております。前もって感謝します。あなたは
randItems = items {ceil(rand*6)};
randprice = price {ceil(rand*6)};
を書くとき
だから私は のような何かをします。index = ceil(rand * 6); これをrandItemsとrandPriceの中括弧に入れますか? –
@AlexEncoreTr:それはまさにそれです。 – Jonas
ありがとうございます。それはもっと明白ではありませんでした!なぜ私がこれほど長い間このことに執着していたのか分かりません。 –