2012-02-29 2 views
0

나는 다음을 수행해야하는 프로젝트가 있습니다.MATLAB 영수증 인쇄 임의 값 문제

소기업이 있으며 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('+-----------------------------------------------+')); 

내 문제는 다음과 같다 :

receipt example.

지금까지 내 코드는 다음과 같다. 항목 목록에서 임의 항목을 선택하면 할당 할 임의 가격을 선택합니다. 나는 이것을 원하지 않는다. 바구니에 추가 할 임의의 항목을 생성 할 때 각 항목에 미리 설정된 가격을 자동으로 인쇄하도록 할당하는 방법을 찾고 싶습니다. 질문이 있으시면 언제든지이 설명이 당신에게 충분하기를 바랍니다. 미리 감사드립니다. 당신이

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

을 쓸 때

답변

1

당신은 배열 items에 임의의 인덱스를 계산 한 다음 배열 price에 임의의 인덱스를 계산합니다. 대신 ceil(rand*6)을 통해 계산 한 색인을 별도의 변수 (예 : index 인 경우 다시 사용하여 itemsprice에서 항목 # 3을 선택합니다. 따라서 i 번째 항목은 항상 i 번째 가격으로 표시됩니다.

+0

그래서 나는 과 같은 것을 할 것입니다. index = ceil (rand * 6); 그리고 이것을 randItems와 randPrice의 중괄호 안에 넣으시겠습니까? –

+1

@AlexEncoreTr : 바로 그 것입니다. – Jonas

+0

고맙습니다. 그것은 더 명백 할 수 없었다! 나는 왜 이렇게 오래 붙어 있었는지 모르겠다. –