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