Ir para conteúdo

Brenda Nunes

Membros
  • Postagens

    4
  • Registro em

  • Última visita

Posts postados por Brenda Nunes

  1. olá eu tenho este código que é para um trabalho e minha professora disse para eu add uma

     

    função

     

    vetor ou matriz

     

    sobre a matriz ou vetor eu tenho que fazer com que no final do código onde diz "o bolo pedido foi" apareça todos os nomes dos bolos pedidos 

     

     

     

     

     

    #include <stdio.h>

    #include <stdlib.h>

     

    #define limparTela system("cls")  

     

    void nomedubolo ();

     

    typedef struct {

        int codigo;

        char nome [10];

        char ingrediente[10];

        double valor;

    } Bolo_t;

     

    typedef struct {

        int codigo;

        int codigoBolos[10];

        double valorTotal;

    } Pedido_t;

     

    int main() {

        const int quantidadeMaximaBolo = 10;  

        int posicaoBolo = 0;                   

        int posicaoBoloPedido = 0;             

        int codigoBolo = 0;  

        char nomedobolo [5] [100] ;                  

     

        Bolo_t bolos[quantidadeMaximaBolo];  

     

        Pedido_t pedido;                        

     

        char opcao = ' ';                       

     

        do {

            

            limparTela;

            printf("MENU \n");

            printf("[ 1 ] - Cadastrar Bolo \n");

            printf("[ 2 ] - Fazer pedido \n");

            printf("[ 0 ] - Sair \n");

            printf("> ");

            scanf(" %c", &opcao);

     

            switch (opcao) {

                case '1':   

                {

                

                    limparTela;

                    printf("NOVO BOLO \n");

                    printf("Nome do bolo: ");

                    scanf(" %[^\n]s",nomedobolo);

                    printf("digite o codigo do bolo: ");

                    scanf(" %[^\n]s", bolos[posicaoBolo].nome);

                    printf("Valor: R$ ");

                    scanf(" %lf", &bolos[posicaoBolo].valor);

                    

     

                    bolos[posicaoBolo].codigo = posicaoBolo + 1;     

                    posicaoBolo += 1;

                    break;

                }

     

     

                case '2':   

                    limparTela;

                    if (posicaoBolo == 0) {

                        printf("Nao tem bolo cadastrado \n");

     

                        if (getchar() == '\n') {

                            getchar();

                        }

     

                        break;

                    }

     

                    

                    do {

                        printf("Digite o codigo do bolo e caso nao queira mais bolos digite 0:", nomedobolo, bolos[posicaoBolo].nome );

                        scanf(" %i", &codigoBolo);

     

                        if (codigoBolo > 0 && codigoBolo <= posicaoBolo) {

                            

                            pedido.codigoBolos[posicaoBoloPedido] = codigoBolo;

                            

                            pedido.valorTotal += bolos[codigoBolo - 1].valor;

                            

                            posicaoBoloPedido += 1;    

                        

                        }

                    } while (codigoBolo != 0 && posicaoBoloPedido < 10);

                    

                    pedido.codigo = 1;

                    break;

            }

        } while (opcao != '0');

     

        limparTela;

        printf("--------------------------------------------- \n");

        printf(" PEDIDO \n");

        printf(" Codigo: %i \n", pedido.codigo);

        printf(" Valor: R$ %.2f \n", pedido.valorTotal);

        printf(" o bolo pedido foi: %s \n ", nomedobolo);

        printf("--------------------------------------------- \n");

     

        return 0;

    }

  2. Em 10/05/2022 em 19:52, Pimptech disse:

    Olá, Brenda. Tudo bem ?

    Bom, pelo que eu entendi, você quer pesquisar seu bolo pelo código, certo ?
    Como não especificou qual tipo de código então entendo que ele é somente string, ainda mais pelo tipo que você colocou na struct. Portanto só tem uma maneira de fazer isso que é iterar pelo seu vetor de bolos. 
     

    Bolo_t bolos[quantidadeMaximaBolo];

    Tem várias maneiras de fazer isso. Eu faria uma inicialização do vetor de Bolo_t. Assim vc poderia iterar e checar essa opção. 
    Ou você pode manter desse jeito ai mesmo e só checar se o .nome é vazio. E para isso você pode adicionar a header. <string.h>, fica mais fácil de mexer nas strings com as funções respectivas.

    Eu fiz algumas modificações no seu código. mas no geral seria isso. Primeiro limpo o nomebolo para buscar por ele, depois comparo com as funções de string para ver se não tá vazio ou é 0. Depois faço um loop-for para iterar pelo seu vector de Bolo_t. O nome sendo igual ao digitado eu paro o loop-for e mostro o resultado.
     

    //cleaning nomedobolo
    nomedobolo[0] = '\0';
    do {
      // bolos[posicaoBolo].nome
      printf("Digite o nome/codigo do bolo %s caso nao queira mais bolos digite 0: ", nomedobolo);
      scanf(" %s[^\n]", nomedobolo);
    
      if(strcmp(nomedobolo, "0") == 0 || strlen(nomedobolo) <= 0){
        printf("skipping. %s", nomedobolo);
        break;
      }
    
      for(int o=0;o<quantidadeMaximaBolo;o++){
        if(strcmp(bolos[o].nome, nomedobolo)){
          printf("\n-------Encontrado-------\nSeu bolo.. foi encontrado. posição %i. %s \n\n", o, bolos[o].nome);
          //bolos[0].nome e etc...
          break;
        }
      }
    } while (1);


    Caso alguma coisa não tenha ficado clara só falar. Abs!

    ola eu ainda estou confuso com o que você disse comecei a mexer com c++ agora e estou fazendo este código oq tenho que fazer é no final onde diz "digite o codigo do bolo" tenha que realmente digitar o código dito na primeira parte e não seja em ordem igual esta agora 

     

    outra coisa eu não consigo fazer com que apareça os nomes dos bolos selecionados no final do código como exemplo 

     

    "pedido

     

    codigo:1

     

    valor: 20

     

    bolos pedidos : laranja, chocolate, cafe

     

    "

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

    #define limparTela system("cls") 

    typedef struct {
        int codigo;
        char nome [100];
        char ingrediente[100];
        double valor;
    } Bolo_t;

    typedef struct {
        int codigo;
        int codigoBolos[100];
        double valorTotal;
    } Pedido_t;

    int main() {
        const int quantidadeMaximaBolo = 100; 

        int posicaoBolo = 0;                  
        int posicaoBoloPedido = 0;            
        int codigoBolo = 0; 
    char nomedobolo [100] ;                 

        Bolo_t bolos[quantidadeMaximaBolo]; 

        Pedido_t pedido;                       

        char opcao = ' ';                      

        do {
            limparTela;
            printf("MENU \n");
            printf("[ 1 ] - Cadastrar Bolo \n");
            printf("[ 2 ] - Fazer pedido \n");
            printf("[ 0 ] - Sair \n");
            printf("> ");
            scanf(" %c", &opcao);

            switch (opcao) {
                case '1':  
                    limparTela;
                    printf("NOVO BOLO \n");
                    printf("Nome do bolo: ");
                    scanf(" %[^\n]s", nomedobolo);
                    printf("digite o codigo do bolo: ");
                    scanf(" %[^\n]s", bolos[posicaoBolo].nome);
                    printf("Valor: R$ ");
                    scanf(" %lf", &bolos[posicaoBolo].valor);
                   

                    bolos[posicaoBolo].codigo = posicaoBolo + 1;    
                    posicaoBolo += 1;
                    break;

                case '2':  
                    limparTela;
                    if (posicaoBolo == 0) {
                        printf("Nao tem bolo cadastrado \n");

                        if (getchar() == '\n') {
                            getchar();
                        }

                        break;
                    }

                   
                    do {
                        printf("Digite o nome/codigo do bolo %s caso nao queira mais bolos digite 0", nomedobolo, bolos[posicaoBolo].nome );
                        scanf(" %i", &codigoBolo);

                        if (codigoBolo > 0 && codigoBolo <= posicaoBolo) {
                            pedido.codigoBolos[posicaoBoloPedido] = codigoBolo;
                            pedido.valorTotal += bolos[codigoBolo - 1].valor;
                            posicaoBoloPedido += 1;
                        }
                    } while (codigoBolo != 0 && posicaoBoloPedido < 100);
                   
                    pedido.codigo = 1;
                    break;
            }
        } while (opcao != '0');

        limparTela;
        printf("--------------------------------------------- \n");
        printf("PEDIDO \n");
        printf("Codigo: %i \n", pedido.codigo);
        printf(" Valor: R$ %.2f \n", pedido.valorTotal);
        printf("--------------------------------------------- \n");

        return 0;
    }

×
×
  • Criar Novo...