Jump to content
rafaelalosano

Vending machine

Recommended Posts

rafaelalosano

Olá pessoal,

Sou nova por aqui...estou com dificuldade de encontrar uma solução para resolver um exercício.

O objectivo é criar uma máquina de vendas, que recebe o pagamento em moedas, compara o valor recebido com o valor do produto e calcula o troco caso esse existir.

Alguém pode ajudar????

Share this post


Link to post
Share on other sites
rafaelalosano
float conta_pagamento(){
    int x,y;
    
    while (pagamento < valor){
      pagamento += moedas;
 }
 
x = pagamento - moeda;
y = valor - x;
 
   if( pagamento > valor ){
       printf("Valor total: %.2f\n", x);
       printf("Falta: %.2f\n", y);
}
   else printf ("Valor total: %.2f\n", pagamento); 
}

O que tenho é isto!! Pelo que a professora disse, a ideia é ler o valor inserido, guardar num array, comparar com o valor do produto e fazer o troco. E é isso que não sei fazer...!!

Share this post


Link to post
Share on other sites
iron

E os produtos são passados como parâmetro? Onde tens os produtos guardados? O que recebes como parâmetro é apenas o valor inserido na máquina?


Cumprimentos,
iron

Share this post


Link to post
Share on other sites
rafaelalosano
struct Produto{
        char B1,B2,B3,B4,B5,B6;
        char nome[10];
        float valor;
        int stock_produto[5];

    }Produto;

    Produto p[5];
    p[0].nome = 'Bolicao' ;
    p[1].nome = 'Ruffles';
    p[2].nome = 'TUC TUC';
    p[3].nome = 'KIT KAT';
    p[4].nome = 'Coca-cola';
    p[5].nome = 'Red Bull';
    p[0].valor = 0.75;
    p[1].valor = 1.00;
    p[2].valor = 0.75;
    p[3].valor = 0.80;
    p[4].valor = 1.50;
    p[5].valor = 2.50;
    p[0].stock_produto = 10;
    p[1].stock_produto = 10;
    p[2].stock_produto = 10;
    p[3].stock_produto = 10;
    p[4].stock_produto = 10;
    p[5].stock_produto = 10;

Ai tens...

Edited by pwseo
Bloco de código.

Share this post


Link to post
Share on other sites
HappyHippyHippo

guardar o valor inserido num array? Tens acertesa que foi isso que a tua professora disse?


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
HappyHippyHippo

ok . é dificil perceber realmente o problema só por esses pontos, mas já sei a razão do array

depois disso, tens de ser muito específica nas dúvidas. por outras palavras, dizer que não sei fazer não é apresentação de uma dúvida, mas sim um requerimento de alguem que faça isso por ti.


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
rafaelalosano
7 horas atrás, HappyHippyHippo disse:

ok . é dificil perceber realmente o problema só por esses pontos, mas já sei a razão do array

depois disso, tens de ser muito específica nas dúvidas. por outras palavras, dizer que não sei fazer não é apresentação de uma dúvida, mas sim um requerimento de alguem que faça isso por ti.

Desde já agradeço o seu tempo.

Em momento algum pedi para alguém fazer por mim, se assim fosse já teria copiado trabalhos feitos que existem na net.

Posso não ter sido específica quando coloquei meu problema, mas não pedi nem a você nem a ninguém que o resolvesse por mim.

Fico por aqui.... 

Share this post


Link to post
Share on other sites
HappyHippyHippo
9 hours ago, rafaelalosano said:

Desde já agradeço o seu tempo.

Em momento algum pedi para alguém fazer por mim, se assim fosse já teria copiado trabalhos feitos que existem na net.

Posso não ter sido específica quando coloquei meu problema, mas não pedi nem a você nem a ninguém que o resolvesse por mim.

Fico por aqui.... 

certo, podes então explicar exactamente então qual a tua dificuldade ?


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
rafaelalosano

Então é assim...tenho isso feito....

A função calcula_troco, identifica quantas moedas de cada valor foram inseridas. Só que quando entra no if não calcula o troco, então coloquei num ciclo for, só que agora aparece um erro dizendo que a variavel produto não foi declarada e um erro no switch também com o mesmo problema. Já pesquisei em varios livros e video aulas e a declaração da variavel não está mal...porque o compilador não aceita? E outra coisa, se eu colocar moeda2e[20] e disser caixa.moeda2e[20]+caixa.stockm2e a seguir a instrução que conta quantas moedas nesse valor há, está correto?

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

float calcula_troco(caixa.stockm2e,caixa.stockm1e,caixa.stockm50c,caixa.stockm20c,caixa.stockm10c,caixa.stockm5c);


void main()
{

    struct Caixa{

        int moeda2e[10],moeda1e[10],moeda50c[10],moeda20c[10],moeda10c[10],moeda5c[10];
        int stockm2e,stockm1e,stockm50c,stockm20c,stockm10c,stockm5c;

    }caixa;

    struct Produto{

        char nome[20];
        int codigo_produto;
        float valor_produto;
        int quant_produto;
    }produto[5];

    produto[0].nome[20] ='Bolicao';
    produto[0].codigo_produto = 1;
    produto[0].valor_produto = 1.00;
    produto[0].quant_produto = 10;


    printf("Escolha o produto e digite o codigo correspondente\n");
    printf("1 - BOLICAO\n");
    printf("2 - TUC TUC\n");
    printf("3 - KIT KAT\n");
    printf("4 - RUFFLES\n");
    printf("5 - COCA-COLA\n");
    printf("6 - REDBULL\n");

    scanf("%d",&produto[].codigo_produto);//qual o valor devo colocar nessa instruçao??

    switch(produto){

    case 1:
        printf("O valor e %f\n",produto[0].valor_produto);
        printf("Introduza o pagamento\n");
        calcula_troco();
        break;
    case 2:
        printf("O valor e %f\n",produto[1].valor_produto);
        printf("Introduza o pagamento\n");
        calcula_troco();
        break;
    case 3:
        printf("O valor e %f\n",produto[2].valor_produto);
        printf("Introduza o pagamento\n");
        calcula_troco();
        break;
    case 4:
        printf("O valor e %f\n",produto[3].valor_produto);
        printf("Introduza o pagamento\n");
        calcula_troco();
        break;
    case 5:
        printf("O valor e %f\n",produto[4].valor_produto);
        printf("Introduza o pagamento\n");
        calcula_troco();
        break;
    case 6:
        printf("O valor e %f\n",produto[5].valor_produto);
        printf("Introduza o pagamento\n");
        calcula_troco();
        break;


    }


float calcula_troco(caixa.stockm2e,caixa.stockm1e,caixa.stockm50c,caixa.stockm20c,caixa.stockm10c,caixa.stockm5c){
        float pagamento,troco;

        printf("Introduza o pagamento\n");
        scanf("%f",&pagamento);

        caixa.stockm2e = (int)pagamento/2;
        pagamento = pagamento - (caixa.stockm2e*2);

        caixa.stockm1e = (int)pagamento/1;
        pagamento = pagamento - (caixa.stockm1e*1);

        caixa.stockm50c = (float)pagamento/0.5;
        pagamento = pagamento - (caixa.stockm50c*0.5);

        caixa.stockm20c = (float)pagamento/0.2;
        pagamento = pagamento - (caixa.stockm20c*0.2);

        caixa.stockm10c = (float)pagamento/0.1;
        pagamento = pagamento - (caixa.stockm10c*0.1);

        caixa.stockm5c = (float)pagamento/0.05;
        pagamento = pagamento - (caixa.stockm5c*0.05);

        printf("Numero de moedas de 2 euros e %d\n", caixa.stockm2e);
        printf("Numero de moedas de 1 euro e %d\n", caixa.stockm1e);
        printf("Numero de moedas de 0,50 centimos e %d\n", caixa.stockm50c);
        printf("Numero de moedas de 0,20 centimos e %d\n", caixa.stockm20c);
        printf("Numero de moedas de 0,10 centimos e %d\n", caixa.stockm10c);
        printf("Numero de moedas de 0,05 centimos e %d\n", caixa.stockm5c);

        int i;
       for(i=0; i<=5 ; i++){
                if(pagamento>=produto.valor_produto){
                    troco = pagamento - produto.valor_produto;
                    printf("O seu troco e %f\n",troco);}

                else printf("Introduza mais moedas\n");
       }

       return troco;


    }
}


 

Edited by pwseo
Bloco de código.

Share this post


Link to post
Share on other sites
HappyHippyHippo

não sei o que dizer

tens tantos problemas no código que nem sei onde pegar.

diz-me uma coisa : comecaste a progarmar com javascript, ou com outra linguagem que implementa closures ?


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
rafaelalosano

Não. Comecei com C, mas fui a poucas aulas esse semestre por causa dos horarios do trabalho. Você pode me ajudar a corrigir os erros??

Edited by rafaelalosano
falta de informação

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.