Progama Agenda que armazena em forma de arquivo

Progama Agenda que armazena em forma de arquivo

/*Agenda que armazena em forma de arquivo*/

#include <stdio.h>

#include <string.h>

#include <conio.h>

#include <stdlib.h>

struct pessoa{

int num;

char nome[50];

char telefone[20];

char datana[20];

char email[20];

char endere[20];

};

FILE *arquivo;

struct pessoa C;

/*função do menu a parece na tela*/

char menu(){

system("cls");

printf("\nxxxxxxxxxxxxx AGENDA xxxxxxxxxxxxxxx");

printf("\n____________________________________\n\n");

printf("(1)Cadastrar uma pessoa na agenda\n");

printf("(2)Listar pessoas da agenda\n");

printf("(3)buscar pessoas \n");

printf("(4)alterar pessoas\n");

printf("(5)Sair\n");

printf("\n____________________________________\n\n");

printf("Digite a opcao:");

return (getche());

}

/*______________ Pesquisa pessoas pelo numero de iscrição _______________ */

int BuscaInsc(int n){

fread(&C,sizeof(C),1,arquivo);

while(!feof(arquivo)){

if(C.num == n){

fseek(arquivo,sizeof(C),SEEK_CUR);

return 1;

}

fread(&C,sizeof(C),1,arquivo);

}

return 0;

}

///////////////////////////////////////////

/* __________________ Cadastro de pessoa _________________ */

void Cadpessoa(){

int i;

arquivo = fopen("cliente.txt","a+b");

if(arquivo == NULL)

{

printf("Erro ao abrir arquivo\n");

return;

}

printf("\n\n\nInscricao: ");

scanf("%d",&C.num);

if(C.num != 0)

{

printf("\nDigite o nome: ");

fflush(stdin);

gets(C.nome);

printf("\nDigite numero de telef: ");

fflush(stdin);

gets(C.telefone);

printf("\nDigite a data de nascimento: ");

printf("\nUse a( / )exemplo xx /xx /xxxx: ");

fflush(stdin);

gets(C.datana);

printf("\nDigite o end de e-mail: ");

fflush(stdin);

gets(C.email);

printf("\nDigite o endreco: ");

fflush(stdin);

gets(C.endere);

fwrite(&C,sizeof(C),1,arquivo);

getchar();

}

else

printf("\nJah existe Cliente Cadastrado com esse numero de Inscricao!\n");

fclose(arquivo);

}

/*__________________ Listar pessoas cadastradas _________________ */

void Listarpessoa(){

int i=0;

arquivo = fopen("cliente.txt","rw");

if(arquivo == NULL){

printf("\nErro ao abrir arquivo\n");

return;

}

fread(&C,sizeof(C),1,arquivo);

printf("\n\n\nRelacao de clientes:\n\n\n");

while(!feof(arquivo)){

i++;

printf("\nxxxxxxxxxxxxx AGENDA xxxxxxxxxxxxxxx");

printf("\n____________________________________\n\n");

printf("Inscricao: %d\n Nome: %s\n Fone: %s\n Data de nasc: %s\n End de e-mail: %s\n Edereco: %s\n"

,C.num,C.nome,C.telefone,C.datana,C.email,C.endere);

printf("\n____________________________________\n\n");

fread(&C,sizeof(C),1,arquivo);

if(feof(arquivo) || (i == 20))

{

break;

getchar();

getchar();

}

}

fclose(arquivo);

}

/*Função que realiza a busca de uma pessoa*/

void Buscapessoa()

{

int insc;

arquivo = fopen("cliente.txt","rw");

if(arquivo == NULL)

{

printf("\nErro ao abrir o arquivo\n");

}

printf("\n");

printf("\n Digite Inscricao do Cliente: ");

scanf("%d",&insc);

/*BuscaInsc(insc)*/

if(BuscaInsc(insc) == 0)

printf("\nNumero de Inscricao invalido!\n");

else

{

fread(&C,sizeof(C),1,arquivo);

printf("\nxxxxxxxxxxxxx AGENDA xxxxxxxxxxxxxxx");

printf("\n____________________________________\n\n");

printf("\nInscricao: %d\n",C.num);

printf("Nome: %s\n",C.nome);

printf("Fone: %s\n",C.telefone);

printf("Data de nascimento: %s\n",C.datana);

printf("End de e-mail: %s\n",C.email);

printf("Endereco:%s\n",C.endere);

printf("\n____________________________________\n\n");

getchar();

getchar();

}

fclose(arquivo);

}

/* __________________ altera dados das pessoas _________________ */

void alterapessoa()

{

int insc;

arquivo = fopen("cliente.txt","rw");

if(arquivo == NULL)

{

printf("\nErro ao abrir o arquivo\n");

}

printf("\n");

printf("\n Digite Inscricao do Cliente: ");

scanf("%d",&insc);

//BuscaInsc(insc);

if(BuscaInsc(insc) == 0)

printf("\nNumero de Inscricao invalido!\n");

else

{

arquivo = fopen("cliente.txt","wb");

if(arquivo == NULL)

{

printf("Erro ao abrir arquivo\n");

return;

}

printf("\n\nInscricao: ");

scanf("%d",&C.num);

if(C.num !=0)

{

printf("\nNome: ");

fflush(stdin);

gets(C.nome);

printf("\nDigite numero de telef: ");

fflush(stdin);

gets(C.telefone);

printf("\nDigite a data de nascimento: ");

fflush(stdin);

gets(C.datana);

printf("\nDigite o end de e-mail: ");

fflush(stdin);

gets(C.email);

printf("\nDigite o endreco: ");

fflush(stdin);

gets(C.endere);

printf("\nAlteracao realisada com sucesso!");

fwrite(&C,sizeof(C),1,arquivo);

getchar();

}

else

printf("\nJah existe Cliente Cadastrado com esse numero de Inscricao!\n");

fclose(arquivo);

}

}

/*__________________ Menu Principal _________________*/

main()

{

char op;

while(op!='5')

{

op = menu();

switch(op)

{

case '1':Cadpessoa();break;

case '2':Listarpessoa();break;

case '3':Buscapessoa();break;

case '4':alterapessoa();break;

}

printf("\n");

system("pause");

}

}

Comentários