Está en la página 1de 4

#include <iostream>

#include <string.h>

#include <stdio.h>

using namespace std;

#define n 100

typedef struct

int id;

char nombre[30];

char tel[30];

char direccion[50];

char email[50];

datos;

int busca(datos a[], int j);

void agrega(datos *p, int j);

void recorre(datos a[], int p, int f);

int main()

datos agenda[n];

char name[30];

char resp;

int op,pos,i,k;

pos=i=-1;

cout<<"\t\t *** Agenda ***"<<endl;

do{

cout<<"1) Agregar contacto "<<endl;

cout<<"2) Buscar contacto "<<endl;

cout<<"3) Mostrar todos los contactos "<<endl;

cout<<"4) Borrar contacto "<<endl;

cout<<"5) Editar contacto "<<endl;

cout<<"6) Salir "<<endl;

cout<<"Opcion ";

cin>>op;

switch(op)

case 1:

i++;

agrega(&agenda[i],i);

break;

case 2:

if (i==-1)

{cout<<"Agenda Vacia .... "<<endl; }

else
{

pos=busca(agenda, i);

if(pos==-1)

{ cout<<"Contacto inexistente"<<endl; }

else {

cout<<"El contacto, se encuentra en la posición "<<pos<<endl;

cout<<agenda[pos].id<<" "<<agenda[pos].nombre<<" "<<agenda[pos].tel<<" "<<agenda[pos].direccion<<" "<<agenda[pos].email<<endl;

break;

case 3:

if (i==-1)

{cout<<"Agenda Vacia .... "<<endl; }

else

cout<<"\t"<<"ID"<<"\t"<<"NOMBRE"<<"\t\t\t"<<"TELEFONO"<<"\t"<<"DIRECCCION"<<"\t\t\t"<<"EMAIL"<<endl;

cout<<"======================================================================================================"<<endl;

for(k=0;k<=i;k++)

cout<<"\t"<<agenda[k].id<<"\t"<<agenda[k].nombre<<"\t\t"<<agenda[k].tel<<"\t\t"<<agenda[k].direccion<<"\t\t\t"<<agenda[k].email<<endl;

break;

case 4:

if (i==-1)

{cout<<"Agenda Vacia .... "<<endl; }

else

pos=busca(agenda, i);

if(pos==-1)

{ cout<<"Contacto inexistente"<<endl; }

else {

cout<<"El contacto, se encuentra en la posición "<<pos<<endl;

cout<<agenda[pos].id<<" "<<agenda[pos].nombre<<" "<<agenda[pos].tel<<" "<<agenda[pos].direccion<<" "<<agenda[pos].email<<endl;

cout<<"Desea eliminarlo (s/n) ? ";

cin>>resp;

if (resp=='s' || resp=='S'){

if(pos==i){

agenda[i].id=0;

strset(agenda[i].nombre,'\0');

strset(agenda[i].tel,'\0');

strset(agenda[i].direccion,'\0');

strset(agenda[i].email,'\0');

}
else { recorre(agenda,pos,i);}

i--;

break;

case 5:

if (i==-1)

{cout<<"Agenda Vacia .... "<<endl; }

else

pos=busca(agenda, i);

if(pos==-1)

{ cout<<"Contacto inexistente"<<endl; }

else {

cout<<"El contacto, se encuentra en la posición "<<pos<<endl;

cout<<agenda[pos].id<<" "<<agenda[pos].nombre<<" "<<agenda[pos].tel<<" "<<agenda[pos].direccion<<" "<<agenda[pos].email<<endl;

cout<<"Desea editarlo (s/n) ? ";

cin>>resp;

if (resp=='s' || resp=='S'){

agrega(&agenda[pos],pos);

break;

}while(op>0 && op<6);

return 0;

void recorre(datos a[], int p, int f){

int k;

for(k=p;k<=f;k++){

a[k].id=a[k+1].id-1;

strcpy(a[k].nombre,a[k+1].nombre);

strcpy(a[k].tel,a[k+1].tel);

strcpy(a[k].direccion,a[k+1].direccion);

strcpy(a[k].email,a[k+1].email);

a[f].id=0;

strset(a[f].nombre,'\0');
strset(a[f].tel,'\0');

strset(a[f].direccion,'\0');

strset(a[f].email,'\0');

int busca(datos a[], int j)

{int k;

char name[30];

cout<<"A quien buscas ? ";

fflush(stdin);

gets(name);

for(k=0;k<=j;k++)

if(strcmp(name,a[k].nombre)==0)

{ return k; }

return -1;

void agrega(datos *p, int j)

p->id=j+1;

fflush(stdin);

cout<<"Nombre : ";

gets(p->nombre);

cout<<"Telefono : ";

gets(p->tel);

cout<<"Dirección : ";

gets(p->direccion);

cout<<"Email : ";

gets(p->email);

También podría gustarte