Está en la página 1de 3

/*

Name:Lista telefnica
Copyright:2010
Author:Manuel Xavier Gabriel Ebo
Date: 05-09-10 22:56
Description:All rights reserved
*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX 50
typedef struct{
int dia;
int mes;
int ano;
}DATA;
typedef struct{
char nome[50];
int num_telef;
DATA data;
}REGISTO;
typedef struct{
REGISTO v[MAX];
int n;
}LISTA;
void CRIAR( LISTA *L) {
L->n=0;
}

void INSERIR(LISTA *L){


int i,pos;
printf("INTRODUZA A POSICAO:\n");
scanf("%d",&pos);
if((L->n==MAX)||(pos>L->n+1)||(pos<0))
printf("POSICAO INVALIDA!!!\n");
else{
for(i=L->n;i>=pos;i--)
L->v[i]=L->v[i-1];
printf("DIGITE O NOME:\n");fflush(stdin);gets(L->v[pos-1].nome);
printf("DIGITE O NUMERO DO TELEFONE:\n");fflush(stdin);scanf("%d",&L->v[pos-1].num_t
printf("DIGITE A DATA:\n");fflush(stdin);scanf("%d%d%d",&L->v[pos-1].data.dia,&L->v[
(L->n)++;
}
}
void CHEIA(LISTA L){
if(L.n==MAX)
printf("A LISTA ESTA CHEIA\n");
else
printf("A LISTA NAO ESTA CHEIA\n");
}
void TAMANHO(LISTA L){
if(L.n==0)

printf("A LISTA ESTA VAZIA\n");


else
printf("TAMANHO DA LISTA : %d\n",L.n);
}
void PESQUISAR(LISTA L){
int op;
do{

printf("ESCOLHA ABAIXO A OPCAO DESEJADA:\n\n1-VERIFICAR SE A LISTA ESTA CHEIA\n2printf("\n_______________________________________________________________________


scanf("%d",&op);
switch(op){
case 1:CHEIA(L);break;
case 2:TAMANHO(L);break;
default:printf("OPCAO INVALIDA\n");
printf("\n__________________________________________________________________
}while(op!=-1);
}

void REMOVER(LISTA *L){


REGISTO dado;
int i,pos;
printf("DIGITA A POSICAO DESEJADA:\n");
scanf("%d",&pos);
if ((pos>L->n)||(pos<=0)){
printf("A POSICAO %d NAO EXISTE DADOS!!!\n",pos);
printf("DIGITE UMA POSICAO VALIDA\n");}
else{
dado=L->v[pos-1];
for(i=pos;i<=(L->n)-1;i++)
L->v[i-1]=L->v[i];
(L->n)--;
printf("DADOS NA POSICAO %d FORAM REMOVIDOS COM SUCESSO!!!\n",pos);}}

void LISTAR( LISTA L){


int pos;
printf("DIGITA A POSICAO:\n");
scanf("%d",&pos);
if ((pos>L.n)||(pos<=0))
printf("POSICAO INVALIDA!!!\n");
else{
printf("NOME:%s\n",L.v[pos-1].nome);
printf("NUMERO DE TELEFONE: %d\n",L.v[pos-1].num_telef);
printf("DATA: %d/%d/%d\n",L.v[pos-1].data.dia,L.v[pos-1].data.mes,L.v[pos-1
}
}

main(){

LISTA lista;
int op;

printf("
\n\n");
printf(" \t\t*************************************************\n");
printf(" \t\t*
UNIVERSIDADE AGOSTINHO NETO
*\n");
printf(" \t\t*
FACULDADE DE CIENCIAS
*\n");
printf(" \t\t*
CURSO:CIENCIAS DA COMPUTACAO
*\n");
printf(" \t\t*************************************************\n");
printf(" \t\t-------------------------------------------------\n");
printf(" \t\t*-----------------------------------------------*\n");
printf(" \t\t* ELABORADO POR:MANUEL XAVIER G.EBO
*\n");
printf(" \t\t*-----------------------------------------------*\n");
printf(" \t\t* Copyright 2010
*\n");
printf(" \t\t* All rights reserved
*\n");
printf(" \t\t*-----------------------------------------------*\n\n");
printf("\n______________________________________________________________________
CRIAR(&lista);
do{

printf("ESCOLHA ABAIXO A OPCAO DESEJADA:\n\n1-LISTAR\n2-INSERIR\n3-REMOVER\n4-PES


printf("\n_______________________________________________________________________
scanf("%d",&op);system("cls");fflush(stdin);
switch(op){
case 1: LISTAR(lista);puts("\n");break;
case 2: INSERIR(&lista);puts("\n");break;
case 3: REMOVER(&lista);puts("\n");break;
case 4:PESQUISAR(lista);puts("\n");break;
printf("\n_______________________________________________________
}while(op!=-1);
printf("\t!!!PRIMA ENTER PARA SAIR!!!");
getchar();
}

También podría gustarte