Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
Joao Emmanuel

Ajuda programa de cadastro

Recommended Posts

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


    

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim!! Mas qual o problema que ocorre quando você tenta incluir um cliente e exclui-lo? A IDE te gera qual erro em Tempo de execução ou nada é gerado, e simplesmente não funciona? Qual IDE esta a usar?

Compartilhar este post


Link para o post
Compartilhar em outros sites
Joao Emmanuel    0
  • Autor do tópico
  • @Victor Santos Reis  
    Sim, está rodando normal sem erros.Uso o DEV.
    Eu incluo normal, mas quando fecho o arquivo não salva e perco tudo.
    A função liberar e excluir cliente, após pegar o nome do cliente ele não faz nada.

    Editado por Joao Emmanuel

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário

    Entre para seguir isso  





    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

    ×