Ir ao conteúdo

Posts recomendados

Postado

Pessoal, estou com um certo problema , fiz uma função no meu programa para fazer a pesquisa por nome porém eu digito o nome mas nao aparece o cadastro com o nome  que eu coloquei na pesquisa . me ajudem por favor !

abaixo esta o codigo completo . 

o erro acontece na funcao consulta_nome(); pode ser algum erro no programa ?

como faço para visualizar todos os cadastros ?

 

 

 

#include<stdio.h>  
#include<stdlib.h> 
#include<string.h> 
#include<locale.h>

#define DBASE 200 /*!< Tamanho do vetor */
#define SIZEDB 10
struct cadastro
{
    int telefone;
    char nome[200];
    char endereco [200];
    char quadra[200]; // É char não int
    char lote[200];   // É char não int
    char complemento [200];
    char setor [200];
    char cidade[200];
    int vazio,cod;
 } ;

struct descricao_stt{
  char string[ 20 ]; };

struct produtoc{
  struct descricao_stt descricao;
  int                  quantidade;
  int                  codigo;
  float                valor; };

/*  VARIABLE GLOBAL */
/*  Variáveis globais / Escopo de Programa / Públicas */
struct produtoc DBase[ SIZEDB ];


int verifica_cod(int telefonecod);
void cadastrop(int telefone,int pos );
int verificar_pos (void);
void consulta (void);
void consulta_nome(void);
void consulta_telefone(void);
void excluircliente (void);
int produtos_cadastros ();
void produtos_cadastrados ();


struct cadastro cliente[ DBASE ]; /* Definir tamanho do Vetor */

int main () {
    setlocale(LC_ALL,"portuguese");
    int opcao ,telefonecliente,retorno,posicao,consultacliente,produto;
    float total;
    struct cadastro cliente[ DBASE ];
  
    
    
    
    do{
        printf("=======================================================================================================================\n");
        printf("=======================================================================================================================\n");
        printf("=========================================|  1 - Novo Pedido                |===========================================\n");
        printf("=========================================|  2 - consulta cliente           |===========================================\n");
        printf("=========================================|  3 - Alterar pedido             |===========================================\n");
        printf("=========================================|  4 - Alterar endereço           |===========================================\n");
        printf("=========================================|  5 - Produtos                   |===========================================\n");
        printf("=========================================|  6 - Excluir pedido             |===========================================\n");
        printf("=========================================|  7 - Excluir cliente            |===========================================\n");
        printf("=========================================|  8 - Sair do sistema            |===========================================\n");
        printf("=======================================================================================================================\n");
        printf("=======================================================================================================================\n");
        printf("========================================== |      DIGITE UMA OPÇÃO        | ===========================================\n");
        scanf ("%d",&opcao);
        getchar();
        system ("cls");

       if (opcao == 1){
              consulta(); 
              printf("\nFazer o pedido \n"); 
              produtos_cadastros( );
              produtos_cadastrados( );
              system("pause");
              system("cls");
        }
        
        if (opcao==2){
            printf( "1 - Consulta por nome \n");
            printf(" 2 - Consulta por telefone\n");
            scanf("%d",&consultacliente);
            if ( consultacliente == 1){
                consulta_nome();
                
            }
            if ( consultacliente==2){
                consulta_telefone();
                
            }
            if ( consultacliente != 1 && consultacliente!= 2 ){
              system("cls\n");
               printf("codigo invalido\n");
               system("pause");
               system("cls");
           }
        } 
        if (opcao==5){
            printf("1- Alterar valor \n");
            printf("2- produto cadastrado\n");
            printf("3- excluir cadastro\n");
            scanf("%d",&produto);
             fflush(stdin);
             system("cls");
             if(produto==1){
                scanf("%f", &total);
                 DBase[0].valor = total ;
                 
                 DBase[0].valor*1;
                 printf("%.2f",DBase[0].valor);
                 
               system("pause");
             }
            if (produto==2){
                produtos_cadastros( );
               produtos_cadastrados( );
               
               scanf("%f", &total);
                 DBase[0].valor = total ;
                 
                 
               system("pause");
               system("cls");
              
        }
    
        
        }
        if ( opcao==7){
          excluircliente ();
        }
      
            
            
    }while (opcao != 8); //Diferente de 8


}

void cadastrop(int cod,int pos){
    int cont;
    setlocale(LC_ALL,"portuguese");
    do {
        pos = verificar_pos();
        cliente[pos].telefone=cod;
        // NUMERO 
        printf("Telefone: %d\n",cliente[pos].telefone); // Faltou a posição
        printf("Nome: ");
        gets(cliente[pos].nome);
        printf("Endereço:");
        gets(cliente[pos].endereco );
        printf("Quadra: ");
        gets(cliente[pos].quadra);
        printf("Lote: ");
        gets(cliente[pos].lote);
        printf("Complemento: ");
        gets(cliente[pos].complemento);
        printf("Setor: ");
        gets (cliente[pos].setor);
        printf("Cidade :");
        gets(cliente[pos].cidade);
        cliente[pos].vazio = 1; //tinha r no lugar de z
        cont== 1;
    }while (cont==1);

  return;
 }

int verificar_pos (void){
  int cont = 0 ;
  while (cont <= 200){
    if (cliente[cont].vazio == 0 )
        return (cont);
    cont ++ ;
    }

  return (-1);
}


// Funções são colocadas fora de outras e não dentro.
int verifica_cod(int cod){
  int cont ;
  for ( cont = 0 ; cont < 200 ; cont ++ ){
    if (cliente[cont].telefone== cod){
        return 0 ; } }

  return (1);
}

void consulta (void){

 setlocale(LC_ALL,"portuguese");
  int cont=0 , telefone ,posicao,retorno ;
  
  printf ("Digite o telefone: ");
  scanf("%d",&telefone);
  fflush(stdin);
  system("cls");
  
    while (cont<= 200){
        if (cliente[cont].telefone == telefone)
        {
            if (cliente[cont].vazio == 1)
            {
            printf("\n Telefone: %d \nNome: %s \nEndereço: %s \nQuadra: %s \nLote: %s \nComplemento: %s \nSetor: %s \nCidade: %s \n ",cliente[cont].telefone,cliente[cont].nome,cliente[cont].endereco,cliente[cont].quadra,cliente[cont].lote,cliente[cont].complemento,cliente[cont].setor,cliente[cont].cidade);
            system("pause")    ;
            
            break;
            }
        }
        cont ++ ;
        
    }
    if (cliente[cont].telefone != telefone){
           posicao = verificar_pos();
           retorno = verifica_cod(telefone);
           cadastrop(telefone,posicao);   
          
           
        }
        
}
void consulta_nome(void){
     setlocale(LC_ALL,"portuguese");
    int cont=0 ;
    char nome[100] ;
  
  printf ("Digite o nome: ");
  scanf("%s",&nome);
  fflush(stdin);
  system("cls");
  
   while (cont<= 200){
        if (strcmp(cliente[cont].nome,nome)== 0)
        {
           
            printf("\n Telefone: %d \nNome: %s \nEndereço: %s \nQuadra: %s \nLote: %s \nComplemento: %s \nSetor: %s \nCidade: %s \n ",cliente[cont].telefone,cliente[cont].nome,cliente[cont].endereco,cliente[cont].quadra,cliente[cont].lote,cliente[cont].complemento,cliente[cont].setor,cliente[cont].cidade);
            break;
            
        }
        cont ++ ;
        
    }  
      
if (strcmp(cliente[cont].nome,nome)== 0){ 
            printf("Não existe cadastro com esse nome ");
            system("pause");
        }
        system("cls");
}

void consulta_telefone(void){
     setlocale(LC_ALL,"portuguese");
    int cont=0 , telefone  ;
  
  printf ("Digite o telefone: ");
  scanf("%d",&telefone);
  fflush(stdin);
  system("cls");
  
    while (cont<= 200){
        if (cliente[cont].telefone == telefone)
        {
            if (cliente[cont].vazio == 1)
            {
            printf("\n Telefone: %d \nNome: %s \nEndereço: %s \nQuadra: %s \nLote: %s \nComplemento: %s \nSetor: %s \nCidade: %s \n ",cliente[cont].telefone,cliente[cont].nome,cliente[cont].endereco,cliente[cont].quadra,cliente[cont].lote,cliente[cont].complemento,cliente[cont].setor,cliente[cont].cidade);
            system("pause")    ;
            system("cls");
            break;
            }
        }
        cont ++ ;
        
    }
    if (cliente[cont].telefone != telefone){
        printf("Não existe cadastro com esse telefone");
    }
    system("cls");
}

int produtos_cadastros( ){


    DBase[0].codigo    = 1;
    DBase[0].descricao = *(struct descricao_stt *)"Liquigás";
    DBase[0].valor     = 60.00;
    DBase[0].quantidade= 0;

    DBase[1].codigo    = 2;
    DBase[1].descricao = *(struct descricao_stt *)"Consigás";
    DBase[1].valor     = 58.00;
    DBase[1].quantidade= 0;

    DBase[2].codigo    = 3;
    DBase[2].descricao = *(struct descricao_stt *)"Nacional Gás";
    DBase[2].valor     = 58.00;
    DBase[2].quantidade= 0;
    
    DBase[3].codigo    = 4;
    DBase[3].descricao = *(struct descricao_stt *)"Gás Completo";
    DBase[3].valor     = 175.00;
    DBase[3].quantidade= 0;
    
    DBase[4].codigo    = 5;
    DBase[4].descricao = *(struct descricao_stt *)"Água nina";
    DBase[4].valor     = 7.00;
    DBase[4].quantidade= 0;
    
    DBase[5].codigo    = 6;
    DBase[5].descricao = *(struct descricao_stt *)"Água Gold";
    DBase[5].valor     = 7.00;
    DBase[5].quantidade= 0;
    
    DBase[6].codigo    = 7;
    DBase[6].descricao = *(struct descricao_stt *)"Água Ypê";
    DBase[6].valor     = 8.00;
    DBase[6].quantidade= 0;
    
    DBase[7].codigo    = 8;
    DBase[7].descricao = *(struct descricao_stt *)"Água Completa";
    DBase[7].valor     = 58.00;
    DBase[7].quantidade= 0;
    
    
    
    return( 0 ); 
    
    }

    
void produtos_cadastrados( ){
  int i;

    for( i = 0; i < SIZEDB; i++ )
           { if( 0 != DBase[ i ].codigo )
                   printf( "ID: %d \t \t%s \t%.2f\n",
                             DBase[ i ].codigo,
                            &DBase[ i ].descricao,
                             DBase[ i ].valor ); }
                            return; }
void excluircliente (){
    int tel ,cont ;
    char resp  ;
    
        printf("Digite o telefone ");
        scanf("%d",&tel);
        fflush(stdin);
        
        for ( cont =0 ; cont <= 200 ;cont++){
            if (cliente[cont].telefone == tel ){
                if (cliente[cont].vazio == 1 ){
                    printf("\n Telefone: %d \nNome: %s \nEndereço: %s \nQuadra: %s \nLote: %s \nComplemento: %s \nSetor: %s \nCidade: %s \n ",cliente[cont].telefone,cliente[cont].nome,cliente[cont].endereco,cliente[cont].quadra,cliente[cont].lote,cliente[cont].complemento,cliente[cont].setor,cliente[cont].cidade);
                    getchar();
                    printf("\n Deseja exluir esse pedido? s/n ");
                    scanf("%s",&resp);
                    if ((resp== 's') || (resp == 'S')){
                        cliente[cont].vazio=0;
                        cliente[cont].telefone= NULL;
                        printf("\n Exclusão feita com sucesso \n ");
                        system("pause");
                        system("cls");
                    }
                    else if ((resp== 'n') || (resp == 'N')){
                        printf("Exclusão  cancelada ! \n ");
                        system("pause");
                        system("cls");
                    }
                }
            }
        }
       
}
 

  • Obrigado 1
Postado

@albert igo   seu código está bom ,  precisa organizar melhor,  e ele mostra sempre  o primeiro cadastro porque ele está cadastrando na mesma posição, então você precisa usar um contador que seja uma variável global para que ela possa ser usada em qualquer parte do programa, e que mantenha o mesmo valor dentro do programa e apenas possa ser incrementada na hora de cadastrar, e decrementada na função excluircliente ,então coloquei essa variável pos como sendo o contador de cadastro ,  e  precisa usar o else junto com os if's  e o switch / case  é mais apropriado do que o if  nesse caso ,  então seu código com algumas modificações ficaria assim :

#include<stdio.h>
#include <ctype.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#include<locale.h>

#define DBASE 200 /*!< Tamanho do vetor */
#define SIZEDB 10
struct cadastro{
    int telefone;
    char nome        [200];
    char endereco    [200];
    char quadra      [200]; /*// É char não int*/
    char lote        [200]; /*// É char não int*/
    char complemento [200];
    char setor       [200];
    char cidade      [200];
    int vazio,cod;
};
struct descricao_stt{
    char string[ 20 ];
};
struct produtoc{
    struct descricao_stt descricao;
    int                  quantidade;
    int                  codigo;
    float                valor;
};
/*  VARIABLE GLOBAL */
/*  Variáveis globais / Escopo de Programa / Públicas */
struct produtoc DBase[ SIZEDB ];
int verifica_cod(int telefonecod    );
void cadastrop(int telefone,int pos );
int  verificar_pos        ();
void consulta             ();
void consulta_nome        ();
void consulta_telefone    ();
void excluircliente       ();
int  produtos_cadastros   ();
void produtos_cadastrados ();
void posicao              ();
void mosta_letra          ();
int pos;
int tela[7][80];  /* bit 0 1 2 3 4 5 6 7 */
int letras[6][7] ={{ 28, 34, 65, 65,127, 65, 65}, /* letra A*/
                   { 60, 66,  1,  1,113, 98, 92}, /* letra G*/
                   { 63,  1,  1, 31,  1,  1, 63}, /* letra E*/
                   { 65, 67, 69, 73, 81, 97, 65}, /* letra N*/
                   { 31, 33, 65, 65, 65, 33, 31}, /* letra D*/
                   { 28, 34, 65, 65,127, 65, 65}};/* letra A*/
struct cadastro cliente[ DBASE ]; /* Definir tamanho do Vetor */
int main (){
    setlocale(LC_ALL,"");
    posicao();
    int opcao ,telefonecliente,retorno,posicao,consultacliente,produto;
    float total;
    struct cadastro cliente[ DBASE ];
    do{
        system ("cls");
        mosta_letra();
        printf("================================================================================");
        printf("================================================================================");
        printf("========================|  1 - Novo Pedido                |=====================");
        printf("========================|  2 - consulta cliente           |=====================");
        printf("========================|  3 - Alterar pedido             |=====================");
        printf("========================|  4 - Alterar endereço           |=====================");
        printf("========================|  5 - Produtos                   |=====================");
        printf("========================|  6 - Excluir pedido             |=====================");
        printf("========================|  7 - Excluir cliente            |=====================");
        printf("========================|  8 - Sair do sistema            |=====================");
        printf("================================================================================");
        printf("================================================================================");
        printf("======================== |       DIGITE UMA OPÇÃO        | =====================");
        printf("                                      ----- \n");
        printf("                                     |     |\n");
        printf("                                     |  ");
        scanf ("%d",&opcao);
        switch(opcao){
        case 1:
            consulta();
            printf("\nFazer o pedido \n");
            produtos_cadastros();
            produtos_cadastrados();
            system("pause");
            break;
        case 2:
            printf(" 1 - Consulta por nome\n");
            printf(" 2 - Consulta por telefone\n");
            scanf("%d",&consultacliente);
            if ( consultacliente == 1){
                consulta_nome();
            }
            if ( consultacliente==2){
                consulta_telefone();
            }
            if ( consultacliente != 1 && consultacliente!= 2 ){
                system("cls\n");
                printf("codigo invalido\n");
                system("pause");
            }
            break;
        case 5:
            printf("1- Alterar valor \n");
            printf("2- produto cadastrado\n");
            printf("3- excluir cadastro\n");
            scanf("%d",&produto);
            fflush(stdin);
            system("cls");
            if(produto==1){
                scanf("%f", &total);
                DBase[0].valor = total ;
                DBase[0].valor*1;
                printf("%.2f",DBase[0].valor);
                system("pause");
            }
            else
                if (produto==2){
                    produtos_cadastros( );
                    produtos_cadastrados( );
                    scanf("%f", &total);
                    DBase[0].valor = total ;
                    system("pause");
                    system("cls");
                }
                break;
        case 7:
            excluircliente ();
            break;
        }
    }while (opcao != 8); /*//Diferente de 8*/
    return 0;
}
void cadastrop(int cod,int posR){
    int cont;
    do {
        cliente[pos].telefone=cod;
        /*// NUMERO*/
        printf("Telefone: %d\n",cliente[pos].telefone); /*// Faltou a posição*/
        printf("Nome: ");
        gets(cliente[pos].nome);
        printf("Endereço:");
        gets(cliente[pos].endereco );
        printf("Quadra: ");
        gets(cliente[pos].quadra);
        printf("Lote: ");
        gets(cliente[pos].lote);
        printf("Complemento: ");
        gets(cliente[pos].complemento);
        printf("Setor: ");
        gets (cliente[pos].setor);
        printf("Cidade :");
        gets(cliente[pos].cidade);
        cliente[pos].vazio = 1; /*//tinha r no lugar de z*/
        cont== 1;
        pos++;
    }while (cont==1);
    return;
}
int verificar_pos(){
    int cont = 0 ;
    while (cont <= 200){
    if(cliente[cont].vazio == 0 )
        return (cont);
        cont ++ ;
    }
    return (-1);
}
/*// Funções são colocadas fora de outras e não dentro.*/
int verifica_cod(int cod){
    int cont ;
    for ( cont = 0 ; cont < 200 ; cont ++ ){
        if (cliente[cont].telefone== cod){
            return 0;
        }
    }
    return (1);
}
void consulta(){
    int cont=0,telefone,posicao,retorno ;
    printf ("Digite o telefone: ");
    scanf("%d",&telefone);
    fflush(stdin);
    system("cls");
    while (cont<= 200){
        if (cliente[cont].telefone == telefone){
            if (cliente[cont].vazio == 1){
                printf("\nTelefone: ---- %d\nNome: -------- %s",cliente[cont].telefone,cliente[cont].nome       );
                printf("\nEndereço: ---- %s\nQuadra: ------ %s",cliente[cont].endereco,cliente[cont].quadra     );
                printf("\nLote: -------- %s\nComplemento: - %s",cliente[cont].lote    ,cliente[cont].complemento);
                printf("\nSetor: ------- %s\nCidade: ------ %s",cliente[cont].setor   ,cliente[cont].cidade     );
                system("pause");
                break;
            }
        }
        cont ++ ;
    }
    if (cliente[cont].telefone != telefone){
        retorno = verifica_cod(telefone);
        cadastrop(telefone,posicao);
    }
}
void consulta_nome(){
    int cont=0,flag ;
    char nome[100] ;
    printf ("Digite o nome: ");
    scanf("%s",&nome);
    fflush(stdin);
    system("cls");
    flag=0;
    while (cont<= pos){
        if (strcmp(cliente[cont].nome,nome)== 0){
            flag=1;
            printf("\nTelefone: ---- %d\nNome: -------- %s",cliente[cont].telefone,cliente[cont].nome       );
            printf("\nEndereço: ---- %s\nQuadra: ------ %s",cliente[cont].endereco,cliente[cont].quadra     );
            printf("\nLote: -------- %s\nComplemento: - %s",cliente[cont].lote    ,cliente[cont].complemento);
            printf("\nSetor: ------- %s\nCidade: ------ %s",cliente[cont].setor   ,cliente[cont].cidade     );
            break;
        }
        cont ++ ;
    }
    if(flag==0){
        printf("Não existe cadastro com esse nome");
    }
    printf("\n    Tecle");
    getch();
}
void consulta_telefone(){
    int cont=0 , telefone,flag;
    printf ("Digite o telefone: ");
    scanf("%d",&telefone);
    fflush(stdin);
    system("cls");
    flag=0;
    while (cont<= pos){
        if (cliente[cont].telefone == telefone){
            if (cliente[cont].vazio == 1){
                printf("\nTelefone: ---- %d\nNome: -------- %s",cliente[cont].telefone,cliente[cont].nome       );
                printf("\nEndereço: ---- %s\nQuadra: ------ %s",cliente[cont].endereco,cliente[cont].quadra     );
                printf("\nLote: -------- %s\nComplemento: - %s",cliente[cont].lote    ,cliente[cont].complemento);
                printf("\nSetor: ------- %s\nCidade: ------ %s",cliente[cont].setor   ,cliente[cont].cidade     );
                flag=1;
                break;
            }
        }
        cont ++ ;
    }
    if (flag==0){
        printf("Não existe cadastro com esse telefone");
    }
    printf("\n    Tecle");
    getch();
}
int produtos_cadastros( ){
    DBase[0].codigo    = 1;
    DBase[0].descricao = *(struct descricao_stt *)"Liquigás";
    DBase[0].valor     = 60.00;
    DBase[0].quantidade= 0;

    DBase[1].codigo    = 2;
    DBase[1].descricao = *(struct descricao_stt *)"Consigás";
    DBase[1].valor     = 58.00;
    DBase[1].quantidade= 0;

    DBase[2].codigo    = 3;
    DBase[2].descricao = *(struct descricao_stt *)"Nacional Gás";
    DBase[2].valor     = 58.00;
    DBase[2].quantidade= 0;

    DBase[3].codigo    = 4;
    DBase[3].descricao = *(struct descricao_stt *)"Gás Completo";
    DBase[3].valor     = 175.00;
    DBase[3].quantidade= 0;

    DBase[4].codigo    = 5;
    DBase[4].descricao = *(struct descricao_stt *)"Água nina";
    DBase[4].valor     = 7.00;
    DBase[4].quantidade= 0;

    DBase[5].codigo    = 6;
    DBase[5].descricao = *(struct descricao_stt *)"Água Gold";
    DBase[5].valor     = 7.00;
    DBase[5].quantidade= 0;

    DBase[6].codigo    = 7;
    DBase[6].descricao = *(struct descricao_stt *)"Água Ypê";
    DBase[6].valor     = 8.00;
    DBase[6].quantidade= 0;

    DBase[7].codigo    = 8;
    DBase[7].descricao = *(struct descricao_stt *)"Água Completa";
    DBase[7].valor     = 58.00;
    DBase[7].quantidade= 0;

    return( 0 );
}
void produtos_cadastrados(){
    int i;
    for( i = 0; i < SIZEDB; i++ ){
        if( 0 != DBase[ i ].codigo )
            printf( "ID: %d \t \t%s \t%.2f\n",
            DBase[ i ].codigo,
            &DBase[ i ].descricao,
            DBase[ i ].valor );
    }
    return;
}
void excluircliente (){
    int tel ,cont,j ;
    char resp  ;
    system("cls");
    printf("Digite o telefone ");
    scanf("%d",&tel);
    fflush(stdin);
    for ( cont =0 ; cont <= pos ;cont++){
        if (cliente[cont].telefone == tel ){
            if (cliente[cont].vazio == 1 ){
                printf("\nTelefone: ---- %d\nNome: -------- %s",cliente[cont].telefone,cliente[cont].nome       );
                printf("\nEndereço: ---- %s\nQuadra: ------ %s",cliente[cont].endereco,cliente[cont].quadra     );
                printf("\nLote: -------- %s\nComplemento: - %s",cliente[cont].lote    ,cliente[cont].complemento);
                printf("\nSetor: ------- %s\nCidade: ------ %s",cliente[cont].setor   ,cliente[cont].cidade     );
                printf("\n Deseja exluir esse pedido? S/N ");
                scanf("%s",&resp);
                if (toupper(resp) == 'S'){/* passa para maiúscula */
                    for(j=cont;j<pos;j++){
                        cliente[j] = cliente[j+1];
                    }
                    pos--;
                    printf("\n Exclusão feita com sucesso \n ");
                    system("pause");
                }
                else
                    if (toupper(resp) == 'N'){
                        printf("Exclusão  cancelada ! \n ");
                        system("pause");
                    }
                }
            }
        }
}
void posicao(){/*caracteres 7 x 7*/
    int c=20,i,j,k,a;
    for(i=0;i<6;i++){
        for(j=0;j<7;j++){
            a=letras[i][j];/* bits ao contrário 0 1 2 3 4 5 6 */
            for(k=0;k<7;k++){
                if(a % 2 == 1){
                    tela[j][k+c]=1;
                }
                a/=2;
            }
        }
        c+=8;
    }
}
void mosta_letra(){
    int i,j;
    for(i=0;i<7;i++)
        for(j=0;j<80;j++)
            if(tela[i][j]==1)
                printf("#");
            else
                printf(" ");
}

 

  • Obrigado 1
Postado

@devair1010

preciso de uma luz para conseguir implementar um alteração de um cadastro feito !

eu peço para o usuário para digitar o telefone que ele deseja alterar eu vou mostra o cadastro , certo ?

ai que eu fiquei com duvida ,como eu posso altera esse usuário e deixa ele na mesma posição ? 

eu poderia usar o código abaixo e com a posição cont  alterar ?

void list(){ // todos os clientes
    int cont;   
    system("cls");
    printf("------------------------------------------------------------\n");
    printf("CLIENTES CADASTRADOS \n");
    printf("------------------------------------------------------------\n");
    for(cont=0;cont<200;cont++){
        
        if(cliente[cont].telefone != 0 ){
                printf("\nTelefone: %d\nNome: ------ %s",cliente[cont].telefone,cliente[cont].nome       );
                printf("\nAvenida/Rua: %s\nQuadra: ---- %s",cliente[cont].endereco,cliente[cont].quadra  );
                printf("\nLote: --- %s\nComplemento: %s",cliente[cont].lote    ,cliente[cont].complemento);
                printf("\nSetor: -- %s\nCidade: ---- %s\n",cliente[cont].setor   ,cliente[cont].cidade   );
                printf("-------------------------------------------------------------------\n");
    }

   system("pause");
        system("cls");
}

  • Curtir 1
Postado

@albert igo        melhor usar uma função para cada caso, assim use essa função de listar apenas para isso , e para alterar um cadastro você pede um dado do cadastro , que pode ser o nome ou o telefone, e procura no struct, e encontrando o cadastro você pede para inserir o novo dado , por exemplo o telefone, então você coloca esse novo dado no struct na posição onde 
esse cadastro foi encontrado, assim :

printf("Telefone Atual %d\n",cliente[cont].telefone);
printf("Digite O Novo Telefone ");
fflush(stdin);
gets(cliente[cont].telefone);

então se estiver usando cont para fazer a busca , será nesse mesmo cont que o novo dado será colocado . 

aqui esse seu código mais organizado :

void list(){ /*// todos os clientes*/
    int cont;
    system("cls");
    printf("------------------------------------------------------------\n");
    printf("     CLIENTES CADASTRADOS \n");
    printf("------------------------------------------------------------\n");
    for(cont=0;cont<pos;cont++){
        printf("\nTelefone: ---- %d\nNome: -------- %s",cliente[cont].telefone,cliente[cont].nome       );
        printf("\nAvenida/Rua: - %s\nQuadra: ------ %s",cliente[cont].endereco,cliente[cont].quadra     );
        printf("\nLote: -------- %s\nComplemento: - %s",cliente[cont].lote    ,cliente[cont].complemento);
        printf("\nSetor: ------- %s\nCidade: ------ %s",cliente[cont].setor   ,cliente[cont].cidade     );
        printf("\n-------------------------------------------------------------------\n");
    }
    system("pause");
}

 

Postado

@devair1010

Obrigado por organizar conseguir altera também o endereço !

haha , eu posso excluir a função verifica_cod, já que ela não tem mais utilidade , isso ?

 

  • Curtir 1
  • 2 semanas depois...
Postado

@devair1010  Obrigado !

Preciso de mais uma ajuda , se possível. 

Estou na parte do pedido , porém, que queria verificar todos os pedidos .

Estou com dificuldade porque esta dando um erro irei coloca o codigo se possível da uma ajuda é na função pedido!

Gostaria de saber também se eu consigo imprimi o pedido e o endereço . 

hahaha me passa algum contato seu que quero da uma recompensa se por possível . 

 

 

#include<stdio.h>
#include <ctype.h>
#include<conio.h>
#include <conio.c>
#include<stdlib.h>
#include<string.h>
#include<locale.h>
#include<time.h>

#define DBASE 200 /*!< Tamanho do vetor */
#define SIZEDB 10
struct cadastro{
    int telefone;
    char nome        [200];
    char endereco    [200];
    char complemento [200];
    char setor       [200];
    char cidade      [200];
    int vazio,cod;
};

void cadastrop(int telefone,int pos );
void consulta             ();
void consulta_nome        ();
void consulta_telefone    ();
void excluircliente       ();
void list                 ();
void altera_tel           ();
void altera_nome          ();
void altera_endereco      ();
int Altera_valor_todos    ();
void produtos_cadastrados ();
void Altera_um_produto    ();
void pedido               ();
void cabecalho            ();
void cabecalho1           ();
int pos;
int codcliente;

int codl =1, codc=2 ,codn=3  , codaguan=4, codaguag=5, codaguay=6, codg=7,coda=8 , cod_vscg = 9 , cod_vsca=10;
int quant [100], codpedido[100],contador;
char nome_produto[100];
char vscg[20] = "Vasilhame com gás", vsca[25]="Vasilhame com Água";
char liqui[10]="Liquigás", consi[10]="ConsiGás" , nacional[13]="Nacional Gás" , completo[15] ="Vasilhame Gás" ,agua[15]="Vasilhame Água", aguanina[10] ="Água Nina", aguagold[10]="Água Gold" , aguaype[10]="Agua Ypê";
float valor[100];
float valorl , valorc , valorn , valornina , valorgold , valorype, valorvs, valorvsa;
float valorgl, valorgc, valorgn;
float valorvsnina, valorvsgold,valorvsype;

struct cadastro cliente[ DBASE ]; /* Definir tamanho do Vetor */
int main (){
    setlocale(LC_ALL,"");
    int opcao ,telefonecliente,retorno,posicao,consultacliente,produto,altera;
    float total;
    struct cadastro cliente[ DBASE ];
    

 
    do{
        system ("cls");
        system("color 7F");
        textcolor(0);
        
        printf("\n");
        printf("\t\t\t\t\t================================================================================\n");
        printf("\t\t\t\t\t================================================================================\n");
        printf("\t\t\t\t\t========================|  1 - Novo Pedido                |=====================\n");
        printf("\t\t\t\t\t========================|  2 - consulta cliente           |=====================\n");
        printf("\t\t\t\t\t========================|  3 - Alterar pedido             |=====================\n");
        printf("\t\t\t\t\t========================|  4 - Alterar endereço           |=====================\n");
        printf("\t\t\t\t\t========================|  5 - Produtos                   |=====================\n");
        printf("\t\t\t\t\t========================|  6 - Excluir pedido             |=====================\n");
        printf("\t\t\t\t\t========================|  7 - Excluir cliente            |=====================\n");
        printf("\t\t\t\t\t========================|  8 - Sair do sistema            |=====================\n");
        printf("\t\t\t\t\t================================================================================\n");
        printf("\t\t\t\t\t================================================================================\n");
        printf("\t\t\t\t\t======================== |       DIGITE UMA OPÇÃO        | =====================\n");
        printf("\t\t\t\t\t                                      ----- \n");
        printf("\t\t\t\t\t                                     |     |\n");
        printf("\t\t\t\t\t                                     |  ");
        scanf ("%d",&opcao);
        switch(opcao){
        case 1:
            consulta();
            printf("\nFazer o pedido \n");
            pedido();
            printf("\n");
            printf("\nTecle ENTER para volta ao menu");
            getch();
            break;
        case 2:
            system("cls");
            printf("\n");
            printf("\n");
            printf("\t\t\t\t\t--------------------------------------------------------------------------------\n");
            printf("\t\t\t\t\t                            CONSULTAS DE CLIENTES \n");
            printf("\t\t\t\t\t--------------------------------------------------------------------------------\n");
            printf("\t\t\t\t\t--------------------------------------------------------------------------------\n");
            printf("\t\t\t\t\t-------------------------| 1 - consulta todos clientes   |----------------------\n");
            printf("\t\t\t\t\t-------------------------| 2 - Consulta por nome         |----------------------\n");
            printf("\t\t\t\t\t-------------------------| 3 - Consulta por telefone     |----------------------\n");
            printf("\t\t\t\t\t--------------------------------------------------------------------------------\n");
            printf("\t\t\t\t\t--------------------------------------------------------------------------------\n");
            printf("\t\t\t\t\t-------------------------|       DIGITE UMA OPÇÃO        |----------------------\n");
            printf("\t\t\t\t\t                                      ----- \n");
            printf("\t\t\t\t\t                                     |     |\n");
            printf("\t\t\t\t\t                                     |  ");

            scanf("%d",&consultacliente);
            if (consultacliente == 1){
                list ();
            }
            if ( consultacliente == 2){
                consulta_nome();
            }
            if ( consultacliente==3){
                consulta_telefone();
            }
            if ( consultacliente != 1 && consultacliente!= 2 && consultacliente!=3){
                system("cls\n");
                printf("\t\t\t\t\tcodigo invalido\n");
                system("pause");
            }
            break;
            case 4:
                printf("\t\t\t\t\t-----------------------------------------------------------------------\n");
                printf("\t\t\t\t\t                     ALTERAÇÃO           ");
                printf("\t\t\t\t\t-----------------------------------------------------------------------\n");
                printf("\t\t\t\t\t 1 - Altera telefone:\n");
                printf("\t\t\t\t\t 2 - Altera Nome:\n");
                printf("\t\t\t\t\t 3 - Altera Endereço:\n");
                scanf("%d",&altera);
                if ( altera==1){
                    altera_tel();
                }
                if (altera==2){
                    altera_nome();
                }
                if (altera==3){
                    altera_endereco();
                }
                break ;
        case 5:
            printf("\t\t\t\t\t1- produto cadastrado\n");
            printf("\t\t\t\t\t2- cadastra todos valores \n");
            printf("\t\t\t\t\t3- Altera Um Produto\n");
            scanf("%d",&produto);
            fflush(stdin);
            system("cls");
            if (produto==1){
             produtos_cadastrados();
            }
            if(produto==2){
             Altera_valor_todos ();
            }
            if (produto==3){
             Altera_um_produto(); 
                }
                break;
        case 7:
            excluircliente ();
            break;
        }
    }while (opcao != 8); /*//Diferente de 8*/
    return 0;
}
void cadastrop(int cod,int posR){
    int cont,codpos;
    printf("\t\t\t\t\t------------------------------------------------------------\n");
    printf("\t\t\t\t\t     CADASTRADO  \n");
    printf("\t\t\t\t\t------------------------------------------------------------\n");
    do {
        codpos=codcliente+1;
        cliente[pos].telefone=cod;
        cliente[pos].cod=codpos;
        printf("\t\t\t\t\tcod: %d\n",cliente[pos].cod);
        /*// NUMERO*/
        printf("\t\t\t\t\tTelefone:---- %d\n",cliente[pos].telefone); 
        printf("\t\t\t\t\tNome:-------- ");
        gets(cliente[pos].nome);
        printf("\t\t\t\t\tEndereço:---- ");
        gets(cliente[pos].endereco );
        printf("\t\t\t\t\tComplemento:- ");
        gets(cliente[pos].complemento);
        printf("\t\t\t\t\tSetor:------- ");
        gets (cliente[pos].setor);
        printf("\t\t\t\t\tCidade:------ ");
        gets(cliente[pos].cidade);
        cliente[pos].vazio = 1; 
        cont== 1;
        pos++;
        codcliente= codpos;
        
    }while (cont==1);
    return;
}


void consulta(){
    
    printf("\n");
    int cont=0,telefone,posicao,retorno ;
    printf ("\t\t\t\t\tDigite o telefone: ");
    scanf("%d",&telefone);
    fflush(stdin);
    system("cls");
    while (cont<= 200){
        if (cliente[cont].telefone == telefone){
            if (cliente[cont].vazio == 1){
                printf("\t\t\t\t\t------------------------------------------------------------\n");
                printf("\t\t\t\t\t    CLIENTE CADASTRADO \n");
                printf("\t\t\t\t\t------------------------------------------------------------\n");
                printf("\n\t\t\t\t\tTelefone: ---- %d\n\t\t\t\t\tNome: -------- %s",cliente[cont].telefone,cliente[cont].nome       );
                printf("\n\t\t\t\t\tEndereço: ---- %s\n\t\t\t\t\tcomplemento: - %s",cliente[cont].endereco,cliente[cont].complemento);
                printf("\n\t\t\t\t\tSetor: ------- %s\n\t\t\t\t\tCidade: ------ %s",cliente[cont].setor   ,cliente[cont].cidade     );
                break;
            }
        }
        cont ++ ;
    }
    if (cliente[cont].telefone != telefone){
        cadastrop(telefone,posicao);
    }
}
void consulta_nome(){
    int cont=0,flag ;
    char nome[100] ;

    printf ("\t\t\t\t\tDigite o nome: ");
    scanf("%s",&nome);
    fflush(stdin);
    system("cls");
    flag=0;
    while (cont<= pos){
        if (strcmp(cliente[cont].nome,nome)== 0){
            flag=1;
            
            printf("\t\t\t\t\t------------------------------------------------------------\n");
            printf("\t\t\t\t\t     CLIENTES CADASTRADOS \n");
            printf("\t\t\t\t\t------------------------------------------------------------\n");
            printf("\n\t\t\t\t\tTelefone: ---- %d\n\t\t\t\t\tNome: -------- %s",cliente[cont].telefone,cliente[cont].nome       );
            printf("\n\t\t\t\t\tEndereço: ---- %s\n\t\t\t\t\tcomplemento: - %s",cliente[cont].endereco,cliente[cont].complemento);
            printf("\n\t\t\t\t\tSetor: ------- %s\n\t\t\t\t\tCidade: ------ %s",cliente[cont].setor   ,cliente[cont].cidade     );
            break;
        }
        cont ++ ;
    }
    if(flag==0){
        printf("\t\t\t\t\tNão existe cadastro com esse nome!\n");
    }
    
    printf("\n    Tecle");
    getch();
}
void consulta_telefone(){
    int cont=0 , telefone,flag;
    printf ("\t\t\t\t\tDigite o telefone: ");
    scanf("%d",&telefone);
    fflush(stdin);
    system("cls");
    flag=0;
    while (cont<= pos){
        if (cliente[cont].telefone == telefone){
            if (cliente[cont].vazio == 1){
                printf("\t\t\t\t\t------------------------------------------------------------\n");
                printf("\t\t\t\t\t     CLIENTES CADASTRADOS \n");
                printf("\t\t\t\t\t------------------------------------------------------------\n");
                printf("\n\t\t\t\t\tTelefone: ---- %d\n\t\t\t\t\tNome: -------- %s",cliente[cont].telefone,cliente[cont].nome       );
                printf("\n\t\t\t\t\tEndereço: ---- %s\n\t\t\t\t\tcomplemento: - %s",cliente[cont].endereco,cliente[cont].complemento);
                printf("\n\t\t\t\t\tSetor: ------- %s\n\t\t\t\t\tCidade: ------ %s",cliente[cont].setor   ,cliente[cont].cidade     );
                flag=1;
                break;
            }
        }
        cont ++ ;
    }
    if (flag==0){
        printf("\t\t\t\t\tNão existe cadastro com esse telefone");
    }
    printf("\n  \t\t\t\t\t  Tecle");
    getch();
}

void excluircliente (){
    int tel ,cont,j ;
    char resp  ;
    int flag;
    system("cls");
    flag=0;
    printf("\t\t\t\t\t------------------------------------------------------------\n");
    printf("\t\t\t\t\t     CLIENTES CADASTRADOS \n");
    printf("\t\t\t\t\t------------------------------------------------------------\n");
    for(cont=0;cont<pos;cont++){
         if (cliente[cont].vazio == 1){
                printf("\n\t\t\t\t\tTelefone: ---- %d\n\t\t\t\t\tNome: -------- %s",cliente[cont].telefone,cliente[cont].nome       );
                printf("\n\t\t\t\t\tEndereço: ---- %s\n\t\t\t\t\tcomplemento: - %s",cliente[cont].endereco,cliente[cont].complemento);
                printf("\n\t\t\t\t\tSetor: ------- %s\n\t\t\t\t\tCidade: ------ %s",cliente[cont].setor   ,cliente[cont].cidade     );
                printf("\n\t\t\t\t\t-------------------------------------------------------------------\n"                          );
                flag=1;
        }
     if (flag==0) {
        printf("\t\t\t\t\tNão existe cadastros");
       }
    }
    printf("\n\t\t\t\t\tVerifique o número que deseja excluir e  tecle enter!\n");
    getch();
    system("cls");
    
    printf("\t\t\t\t\tDigite o telefone do cadastro que deseja excluir");
    scanf("%d",&tel);
    fflush(stdin);
    for ( cont =0 ; cont <= pos ;cont++){
        if (cliente[cont].telefone == tel ){
            if (cliente[cont].vazio == 1 ){
                
                printf("\n\t\t\t\t\tTelefone: ---- %d\n\t\t\t\t\tNome: -------- %s",cliente[cont].telefone,cliente[cont].nome       );
                printf("\n\t\t\t\t\tEndereço: ---- %s\n\t\t\t\t\tcomplemento: - %s",cliente[cont].endereco,cliente[cont].complemento);
                printf("\n\t\t\t\t\tSetor: ------- %s\n\t\t\t\t\tCidade: ------ %s",cliente[cont].setor   ,cliente[cont].cidade     );
                printf("\n");
                printf("\n\t\t\t\t\t Deseja exluir esse cadastro? S/N ");
                scanf("%s",&resp);
                if (toupper(resp) == 'S'){/* passa para maiúscula */
                    for(j=cont;j<pos;j++){
                        cliente[j] = cliente[j+1];
                    }
                    pos--;
                    printf("\n\t\t\t\t\t Exclusão feita com sucesso \n ");
                    system("pause");
                }
                else
                    if (toupper(resp) == 'N'){
                        printf("\t\t\t\t\tExclusão  cancelada ! \n ");
                        system("\t\t\t\t\tpause");
                    }
                }
            }
        }
}

void list(){ /*// todos os clientes*/
    int cont,flag;
    system("cls");
    flag=0;
    printf("\t\t\t\t\t------------------------------------------------------------\n");
    printf("\t\t\t\t\t     CLIENTES CADASTRADOS \n");
    printf("\t\t\t\t\t------------------------------------------------------------\n");
    for(cont=0;cont<pos;cont++){
         if (cliente[cont].vazio == 1){
                printf("\n\t\t\t\t\tTelefone: ---- %d\n\t\t\t\t\tNome: -------- %s",cliente[cont].telefone,cliente[cont].nome       );
                printf("\n\t\t\t\t\tEndereço: ---- %s\n\t\t\t\t\tcomplemento: - %s",cliente[cont].endereco,cliente[cont].complemento);
                printf("\n\t\t\t\t\tSetor: ------- %s\n\t\t\t\t\tCidade: ------ %s",cliente[cont].setor   ,cliente[cont].cidade     );
                printf("\n\t\t\t\t\t-------------------------------------------------------------------\n"                          );
                flag=1;
        }
     if (flag==0) {
        printf("\t\t\t\t\tNão existe cadastros");
       }
    }
    printf("\n \t\t\t\t\t   Tecle");
    getch();
}

void altera_tel() {
    int cont=0 , telefone,flag;
    char opc;
    printf ("\t\t\t\t\tDigite o telefone atual: ");
    scanf("%d",&telefone);
    fflush(stdin);
    system("cls");
    flag=0;
    while (cont<= pos){
        if (cliente[cont].telefone == telefone){
            if (cliente[cont].vazio == 1){
                printf("\t\t\t\t\tTelefone Atual: %d ",cliente[cont].telefone);
                printf("\t\t\t\t\tDigite O Novo Telefone ");
                fflush(stdin);
                scanf("%d",&cliente[cont].telefone);
                flag=1;
                printf("\t\t\t\t\tTelefone alterado!");
                break;
            }
        }
        cont ++ ;
    }
    if (flag==0){
        printf("\t\t\t\t\tNão existe cadastro com esse telefone");
    }
     printf("\n \t\t\t\t\t   Tecle");
    getch();
}

void altera_nome() {
     int cont=0,flag ;
    char nome[100] ;
    printf ("\t\t\t\t\tDigite o nome atual : ");
    scanf("%s",&nome);
    fflush(stdin);
    system("cls");
    flag=0;
    while (cont<= pos){
        if (strcmp(cliente[cont].nome,nome)== 0){
            flag=1;
            printf("\t\t\t\t\tNome Atual %s \n",cliente[cont].nome);
            printf("\t\t\t\t\tDigite O Novo Nome: ");
            fflush(stdin);
            scanf("%s",cliente[cont].nome);
            printf("\t\t\t\t\tNome alterado !");
            break;
            
        }
        cont ++ ;
    }
    if(flag==0){
        printf("\t\t\t\t\tNão existe cadastro com esse nome");
    }
     printf("\n \t\t\t\t\t   Tecle");
    getch();
}   
void altera_endereco(){
    int cont=0,flag ,telefone, opc;
    char nome[100] ;
    printf("\n");
    printf("\t\t\t\t\tAltera o Endereço com :\n");
    printf("\t\t\t\t\t-----------------------\n");
    printf("\t\t\t\t\t 1 - Telefone\n");
    printf("\t\t\t\t\t 2 - Nome\n");
    scanf("%d",&opc);
    switch (opc){
        case 1 :
             printf ("\t\t\t\t\tDigite o telefone Atual: ");
             scanf("%d",&telefone);
              fflush(stdin);
              system("cls");
              flag=0;
    while (cont<= pos){
        if (cliente[cont].telefone == telefone){
            if (cliente[cont].vazio == 1){
                printf("\t\t\t\t\t------------------------------------------------------------\n");
                printf("\t\t\t\t\t     Alteração \n");
                printf("\t\t\t\t\t------------------------------------------------------------\n");
                printf("\n\t\t\t\t\tTelefone: %d\n\t\t\t\t\tNome: %s\n",cliente[cont].telefone,cliente[cont].nome     );
                printf("\t\t\t\t\tEndereço:");
                gets(cliente[cont].endereco);
                printf("\t\t\t\t\tComplemento:");
                gets(cliente[cont].complemento);
                printf("\t\t\t\t\tSetor: " );
                gets(cliente[cont].setor );
                printf("\t\t\t\t\tCidade: ------ %s\n",cliente[cont].cidade );
                flag=1;
                printf("\t\t\t\t\tEndereço alterado !");
                break;
            }
        }
        cont ++ ;
    }
    if (flag==0){
        printf("\t\t\t\t\tNão existe cadastro com esse telefone");
    }
            break;
            
            case 2 :
                printf ("\t\t\t\t\tDigite o nome: ");
    scanf("%s",&nome);
    fflush(stdin);
    system("cls");
    flag=0;
    while (cont<= pos){
        if (strcmp(cliente[cont].nome,nome)== 0){
            flag=1;
                printf("\t\t\t\t\t------------------------------------------------------------\n");
                printf("\t\t\t\t\t     Alteração \n");
                printf("\t\t\t\t\t------------------------------------------------------------\n");
                printf("\n\t\t\t\t\tTelefone: %d\n\t\t\t\t\tNome: %s\n",cliente[cont].telefone,cliente[cont].nome     );
                printf("\t\t\t\t\tEndereço:");
                gets(cliente[cont].endereco);
                printf("\t\t\t\t\tComplemento:");
                gets(cliente[cont].complemento);
                printf("\t\t\t\t\tSetor: " );
                gets(cliente[cont].setor );
                printf("\t\t\t\t\tCidade: ------ %s",cliente[cont].cidade );
            break;
        }
        cont ++ ;
    }
    if(flag==0){
        printf("\t\t\t\t\tNão existe cadastro com esse nome");
    }
                break ;
                default :
                    printf("\t\t\t\t\tOpção Invalida");
    }
     printf("\n \t\t\t\t\t   Tecle");
    getch();
}

void cabecalho(){
     printf("\n");
     printf("\t\t\t\t\t------------------------------------------------------------\n");
     printf("\t\t\t\t\t     Altera  valores \n");
     printf("\t\t\t\t\t------------------------------------------------------------\n");
     printf("\n");
}
int Altera_valor_todos (){
    

    cabecalho() ;
    printf("\t\t\t\t\t%d\t",codl);
    printf("%s\t",liqui);
    printf("R$:");
    fflush(stdin);
    scanf("%f",&valorl);
    printf("\t\t\t\t\tAlterado com sucesso");
    getch();
    system("cls");
    
    cabecalho();
    printf("\t\t\t\t\t%d\t",codc);
    printf("%s\t",consi);
    fflush(stdin);
    printf("R$:");
    scanf("%f",&valorc);
    printf("\t\t\t\t\tAlterado com sucesso");
    getch();
    system("cls");
    
    cabecalho();
    printf("\t\t\t\t\t%d\t",codn);
    printf("%s\t",nacional);
    fflush(stdin);
    printf("R$:");
    scanf("%f",&valorn);
    printf("\t\t\t\t\tAlterado com sucesso");
    getch();
    system("cls");
    
    cabecalho();
    printf("\t\t\t\t\t%d\t",codaguan);
    printf("%s\t",aguanina);
    fflush(stdin);
    printf("R$:");
    scanf("%f",&valornina);
    printf("\t\t\t\t\tAlterado com sucesso");
    getch();
    system("cls");
    
    cabecalho();
    printf("\t\t\t\t\t%d\t",codaguag);
    printf("%s\t",aguagold);
    fflush(stdin);
    printf("R$:");
    scanf("%f",&valorgold);
    printf("\t\t\t\t\tCadastrado com sucesso");
    getch();
    system("cls");
    
    cabecalho();
    printf("\t\t\t\t\t%d\t",codaguay);
    printf("%s\t",aguaype);
    fflush(stdin);
    printf("R$:");
    scanf("%f",&valorype);
    printf("\t\t\t\t\tAlterado com sucesso");
    getch();
    system("cls");
    
    cabecalho();
    printf("\t\t\t\t\t%d\t",codg);
    printf("%s\t",completo);
    fflush(stdin);
    printf("R$:");
    scanf("%f",&valorvs);
    printf("\t\t\t\t\tAlterado com sucesso");
    getch();
    system("cls");
    
    cabecalho();
    printf("\t\t\t\t\t%d\t",coda);
    printf("%s\t",agua);
    fflush(stdin);
    printf("R$:");
    scanf("%f",&valorvsa);
    printf("\t\t\t\t\tAlterado com sucesso");
    getch();
    system("cls");
    

}
void cabecalho1 (){
    printf("\n");
    printf("\t\t\t\t\t------------------------------------------------------------\n");
    printf("\t\t\t\t\t                    produtos  \n");
    printf("\t\t\t\t\t------------------------------------------------------------\n");
    printf("\t\t\t\t\t------------------------------------------------------------\n");
    printf("\t\t\t\t\tID\t Produto\t Valor\n");
    printf("\t\t\t\t\t------------------------------------------------------------\n");
    printf("\n");    
}
void produtos_cadastrados(){


    cabecalho1 ();
    printf("\t\t\t\t\t%d\t",codl);
    printf("%s\t",liqui);
    printf("R$:%2.2f\n",valorl);
    
    
    printf("\t\t\t\t\t%d\t",codc);
    printf("%s\t",consi);
    printf("R$:%2.2f\n",valorc);
    
    
    printf("\t\t\t\t\t%d\t",codn);
    printf("%s\t",nacional);
    printf("R$:%2.2f\n",valorn);
    
    
    printf("\t\t\t\t\t%d\t",codaguan);
    printf("%s\t",aguanina);
    printf("R$:%2.2f\n",valornina);

    
    printf("\t\t\t\t\t%d\t",codaguag);
    printf("%s\t",aguagold);
    printf("R$:%2.2f\n",valorgold);

    
    printf("\t\t\t\t\t%d\t",codaguay);
    printf("%s\t",aguaype);
    printf("R$:%2.2f\n",valorype);
    
    
    printf("\t\t\t\t\t%d\t",codg);
    printf("%s \t",completo);
    printf("R$:%2.2f\n",valorvs);
    valorgl=valorvs+valorl;
    valorgc=valorvs+valorc;
    valorgn=valorvs+valorn;

    
    printf("\t\t\t\t\t%d\t",coda);
    printf("%s \t",agua);
    printf("R$:%2.2f\n",valorvsa);
    valorvsnina=valorvsa+valornina;
    valorvsgold=valorvsa+valorgold;
    valorvsype =valorvsa+valorype;
    
    
    printf("\n\t\t\t\t\t%d\t",cod_vscg);
    printf("%s\n",vscg);
    printf("\t\t\t\t\t%s \tR$:%2.2f\n",liqui,valorgl);
    printf("\t\t\t\t\t%s \tR$:%2.2f\n",consi,valorgc);
    printf("\t\t\t\t\t%s \tR$:%2.2f\n",nacional,valorgn);
    printf("\n");
    
    
    printf("\n\t\t\t\t\t%d\t",cod_vsca);
    printf("%s\n",vsca);
    printf("\t\t\t\t\t%s \tR$:%2.2f\n",aguanina,valorvsnina);
    printf("\t\t\t\t\t%s \tR$:%2.2f\n",aguagold,valorvsgold);
    printf("\t\t\t\t\t%s \tR$:%2.2f\n",aguaype,valorvsype);

   printf("\n\t\t\t\t\tTecle enter ! \n");
   getch();

}
void Altera_um_produto(){
    int cod ,cont;

do{
    cont==1; 
    produtos_cadastrados();
    
    printf("\t\t\t\t\tDigite o ID do produto que deseja alterar o valor:");
    printf("   ");
    scanf("%d",&cod);

    if (cod==1){
    printf("\t\t\t\t\t%d\t",codl);
    printf("%s\t",liqui);
    fflush(stdin);
    printf("R$:");
    scanf("%f",&valorl);
    printf("\t\t\t\t\tAlterado com sucesso!");
    getch();
    system("cls");
}
    
    else if (cod == 2){
    printf("\t\t\t\t\t%d\t",codc);
    printf("%s\t",consi);
    fflush(stdin);
    printf("R$:");
    scanf("%f",&valorc);
    printf("\t\t\t\t\tAlterado com sucesso!");
    getch();
    system("cls");
    
}
    
    else if (cod == 3){
    printf("\t\t\t\t\t%d\t",codn);
    printf("%s\t",nacional);
    fflush(stdin);
    printf("R$:");
    scanf("%f",&valorn);
    printf("\t\t\t\t\tAlterado com sucesso!");
    getch();
    system("cls");
    
}
    

    
    else if (cod==4){
    printf("\t\t\t\t\t%d\t",codaguan);
    printf("%s\t",aguanina);
    fflush(stdin);
    printf("R$:");
    scanf("%f",&valornina);
    printf("\t\t\t\t\tAlterado com sucesso!");
    getch();
    system("cls");
    
}
    
    else if(cod==5){
    printf("\t\t\t\t\t%d\t",codaguag);
    printf("%s\t",aguagold);
    fflush(stdin);
    printf("R$:");
    scanf("%f",&valorgold);
    printf("\t\t\t\t\tAlterado com sucesso!");
    getch();
    system("cls");
    
}
    
    else if (cod==6){
    printf("\t\t\t\t\t%d\t",codaguay);
    printf("%s\t",aguaype);
    fflush(stdin);
    printf("R$:");
    scanf("%f",&valorype);
    printf("\t\t\t\t\tAlterado com sucesso!");
    getch();
    system("cls");
    
}
   else if ( cod ==7){
       printf("\t\t\t\t\t%d\t",codg);
    printf("%s\t",completo);
    fflush(stdin);
    printf("R$:");
    scanf("%f",&valorvs);
    printf("\t\t\t\t\tAlterado com sucesso!");
    getch();
    system("cls");
   }
   
   else if (cod==8){
       printf("\t\t\t\t\t%d\t",coda);
    printf("%s\t",agua);
    fflush(stdin);
    printf("R$:");
    scanf("%f",&valorvsa);
    printf("\t\t\t\t\tAlterado com sucesso!");
    getch();
    system("cls");
   }
    else{
        printf("\t\t\t\t\tID inválido !");
        
    }
}while(cont==1); 

void pedido(){
    produtos_cadastrados();
    int id,contpedido,cont;
    float contp;
    
do{
    cont==1;
    contpedido = contador+1;
    contp = contador+1;
    
    printf("\n Digite o ID do produto !");
    printf("        ");
    scanf("%d",&id);
    fflush(stdin);
    
    if (id==1){
       printf("Quantidade ? ");
       scanf("%d",&quant[contpedido]);
       fflush(stdin);
       valor[contp] = valorl*quant;
       codpedido[contpedido]= contpedido;
       nome_produto[contpedido]= liqui;
       printf("%d\t %s\t %.2f",quant[contpedido], nome_produto[contpedido] ,valor[contpedido]);
       contador=contpedido;
       
    }
}while(cont==1);
}

  • Curtir 1
Postado

@albert igo      nessa função pedido está dando erro por que você colocou a variável contp do tipo float e precisa ser do tipo int,   e você está multiplicando uma variável por um vetor :

void pedido(){
    produtos_cadastrados();
    int id,contpedido,cont;
    int contp;/* indicador de posição no vetor precisa ser um int*/
    do{
        cont=1;
        contpedido = contador+1;
        contp = contador+1;
        printf("\n Digite o ID do produto !");
        printf("        ");
        scanf("%d",&id);
        fflush(stdin);
        if (id==1){
            printf("Quantidade ? ");
            scanf("%d",&quant[contpedido]);
            fflush(stdin);
            valor[contp] = valorl*quant[0];/* para multiplicar precisa informar a posição no vetor */
            codpedido[contpedido]= contpedido;

 

Postado

@devair1010  perfeito entendi , porém eu queria que ficasse em um vetor para o nome do produto para criar uma função que mostre todos os pedidos ! 

Essa é a ultima parte do programa , tenho que apresentar dia 18 

 

  • Curtir 1
Postado

@albert igo       a opção 1 do menu principal  não está cadastrando um novo produto, mas sim os dados do cliente, então precisa criar essa função de cadastrar pedidos e depois outra para mostrar os pedidos. então como seria esse pedido ?  o que ele deve armazenar no pedido ? 

Postado

@devair1010  tem uma função que eu cadastrei os produtos . 

na opção 1 no menu o usuário  cadastra o cliente se tiver cadastro ele já realiza o pedido . 

Minha duvida é o seguinte como faco para coloca o nome do produto , pois o valor e a quantidade já estão na posição pedido . 

Tipo o primeiro pedido tem uma quantidade um produto e um valor o proximo pode ter outro valor .

Dai eu vou criar uma função que mostra todos os pedidos pedido[1 , valor[1] , quant[1] ,nome_produto[1].

tipo lista todos os pedidos , porém eu não consigo chamar a variavel char que declarei com o nome na função pedido . 

  • Curtir 1
Postado

@albert igo        na sua variável nome_produto precisa colocar a quantidade de caracteres tem nela,

nome_produto[100][30] ;

e colocar a variável contpedido lá no inicio antes da main, e a opção 9 do menu principal 

printf("========================|  9 - Mostrar Pedidos            |=====================");

e dento do switch coloque essa opção 9

case 9:
    mostra_pedidos();
    break;

e sua função de pedidos e mostra_pedidos seria assim  :

void pedido(){
    produtos_cadastrados();
    int id;
    char cont='s';
    do{
        printf("\n Digite o ID do produto !");
        printf("        ");
        fflush(stdin);
        scanf("%d",&id);
        printf("Quantidade ? ");
        fflush(stdin);
        scanf("%d",&quant[contpedido]);
        valor[contpedido]     = valorl*quant[contpedido];
        codpedido[contpedido] = id;
        if (id==1)
            strcpy(nome_produto[contpedido],"liquigas");
        else
            if(id==2)
                 strcpy(nome_produto[contpedido],"ConsiGas");
            else
                if(id==3)
                    strcpy(nome_produto[contpedido],"Nacional Gas");
                else
                    if(id==4)
                        strcpy(nome_produto[contpedido],"Agua Nina");
                    else
                        if(id==5)
                            strcpy(nome_produto[contpedido],"Agua Gold");
                        else
                            if(id==6)
                                strcpy(nome_produto[contpedido],"Agua Ype");
                            else
                                if(id==7)
                                    strcpy(nome_produto[contpedido],"Vasilhame Gas");
                                else
                                    if(id==8)
                                        strcpy(nome_produto[contpedido],"Vasilhame Agua");
                                    else
                                        if(id==9)
                                            strcpy(nome_produto[contpedido],"Vasilhame Com Gas");
                                        else
                                            if(id==10)
                                                strcpy(nome_produto[contpedido],"Vasilhame Com Agua");
        contpedido++;
        printf("Quer Fazer Outro Pedido S/N");
        fflush(stdin);
        scanf("%c",&cont);
        cont=toupper(cont);
    }while(cont != 'N');
}
void mostra_pedidos(){
    int i,j;
    system("cls");
    printf("============  Listando Todos Os Pedidos  ==============\n\n");
    printf("  ID     Valor   Quant    Nome Prod\n\n");
    for(i=0;i<contpedido;i++)
        printf("  %d       %.f       %d        %s\n",codpedido[i],valor[i],quant[i],nome_produto[i]);
    printf("\n\n      Tecle !");
    getch();
}

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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!