PLE:Unidad5Ejercicio24

/* Programa:        Unidad5Ejercicio24.cpp Descripción:     Agenda electrónica. using namespace std;
 * 1) include
 * 2) include
 * 3) include
 * 1) include

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