Mostrando entradas con la etiqueta Clases. Mostrar todas las entradas
Mostrando entradas con la etiqueta Clases. Mostrar todas las entradas

jueves, 22 de noviembre de 2012

Reloj digital en C++

Definir una clase que permita representar el tiempo, es decir horas, minutos y segundos. Desarrollar que permitan inicializar el tiempo en 0 horas, 0 minutos y 0 segundos; mostrar las horas, minutos y segundos en el siguiente formato hh:mm:ss; incrementar el tiempo en un segundo.


#include<iostream>
#include<cstdlib>
#include<windows.h>
using namespace std;

const int h=24;
const int m=60;
const int s=60;

class reloj
{
    private:
    int hora;
    int minutos;
    int segundos;
    int formato;

    public:
    reloj(){};
    reloj(int &, int &, int &);
    void mostrar_hora();
    friend void ajustar_hora(reloj &);
};

int menu();

int main()
{
    int opc;
    reloj tiempo;

    do{
        opc=menu();

        switch(opc)
        {
            case 1:
            {
                ajustar_hora(tiempo);

                system("cls");
                break;
            }

            case 2:
            {
                tiempo.mostrar_hora();

                break;
            }

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

            default:
            {
                cout<<"\n\n\t Opcion invalida"<<endl;
                cin.get(); cin.get();
                system("cls");
                break;
            }
        }
    }while(opc!=3);

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

reloj::reloj(int &hr, int &min, int &seg)
{
    hora=hr;
    minutos=min;
    segundos=seg;
}

int menu()
{
    int opc;

    cout<<"\n\n\t 1.- Ajustar hora"<<endl;
    cout<<"\t 2.- Mostrar hora"<<endl;
    cout<<"\t 3.- Salir"<<endl;
    cout<<"\t indique opcion: ";
    cin>>opc;

    system("cls");
    return opc;
}

void reloj::mostrar_hora()
{
    while(1)
    {
        while (hora<h)
        {
            while (minutos<m)
            {
                while(segundos<s)
                {
                    cout<<"\n\n\t"<<hora<<":"<<minutos<<":"<<segundos;

                    Sleep(1000);
                    system("cls");
                    segundos+=1;
                }
                segundos=0;
                minutos+=1;
            }
            minutos=0;
            hora+=1;
        }
        hora=0;
    }
}

void ajustar_hora(reloj &tiempo)
{
    int hr, min, seg;

    do{
        cout<<"\n\t Hora: ";
        cin>>hr;

        if(((hr<0)||(hr>h)))
        {
            cout<<"\n\t Hora invalida"<<endl;
            cin.get(); cin.get();
            system("cls");
        }
    }while((hr<0)||(hr>h));

    do{
        cout<<"\t Minutos: ";
        cin>>min;

        if(((min<0)||(min>m)))
        {
            cout<<"\n\t Minuto invalido"<<endl;
            cin.get(); cin.get();
            system("cls");
        }
    }while((min<0)||(min>m));

    do{
        cout<<"\t Segundos: ";
        cin>>seg;

        if(((seg<0)||(seg>s)))
        {
            cout<<"\n\t Segundoo invalido"<<endl;
            cin.get(); cin.get();
            system("cls");
        }
    }while((seg<0)||(seg>s));

    reloj temp(hr, min, seg);
    tiempo=temp;
}


Descargar Código

martes, 20 de noviembre de 2012

Al momento de su ingreso al hospital, a un paciente se le solicitan los siguientes datos: Nombre, Edad, Sexo, Teléfono, Seguro

Al momento de su ingreso al hospital, a un paciente se le solicitan los
siguientes datos: Nombre, Edad, Sexo, Teléfono, Seguro (este campo tendrá el
valor verdadero si el paciente tiene seguro y Falso si no lo posee).
Escriba un programa que pueda llevar a cabo las siguientes operaciones:
  • Listar los nombres de todos los pacientes hospitalizados.
  • Obtener el porcentaje de pacientes hospitalizados en las siguientes categorías:
  1. Niños: hasta 13 años. 
  2. Jóvenes: mayores de 13 años y menores de 30 años. 
  3. Adultos: mayores de 30 años.
  • Obtener el porcentaje de hombres y mujeres hospitalizados.
  • Dado el nombre de un paciente, listar todos los datos relacionados a dicho paciente.
  • Calcular el porcentaje de pacientes que poseen seguro.
Nota: Se manejará un máximo de 100 pacientes.


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

const int tam=100;
const int tam_nombre=50;
const int tam_sex=10;
const int tam_tlf=11;
const int tam_seguro=3;

class datos
{
    private:
    char nombre[tam_nombre];
    int edad;
    char sexo[tam_sex];
    char telefono[tam_tlf];
    bool seguro;

    public:
    datos(){};
    datos(char [], int &, char [], char [], char []);
    ~datos(){};
    void mostrar(char []);
    int obt_edad();
    bool obt_seguro();
    friend void ingresar_paciente(datos [], int &, char [], int &, char [], char [], char []);
    friend int buscar(datos [], char [], int &);
    friend void porc_pacientes_sexo(datos [], int &);

};

int menu();

int main()
{
    int edad_paciente, opc, cont=0, cont_ninos=0, cont_jovenes=0, cont_adultos=0, cont_seguro=0, indice, i;
    float porc_ninos, porc_jovenes, porc_adultos, porc_seguro;
    char nombre_paciente[tam_nombre], sexo_paciente[tam_sex], tlf_paciente[tam_tlf], seguro_paciente[tam_seguro];
    datos pacientes[tam];

    do{
        opc=menu();

        switch(opc)
        {
            case 1:
            {
                ingresar_paciente(pacientes, cont, nombre_paciente, edad_paciente, sexo_paciente, tlf_paciente, seguro_paciente);

                system("cls");
                break;
            }

            case 2:
            {
                for(i=0; i<cont; i++)
                {
                    pacientes[i].mostrar(seguro_paciente);
                }

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

            case 3:
            {
                for(i=0; i<cont; i++)
                {
                    if(pacientes[i].obt_edad()<=13)
                    {
                        cont_ninos++;
                    }
                    else
                        {
                            if((pacientes[i].obt_edad()>13)&&(pacientes[i].obt_edad()<=30))
                            {
                                cont_jovenes++;
                            }
                            else
                                {
                                    cont_adultos++;
                                }
                        }
                }

                porc_ninos=(cont_ninos*100)/cont;
                porc_jovenes=(cont_jovenes*100)/cont;
                porc_adultos=(cont_adultos*100)/cont;

                cout<<"\n\n\t El porcentaje de niños hospitalizados es: "<<porc_ninos<<"%"<<endl;
                cout<<"\n\n\t El porcentaje de jovenes hospitalizados es: "<<porc_jovenes<<"%"<<endl;
                cout<<"\n\n\t El porcentaje de adultos hospitalizados es: "<<porc_adultos<<"%"<<endl;

                cont_ninos=0;
                cont_jovenes=0;
                cont_adultos=0;

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

            case 4:
            {

                porc_pacientes_sexo(pacientes, cont);

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

            case 5:
            {
                cout<<"\n\n\t Nombre: ";
                cin.getline(nombre_paciente, tam_nombre);

                for(int i=0; i<(strlen(nombre_paciente)); i++)
                {
                    nombre_paciente[i]=toupper(nombre_paciente[i]);
                }

                indice=buscar(pacientes, nombre_paciente, cont);

                if(indice!=-1)
                {
                    cout<<"\n\t Informacion del paciente"<<endl;
                    pacientes[indice].mostrar(seguro_paciente);
                }
                else
                    {
                        cout<<"\n\t Paciente no encontrado"<<endl;
                    }

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

            case 6:
            {
                for(i=0; i<cont; i++)
                {
                    if(pacientes[i].obt_seguro()==true)
                    {
                        cont_seguro++;
                    }
                }

                porc_seguro=(cont_seguro*100)/cont;

                cout<<"\n\n\t El porcentaje de pacientes hospitalizados con seguro es: "<<porc_seguro<<"%"<<endl;

                cont_seguro=0;

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

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

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

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

    }while(opc!=7);

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

datos::datos(char nombre_paciente[tam_nombre], int &edad_paciente, char sexo_paciente[tam_sex], char tlf_paciente[tam_tlf], char seguro_paciente[tam_seguro])
{
    strcpy(nombre, nombre_paciente);
    edad=edad_paciente;
    strcpy(sexo, sexo_paciente);
    strcpy(telefono, tlf_paciente);

    if(strcmp(seguro_paciente, "SI")==0)
    {
        seguro=true;
    }
    else
        {
            seguro=false;
        }
}

void datos::mostrar(char seguro_paciente[tam_seguro])
{
    cout<<"\n\n\t Nombre: "<<nombre<<endl;
    cout<<"\t Edad: "<<edad<<endl;
    cout<<"\t Sexo: "<<sexo<<endl;
    cout<<"\t Telefono: "<<telefono<<endl;

    if(seguro==true)
    {
        strcpy(seguro_paciente, "SI");
    }
    else
        {
            strcpy(seguro_paciente, "NO");
        }

    cout<<"\t Seguro: "<<seguro_paciente<<endl;
}

int datos::obt_edad()
{
    return edad;
}

bool datos::obt_seguro()
{
    return seguro;
}

int menu()
{
    int opc;

    cout<<"\n\n\t 1.- Registrar paciente"<<endl;
    cout<<"\t 2.- Listar pacientes"<<endl;
    cout<<"\t 3.- Porcentaje de pacientes hospitalizados por categorias"<<endl;
    cout<<"\t 4.- Porcentaje de hombres y mujeres hospitalizados"<<endl;
    cout<<"\t 5.- Mostrar informacion de un pacientes"<<endl;
    cout<<"\t 6.- Porcentaje de pacientes hospitalizados asegurados"<<endl;
    cout<<"\t 7.- Salir"<<endl;
    cout<<"\t Indique opcion: ";
    cin>>opc;
    cin.ignore();

    system("cls");
    return opc;
}

void ingresar_paciente(datos pacientes[tam], int &cont, char nombre_paciente[tam_nombre], int &edad_paciente, char sexo_paciente[tam_sex], char tlf_paciente[tam_tlf], char seguro_paciente[tam_seguro])
{
    cout<<"\n\n\t Nombre: ";
    cin.getline(nombre_paciente, tam_nombre);

    for(int i=0; i<(strlen(nombre_paciente)); i++)
    {
        nombre_paciente[i]=toupper(nombre_paciente[i]);
    }

    cout<<"\t Edad: ";
    cin>>edad_paciente;
    cin.ignore();

    do{
    cout<<"\t Sexo: ";
    cin.getline(sexo_paciente, tam_sex);

    for(int i=0; i<(tam_sex-1); i++)
    {
        sexo_paciente[i]=toupper(sexo_paciente[i]);
    }

    }while((strcmp(sexo_paciente, "MASCULINO")!=0)&&(strcmp(sexo_paciente, "FEMENINO")!=0));

    cout<<"\t Telefono: ";
    cin.getline(tlf_paciente, tam_tlf);

    do{
        cout<<"\t Seguro: ";
        cin.getline(seguro_paciente, tam_seguro);

        for(int i=0; i<(tam_seguro-1); i++)
        {
            seguro_paciente[i]=toupper(seguro_paciente[i]);
        }

    }while((strcmp(seguro_paciente, "SI")!=0)&&(strcmp(seguro_paciente, "NO")!=0));

    datos temp(nombre_paciente, edad_paciente, sexo_paciente, tlf_paciente, seguro_paciente);
    pacientes[cont]=temp;
    cont++;
}

int buscar(datos pacientes[tam], char nombre_paciente[tam_nombre], int &cont)
{
    int indice=-1;

    for(int i=0; i<cont; i++)
    {
        if(strcmp(pacientes[i].nombre, nombre_paciente)==0)
        {
            indice=i;
            break;
        }
    }

    return indice;
}

void porc_pacientes_sexo(datos pacientes[tam], int &cont)
{
    int i, cont_masculino=0, cont_femenino=0;
    float porc_masculino, porc_femenino;

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

    porc_masculino=(cont_masculino*100)/cont;
    porc_femenino=(cont_femenino*100)/cont;

    cout<<"\n\n\t El porcentaje de hombres hospitalizados es: "<<porc_masculino<<"%"<<endl;
    cout<<"\n\n\t El porcentaje de mujeres hospitalizados es: "<<porc_femenino<<"%"<<endl;

    cont_masculino=0;
    cont_femenino=0;
}


Descargar Código

jueves, 15 de noviembre de 2012

Realice un programa que maneja la información de 10 alumnos

Realice un programa que maneja la información de 10 alumnos. Los datos a
manejar son nombre, nombre de la asignatura y 4 notas acumulativas. Calcular
y mostrar el promedio y la suma de las notas de un alumno en particular.



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

const int tam=10;
const int tam_cad=50;
const int cant_unidades=4;

class datos
{
    private:
    char nombre[tam_cad];
    char materia[tam_cad];
    float notas[cant_unidades];
    float prom;

    public:
    datos(){};
    datos(char [], char [], float []);
    void mostrar();
    friend void leer(datos [], int &, char [], char [], float []);
    friend void promedio(datos [], int &, int &);
    friend int buscar(datos [], int &, char []);
};

int menu();

int main()
{
    int cont=0, opc, indice;
    char nom[tam_cad], asignatura[tam_cad];
    float notas_acum[cant_unidades];
    datos estudiante[tam];

    do{
        opc=menu();

        switch(opc)
        {
            case 1:
            {
                leer(estudiante, cont, nom, asignatura, notas_acum);
                system("cls");
                break;
            }

            case 2:
            {
                cout<<"\n\n\t Indique nombre a buscar: ";
                cin.getline(nom, tam_cad);
                system("cls");

                indice=buscar(estudiante, cont, nom);
                promedio(estudiante, cont, indice);
                estudiante[indice].mostrar();

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

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

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

                cin.get();
                system("cls");
                break;
            }
        }
    }while(opc!=3);

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

int menu()
{
    int opc;

    cout<<"\n\n\t 1.- Leer alumnos"<<endl;
    cout<<"\t 2.- Mostrar promedio"<<endl;
    cout<<"\t 3.- Salir"<<endl;
    cout<<"\t indique opcion: ";
    cin>>opc;

    cin.ignore();
    system("cls");

    return opc;
}

datos::datos(char nom[tam_cad], char asignatura[tam_cad], float notas_acum[cant_unidades])
{
    strcpy(nombre, nom);
    strcpy(materia, asignatura);
    for(int i=0; i<cant_unidades; i++)
    {
        notas[i]=notas_acum[i];
    }
}

void datos::mostrar()
{
    cout<<"\n\n\t Nombre: "<<nombre<<endl;
    cout<<"\t Materia: "<<materia<<endl;
    cout<<"\t Promedio: "<<prom<<endl;
}

void leer(datos estudiante[tam], int &cont, char nom[tam_cad], char asignatura[tam_cad], float notas_acum[cant_unidades])
{
    cout<<"\n\n\t Nombre: ";
    cin.getline(nom, tam_cad);
    cout<<"\t Materia: ";
    cin.getline(asignatura, tam_cad);

    for(int i=0; i<cant_unidades; i++)
    {
        cout<<"\t Nota "<<(i+1)<<" : ";
        cin>>notas_acum[i];
    }

    datos temp(nom, asignatura, notas_acum);
    estudiante[cont]=temp;
    cont++;
}

void promedio(datos estudiante[tam], int &cont, int &indice)
{
    float prom_notas=0;

    for(int i=0; i<cant_unidades; i++)
    {
        prom_notas+=estudiante[indice].notas[i];
    }

    estudiante[indice].prom=(prom_notas/cant_unidades);
}

int buscar(datos estudiante[tam], int &cont, char nom[tam_cad])
{
    int indice;

    for(int i=0; i<cont; i++)
    {
        if(strcmp(estudiante[i].nombre, nom)==0)
        {
            indice=i;
            break;
        }
    }

    return indice;
}

Descargar Código

miércoles, 14 de noviembre de 2012

El departamento de personal de la UDO tiene registros del nombre, sexo, sueldo y edad de cada uno de los profesores adscritos a la Universidad.

El departamento de personal de la UDO tiene registros del nombre, sexo,
sueldo y edad de cada uno de los profesores adscritos a la Universidad. Escriba
un programa que calcule e imprima los siguientes datos:
  • Nombre del profesor más joven del grupo
  • Nombre del profesor con mayor sueldo.
  • Edad promedio del grupo de profesores.
  • Número de profesores con edad mayor al promedio.
  • Lista de todos los profesores de sexo masculino.
  • Lista de todos los profesores.
Nota: Se manejará un máximo de 50 profesores.


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

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

class profesor
{
    private:
    char nombre[tam_cad];
    char sexo[tam_sex];
    float sueldo;
    int edad;

    public:
    void mostrar();
    profesor(){};
    profesor(char [], char [], float &, int &);
    friend void leer(profesor [], int &, char [], char [], float &, int &);
    friend int profesor_joven(profesor [], int &);
    friend int profesor_mejor_sueldo(profesor [], int &);
    friend int prom_edad(profesor [], int &);
    friend void mostrar_prof_edad_mayor_prom(profesor [], int &);
    friend void mostrar_prof_sex_masculino(profesor [], int &);
};

int menu();

int main()
{
    int opc, edad_p, cont=0, indice;
    char nom[tam_cad], sex[tam_sex];
    float salario;
    profesor datos[tam];

    do{
        opc=menu();

        switch(opc)
        {
            case 1:
            {
                leer(datos, cont, nom, sex, salario, edad_p);
                system("cls");
                break;
            }

            case 2:
            {
                indice=profesor_joven(datos, cont);
                cout<<"\n\n\t El profesor mas joven es: "<<endl;
                datos[indice].mostrar();

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

            case 3:
            {
                indice=profesor_mejor_sueldo(datos, cont);
                cout<<"\n\n\t El profesor con mejor sueldo es: "<<endl;
                datos[indice].mostrar();

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

            case 4:
            {
                cout<<"\n\n\t La edad promedio es: "<<prom_edad(datos, cont)<<endl;

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

            case 5:
            {
                cout<<"\n\n\t Profesores con edad mayor al promedio: "<<endl;
                mostrar_prof_edad_mayor_prom(datos, cont);

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

            case 6:
            {
                cout<<"\n\n\t Profesores con sexo masculino: "<<endl;
                mostrar_prof_sex_masculino(datos, cont);

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

            case 7:
            {
                cout<<"\n\n\t Profesores: "<<endl;
                for(int i=0; i<cont; i++)
                {
                    datos[i].mostrar();
                }

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

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

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

                cin.get();
                system("cls");
                break;
            }
        }
    }while(opc!=8);

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

profesor::profesor(char nom[tam_cad], char sex[tam_sex], float &salario, int &edad_p)
{
    strcpy(nombre, nom);
    strcpy(sexo, sex);
    sueldo=salario;
    edad=edad_p;
}

void profesor::mostrar()
{
    cout<<"\n\n\t Nombre: "<<nombre<<endl;
    cout<<"\t Sexo: "<<sexo<<endl;;
    cout<<"\t Sueldo: "<<sueldo<<endl;
    cout<<"\t Edad: "<<edad<<endl;
}

int menu()
{
    int opc;

    cout<<"\n\n\t 1.- Leer profesores"<<endl;
    cout<<"\t 2.- Profesor mas joven del grupo"<<endl;
    cout<<"\t 3.- Profesor con mejor sueldo"<<endl;
    cout<<"\t 4.- Edad promedio"<<endl;
    cout<<"\t 5.- Profesores con edad mayor al promedio"<<endl;
    cout<<"\t 6.- Listar profesores con sexo masculino"<<endl;
    cout<<"\t 7.- Listar todos los profesores"<<endl;
    cout<<"\t 8.- Salir"<<endl;
    cout<<"\t indique opcion: ";
    cin>>opc;

    cin.ignore();
    system("cls");

    return opc;
}

void leer(profesor datos[tam], int &cont, char nom[tam_cad], char sex[tam_sex], float &salario, int &edad_p)
{
    cout<<"\n\n\t Nombre: ";
    cin.getline(nom, tam_cad);
    cout<<"\t Sexo: ";
    cin.getline(sex, tam_sex);
    cout<<"\t Sueldo: ";
    cin>>salario;
    cout<<"\t Edad: ";
    cin>>edad_p;

    profesor temp(nom, sex, salario, edad_p);
    datos[cont]=temp;
    cont++;
}

int profesor_joven(profesor datos[tam], int &cont)
{
    int indice, i=0, edad=0;

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

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

    return indice;
}

int profesor_mejor_sueldo(profesor datos[tam], int &cont)
{
    int indice, i=0;
    float salario=0;

    for(i=0; i<cont; i++)
    {
        if(datos[i].sueldo>salario)
        {
            salario=datos[i].sueldo;
            indice=i;
        }
    }

    return indice;
}

int prom_edad(profesor datos[tam], int &cont)
{
    int sum=0, edad_prom;

    for(int i=0; i<cont; i++)
    {
        sum+=datos[i].edad;
    }

    edad_prom=sum/cont;

    return edad_prom;
}

void mostrar_prof_edad_mayor_prom(profesor datos[tam], int &cont)
{
    int edad_prom, i=0;

    edad_prom=prom_edad(datos, cont);

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

void mostrar_prof_sex_masculino(profesor datos[tam], int &cont)
{
    int i;

    for(i=0; i<cont; i++)
    {
        if(strcmp(datos[i].sexo,"masculino")==0)
        {
            datos[i].mostrar();
        }
    }
}

Descargar Código

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