Ir ao conteúdo
  • Cadastre-se

Problemas com do while


Posts recomendados

Pessoal estou com problema com esse código. Um deles é o problema com o "do while" no código.Queria a ajuda de vocês para revisarem esse meu código e se possível arrumarem as partes que estiverem erradas.

--------------------------------------------------------------------------------------------------------

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <locale.h>
#define limpartela() system("cls")
struct Cliente {
    int cod_cliente;
    char ende[250];
    char fone[250];
};
struct produto {
    int cod_produto;
    float preco_unit;
    int qtde_est;
    char desc[250];
    char unid[250];
};
struct nota {
    int numero_nf;
    int cod_cliente;
    int total;
};
struct itens {
    int numero_nf;
    int cod_prod;
    int qtde;
    int preco_vend;
};
int main()
{
    setlocale ( LC_ALL, "Portuguese" );
    /*bloco  de struct*/
    struct Cliente clien[4];
    struct produto prod[7];
    struct nota not[6];
    struct itens inte[11];
    int i;
    int j;
    int k;
    int h;
    int cont;
    int achou;
    int op1;
    int op2;
    int posi;
    int codigo_cli;
    int livre_cliente;
    int livre_produto;
    int livre_nota;
    int valor;
    int livre_item;
    int codigo;
    float pre;
    int qtde;
    float valor_inicial;
    float valor_final;
    int num_nota;
    char endere[250];
    char telefone[250];
    char desc[250];
    char unidade[250];
    char resp[250];
    livre_cliente = 1;
    livre_produto = 1;
    livre_nota = 1;
    livre_item = 1;
    do {
        printf ( "Menu de opções" );
        printf ( "\n1-Cadastros" );
        printf ( "\n2-Movimentaçoes" );
        printf ( "\n3-consultas" );
        printf ( "\n4-Sair" );
        printf ( "\nDigite sua opção" );
        scanf ( "%d", &op1 );
        if ( op1 < 1 || op1 > 4 )
        {
            printf ( "Opção invalida,digite novamente" );
        }
        if ( op1 == 1 )
        {
            do
             {
                limpartela();
                printf ( "Sub-menu de Opções" );
                printf ( "\n1-Incluir clientes" );
                printf ( "\n2-alterar clientes" );
                printf ( "\n3-excluir clientes" );
                printf ( "\n4-incluir produtos" );
                printf ( "\n5-alterar produtos" );
                printf ( "\n6-excluir produtos" );
                printf ( "\n7-sair" );
                printf ( "\nDigite sua opção" );
                scanf ( "%d", &op2 );
                if ( op2 < 1 || op2 > 7 )
                {
                    printf ( "Opção invalida,digite novamente" );
                }
                limpartela();
                if ( op2 == 1 )
                {
                    printf ( "Inclusão de clientes" );
                    if ( livre_cliente == 4 )
                    {
                        printf ( "cadastro de cliente lotado" );
                    }
                        else
                        {
                            printf ( "\nDigite o código do cliente a ser incluído" );
                            scanf ( "%d", &codigo );
                            achou = 0;
                        }
                    for ( i = 0; i < 3; i++ )
                    {
                        if ( clien->cod_cliente == codigo )
                        {
                            achou = 1;
                        }
                    }
                    if ( achou == 1 )
                    {
                        printf ( "\nJá existe cliente com esta código" );
                    }
                        else
                        {
                            fflush(stdin);
                            printf ( "Digite o endereço do cliente" );
                            fgets ( clien[livre_cliente].ende, 250, stdin );
                            printf ( "Digite o telefone do cliente" );
                            fgets ( clien[livre_cliente].fone, 250, stdin );
                            clien[livre_cliente].cod_cliente = codigo;
                            printf ( "Cliente cadastrado com sucesso" );
                            livre_cliente++;
                        }
                }

                if ( op2 == 2 ) {
                    printf ( "alteração de Clientes" );
                    if ( livre_cliente == 1 )
                    {
                        printf ( "Cadastro de clientes vazio" );
                    }
                    else
                    {
                        printf ( "Digite o código do cliente a ser alterado" );
                        scanf ( "%d", &codigo );
                        achou = 0;
                    }
                    for ( i = 0; i < 3; i++ )
                    {
                        if ( clien->cod_cliente == codigo )
                        {
                            achou = 1;
                            posi = i;
                        }
                    }
                    if ( achou == 0 )
                    {
                        printf ( "Não existe cliente com esse código" );
                    }
                    else
                    {
                        fflush(stdin);
                        printf ( "Digite o novo endereço do cliente" );
                        fgets ( clien[posi].ende, 250, stdin );
                        printf ( "Digite o novo telefone do cliente" );
                        fgets ( clien[posi].fone, 250, stdin );
                        printf ( "Cliente alterado com sucesso!" );
                    }
                }
                if ( op2 == 3 )
                {
                    printf ( "Exclusão de clientes" );
                    if ( livre_cliente == 1 )
                    {
                        printf ( "Cadastro de clientes vazio" );
                    }
                        else
                        {
                            printf ( "Digite o código do cliente a ser excluido" );
                            scanf ( "%d", &codigo );
                            achou = 0;
                        }
                    for ( i = 0; i < 3; i++ )
                    {
                        if ( clien->cod_cliente == codigo )
                        {
                            achou = 1;
                            posi = 1;
                        }
                    }
                    if ( achou == 0 )
                    {
                        printf ( "Não existe cliente com este código" );
                    }
                        else
                        {
                            achou = 0;
                        }
                    for ( j = 0; j < livre_nota; j++ )
                    {
                        if ( not[j].cod_cliente == codigo )
                        {
                            achou = 1;
                        }
                    }
                    if ( achou == 1 )
                    {
                        printf ( "Cliente possui notas.Não pode excluir" );
                    }
                    else
                    {
                        for ( j = posi; j < livre_cliente; j++ )
                        {
                                clien[j].cod_cliente = clien[j + 1].cod_cliente;
                                strcpy ( clien[j].ende, clien[j + 1].ende );
                                strcpy ( clien[j].fone, clien[j + 1].fone );
                                printf ( "Cliente excluído com sucesso" );
                                livre_cliente = livre_cliente - 1;
                        }
                    }
                }
                if ( op2 == 4 )
                {
                    printf ( "inclusão de produtos" );
                    if ( livre_produto == 7 )
                    {
                        printf ( "Cadastro de produtos lotado" );
                    }
                    else
                    {
                        printf ( "Digite o código do produto a ser incluido" );
                        scanf ( "%d", &prod[livre_produto].cod_produto );
                        achou = 0;
                    }
                    for ( i = 0; i < 6; i++ )
                    {
                        if ( prod->cod_produto == codigo )
                        {
                            achou = 1;
                        }
                    }
                    if ( achou == 1 )
                    {
                        printf ( "Digite a descrição do produto" );
                        fgets ( prod[livre_produto].desc, 250, stdin );
                        printf ( "Digite a unidade do produto" );
                        fgets ( prod[livre_produto].unid, 250, stdin );
                        printf ( "Digite o preço unitário do produto" );
                        scanf ( "%f", &prod[livre_produto].preco_unit );
                        printf ( "Digite a quantidade em estoque do produto" );
                        scanf ( "%d", &prod[livre_produto].qtde_est );
                    }
                }
                if ( op2 == 5 )
                {
                    printf ( "Alteção de produtos" );
                    if ( livre_produto == 1 )
                    {
                        printf ( "Cadastro de produtos vazio" );
                    }
                    else
                    {
                        printf ( "Digite o código do produto a ser alterado" );
                        scanf ( "%d", &codigo );
                        achou = 0;
                    }
                    for ( i = 0; i < 6; i++ )
                    {
                        if ( prod->cod_produto == codigo )
                        {
                            achou = 1;
                            posi = i;
                        }
                    }
                    if ( achou == 0 )
                    {
                        printf ( "Não existe produto com este código" );
                    }
                    else
                    {
                        printf ( "Digite a nova descrição do produto" );
                        fgets ( prod[livre_produto].desc, 250, stdin );
                        printf ( "Digite a nova unidade do produto" );
                        fgets ( prod[livre_produto].unid, 250, stdin );
                        printf ( "Digite o novo preço unitário" );
                        scanf( "%f%*c", &prod[livre_produto].preco_unit );
                        printf ( "Digite a nova quantidade em estoque" );
                        scanf ( "%d%*c", &prod[livre_produto].qtde_est );
                        printf ( "Produto alterado com sucesso" );
                    }
                }
                if ( op2 == 6 )
                {
                    printf ( "Exclusão de produtos" );
                    if ( livre_produto == 1 )
                    {
                        printf ( "Cadastro de produtos vazio" );
                    }
                    else
                    {
                        printf ( "Digite o código do produto a ser excluido" );
                        scanf ( "%d", &codigo );
                        achou = 0;
                    }
                    for ( i = 0; i < 6; i++ )
                    {
                        if ( prod->cod_produto == codigo )
                        {
                            achou = 1;
                            posi = i;
                        }
                    }
                    if ( achou == 0 )
                    {
                        printf ( "Não existe produto com este código" );
                    }
                    else
                    {
                        achou == 0;
                        for ( j = 0; j < livre_item; j++ )
                        {
                            if ( inte[j].cod_prod == codigo )
                            {
                                achou = 1;
                            }
                        }
                        if ( achou == 1 )
                        {
                            printf ( "Não pode excluir produto. Faz parte de alguma nota" );
                        }
                        else
                        {
                            for ( j = 0; j < livre_produto; j++ )
                            {
                                prod[j].cod_produto = prod[j + 1].cod_produto;
                                strcpy ( prod[j].desc, prod[j + 1].desc );
                                strcpy ( prod[j].unid, prod[j + 1].unid );
                                prod[j].preco_unit = prod[j + 1].preco_unit;
                                prod[j].qtde_est = prod[j + 1].qtde_est;
                            }
                            printf ( "Produto excluido com sucesso" );
                            livre_produto = livre_produto - 1;
                        }
                    }
                }
                if(op1==2)
                {
                    printf("\ncadastro de notas de saída");
                    printf("\nDigite o número da nota");
                    scanf("%d",&num_nota);
                    if(livre_nota==6)
                    {
                    printf("Cadastro de notas lotado");
                    }
                    else
                    {
                     achou=0;
                    }
                    for(i=0;i<livre_nota;i++)
                    {
                        if(not.numero_nf==num_nota)
                        {
                         achou=1;
                        }
                    }
                    if(achou==1)
                    {
                      printf("\nJá existe nota fiscal cadastrada com esse número");
                    }
                    else
                    {
                      printf("Digite o código do cliente");
                        scanf("%d",&codigo_cli);
                        achou=0;
                    }
                    while(achou==0)
                    {
                        for(i=0;i<livre_cliente;i++)
                            {
                                if(clien.cod_cliente==codigo_cli)
                                {
                                    achou=1;
                                }
                            }
                          if(achou==0)
                                {
                                    printf("Este cliente não está cadastrado");
                                    printf("\nDigite outro cliente");
                                    scanf("%d",&codigo_cli);
                                }
                    }
                            do
                                {
                                    printf("Digite o código do produto");
                                    scanf("%d",&codigo);
                                    achou=0;
                                        for(k=0;k<livre_produto;k++)
                                        {
                                            if(prod[k].cod_produto==codigo)
                                            {
                                                if(prod[k].qtde_est==0)
                                                {
                                                    achou=2;
                                                }
                                                else
                                                {
                                                    achou=1;
                                                    posi=k;
                                                    for(h=0;h<livre_item;h++)
                                                    {
                                                        if(inte[h].numero_nf==num_nota&&inte[h].cod_prod==codigo)
                                                        {
                                                            printf("Produto já existe nesta nota");
                                                            achou=0;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                        if(achou==0)
                                        {
                                           printf("Este produto não está castrado");
                                        }
                                        if(achou==2)
                                        {
                                            printf("Este produto está com estoque zerado");
                                        }
                                        if(achou==1)
                                        {
                                            printf("Digite a quantidade");
                                            scanf("%d",&qtde);
                                            while(qtde>prod[posi].qtde_est)
                                            {
                                                printf("Estoque insuficiente");
                                                printf("Digite outra quantidade");
                                                scanf("%d",&qtde);
                                            }
                                            inte[livre_nota].numero_nf=num_nota;
                                            inte[livre_nota].cod_prod=codigo;
                                            inte[livre_nota].qtde=qtde;
                                            inte[livre_nota].preco_vend=qtde*prod[posi].preco_unit;
                                            livre_item=livre_item +1;
                                            printf("Produto incluído na nota com sucesso");
                                            strcpy( prod[posi].qtde_est, prod[posi].qtde_est);
                                            cont=cont+1;
                                        }
                                        if(cont<2)
                                        {
                                            printf("\nDeseja cadastrar outro produto nesta nota");
                                            printf("\ns-sim ou n-não");
                                            fgets(resp,250,stdin);
                                        }
                                }while(cont<2 && resp=='s');
                                if(cont>=1)
                                {
                                    livre_nota=livre_nota+1;
                                    printf("Nota cadastrada com sucesso");
                                }

                        }
                if(op1=3)
            {
                    do
                {
                    printf("\nSubmenude opções");
                    printf("\n1-consultar todos os produtos entre dois valores");
                    printf("\n2-consultar todas as notas de um cliente");
                    printf("\n3-consultar todas as notas com total superior a um determinado valor");
                    printf("\n4-sair");
                    scanf("%d",&op2);
                    if(op2<1||op2>4)
                    {
                        printf("\nopção invalida,digite novamente");
                    }
                    if(op2=1)
                    {
                        printf("\nConsultar todos os produtos com preços entre dois valores");
                        printf("\nDigite o valor inicial");
                        scanf("%f", &valor_inicial);
                        printf("\nDigite o valor final");
                        scanf("%f", &valor_final);
                        if(livre_produto==1)
                        {
                            printf("nenhum produto está cadastrado");
                        }
                        else
                        {
                            achou=0;
                            for(i=0;i<livre_produto;i++)
                            {
                                if(prod.preco_unit>=valor_inicial && prod.preco_unit<=valor_final);
                                {
                                    achou=1;
                                    printf("%d", prod.cod_produto);
                                    printf("%d", prod.desc);
                                }
                            }
                         }
                         if(achou==0)
                            {
                                printf("\nNenhum produto foi cadastrado com estes preços");
                            }
                    }
                    if(op2==2)
                    {
                        printf("\nConsultar todas as notas e itens de um cliente");
                        printf("\nDigite o código do cliente");
                        scanf("%d",&codigo);
                        if(livre_cliente==1)
                        {
                            printf("\nNão existe cliente cadastrado");
                        }
                        else
                        {
                           achou=0;
                           for(i=0;i<livre_cliente;i++)
                           {
                               if(clien.cod_cliente==codigo)
                               {
                                   achou=1;
                               }
                           }
                           if(achou==0)
                           {
                               printf("\nEste cliente não está cadastrado");
                           }
                           else
                           {
                               if(livre_nota==1)
                               {
                                   printf("\nNenhuma nota cadastrada");
                               }
                               else
                               {
                                   achou=0;
                                   for(i=0;i<livre_nota;i++)
                                   {
                                       if(not.cod_cliente==codigo)
                                       {
                                           achou=1;
                                           printf("%d", &not.numero_nf);
                                           printf("%d",&not.total);
                                           for(j=0;j<livre_item;j++)
                                           {
                                               if(inte[j].numero_nf==not.numero_nf)
                                               {
                                                   printf("%d" , inte[j].cod_prod);
                                                   printf("%d" , inte[j].qtde);
                                                   printf("%d" , inte[j].preco_vend);
                                               }
                                           }
                                       }

                                   }
                                   if(achou==0)
                                   {
                                       printf("\nNenhuma nota encontrada");
                                   }
                               }
                           }
                        }
                    }
                    if(op2==3)
                    {
                        printf("\nConsultar todas as notas e itens da nota com total superior a um valor");
                        printf("\nDigite um valor");
                        scanf("%d", &valor);
                        if(livre_nota==1)
                        {
                            printf("\nNão existe nota cadastrada");
                        }
                        else
                        {
                            achou=0;
                            for(i=0;i<livre_nota;i++)
                            {
                                if(not.total>valor)
                                {
                                    achou=1;
                                    printf("\n %d" ,not.numero_nf);
                                    printf("\n %d", not.total);
                                    for(j=0;j<livre_item;j++)
                                    {
                                        if(inte[j].numero_nf==not.numero_nf)
                                        {
                                            printf("\n %d" ,inte[j].cod_prod);
                                            printf("\n %d" ,inte[j].qtde);
                                            printf("\n %d" ,inte[j].preco_vend);
                                        }
                                    }
                                }
                            }
                            if(achou==0)
                            {
                                printf("Nenhuma nota cadastrada");
                            }
                        }
                    }
                }while(op2!=4);
            }
        } while( op2 != 7 );
    }

 } while ( op1 != 4 );
    return 0;
}
 
 

 

Link para o comentário
Compartilhar em outros sites

52 minutos atrás, Gabriel Filipe Rossin disse:

   for(i=0;i<livre_nota;i++){
       if(not.cod_cliente==codigo)

 

faltou o índice not[ i ].cod

52 minutos atrás, Gabriel Filipe Rossin disse:

for(i=0;i<livre_cliente;i++){
     if(clien.cod_cliente==codigo_cli)

 

outro índice clien[ i ].cod_cliente

52 minutos atrás, Gabriel Filipe Rossin disse:

for(i=0;i<livre_produto;i++) {
   if(prod.preco_unit>=valor_inicial && prod.preco_unit<=valor_final)

 

outro índice prod[ i ]......

 

52 minutos atrás, Gabriel Filipe Rossin disse:

for(i=0;i<livre_nota;i++) {
    if(not.cod_cliente==codigo)

 

no teu código faltou os índices, não citei todos porque eram muitos

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!