Sie sind auf Seite 1von 4

#include <stdio.

h>
#include <stdlib.h>
#include <string.h>
#include <iostream>
#include <iomanip>
#include <conio.h>
using namespace std;

struct datos
{
char nombre[30];
int edad;
char sexo[2];
float sueldo;

} empleado;
struct datos persona[50];

struct datos *apuntad;


class estructuras
{ public:
void leer_datos(int *cuenta);
void mostrar_datos(int *cuenta);
};

struct fecha
{
int a;
int m;
int d;
}fecha_nac ;
struct datos2
{
char nombre[30];
int edad;
char sexo[2];
struct fecha fecha_nac;
float sueldo;
} empleado2;
struct datos2 persona2[50];
struct fecha *apuntaf;
class estructuras2
{ public:
void leer_datos2(int *cuenta);
void mostrar_datos2(int *cuenta);
};

int lee_fecha (int *cuenta, struct fecha *apuntaf);

int main(void)
{
int op;
cout<<"Escoja la estructura que desea ejecutar"<<endl<<"1.-Estructura
1"<<endl
<<"2.-Estructura 2"<<endl<<"3.-Salir"<<endl;
cin>>op;
if(op==1)
{
int cuenta=0;
estructuras estru;
estru.leer_datos(&cuenta);
estru.mostrar_datos(&cuenta);
}

if(op==2)
{
empleado2.fecha_nac.a =0;
persona2 [50].fecha_nac.d =30;
int cuenta=0;
estructuras2 estruc;
estruc.leer_datos2(&cuenta);
estruc.mostrar_datos2(&cuenta);
}
while ( op != 3 );

void estructuras::leer_datos(int *cuenta2)


{

int cuenta;

system ("cls");
cuenta= 0;
persona[cuenta].nombre[0]= '*';
cout <<endl<< " PROGRAMA PARA LEER CONJUNTOS DE DATOS DE CADA
PERSONA"<< endl;
cout << "para finalizar oprima la tecla enter en el nombre de la persona"<<
endl;
while (persona[cuenta].nombre[0] !='\0')
{

cout <<" cual es el nombre de la persona ?";


cuenta ++;
cin.ignore();
gets( persona[cuenta].nombre);
if (persona[cuenta].nombre[0] !='\0')
{
cout << "cual es su edad? ";
cin >> persona[cuenta].edad;
cout << " sexo? ";
cin >>persona[cuenta].sexo;
cout << " cuanto gana: ",persona[cuenta].nombre;
cin >> persona[cuenta].sueldo;
cout <<"\n";

}
}
*cuenta2= cuenta-1;
}

void estructuras:: mostrar_datos(int *cuenta2)


{
int cuenta,i;
cuenta = *cuenta2;
system("cls");
cout << " LISTA DE NOMBRES EN MATRIZ \n";
cout <<" N O M B R E SUELDO EDAD SEXO \n";
for (i= 1 ; i<= cuenta; i++)
{
printf("%-30s ",persona[i].nombre);
printf(" %9.2f ",persona[i].sueldo);
printf(" %3d ",persona[i].edad);
printf(" %1s ",persona[i].sexo);

printf("\n");
}
system("pause");
}

void estructuras2::leer_datos2(int *cuenta2)


{
cin.ignore();
int cuenta,bandera;

system("cls");
cuenta= 0; bandera =0;
persona2[cuenta].nombre[0]= '*';
while (bandera == 0)
{
cin.ignore();
cout << endl <<" cual es el nombre de la persona ?";
cuenta ++;

gets( persona2[cuenta].nombre);
if (persona2[cuenta].nombre[0] != '\0')
{
cout << "cual es su edad ? ";
cin >> persona2[cuenta].edad;
cout << " sexo ? ";
cin >>persona2[cuenta].sexo;
cout << " cuanto gana : ",persona2[cuenta].nombre;
cin >> persona2[cuenta].sueldo;
cout <<"\n";
if( lee_fecha(&cuenta, &persona2[cuenta].fecha_nac)== 0)
{
cout << " datos correctos "<<endl;
// system ("pause");
}
else {cout <<" datos incorrectos "; /* system ("pause");*/}
}
else
{ bandera = 1;
cout << " fin de captura de datos" ; system ("pause");
}
}
*cuenta2= cuenta-1; return ;
} // fin de funcion que lee los datos de personas
void estructuras2:: mostrar_datos2(int *cuenta2)
{
int cuenta,i;
cuenta = *cuenta2;
system ("cls");
cout << setiosflags(ios::left);
cout << " LISTA DE NOMBRES EN MATRIZ \n";
cout <<" N O M B R E SUELDO EDAD SEXO AMO MES
DIA"<<endl;
for (i= 1 ; i<= cuenta; i++)
{
cout.setf(ios::fixed);
cout <<setw(30)<< setfill ( ' ' )<< persona2[i].nombre;
cout << setprecision(2)<<setw(12)<< persona2[i].sueldo;
cout << " " << setw(2)<< persona2[i].edad;
cout << " "<< setw(2)<< persona2[i].sexo;
cout << " " << persona2 [i].fecha_nac.a <<" "
<< persona2 [i].fecha_nac.m << " "
<< persona2 [i].fecha_nac. d<< endl;

}
system ("pause");
} // fin de funcion que presenta los datos en pantalla
int lee_fecha(int *cuenta2, struct fecha *apuntaf)
{
int bueno, cuenta;
cuenta = *cuenta2;
bueno =0;
while (bueno ==0)
{
cout<< " a�o de nacimiento ??: " ;
cin >> apuntaf->a;
if (apuntaf -> a <= 2016 && apuntaf ->a >=1910)
{
cout<<" MES DE NACIMIENTO ??";
cin >> apuntaf->m;
if(apuntaf -> m >=1 && apuntaf ->m <=12)
{
cout << " DIA DE NACIMIENTO ??? ";
cin >> apuntaf ->d;
if(apuntaf -> d >=1 && apuntaf -> d <=31) bueno =1;
else
{
cout<< " ERROR EN DIA DE NACIMIENTO DATO IMPOSIBLE \n" ;
bueno =0;
}
}
else
{
cout<<" !!!! ERROR EN MES DE NACIMIENTO VALOR NO VALIDO !!!! \n";
bueno =0;
}
}
else
{
cout<< " ERROR EN A�O DE NACIMIENTO; DATO FUERA DE RANGO, VOLVER A
TECLEAR \n";
bueno =0;
}
}
return 0;
} // FIN DE FUNCION LEER FECHA DE NACIMIENTO