Libreta de Contactos

0   comentarios

Simple libreta de contactos hecha en ++

// Nombre: libreta.cpp
// Autor: Andrés Alonzo y Alonzo
// Descripcion: Libreta de contactos
// Fecha: 15/Oct/2013
// Web:  www.miscpp.com.ar
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

#ifdef __gnu_linux__
  #define limpia_pantalla system( "clear" );
#elif macintosh
    #define limpia_pantalla system( "clear" );
#elif __WINDOWS__
    #define limpia_pantalla system( "cls" );
#else
    #define limpia_pantalla cout<<"Error!";
#endif
#define CantidadSoportada 3
using namespace std;
int cantidad=0;
struct dTelefonico
    {
        char nombre[30];
        char sexo;
        int edad;
        char tel[15];
    }dir[CantidadSoportada];
int limpiarCIN()
{
    // Funcion para limpiar las entradas en CIN
    // esto evita errores a la hora de leer un dato
    cin.clear();
    cin.ignore(10000,'\n');
}
int ingresar()
{
    limpia_pantalla;
    if(cantidad<CantidadSoportada)
    {
        limpiarCIN();
        cout<<" ___________________ \n|                   |\n| AGREGAR CONTACTO: |\n|___________________|\n\n";
        cout<<"Ingrese el nombre del contacto:\n>>";
        gets(dir[cantidad].nombre);
        cout<<"Ingrese el sexo del contacto (M/F):\n>>";
        cin>>dir[cantidad].sexo;
        cout<<"Ingrese la edad del contacto:\n>>";
        cin>>dir[cantidad].edad;
        cout<<"Ingrese el numero telefonico del contacto:\n>>";
        cin>>dir[cantidad].tel;
        cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nGuardando...\n\n\n\n\n\n\n\n\n\n\n\n\n";
        cantidad ++;
        sleep(1);
        limpia_pantalla;


    }
    else
    {
        cout<<" __         \n";
        cout<<"|_  _ _ _  _\t\tEspacio insuficiente en memoria.\n";
        cout<<"|__| | (_)| \n\n";
        cin.get();
    }
    return 0;
}

int buscarPorNombre()
{
    limpiarCIN();
    cout<<" ___________________ \n|                   |\n| BUSCAR CONTACTO:  |\n|___________________|\n\n";
    cout<<"\n\nIngresa el nombre a buscar:\n>> ";
    char nombreB[30];
    int resultados =0;
    gets(nombreB);
    limpia_pantalla;
    cout<<" ___________________ \n|                   |\n| RESULTADOS :      |\n|___________________|\n\n";
    for(int i=0;i<CantidadSoportada;i++)
    {
        if(strcmp(nombreB,dir[i].nombre) == 0)
        {
            resultados ++;
            cout << "__________________________________________\n";
            cout << "Nombre: "<<dir[i].nombre<<"\n";
            cout << "Tel:    "<<dir[i].tel<<"\n";
            cout << "Edad:   "<<dir[i].edad<<"\n";
            cout << "Sexo:   "<<dir[i].sexo<<"\n";
            cout << "__________________________________________\n";
        }
    }
    if(resultados ==0)
        {
            cout << "__________________________________________\n";
            cout<<" __         \t\tNo se han enontrado \n";
            cout<<"|_  _ _ _  _\t\tresultados de: \n";
            cout<<"|__| | (_)| \t\t"<<nombreB<<"\n";
            cout << "__________________________________________\n";
        }
    //limpiarCIN();
    cin.get();
}

int verTodos()
{
    limpiarCIN();
    for(int i=0;i<CantidadSoportada;i++)
    {
            cout << "\n__________________________________________\n";
            cout << "Nombre: "<<dir[i].nombre<<"\n";
            cout << "Tel:    "<<dir[i].tel<<"\n";
            cout << "Edad:   "<<dir[i].edad<<"\n";
            cout << "Sexo:   "<<dir[i].sexo<<"\n";
            cout << "__________________________________________\n\n";
    }
    cin.get();
    return 0;
}

int buscarPorTel()
{
    limpiarCIN();
    cout<<" ___________________ \n|                   |\n| BUSCAR CONTACTO:  |\n|___________________|\n\n";
    cout<<"\n\nIngresa el # a buscar:\n>> ";
    char telB[15];
    int resultados =0;
    gets(telB);
    limpia_pantalla;
    cout<<" ___________________ \n|                   |\n| RESULTADOS :      |\n|___________________|\n\n";
    for(int i=0;i<CantidadSoportada;i++)
    {
        if(strcmp(telB,dir[i].tel) == 0)
        {
            resultados ++;
            cout << "__________________________________________\n";
            cout << "Nombre: "<<dir[i].nombre<<"\n";
            cout << "Tel:    "<<dir[i].tel<<"\n";
            cout << "Edad:   "<<dir[i].edad<<"\n";
            cout << "Sexo:   "<<dir[i].sexo<<"\n";
            cout << "__________________________________________\n";
        }
    }
    if(resultados ==0)
        {
            cout << "__________________________________________\n";
            cout<<" __         \t\tNo se han enontrado \n";
            cout<<"|_  _ _ _  _\t\tresultados de: \n";
            cout<<"|__| | (_)| \t\t"<<telB<<"\n";
            cout << "__________________________________________\n";
        }
    //limpiarCIN();
    cin.get();
}


int main()
{
    int opcion =0;
    do{
        limpia_pantalla;
        cout << "__________________________________________\n";
        cout << "      Libreta de Contactos en C++\n";
        cout << "__________________________________________\n";
        cout << "  1. Agregar contacto.\n";
        cout << "  2. Buscar contacto por nombre.\n";
        cout << "  3. Buscar contacto por # de telefono.\n";
        cout << "  4. Ver todos los contactos.\n";
        cout << "  5. Salir\n";
        cout << "__________________________________________\n";
        cout << ">> ";
        cin>>opcion;
        switch(opcion)
        {
            case 1:
                ingresar();
                break;
            case 2:
                buscarPorNombre();
                break;
            case 3:
                buscarPorTel();
                break;
            case 4:
                verTodos();
                break;
            case 5:
                break;
            default:
                limpia_pantalla;
                cout<<" __         \n";
                cout<<"|_  _ _ _  _\t\tOpcion invalida.\n";
                cout<<"|__| | (_)| \n\n";
                sleep(1);

        }

    }while(opcion != 5);

}