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

Maquina de Snacks


davidrocha79

Pergunta

Bom dia,eu estou com algumas duvidas de como se insere arrays em c++,o meu professor deu-me um trabalho de fazer em que devia fazer uma maquina de snacks com: Existem 20 produtos disponíveis na máquina; Cada produto tem um stock de quantidade inicial (máximo de 15); 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; A máquina deverá utilizar um algoritmo guloso na realização do troco (OPCIONAL).

já comecei o codigo alguém me poderia ajudar a por arrays ?

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

int main() {
    
    int op, custo=0, moeda, creditos;
    do {

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

        if (op!=-99) {

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

            if (custo>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);

                    if (moeda==5 || moeda==10 || moeda==20 || moeda==50 || moeda==100 || moeda==200) 
                        creditos += moeda;
                    
                } while (creditos < custo);

                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

3 respostass a esta questão

Posts Recomendados

  • 0
#include <stdio.h>
#include <stdlib.h>
#include <string.h> //strcpy
#define QUANTIDADE_INICIAL 20
#define MAX_PRODUTOS 100

struct Produto {
    char nome[100];
    int quantidade;
    float valor;
    int vendido;
};

int main () {
    int produtosEmVenda = 3; // quantidade de produtos em venda atualmente ao inicio do programa
    int i;
    
    struct Produto produto[100] = {
        //Inicializaçao na hora da declaraçao.
        {"salgadinho", QUANTIDADE_INICIAL, 1.0 , 0}, //Produto 0. Começamos a contar de 0 em C/C++, é o primeiro ;)
        {"pirulito"  , QUANTIDADE_INICIAL, 0.50, 0}, //Produto 1.
    };
    
    //Inicializaçao posterior a hora da declaraçao
    strcpy ( produto[2].nome, "Chocolate" );
    produto[2].quantidade = QUANTIDADE_INICIAL;
    produto[2].valor = 1.50;
    produto[2].vendido = 0;
    
    //para mostrar os produtos vc faz: 
    for( i=0; i<produtosEmVenda && i<MAX_PRODUTOS; i++ ){
        printf("Produto(%d): %s Valor: %2.2f\n", i+1, produto[i].nome, produto[i].valor); //i+1 para que seja produto 1 ao informar, e nao produto 0
    }
    
    // se quiser registrar um novo produto 1º incremente produtosEmVenda em 1 e logo registre o novo produto 
    produtosEmVenda++;
    
    //Agora registramos os dados do 4º produto, porem é o produto 3 si contamos de zero.
    strcpy ( produto[3].nome, "pipoquinha" );
    produto[3].quantidade = QUANTIDADE_INICIAL;
    produto[3].valor = 1000.00; // um roubo descarado =D
    produto[3].vendido = 0;

    //mostramos novamente o produto
    printf("\nNovos produtos\n");
    for( i=0; i<produtosEmVenda && i<MAX_PRODUTOS; i++ ){
        printf("Produto(%d): %s Valor: %2.2f\n", i+1, produto[i].nome, produto[i].valor); //i+1 para que seja produto 1 ao informar, e nao produto 0
    }    
 
    getchar();
    return 0;
}

É só uma idéia.

Um string é declarado dessa forma:
char palavra[100]; // máximo 100 letras para essa palavra.

Para escrever nesse char você precisa usar algo como:
scanf("%s%*c", palavra);

para imprimir:
printf("%s", palavra);

para copiar um ao outro você pode usar:
strcpy(palavra, outraPalavra);
Outra palavra é também um string... ou você pode usar literais
strcpy(palavra, "Ola mundo!");

Um string pode ser inicializado com um valor literal na hora de sua declaração, isso evita ter que usar strcpy depois, pois posteriormente você precisa modificar cada uma das casinhas manualmente, strcpy faz isso por vc, mas cuidado, certifique-se que em palavra tem suficiente tamanho para receber outraPalavra.
char outraPalavra[100] = "Ola Mundo!";
char palavra[100];
strcpy(palavra, outraPalavra);

Para usar strcpy e outras funções para manipulação de strings(strcmp etc) você necessita da biblioteca string.h.

Enfim, de uma olhada e se não entender pergunte.

Recomendo você usar estruturas tal como no exemplo que lhe passei, pois será muito mais fácil se todos os dados de um produto estiverem todos agrupados em uma struct.

Link para o comentário
Compartilhar em outros sites

  • 0

Ola muito obrigado ,mas eu iniciei já o meu projeto irei fazer dois um atraves desse metodo,mas o meu ficou assim:

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int snacks[20]={3,5,6,7,8,9,1,0,2,3,4,5,6,7,4,7,6,3,2,1} ;
void menu () {
    printf("\n\t So moedas de 5 10 20 50 100 200")    ;
        printf("\n\t 1 Sprite\t\t(95 centimos)\t");
        if (snacks[0] <= 0)
           printf("esgotado");
        printf("\n\t (2) Queijo Fresco\t(85 centimos)\t");
        if (snacks[1] <= 0)
           printf("esgotado");
        printf("\n\t (3) Sumol\t\t(70 centimos)\t");
        if (snacks[2] <= 0)
           printf("esgotado");
        printf("\n\t (4) Agua\t\t(50 centimos)\t");
        if (snacks[3] <= 0)
           printf("esgotado");
        printf("\n\t (5) Mnt Dew\t\t(60 centimos)\t");
        if (snacks[4] <= 0)
           printf("esgotado");
        printf("\n\t (6) Doritos\t\t(40 centimos)\t");
        if (snacks[5] <= 0)
           printf("");
        printf("\n\t (7) Pringles\t\t(20 centimos)\t");
        if (snacks[6] <= 0)
           printf("");
        printf("\n\t (8) Lays\t\t(95 centimos)\t");
        if (snacks[7] <= 0)
           printf("");
        printf("\n\t (9) Agua\t\t(40 centimos)\t");
        if (snacks[8] <= 0);
           printf("");
               printf("\n\t (10) Vinho\t\t(50 centimos)\t");
        if (snacks[9]<= 0);
           printf("");
               printf("\n\t (11) Sumol\t\t(60centimos)\t");
        if (snacks[10] <= 0);
           printf("");
               printf("\n\t (12) Agua com sal\t(70 centimos)\t");
        if (snacks[11] <= 0);
           printf("");
               printf("\n\t (13) cacau\t\t(40 centimos)\t");
        if (snacks[12] <= 0);
           printf("");
               printf("\n\t (14) Azeitonas\t\t(50 centimos)\t");
        if (snacks[13]<= 0);
           printf("");
               printf("\n\t (15) Bolachas\t\t(25 centimos)\t");
        if (snacks[14] <= 0);
           printf("");
               printf("\n\t (16) Copos\t\t(20 centimos)\t");
        if (snacks[15] <= 0);
           printf("");
               printf("\n\t (17) Livros\t\t(40 centimos)\t");
        if (snacks[16] <= 0);
           printf("");
               printf("\n\t (18) Kit Kat\t\t(30 centimos)\t");
        if (snacks[17] <= 0);
           printf("");
               printf("\n\t (19) Gomas\t\t(65 centimos)\t");
        if (snacks[18] <= 0);
           printf("");
               printf("\n\t (20) Gelados\t\t(40 centimos)\t");
        if (snacks[19] <= 0);
           printf("");
    
               printf("\n\t%c", 192);
        for (int i=1; i<48; i++)
            printf("%c", 196);
        printf("%c", 217);
    }
    
    
    
int insertcoin (int custo) {
               int creditos=0, moeda;
                do {
                    printf("\n\tCreditos= %d. ", creditos);
                    printf("Em falta = %d.", creditos<custo? custo-creditos: 0);
                    printf("\n\tInsira moeda: ");
                    scanf("%d", &moeda);
                    fflush(stdin);
                    if (moeda==5 || moeda==10 || moeda==20 || moeda==50 || moeda==100 || moeda==200) 
                        creditos += moeda;
                    
                } while (creditos < custo);
                return creditos;
            }    
void vercreditos (int custo, int creditos) {            
     if (creditos > custo) 
        printf("\n\tO seu troco= %d.", creditos-custo);

                printf("\n\tRetire a sua bebida/snack. Obrigado.\n\n");
                system("pause");
}
int main() {
    int op, custo=0, creditos;
    do {
        
        menu ();
        printf("\n\n\t  Digite a sua op%c%co: ", 135, 198);
        scanf("%d", &op);
        fflush(stdin);
        
        if (op!=-99) {
            switch(op) {
                case 1 :     printf("\n\tMars\n");
                            custo=95;
                            if (snacks[0] > 0)
                               snacks[0] -= 1;
                            else {
                                custo == 0;
                                printf("produto esgotado");
                                }
                            break;

                case 2 :     printf("\n\tTwix\n");
                            custo=85;
                            if (snacks[1] > 0)
                               snacks[1] -= 1;
                            else {
                                custo == 0;
                                printf("produto esgotado");
                                }
                            break;    
                        
                case 3 :     printf("\n\tCoca-cola\n");
                            custo=70;
                            if (snacks[2] > 0)
                               snacks[2] -= 1;
                            else {
                                custo == 0;
                                printf("produto esgotado");
                                }
                            break;

                case 4 :     printf("\n\tAgua\n");
                            custo=40;
                            if (snacks[3] > 0)
                               snacks[3] -= 1;
                            else {
                                custo == 0;
                                printf("produto esgotado");
                                }
                            break;    
                        
                case 5 :     printf("\n\tMnt Dew\n");
                            custo=50;
                            if (snacks[4] > 0)
                               snacks[4] -= 1;
                            else {
                                custo == 0;
                                printf("produto esgotado");
                                }
                            break;    

                case 6 :     printf("\n\tDoritos\n");
                            custo=60;
                            if (snacks[5] > 0)
                               snacks[5] -= 1;
                            else {
                                custo == 0;
                                printf("produto esgotado");
                                }
                            break;    
                        
                case 7 :     printf("\n\tPringles\n");
                            custo=20;
                            if (snacks[6] > 0)
                               snacks[6] -= 1;
                            else {
                                custo == 0;
                                printf("produto esgotado");
                                }
                            break;

                case 8 :     printf("\n\tLays\n");
                            custo=95;
                            if (snacks[7] > 0)
                               snacks[7] -= 1;
                            else {
                                custo == 0;
                                printf("produto esgotado");
                                }
                            break;
                            
                case 9 :     printf("\n\tAgua\n");
                            custo=40;
                            if (snacks[6] > 0)
                               snacks[6] -= 1;
                            else {
                                custo == 0;
                                printf("produto esgotado");
                                }
                            break;
                case 10 :     printf("\n\tVinho\n");
                            custo=70;
                            if (snacks[7] > 0)
                               snacks[7] -= 1;
                            else {
                                custo == 0;
                                printf("produto esgotado");
                                }
                            break;    
                case 11 :     printf("\n\tSumol\n");
                            custo=40;
                            if (snacks[8] > 0)
                               snacks[8] -= 1;
                            else {
                                custo == 0;
                                printf("produto esgotado");
                                }
                            break;    
                 case 12 :     printf("\n\tAgua com Sal\n");
                            custo=70;
                            if (snacks[9] > 0)
                               snacks[9] -= 1;
                            else {
                                custo == 0;
                                printf("produto esgotado");
                                }
                            break;    
                case 13 :     printf("\n\tcacau\n");
                            custo=40;
                            if (snacks[10] > 0)
                               snacks[10] -= 1;
                            else {
                                custo == 0;
                                printf("produto esgotado");
                                }
                            break;
                case 14 :     printf("\n\tAzeitonas");
                            custo=50;
                            if (snacks[11] > 0)
                               snacks[11] -= 1;
                            else {
                                custo == 0;
                                printf("produto esgotado");
                                }
                            break;    
                case 15 :     printf("\n\tBolachas\n");
                            custo=25;
                            if (snacks[12] > 0)
                               snacks[12] -= 1;
                            else {
                                custo == 0;
                                printf("produto esgotado");
                                }
                            break;
                case 16 :     printf("\n\tCopos\n");
                            custo=20;
                            if (snacks[13] > 0)
                               snacks[13] -= 1;
                            else {
                                custo == 0;
                                printf("produto esgotado");
                                }
                            break;    
                case 17 :     printf("\n\tLivros\n");
                            custo=40;
                            if (snacks[14] > 0)
                               snacks[14] -= 1;
                            else {
                                custo == 0;
                                printf("produto esgotado");
                                }
                            break;    
                case 18 :     printf("\n\tKit Kat\n");
                            custo=30;
                            if (snacks[15] > 0)
                               snacks[15] -= 1;
                            else {
                                custo == 0;
                                printf("produto esgotado");
                                }
                            break;    
                case 19 :     printf("\n\tGomas\n");
                            custo=65;
                            if (snacks[16] > 0)
                               snacks[16] -= 1;
                            else {
                                custo == 0;
                                printf("produto esgotado");
                                }
                            break;
                case 20 :     printf("\n\Gelados/n");
                            custo=40;
                            if (snacks[17] > 0)
                               snacks[17] -= 1;
                            else {
                                custo == 0;
                                printf("produto esgotado");
                                }
                            break;
            
            
                        
                default:     printf("\n\toperacao invalida.");    
                            custo=0;
                             getch();
                                                                                                                                    
            }
            
            if (custo>0) {
                        creditos = insertcoin(custo);
                

          vercreditos(custo, creditos);
                    
            }
        }    
    
    } while (op!=-99);
    
    puts("\t\t\t---bye---");
    
    return 0;
}

Editado por davidrocha79
Link para o comentário
Compartilhar em outros sites

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