Ir ao conteúdo
  • Cadastre-se

C código precisa de alterações ?


albert igo

Posts recomendados

Olá , gostaria da ajuda de vocês !

Estou desenvolvendo um programa e possui um erro quando eu procuro pelo nome , se o cliente tiver mais cadastro no mesmo nome , porém com telefone diferente ,aparece somente um nome , eu queria que aparecesse todos os nomes pesquisados mesmo que tiver vários endereços com esse nome mas com telefones diferentes .

É a minha duvida e a seguinte , eu tenho que realiza o pedido porém o valor desses produtos eu coloquei em uma função sem ser a principal , porém , não estou sabendo como chamar o valor dos produtos para o pedido .

Desde já agradeço a ajuda . Obrigado 

Segue o código abaixo .

O erro esta na função "consulta_nome()";

Minha duvida está na função" int  valorproduto ()";

Nessa eu quero saber como eu posso pegar os valores dessa função para colocar no pedido.

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

#define DBASE 200 /*!< Tamanho do vetor */

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


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

struct cadastro cliente[ DBASE ]; /* Definir tamanho do Vetor */
int main () {
    setlocale(LC_ALL,"portuguese");
    int opcao ,telefonecliente,retorno,posicao,consultacliente;
    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 - Alterar valor dos 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");
              system("pause");
        }
        
        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 ( opcao==5){
            valorproduto ();
        }
      
            
            
    }while (opcao != 8); //Diferente de 8

  return 0; 
  
}

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");
  
    for (cont=0 ;cont <= 200 ;cont++){
        if (cliente[cont].nome != nome);
        {
            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].nome != nome){ 
            printf("Não existe cadastro com esse nome ");
        }
        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  valorproduto (){
    
    int cod;

    float  liquigas , float  gasnacional ,  float aguagold ,  float aguaype;

    do{
    printf("  Altera o valor dos produtos \n ");
    printf("Valor do Liquigás:");
    scanf ("%f",&liquigas);
    printf("Valor do gás Nacional: ");
    scanf("%f",&gasnacional);
    printf("Valor da água Gold:");
    scanf("%f",&aguagold);
    printf("Valor da água Ypê:");
    scanf("%f",&aguaype);
    system("cls");
    printf("Valores alterados com sucesso ! \n");
    printf("Liquigás = %2.2f\n",liquigas);
    printf("Gás Nacional = %2.2f\n",gasnacional);
    printf("Água Gold = %2.2f\n",aguagold);
    printf("Água Ypê = %2.2f\n",aguaype);
    printf("Valores conferidos? Se corretos digite 1 se nao aguarde... \n");
     scanf ("%d",&cod); 
 }while (cod!=1);
     system ("cls");
}

 

Link para o comentário
Compartilhar em outros sites

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