Codigo de cadastro
Por: Luiz Claudio • 22/11/2015 • Abstract • 1.816 Palavras (8 Páginas) • 235 Visualizações
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
//CRIACAO DA STRUCT CONTATO - COMPLETO
struct contato{
char nome[80];
int telefone;
char email[80];
struct contato* prox;
};
typedef struct contato lista;
struct contato *aux, *inicio = NULL, *final = NULL;
/* CRIANDO LISTA VAZIA */
lista* cria(void) {
return NULL;
}
//CRIACAO DE MAIS UM CONTATO - OK
struct contato* insere_final() {
char aux_nome[80], aux_email[80];
int x, aux_telefone;
printf("\nEntre com o nome: ");
scanf("%s", aux_nome);
printf("\nEntre com o telefone: ");
scanf("%d", &aux_telefone);
printf("\nEntre com o email: ");
scanf("%s", aux_email);
aux = (struct contato*) malloc (sizeof(struct contato));
strcpy(aux->nome, aux_nome);
aux->telefone = aux_telefone;
strcpy(aux->email, aux_email);
aux -> prox = (struct contato *) NULL;
if(inicio == NULL)
inicio = final = aux; // Não existe elemento anterior e portanto há apenas um elemento na lista. Assim inicio e final são o mesmo elemento da lista.
else {
final -> prox = aux; // O elemento incluido se torna o ultimo elemento da lista. Assim o prox aponta para o elemento incluido.
final = aux;
}
return inicio;
}
//CONCEITO DE LISTA VAZIA - COMPLETO... EU ACHO
int lista_vazia(struct contato *lista) {
if(lista == NULL)
return 1;
else
return 0;
}
//VISUALIZAR LISTA - TERMINADO
void visualiza_lista_final(struct contato *lista) {
/* verifica se a lista está vazia*/
int i = 1;
if(!lista_vazia(lista)) {
aux = lista;
while(aux != (struct contato *) NULL) { // Enquando o aux for diferente de NULL. Note que aux é atualizado com o ponteiro para o proximo elemento.
printf("contato n: %d\n", i);
printf("\nNome: %s\n", aux->nome);
printf("Telefone: %d\n", aux->telefone);
printf("E-mail: %s\n\n", aux->email);
aux = aux -> prox;
i++; // Atualiza aux com o ponteiro para o proximo elemento.
}
}
/* indica que a lista está vazia*/
else
printf("\nTentou imprimir uma lista vazia!");
getch();
}
//FUNCAO DE BUSCA DE CONTATO PELO TELEFONE (Y)
struct contato* busca(struct contato* lista, int busca) {
int achou = 0; // Assume que o elemento nao existe na lista, inicializando o flag com 0
if(!lista_vazia(lista)) { // Se a lista nao estiver vazia inicia a busca
for(aux=lista;aux!=NULL;aux=aux->prox) { // Percorre a lista a partir do primeiro elemento ate que o proximo elemento seja NULL
if(aux->telefone == busca) { // Se o campo valor do elemento for igual a busca entao atualiza o flag para 1
printf("\nNome: %s\n", aux->nome);
printf("Telefone: %d\n", aux->telefone);
printf("E-mail: %s\n\n", aux->email);
getch();
achou = 1;
}
}
if(!achou) {
printf("Contato nao encontrado.\n");
getch();
}
}
else {
printf("\nTentou buscar de uma lista vazia"); // Se a lista nao exister preenchida exibe mensagem informando lista vazia
getch();
}
return NULL;
}
//FUNCAO
...