Ir para conteúdo
Fórum Script Brasil
  • 0

Maquina de snaks com structs


Miguel N

Pergunta

Ola, eu precisava de ajuda com uma maquina de snaks, eu já fiz um codigo inicial, mas preciso de adicionar mais umas coisas: 

1) Criar uma estrutura produto para guardar os dados relativos a designação, preço, quantidade em stock, total de quantidade vendida de todos os produtos disponibilizados na máquina; 2) Criar um procedimento/função para configurar os produtos disponíveis na máquina, acedido através da opção -99; 3) O menu de produtos a exibir na máquina deverá ser construído dinamicamente através do dados armazenados na estrutura de dados (designação).  

Obrigado

 

Codigo:

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

int main() {
    
    int op, custo=0, moeda, creditos;
    do {
        //exibir o menu de produtos
        system("cls");
        printf("\t"); 
        printf("%c", 218);
        for (int i=1; i<48; i++)
            printf("%c", 196);
        printf("%c", 191);
            
        printf("\n\t%c (1) Caf%c longo\t\t(70 c%cntimos)\t%c", 179, 130, 136, 179);
        printf("\n\t%c (2) Caf%c curto\t\t(70 c%cntimos)\t%c", 179, 130, 136, 179);
        printf("\n\t%c (3) Caf%c pingado\t\t(80 c%cntimos)\t%c", 179, 130, 136, 179);
        printf("\n\t%c (4) Cappucino\t\t\t(95 c%cntimos)\t%c", 179, 136, 179);
        printf("\n\t%c (5) Chocolate\t\t\t(85 c%cntimos)\t%c", 179, 136, 179);
        printf("\n\t%c (6) Gal%co\t\t\t(95 c%cntimos)\t%c", 179, 198, 136, 179);
        printf("\n\t%c (7) Ch%c de lim%co\t\t(60 c%cntimos)\t%c", 179, 160, 198, 136,179);
        
        printf("\n\t%c", 192);
        for (int i=1; i<48; i++)
            printf("%c", 196);
        printf("%c", 217);
        
        printf("\n\n\t  Digite a sua op%c%co: ", 135, 198);
        scanf("%d", &op);
        fflush(stdin);
        
        /*se for digitado -99 significa que a maquina vai
        ser desligada, por isso não será necessário correr
        o bloco de instruções do switch, ficando assim o
        programa mais rápido a ser executado e finalizado*/
        if (op!=-99) {
            //verificar qual o produto e o respetivo custo
            switch(op) {
                case 1 :     printf("\n\tCaf%c longo", 130);
                            custo=70;
                            break;

                case 2 :     printf("\n\tCaf%c curto", 130);
                            custo=70;
                            break;    
                        
                case 3 :     printf("\n\tCaf%c pingado", 130);
                            custo=80;
                            break;        

                case 4 :     printf("\n\tCappucino");
                            custo=95;
                            break;    
                        
                case 5 :     printf("\n\tChocolate");
                            custo=85;
                            break;    

                case 6 :     printf("\n\tGal%co", 132);
                            custo=95;
                            break;    
                        
                case 7 :     printf("\n\tCh%c de lim%co", 160, 132);
                            custo=60;
                            break;    
                        
                default:     printf("\n\tOp%c%co inv%clida.", 135, 132, 160);    
                            custo=0;
                             getch();
                                                                                                                                    
            }
            
            /*se for digitada uma opçao invalida, então a var custo terá o valor zero,
            o que significa que não se vai ser feito o pedido de inserção de moedas*/
            if (custo>0) {
                //controlar inserção de moedas 
                //colocar a variável creditos a zero
                creditos=0;
                do {
                    printf("\n\tCreditos= %d. ", creditos);
                    printf("Em falta = %d.", creditos<custo? custo-creditos: 0);
                    printf("\n\tInsira moeda: ");
                    scanf("%d", &moeda);
                    fflush(stdin);
                    //verificar se as moedas são as aceites pela maquina
                    if (moeda==5 || moeda==10 || moeda==20 || moeda==50 || moeda==100 || moeda==200) 
                        creditos += moeda;
                    
                } while (creditos < custo);
                //verificar se existe troco a dar
                if (creditos > custo) 
                    printf("\n\tO seu troco= %d.", creditos-custo);

                printf("\n\tRetire a sua bebida. Obrigado.\n\n");
                system("pause");
                    
            }
        }    
    
    } while (op!=-99);
    
    puts("\t\t\t---bye---");
    
    return 0;
}

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...