Jump to content

Vending machine


rafaelalosano

Recommended Posts

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...!!

Link to comment
Share on other sites

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.
Link to comment
Share on other sites

Implementar em linguagem C um simulador de uma máquina de vending, com as seguintes especificações:
1. A máquina deve possuir 10 dispensadores numerados de 1 a 10, com uma dimensão pré-definida;
2. A cada dispensador deve corresponder um determinado produto;
3. O número de produtos a colocar em cada dispensador depende da dimensão do produto, devendo o simulador fazer o cálculo de acordo com esta;
4. A máquina deve permitir o fornecimento de 4 tipos de bebidas quentes confecionadas no momento;
5. Consoante as bebidas quentes a confecionar a máquina deve permitir o armazenamento dos produtos a utilizar na sua confeção;
6. A máquina deve permitir o pagamento em moedas ou notas de 5€;
7. A máquina deve fornecer o troco utilizando o menor número de moedas possível, de entre as de 1€, 50 cêntimos, 20 cêntimos, 10 cêntimos e 5 cêntimos;
8. Deve ser fornecida ao utilizador informação de quantas moedas de cada tipo compõem o troco;
9. O simulador deve possuir um módulo de carregamento (divido nos sub-módulos de carregamento de produtos e de moedas para fornecimento de troco);
10. Deve ser fornecida ao utilizador toda a informação necessária à sua gestão, bem como a considerada relevante à sua utilização.

Foi assim que interpretei e comecei a pensar....

Link to comment
Share on other sites

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
Link to comment
Share on other sites

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.... 

Link to comment
Share on other sites

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
Link to comment
Share on other sites

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;


    }
}
Link to comment
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.