Fandom

Scratchpad

PLE:Unidad5Ejercicio24

215,674pages on
this wiki
Add New Page
Discuss this page0 Share

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

/*
Programa:         Unidad5Ejercicio24.cpp
Descripción:      Agenda electrónica.
*/
#include <iostream>
#include <stdlib>
#include <time>
using namespace std;

struct contacto
{
      char nombre[50];
      char telefono[15];

};

const unsigned int MAX = 50;

char menu();
void inserta(contacto a[], unsigned int &c, char *n, char *t);
void modifica(contacto a[], unsigned int m, char *n, char *t);
void visualiza(contacto a[], unsigned int c);
void ordena(contacto a[], unsigned int c);
void borra(contacto a[], unsigned int &c, unsigned int b);

void main()
{
        contacto agenda[MAX];
        unsigned int numContactos = 0, num;
        char nombre[50], telefono[15];
        char op;

        do
        {
                op = menu();
                switch(op)
                {
                        case 'i':       cout << "Introduzca nombre: ";
                                        cin >> nombre;
                                        cout << "Introduzca telefono: ";
                                        cin >> telefono;
                                        inserta(agenda, numContactos, nombre, telefono);
                                        break;
                        case 'm':       cout << "Introduzca el numero a modificar: ";
                                        cin >> num;
                                        if( num < numContactos)
                                        {
                                                cout << "Introduzca nombre nuevo: ";
                                                cin >> nombre;
                                                cout << "Introduzca telefono nuevo: ";
                                                cin >> telefono;
                                                modifica(agenda, num , nombre, telefono);
                                        }
                                        else
                                        {
                                                cout << endl << "No es posible modificar el elemento indicado ";
                                                cout << endl << "Pulsa una tecla para continuar...";
                                                cin.ignore();
                                                cin.get();
                                        }
                                        break;
                        case 'v':       visualiza(agenda, numContactos);
                                        break;
                        case 'o':       ordena(agenda, numContactos);
                                        break;
                        case 'b':       cout << "Introduzca numero a borrar: ";
                                        cin >> num;
                                        if( num < numContactos)
                                        {
                                                borra(agenda, numContactos, num);
                                        }
                                        else
                                        {
                                                cout << endl << "No es posible borrar el elemento indicado ";
                                                cout << endl << "Pulsa una tecla para continuar...";
                                                cin.ignore();
                                                cin.get();
                                        }
                                        break;
                }
        } while(op != 's'); // se pulsa 's' para salir
}

char menu()
{
        char op;
        system("cls");
        cout << "================= MENU DE OPCIONES =================" << endl << endl;
        cout << "i - Inserta un nuevo contacto en la agenda" << endl;
        cout << "m - Modifica un contacto de la agenda" << endl;
        cout << "b - Borra un contacto de la agenda" << endl;
        cout << "v - Visualiza los contactos de la agenda" << endl;
        cout << "o - ordena los contactos de la agenda" << endl;
        cout << "s - Salir del programa" << endl << endl;
        cout << "Opcion (i, b, m, v, o, s): ";
        cin >> op;
        return op;
}

void inserta(contacto a[], unsigned int &c, char *n, char *t)
{
        strcpy(a[c].nombre, n);
        strcpy(a[c].telefono, t);
        c++;
}

void modifica(contacto a[], unsigned int m, char *n, char *t)
{
        strcpy(a[m].nombre, n);
        strcpy(a[m].telefono, t);
}

void visualiza(contacto a[], unsigned int c)
{
        system("cls");
        cout << "Num.\tNombre\tTelefono" << endl;
        for(unsigned int i = 0; i < c; i++)
                cout << i << '\t' << a[i].nombre << '\t' << a[i].telefono << endl;
        cout << endl << "Pulsa una tecla para continuar...";
        cin.ignore();
        cin.get();
}

void ordena(contacto a[], unsigned int c)
{
        unsigned int i, j, k;
        contacto aux;

        for (i = 0; i < c-1; i++)
        {
	        k = i;
                //aux = a[i];
                strcpy(aux.nombre, a[i].nombre);
                strcpy(aux.telefono, a[i].telefono);
                for (j = i+1; j <= c-1; j++)
                {
	      	        if(strcmp(a[j].nombre,aux.nombre) < 0 )
                        {
			        k = j;
      			        //aux = a[j];
                                strcpy(aux.nombre, a[j].nombre);
                                strcpy(aux.telefono, a[j].telefono);
                        }
                }
                strcpy(a[k].nombre,a[i].nombre);
                strcpy(a[k].telefono,a[i].telefono);
                strcpy(a[i].nombre, aux.nombre);
                strcpy(a[i].telefono, aux.telefono);
        }
}

void borra(contacto a[], unsigned int &c, unsigned int b)
{
        for(unsigned int i = b; i < c-1 ; i++)
        {
                strcpy(a[i].nombre, a[i+1].nombre);
                strcpy(a[i].telefono, a[i+1].telefono);
        }
        c--;
}

Also on Fandom

Random wikia