Jump to content
Fórum Script Brasil
  • 0

Maquina de Snacks


TiagoBotelho59
 Share

Question

Porfavor se podesem ajudar agradecia 
é um trabalho em c ++ 

 

Existem 20 produtos disponíveis na máquina;

Cada produto tem um stock de quantidade inicial Para cada produto vendido a quantidade será atualizada;

Em caso de existência de 0 (zero) o produto deverá exibir a legenda “ESGOTADO” em substituição do preço no menu;

Não permitir a venda do produto esgotado;

Possibilitar a atualização de stock de um qualquer produto (usar a opção -99 para definir um novo submenu)

; Quando a máquina for desligada deve exibir a quantidade existente e o total de vendas para cada produto;

 

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

 

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;
}

Edited by TiagoBotelho59
Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.2k
×
×
  • Create New...