Version:0.9 StartHTML:0000000105 EndHTML:0000010781 StartFragment:0000000152 EndFragment:0000010747
/******************************************************/
/*************** Isidro Pastor Jorda ******************/
/******************************************************/
/****************** Telematica ************************/
/******************************************************/
/************* Practica 7 Ejercicio 8 *****************/
/******************************************************/
#include <iostream.h>
#include <stdlib.h>
#include <string>
const int TOTAL = 100;
struct datos
{
string nombre, apellidos, direccion, telefono, email;
};
typedef datos Vector[TOTAL];
void ObtenerDatos (datos & dat);
void VerEntrada(datos entrada);
int main()
{
int opcion,index,i,borrar,entrada,contador;
Vector agenda; // Nuestro vector agenda
string buscar;
bool salir, encontrado;
char SN; // Para preguntas de Si/No
salir = false;
index = 0; // Nos va a indicar la posicion del vector donde debemos insertar, la siguiente a la ultima ocupada
do
{
cout << " Gestion de la Agenda de Direcciones by EnKoma V0.5 \n";
cout << " Elige una opcion: \n";
cout << " 1.- Agregar nuevas entradas \n";
cout << " 2.- Borrar una entrada \n";
cout << " 3.- Buscar por apellido \n";
cout << " 4.- Salir \n";
cout << " Opcion -> ";
cin >> opcion;
encontrado = false;
contador = 0;
switch (opcion)
{
case 1: // Agregar nuevas entradas
ObtenerDatos(agenda[index]);
cout << "\n Los datos introducidos son: \n";
VerEntrada(agenda[index]);
index++;
cout << endl;
break;
case 2: // Borrar una entrada
cin.ignore();
cout << "\n Indica el apellido de la persona que quieres borrar: ";
getline (cin, buscar);
for (i = 0; i < index; i++)
{
entrada = agenda[i].apellidos.find(buscar);
if (entrada != -1)
{
contador++;
borrar = i;
encontrado = true;
}
}
if ( !encontrado)
cout << "\n No se ha encontrado ninguna entrada correspondiente a ese apellido \n";
if (encontrado && contador < 2)
{
cout << "\n Se va a proceder al borrado de " << agenda[borrar].nombre << " " << agenda[borrar].apellidos << endl;
cout << "\n Esta seguro ? (S/N) -> ";
cin >> SN;
if (SN == 'S' || SN == 's')
{
agenda[borrar] = agenda[index - 1];
index--;
}
else
cout << "\n No se borrara el dato indicado \n";
}
if (contador > 1 )
cout << "\n Se han encontrado " << contador << " entradas con ese apellido, sea mas especifico por favor \n";
break;
case 3: // Buscar por apellido
cin.ignore();
cout << "\n Indica el apellido de la persona que quieres encontrar: ";
getline (cin, buscar);
for (i = 0; i < index; i++)
{
entrada = agenda[i].apellidos.find(buscar);
if (entrada != -1)
{
cout << "\n Entrada encontrada en la posicion " << i << endl << endl;
VerEntrada(agenda[i]);
encontrado = true;
}
}
if ( !encontrado)
cout << "\n No se ha encontrado ninguna entrada correspondiente a ese apellido \n";
break;
case 4:
salir = true;
break;
}
cout << " Pulsa una tecla para continuar";
cin.get();
system("CLS");
}
while (!salir);
// system("PAUSE");
return 0;
}
void ObtenerDatos (datos & dat)
{
cin.ignore();
cout << "\n Nombre -> ";
getline (cin, dat.nombre);
cout << "\n Apellidos -> ";
getline (cin, dat.apellidos);
cout << "\n Direccion -> ";
getline (cin, dat.direccion);
cout << "\n Telefono -> ";
getline (cin, dat.telefono);
cout << "\n email -> ";
getline (cin, dat.email);
return;
}
void VerEntrada(datos entrada)
{
cout << "\n Nombre: " << entrada.nombre << endl;
cout << " Apellidos: "<< entrada.apellidos << endl;
cout << " Direccion: "<< entrada.direccion << endl;
cout << " Telefono: "<< entrada.telefono << endl;
cout << " email: "<< entrada.email << endl;
cout << endl;
return;
}