martes, 13 de noviembre de 2012

Escriba un programa que lea datos de un grupo de personas (nombre, edad, sexo, dirección, teléfono)

Escriba un programa que lea datos de un grupo de personas (nombre, edad, sexo, dirección, teléfono) e indique lo siguiente:

  1.  Persona más joven del grupo.
  2.  Cuántas personas son del sexo femenino y cuántas del sexo masculino.
  3.  Mostrar los datos de todas las personas del grupo que son mayores de edad.

#include<iostream>
#include<cstdlib>
#include<cstring>
using namespace std;

const int tam=100;
const int tam_cad=50;
const int tam_sex=10;
const int tam_tlf=12;

class personas
{
    private:
    char nombre[tam_cad];
    int edad;
    char sexo[tam_sex];
    char direccion[tam_cad];
    char tlf[tam_tlf];

    public:
    void mostrar();
    friend void leer(personas [], int &, char [], int &, char [], char [], char []);
    friend int menor_edad(personas [], int &);
    friend void mayores_edad(personas [], int &);
    friend void cont_sexo(personas [], int &, int &, int &);
    personas(){};
    personas(char [], int &, char [], char [], char []);
    ~personas();
};

int menu();

int main()
{
    int opc, cont=0, i, indice, cont_masculino=0, cont_femenino=0, edad_t;
    char nombre_t[tam_cad], sexo_t[tam_sex], direccion_t[tam_cad], tlf_t[tam_tlf];
    personas grupo[tam];

    do{
        opc=menu();

        switch(opc)
        {
            case 1:
            {
                leer(grupo, cont, nombre_t, edad_t, sexo_t, direccion_t, tlf_t);

                system("cls");
                break;
            }

            case 2:
            {
                indice=menor_edad(grupo, cont);

                cout<<"\n\n\t la persona mas joven del grupo es: "<<endl;
                grupo[indice].mostrar();

                cin.get();
                system("cls");
                break;
            }

            case 3:
            {
                cont_sexo(grupo, cont, cont_masculino, cont_femenino);

                cout<<"\n\n\t la cantidad de mujeres del grupo es: "<<cont_femenino<<endl;
                cout<<"\t la cantidad de hombres del grupo es: "<<cont_masculino<<endl;

                cont_masculino=0;
                cont_femenino=0;

                cin.get();
                system("cls");
                break;
            }

            case 4:
            {
                mayores_edad(grupo, cont);

                cin.get();
                system("cls");
                break;
            }

            case 5:
            {
                exit(0);
                break;
            }

            default:
            {
                cout<<"\n\t opcion invalida"<<endl;

                cin.get();
                system("cls");
                break;
            }

        }
    }while(opc!=5);

    return 0;
    cin.get(); cin.get();
}

personas::personas(char nombre_t[tam_cad], int &edad_t, char sexo_t[tam_sex], char direccion_t[tam_cad], char tlf_t[tam_tlf])
{
    strcpy(nombre, nombre_t);
    edad=edad_t;
    strcpy(sexo, sexo_t);
    strcpy(direccion, direccion_t);
    strcpy(tlf, tlf_t);
}

personas::~personas()
{

}

void personas::mostrar()
{
    cout<<"\n\t Nombre: "<<nombre<<endl;
    cout<<"\t Edad: "<<edad<<endl;
    cout<<"\t Sexo: "<<sexo<<endl;
    cout<<"\t Direccion: "<<direccion<<endl;
    cout<<"\t Telefono: "<<tlf<<endl;
}

int menu()
{
    int opc;

    cout<<"\n\n\t 1.- Leer personas"<<endl;
    cout<<"\t 2.- Persona mas joven del grupo"<<endl;
    cout<<"\t 3.- Cantidad de hombres y mujeres del grupo"<<endl;
    cout<<"\t 4.- Mostrar mayores de edad"<<endl;
    cout<<"\t 5.- salir"<<endl;
    cout<<"\t indique opcion: ";
    cin>>opc;
    cin.ignore();
    system("cls");

    return opc;
}

void leer(personas grupo[tam], int &cont, char nombre_t[tam_cad], int &edad_t, char sexo_t[tam_sex], char direccion_t[tam_cad], char tlf_t[tam_tlf])
{
    cout<<"\n\n\t Nombre: ";
    cin.getline(nombre_t, tam_cad);
    cout<<"\t Edad: ";
    cin>>edad_t;
    cin.ignore();
    cout<<"\t Sexo: ";
    cin.getline(sexo_t, tam_sex);
    cout<<"\t Direccion: ";
    cin.getline(direccion_t, tam_cad);
    cout<<"\t Telefono: ";
    cin.getline(tlf_t, tam_tlf);

    personas temp(nombre_t, edad_t, sexo_t, direccion_t, tlf_t);
    grupo[cont]=temp;
    cont++;
}

int menor_edad(personas grupo[tam], int &cont)
{
    int indice, i=0, edad=0;

    for(i=0; i<cont; i++)
    {
        if(grupo[i].edad>edad)
        {
            edad=grupo[i].edad;
        }
    }

     for(i=0; i<cont; i++)
    {
        if(grupo[i].edad<=edad)
        {
            edad=grupo[i].edad;
            indice=i;
        }
    }

    return indice;
}

void mayores_edad(personas grupo[tam], int &cont)
{
    for(int i=0; i<cont; i++)
    {
        if(grupo[i].edad>=18)
        {
            grupo[i].mostrar();
        }
    }
}

void cont_sexo(personas grupo[tam], int &cont, int &cont_masculino, int &cont_femenino)
{
    int i;

    for(i=0; i<cont; i++)
    {
        if(strcmp(grupo[i].sexo, "masculino")==0)
        {
            cont_masculino++;
        }
        else
            {
                cont_femenino++;
            }
    }
}

Descargar Código


0 comentarios:

Publicar un comentario