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;
}