Fandom

Scratchpad

PLE:Unidad7Ejercicio03

216,262pages 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:       Unidad7Ejercicio03.cpp
Descripción:    Almacena en un array dinámico una lista de nombres y teléfonos.
                Ordena y lo guarda en un fichero.
*/
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <cstring>
using namespace std;

struct contacto
{
        char nombre[30];
        char tlf[10];
};
void lee(contacto *a, int t);
void ordena(contacto *array, int t);
void guarda(contacto *a, int t);

int main ()
{
        contacto *ag;
        int tam;

        cout << "Numero de elemntos del array ";
        cin >> tam;

        ag = new contacto[tam];

        lee(ag, tam);
        ordena(ag, tam);
        guarda(ag,tam);

        system("pause");
}

void lee(contacto *a, int t)
{
        int i;
        for(i = 0; i < t; i++)
        {
                cout << "===Contacto nº " << i << "===" << endl;
                cout << "introduzca un nombre ";
                cin >> (a+i)->nombre;
                cout << "introduzca un telefono ";
                cin >> (a+i)->tlf;
        }
}

void ordena(contacto *a, int t)
{
        int i,j,k;
        contacto aux;
        for (i = 0; i < t-1; i++)
        {
	        k = i;
        	strcpy(aux.nombre,(a+i)->nombre);
        	strcpy(aux.tlf,(a+i)->tlf);
	        for (j = i+1; j <= t-1; j++)
        	{
	        	if(strcmp((a+j)->nombre,aux.nombre) < 0)
		        {
			        k = j;
                        	strcpy(aux.nombre,(a+j)->nombre);
        	                strcpy(aux.tlf,(a+j)->tlf);
	        	}
        	}
        	strcpy((a+k)->nombre,(a+i)->nombre);
        	strcpy((a+k)->tlf,(a+i)->tlf);
        	strcpy((a+i)->nombre,aux.nombre);
        	strcpy((a+i)->tlf,aux.tlf);
        }
}

void guarda(contacto *a, int t)
{
        int i;
        ofstream fs("agenda.txt");

        for(i = 0; i < t; i++)
        {
                fs << "===Contacto nº " << i << "===" << endl;
                fs << "Nombre = ";
                fs << (a+i)->nombre << endl;
                fs << "Telefono = ";
                fs << (a+i)->tlf << endl;
        }

        fs.close();
}

Also on Fandom

Random wikia