agenda lista em c
#include
#include
#include
#define MAXIMO 100/*Definição da constante,que representa o tamanho máximo do vetor de contatos*/ typedef struct /*Definição do tipo de dados que vai ser armazenado na Lista sequencial*/
{ char NOME[80]; int TELCEL;
}AGENDA;
typedef struct /*Estrutura interna que da suporte,Lista propriamente dita*/
{
AGENDA vetor[MAXIMO]; int QuantE;/*Indica o final da lista*/
}LISTA;/*Ipo da lista*/
LISTA lista;/*Variável global do tipo LISTA*/
/*FUNÇÕES DE LISTA*/
/*Cria uma lista vazia.este procedimento deve ser chamado para cada nova lista antes de qualquer outra operação*/
void inicializar_lista(LISTA *lista)
{ lista->QuantE = 0;
}
int lista_vazia(LISTA *lista)
{
if(lista->QuantE == 0)
return 1;
return 0;
}
int lista_cheia(LISTA *lista)
{
if(lista->QuantE == MAXIMO)
return 1;
return 0;
}
/*Função que insere elemento do tipo LISTA ordenadamente*/
void insereOrdenada(LISTA *lista, AGENDA contato)
{
int aux,pos,flag=0;
for(pos = 0;pos < lista->QuantE;pos++)
{
for(aux = 0;
aux < strlen(lista->vetor[pos].NOME) &&
aux < strlen(contato.NOME);
aux++)
{
if(contato.NOME[aux] < lista->vetor[pos].NOME[aux])
{
flag = 1;
break;
}
else if(contato.NOME[aux] > lista->vetor[pos].NOME[aux])
break;
}
if(aux == strlen(contato.NOME))
flag = 1;
if(flag == 1)
break;
}
for(aux = lista->QuantE;aux > pos;aux--)
lista->vetor[aux] = lista->vetor[(aux - 1)];
lista->vetor[pos] = contato;
lista->QuantE++;
}
/*Função que pesquisar apenas um contato*/
void listar_contato(AGENDA contato)
{
printf("NOME DO CONTATO: %s\n",contato.NOME); printf("TELEFONE CELULAR: %d",contato.TELCEL);
}
/*Função que exibe todos os contatos adicionados a Agenda*/
void listar_contatos(LISTA *lista)
{
system("cls");/*Limpa a tela e coloca o que vem após ele em uma tela nova*/
/*Cria-se a variável auxiliar,para