Você está na página 1de 5

#include <iostream>

#include <iomanip>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define N 300
using
using
using
using
using

std::left;
std::setw;
std::cout;
std::endl;
std::cin;

//system ("color A7");


/*color de consola :
0 = Negro
1 = Azul
2 = Verde
3 = Aguamarina
4 = Rojo
5 = Purpura
6 = Amarillo
7 = Blanco
8 = Gris
9 = Azul claro
color de texto:
A = Verde claro
B = Aguamarina claro
C = Rojo claro
D = Purpura claro
E = Amarillo claro
F = Blanco brillante

*/

struct Datos_IMC
{
int cedula;
float peso, estatura, IMC;
char nombre[25], eval[10];
};
//procedimiento validar
void validar(int &valor, int lim_inf, int lim_sup)
{
while( valor<lim_inf ||valor>lim_sup )
{
cout<<"opcion invalida... reintroduscala:"<<endl;
cin>>valor;
}
}
//funcion menu
int menu()
{
int opc;
cout<<" Menu principal "<<endl;

cout<<"----------------"<<endl;
cout<<"[1]Ingresar datos de encustado"<<endl;
cout<<"[2]visualizar datos de la encuesta"<<endl;
cout<<"[3]Ver promedios de ICM's"<<endl;
cout<<"[4]Buscar datos de un encuestado"<<endl;
cout<<"[5]salir de programa"<<endl;
cout<<"opcion:_";
cin>>opc;
cout<<endl<<endl;
validar(opc,1,5);
return(opc);
}
//procedimiento fila x fila
void ing_fxf(Datos_IMC Reg[], int &L)
{
char resp='s';
while ( (resp=='s' || resp=='S') &&L<N)
{
L=L+1;
cout<<"Ingrese los datos del encuestado "<<L+1<<endl;
cout<<"Nombre:_";
cin>>Reg[L].nombre;
cout<<"Cedula:_";
cin>>Reg[L].cedula;
cout<<"Estatura:_";
cin>>Reg[L].estatura;
cout<<"Masa corporal:_";
cin>>Reg[L].peso;
Reg[L].IMC = Reg[L].peso * pow(Reg[L].estatura,2);
if(Reg[L].IMC< 18.5)
{
strcpy (Reg[L].eval,"Infrapeso");
}
if ((Reg[L].IMC==18.5 || Reg[L].IMC >18.5) && (Reg[L].IMC<25))
{
strcpy(Reg[L].eval,"Normal");
}
if ((Reg[L].IMC==25 || Reg[L].IMC >25) && (Reg[L].IMC<30))
{
strcpy(Reg[L].eval,"Sobrepeso");
}
if(Reg[L].IMC>= 30)
{
strcpy(Reg[L].eval,"Obeso");
}
cout<<"Desea ingresar datos de otro encuestado"<<endl<<"[S] si"<
<endl<<"[N] no"<<endl;
cin>>resp;
}
}
//procedimiento mostrar
void mostar(Datos_IMC Reg[],int n )
{

int i,p;
if ( n> -1 )
{
cout<<left<<setw(25)<<"NOMBRE"<<"|";
cout<<left<<setw(10)<<"CEDULA"<<"|";
cout<<left<<setw(8)<<"ESTATURA"<<"|";
cout<<left<<setw(7)<<"PESO"<<"|";
cout<<left<<setw(7)<<"IMC"<<"|";
cout<<left<<setw(10)<<"EVAL"<<"|"<<endl;
for( p=0; p<=75; p++)
{
cout<<"-";
}
cout<<endl<<endl;
for (i=0;i<=n; i++)
{
cout<<left<<setw(25)<<Reg[i].nombre<<"|";
cout<<left<<setw(10)<<Reg[i].cedula<<"|";
cout<<left<<setw(8)<<Reg[i].estatura<<"|";
cout<<left<<setw(7)<<Reg[i].peso<<"|";
cout<<left<<setw(7)<<Reg[i].IMC<<"|";
cout<<left<<setw(10)<<Reg[i].eval<<"|"<<endl;
for( p=0; p<=75; p++)
{
cout<<"-";
}
cout<<endl;
}
}
else
{
cout<<"No se han Ingresado datos mortar"<<endl;
}
}
//Funcion calculo de promedio de IMC's
float promedio (Datos_IMC Reg [], int n )
{
int i;
float prom;
if ( n>-1)
{
for(i=0; i<=n; i++)
{
prom = prom + Reg[i].IMC;
}
return (prom / n+1) ;
}
else
{
cout<< "No ha ingresado datos...promedio"<<endl;
return (0);
}
}

//Funcion de busqueda
int busqueda (Datos_IMC Reg[], int n, int ced_b)
{
int i;
for ( i=0; i<=n; i++)
{
if ( Reg[i].cedula == ced_b )
{
return (i);
}
}
return (-1);
}
// Programa Pricipal
int main( )
{
Datos_IMC encuesta[N];
int opc=1, cedula_b, pos, L=-1,p;
float promo;
while ( opc>=1 && opc<5)
{
opc=menu();
switch (opc)
{
case 1:
{
ing_fxf ( encuesta, L);
break;
}
case 2:
{
mostar (encuesta,L);
break;
}
case 3:
{
if ( L>-1)
{
promo = promedio (encuesta, L);
cout<< "El promedio de IMC's de los encu
estados es: "<<promo<<endl;
}
else
{
cout<<"No ha ingresado Datos...case 3"<<
endl;
}
break;
}
case 4:
{
cout<<" seale la cedula que desea buscar:_ ";
cin>>cedula_b;
pos= busqueda ( encuesta, L, cedula_b);
if( pos >-1)
{
cout<<left<<setw(25)<<"NOMBRE"<<"|";
cout<<left<<setw(10)<<"CEDULA"<<"|";

cout<<left<<setw(8)<<"ESTATURA"<<"|";
cout<<left<<setw(7)<<"PESO"<<"|";
cout<<left<<setw(7)<<"IMC"<<"|";
cout<<left<<setw(10)<<"EVAL"<<"|"<<endl;
for( p=0; p<=75; p++)
{
cout<<"-";
}
cout<<endl<<endl;
cout<<left<<setw(25)<<encuesta[pos].nomb
re<<"|";
cout<<left<<setw(10)<<encuesta[pos].cedu
la<<"|";
cout<<left<<setw(8)<<encuesta[pos].estat
ura<<"|";
cout<<left<<setw(7)<<encuesta[pos].peso<
<"|";
cout<<left<<setw(7)<<encuesta[pos].IMC<<
"|";
cout<<left<<setw(10)<<encuesta[pos].eval
<<"|"<<endl;
}
else
{
cout<<"lacedula a buscar no existe..."<<
endl;
}
break;
}
case 5:
{
cout<< "Fin del Programa..."<<endl;
break;
}
}
}
return 0;
}

Você também pode gostar