Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Kashmir96

Agenda Telefônica completa/ manipulação de struct e arquivos

Recommended Posts

Boa noite pessoal então eu estou fazendo essa agenda e sou leigo com programação eu estava conseguindo fazer mas fiquei garrado na parte de localizar contato pois o codigo não compila, se tiver alguma boa alma caridosa de plantão que possa dar uma corrigida no que estou errando ficarei muito grato.

 

 

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

#include <string.h>

#include <ctype.h>

#define AGENDA "agenda.dat"

typedef struct numCel

{

char ddd [4];

char num [10];

} numCel;

typedef struct numFixo

{

char dd [4];

char num [10];

} numFixo;

typedef struct numComer

{

char dd [4];

char num [10];

} numComer;

typedef struct endRes

{

char rua [200];

char num [5];

char complemento [20];

char bairro [50];

char cidade [50];

char estado [3];

char cep [9];

} endRes;

typedef struct endEle

{

char mail [200];

char skype [200];

char facebook [200];

} endEle;

typedef struct indentidade

{

char nome [20];

char sobrenome [50];

char apelido [20];

} identidade;

typedef struct contato

{

identidade id;

endEle el;

endRes er;

numCel nce;

numFixo nf;

numComer nco;

} contato;

 

int verifica(char nome[])

{

fread(&contato,sizeof(agenda),1,arq);

while(!feof(arq))

{

if (strcmp(contato.id.nome,nome) == 0)

 

{

fseek(arq,-sizeof(agenda),SEEK_CUR);

return 1;

}

fread(&contato,sizeof(agenda),1,arq);

}

 

return 0;

}

void loc_contato()

{

char nome [20];

FILE *arq = fopen("agenda.dat", "rb");

if( arq == NULL)

{

printf("Erro ao abrir arquivo");

}

printf("==================================================\n");

printf("\t\t BUSCAR CONTATO\n");

printf("==================================================\n");

printf("\nNome: ");

fflush(stdin);

gets(nome);

if (verifica(nome) == 1)

{

fread(&contato., sizeof(agenda), 1, arq);

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

printf("==========================================");

printf("CONTATOS | TELEFONE \n");

printf("==========================================");

printf("%-20s %8d\n", contato.id.nome,contato.nce.num);

printf("==========================================")

 

}

else

{

printf("Contato nao existe");

}

fclose(arq);

 

}

char menu()

{

system("color 70");

printf("\n==========================================");

printf("\n\t\t MENU");

printf("\n==========================================");

printf("\n\n [1] ADICIONAR CONTATO:");

printf("\n\n [2] BUSCAR CONTATO:");

printf("\n\n [3] LISTAR CONTATOS:");

printf("\n\n [4] DELETAR CONTATO:");

printf("\n\n [5] EDITAR CONTATO:");

printf("\n\n [6] SAIR:");

printf("\n\n=======================================\n");

printf("\n INFORME A OPCAO DESEJADA: ");

}

void ins_reg()

{

contato c;

printf("==================================================\n");

printf("\t\t DIGITE OS DADOS ");

printf("\n==================================================\n");

fflush(stdin);

printf("\nNome: ");

gets(c.id.nome);

printf("\nSobrenome: ");

gets(c.id.sobrenome);

printf("\nApelido: \n");

gets(c.id.apelido);

printf("==================================================\n");

printf("\nCelular: ");

gets(c.nce.num);

printf("\nDDD: ");

gets(c.nce.ddd);

printf("\nTel residencial: ");

gets(c.nf.num);

printf("\nDDD: ");

gets(c.nf.dd);

printf("\nTel Comercial: ");

gets(c.nco.num);

printf("\nDDD: ");

gets(c.nco.dd);

printf("\n==================================================\n");

printf("\nE-mail: ");

gets(c.el.mail);

printf("\nSkype: ");

gets(c.el.skype);

printf("\nFacebook: ");

gets(c.el.facebook);

printf("\n==================================================\n");

printf("\nRua: ");

gets(c.er.rua);

printf("\nBairro: ");

gets(c.er.bairro);

printf("\nCidade: ");

gets(c.er.cidade);

printf("\nEstado: ");

gets(c.er.estado);

printf("\nComplemento: ");

gets(c.er.complemento);

printf("\nCEP: ");

gets(c.er.cep);

printf("\n==================================================\n");

 

}

void cria_arq(char *s)

{

FILE *arq = fopen(s, "wb");

fclose(arq);

}

void add_contato()

{

FILE *arq = fopen ("agenda.dat", "rb+");

if (arq == NULL)

{

cria_arq(AGENDA);

arq = fopen (AGENDA, "rb+");

}

ins_reg();

fwrite(&ins_reg, sizeof(contato), 1, arq);

fclose(arq);

}

void sair()

{

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

printf("\n=========================================================\n");

printf("\n\t\t SEU PROGRAMA FOI ENCERRADO\n");

printf("\n=========================================================\n");

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

exit(0);

}

int main()

{

char vEscolha;

while("true")

{

menu();

scanf("%c", &vEscolha);

switch(vEscolha)

{

case '1' : system("cls");

add_contato();

getch();

break;

case '2' : system("cls");

loc_contato();

getch();

break;

case '3' : break; // não precisa por enquanto

case '4' : break; //

case '5' : break; //

case '6' : system("cls");

sair();

getch();

break;

default : break;

}

}

system("PAUSE");

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.