Ir ao conteúdo
  • Cadastre-se

Ajuda programa de cadastro


Joao Emmanuel

Posts recomendados

É um cadastro de academia, onde tem as funções:
Inserir cliente, excluir, listar clientes, informação sobre um único cliente e liberar acesso na academia?

Ainda comecei a fazer ,porém está com erro na função liberar e excluir.
Também quando fecho o programa o arquivo bin é zerado.

 

#include "arquivo.h"
int i=0;
int n_clientes;
FILE *cliente;

void incluirClientes(pessoa p[]){
    int resposta=0;
        
     do
     {
        if(!(cliente = fopen ("cliente.bin","r+b")))
              cliente=fopen ("cliente.bin","wb");
          
      
      if (p.ativo==0)
      {
                         printf("\nCadastro \n\n");
                         setlocale(LC_ALL, "Portuguese");
                printf("\nINFORMAÇÕES SOBRE O CLIENTE\n");
                printf("===============================");
                printf("\nNome do cliente:");
                   setbuf(stdin,NULL);
                   gets(p.nome);
            
                printf("\n Sexo:");
                   setbuf(stdin,NULL);
                   gets(p.sexo);
                
                printf("\nCPF:");
                   setbuf(stdin,NULL);
                   scanf("%f",(p.CPF));     
                 
                printf("\nData nascimento:\n");
                printf("Dia:");
                   setbuf(stdin,NULL);
                   scanf("%d",&(p.DN.dia));
                printf("\nMes:");
                   setbuf(stdin,NULL);
                   scanf("%d",&(p.DN.mes));
                printf("\nAno:");
                   setbuf(stdin,NULL);
                   scanf("%d",&(p).DN.ano); 
                
                  printf("\nTelefone:");
                    setbuf(stdin,NULL);
                    scanf("%s",(p.TEL));     
                
                printf("\n Objetivo:");
                    setbuf(stdin,NULL);
                    gets(p.objetivo);    
            
              
                     
                                setlocale(LC_ALL, "Portuguese");     
                            printf("\nINFORMAÇÕES SOBRE O PLANO\n");
                            printf("===============================");      
                          
                printf("\nDigite o tipo de plano: (ANUAL,SEMESTRAL,MENSAL) ");
                    setbuf(stdin,NULL);
                    gets(p.plano);
                               setlocale(LC_ALL, "Portuguese");
                               printf("\nINFORMAÇÕES SOBRE O PERSONAL \n");
                               printf("===============================");      
                printf("\nDigite o nome do personal: ");
                    setbuf(stdin,NULL);
                    gets(p.PS.nome);
                    setlocale(LC_ALL, "Portuguese");
                printf("\nEspecialização: ");
                    gets(p.PS.especializacao);
                printf("\nPopularidade (( 1 -10 )) ");
                    scanf("%d", &p.PS.popularidade); 
                               setlocale(LC_ALL, "Portuguese");           
                               printf("\nINFORMAÇÕES SOBRE A AVALIAÇÃO \n");
                               printf("==============================="); 
                printf("Status da avaliação:");
                    setbuf(stdin,NULL);
                    gets(p.avaliacao);
                               setlocale(LC_ALL, "Portuguese");
                               printf("\nINFORMAÇÕES SOBRE PAGAMENTO \n");
                               printf("==============================="); 
                printf("Pagamento em dia? SIM/NAO");
                    setbuf(stdin,NULL);
                    gets(p.pagamento);
                          
                p.ativo=1;
                
                
        }           
          
         printf("Digite (1) para cadastrar um novo cliente e (0) para sair");
         setbuf(stdin,NULL);        
         scanf("%d",&resposta);
         system("cls");
         if (resposta==1)
         i++;     
         n_clientes++;
    } while (resposta==1 && i<max && i<=n_clientes);
}
 
void listarClientes(pessoa p[]){
     int i = 0;

     do {

          printf("Cliente N %i",i+1);
    
          printf("\nnome:\t%s",p.nome);

          printf("\nSexo:\t%s",p.sexo);

          printf("\nData Nascimento:\t%d.%d.%d",p.DN.dia,p.DN.mes, p.DN.ano);

          printf("\nTelefone:\t%s\n\n",p.TEL);

          i++;
               
     } while(i<n_clientes);
     
     system("pause");
        
}

void acharCliente(pessoa p[]){
    
     char cliente[50];
    
     setlocale(LC_ALL, "Portuguese");   
     printf("Digite o nome do cliente: ");
     setbuf(stdin,NULL);
     gets(cliente);
     
     for (i=0; i<=n_clientes ; i++){
         
         if (strcmp(strupr(cliente) , strupr(p.nome))==0){
             
             printf("\nNome:\t%s",p.nome);

             printf("\nSexo:\t%s",p.sexo);
    
             printf("\n CPF:\t%d",p.CPF);

             printf("\nData Nascimento:\t%d.%d.%d",p.DN.dia,p.DN.mes, p.DN.ano);

             printf("\nObjetivo:\t%s",p.objetivo);

             printf("\nTelefone:\t%s\n\n",p.TEL);
    
             printf("Status Pagamento:\t%s\n\n",p.pagamento);
             
             system("pause");
}
}
     printf ("\n\nCliente nao cadastrado. \n\n");
     system("pause");
     
     
}

    void excluirCliente( pessoa p[])

    
    char cliente[50];
    setbuf(stdin,NULL);
    gets(cliente);
    while(i<n_clientes)
    {
        if (strcmp(cliente, p.nome))
        printf ("\n\n Cliente nao cadastrado.");
        else
        { 
            p.ativo=0;
            printf("Cliente desvinculado com sucesso.");
            
        }
        i++;
    }
    system ("pause");
}
void liberarAcesso(pessoa p[]){

    
    char cliente[50];
    setbuf(stdin,NULL);
    gets(cliente);
    while(i<n_clientes)
    {
        if (strcmp(cliente, p.nome))
        printf ("\n\n Cliente nao cadastrado.");
             else
            { 
               if (strcmp (p.pagamento, "NAO"))
                printf ("ACESSO NÃO LIBERADO. COMPAREÇA A RECEPÇÃO.");
               else
               {
                   
                    printf ("ACESSO LIBERADO.");
                    (p.acesso)++;
                    (p.frequencia)++;
                }
            }
    }
    system ("pause");
}

void salvar_dados(pessoa *dados,int tam)
{
    FILE *arquivo;
    
    if(!(arquivo=fopen("cliente.bin","w+b")))
    {
        printf("Erro ao alocar");
        exit(0);
    }
    
    fwrite(dados,sizeof(pessoa), n_clientes,arquivo);
    fclose(arquivo);
}
pessoa* carregar_dados(pessoa *cliente,int tam)
{
    FILE *arquivo;
    
    if(!(arquivo=fopen("cliente.bin","w+b")))
    {
        printf("Erro ao alocar");
        exit(0);
    }
    
    fread(cliente,sizeof(pessoa),n_clientes,arquivo);
    fclose(arquivo);
    
    return cliente;
    
    
}    


    

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