ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Como se da la Introducción a la programacion practica 2


Enviado por   •  29 de Abril de 2017  •  Práctica o problema  •  2.107 Palabras (9 Páginas)  •  255 Visitas

Página 1 de 9

INTRODUCCIÓN A LA PROGRAMACIÓN

FASE 3 DEPURAR PROGRAMA

PRÁCTICA 2 - EVALUACIÓN FINAL

PRESENTADO POR

TUTOR

UNIVERSIDAD NACIONAL ABIERTA Y ADISTANCIA – UNAD

ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA

DICIEMBRE 2016

INTRODUCCION

En este trabajo se realizan las lecturas de los recursos teóricos correspondientes a la Unidad 3, con el fin de obtener conocimientos e implementarlos para diseñar y desarrollar programas optimizados que solucionan problemas reales de procesamiento de datos utilizando arreglos, matrices y métodos de ordenación y búsqueda en lenguaje C++. Por medio de los diversos conocimientos adquiridos en el transcurso del curso se consigue diseñar y desarrollar programas utilizando vectores, matrices y cadenas.

DESAROLLO DE LA ACTIVIDAD

PROBLEMA

Diseñar un directorio telefónico que incluya nombre y teléfono de N personas tendiendo presente que un número telefónico no se puede repetir. El programa debe permitir ordenar los datos por número telefónico y realizar consulta por nombre.

DISEÑO DE LA SOLUCION

#include

#include

#include

#include

#include

#include

#ifdef __linux__

    #include

    #include

    #define CLEAR_SCREEN "clear"

    #define aacute "\xC3\xA1"

    #define oacute "\xC3\xB3"

    #define uacute "\xC3\xBA"

    #define Uacute "\xC3\x9A"

    int _getch ();

#else

    #include

    #define CLEAR_SCREEN "cls"

    #define aacute "\240"

    #define oacute "\242"

    #define uacute "\243"

    #define Uacute "\351"

#endif

using namespace std;

class Contacto {

public:

    string telefono;

    string nombre;

    Contacto() {}

    ~Contacto() {}

    bool operator==(const Contacto &contacto) const

    {

        return this==&contacto || this->telefono==contacto.telefono;

    }

    bool operator!=(const Contacto &contacto) const

    {

        return this!=&contacto && this->telefono!=contacto.telefono;

    }

    bool operator<(const Contacto &contacto) const

    {

        return this->telefono

    }

    Contacto& operator=(const Contacto &contacto)

    {

        if (this!=&contacto)

        {

            this->telefono = contacto.telefono;

            this->nombre = contacto.nombre;

        }

        return *this;

    }

    static void imprimir (Contacto &contacto, int *contador);

    static void imprimir_en_archivo (Contacto &contacto, ostream *archivo);

};

void   pausar        (const char *mensaje);

string leer_cadena   (const char *mensaje);

int    leer_entero   (const char *mensaje);

bool   leer_campo    (istream &archivo, char *campo, char delimitador);

const char *ruta = "contactos.tsv";

int main ()

{

    vector contactos;

    vector::iterator i;

    Contacto *dato, contacto;

    int contador=0, opcion;

    char campo[255];

    ifstream entrada (ruta);

    if (entrada!=NULL)

    {

        while (leer_campo (entrada, campo, '\t'))

        {

            contacto.telefono = campo;

            leer_campo (entrada, campo, '\n');

            contacto.nombre = campo;

            contactos.push_back (contacto);

        }

        entrada.close();

    }

    do {

        system (CLEAR_SCREEN);

        cout << "MEN" Uacute << endl;

        cout << "1.- Altas" << endl;

        cout << "2.- Consultas" << endl;

        cout << "3.- Actualizaciones" << endl;

        cout << "4.- Bajas" << endl;

        cout << "5.- Ordenar registros" << endl;

        cout << "6.- Listar registros" << endl;

        cout << "7.- Salir" << endl;

        cout << "Seleccione una opci" oacute "n:" << endl;

        do

            opcion = _getch ();

        while (opcion<'1' || opcion>'7');

        cout << (char)opcion << endl << endl;

        if (contactos.empty() && opcion!='1' && opcion!='7')

        {

            pausar ("No hay registros.\n");

            continue;

        }

        if (opcion<'5')

        {

            contacto.telefono = leer_cadena ("Ingrese el telefono del contacto");

            i = find (contactos.begin(), contactos.end(), contacto);

            dato = i != contactos.end() ? &contactos[i - contactos.begin()] : NULL;

            if (dato!=NULL)

            {

                cout << endl;

                Contacto::imprimir (*dato, &contador);

            }

        }

        if (opcion=='1' && dato!=NULL)

            cout << "El registro ya existe." << endl;

        else if (opcion>='2' && opcion<='4' && dato==NULL)

            cout << endl << "Registro no encontrado." << endl;

...

Descargar como (para miembros actualizados) txt (10 Kb) pdf (142 Kb) docx (38 Kb)
Leer 8 páginas más »
Disponible sólo en Clubensayos.com