Calcular el índice de masa corporal con Java

18/Dic/2012 Java , , 2 Comentarios
Programación en Java

En este ejemplo vamos a calcular el índice de masa corporal con Java mediante la fórmula:

 imc= p/(t*t)

Donde:

  1. p= peso
  2. t= talla o estatura
  3. imc = el índice de masa corporal

Vamos a definir una clase Java llamada CalculoIMC.java y su método main e importamos la librería

javax.swing

,abajo de esta clase definimos otra más y la llamaremos Persona con cuatro atributos: nombre, edad, peso y estatura.

import javax.swing.JOptionPane;

class CalculoIMC{
  public static void main(String[] args) {
    //... falta más código por escribir
  }
}

//aqui esta la clase Persona
class Persona{
//atributos de la clase
  public String nombre;
  public int edad;
  public double peso,talla;
  //...
}

Ahora vamos a definir un método Java para asignar los atributos:

Persona asignar(String n,int e,double p,double t){
  nombre=n;
  edad=e;
  peso=p;
  talla=t;
  return this;
}

El operador this nos sirve para hacer referencia a los propios atributos de la clase Java. No es necesario declarar un tipo de dato.

Una vez hecho ya podemos escribir el método que calcula el índice de masa corporal con Java

public double imc(){
  return peso/(talla*talla);
}

Cuando se obtiene el resultado se puede hacer una comparativa de acuerdo a una clasificación:

String cad="";
if(imc()<16.00){
  cad="Infrapeso: Delgadez Severa";
}else if(imc()<=16.00 || imc()<=16.99){
  cad="Infrapeso: Delgadez moderada";
}else if(imc()<=17.00 ||imc()<=18.49){
  cad="Infrapeso: Delgadez aceptable";
}else if(imc()<=18.50 || imc()<=24.99){
  cad="Peso Normal";
}else if(imc()<=25.00 || imc()<=29.99){
  cad="Sobrepeso";
}else if(imc()<=30.00 || imc()<=34.99){
  cad="Obeso: Tipo I";
}else if(imc()<=35.00 || imc()=40.00){
  cad="Obeso: Tipo III";
}else{
  cad="no existe clasificacion";
}
  return cad;

Y para mostrar esos resultados usamos la clase Java

JOptionPane.showMessageDialog()

en un método llamado verDatos()

Persona verDatos(){
  String res="Datos\n";
  res+="\nnombre: "+nombre;
  res+="\nedad: "+edad;
  res+="\npeso: "+peso;
  res+="\ntalla: "+talla;
  res+="\nIMC obtenido es: "+imc();
  res+="\nClasificacion obtenida es: "+clasificacion();
  JOptionPane.showMessageDialog(null, res,"Resultado",JOptionPane.PLAIN_MESSAGE,new ImageIcon("ferd.jpg"));
  return this;
}
//nota: todo esto dentro de la clase Persona.java

Volvemos a la clase Java principal CalculoIMC:

public static void main(String[] args) {
  //instanciar clase 
  Persona persona= new Persona();

  //asignamos los datos de los atributos, para eso usamos JOptionPane.showInputDialog()
  persona.nombre=JOptionPane.showInputDialog("nombre: ");
  persona.edad=Integer.parseInt(JOptionPane.showInputDialog("edad: "));
  persona.peso=Double.parseDouble(JOptionPane.showInputDialog("peso: "));
  persona.talla=Double.parseDouble(JOptionPane.showInputDialog("talla: "));

  // y al final concatenamos los métodos
  persona.asignar(persona.nombre,persona.edad,persona.peso,persona.talla).verDatos();

Al final se visualiza nuestro ejemplo Java todo en una ventanita:

Vídeos sobre Java


2 comentarios en “Calcular el índice de masa corporal con Java”

ARIEL

patricio

Hola estimado(a), ojala me puedan ayudar con lo siguiente:
tengo que crear un metodo indiceMasaCorporal el cual retorna el IMC de un paciente para un mes X.
imc= p/(t*t)
pero para cada paciente se le registra rut, nombre, edad, sexo y peso mensual(array con los pesos mensuales de año)
y el array que almacena el peso mensual se genera de forma aleatoria con numero enteros rango entre 70 y 250

yo cree el array del peso mensual el cual me retorna los meses del 1 al 12 y números aleatorios entre el rango.
private int[] pesoMensual;
public Paciente(){
this.pesoMensual = new int[12];
for(int i=0; i < pesoMensual.length; i++){
this.pesoMensual[i] = (int) (Match.ramdom() * (250-70+1)+70) }
}

como lo podría realizar para que al momento de que se ingrese algún mes y la alturo por pantalla se realize el calculo del IMC tomando en cuenta lo anterior????
ojals me puedan ayudar con esto.
saludos.

ARIEL

FERNANDA MARISOL MOREIRA CEDEO

Programa IMC (Unidad 2)

Se desea realizar un programa que calcule el estado de salud de una persona, basándose en el Índice de Masa Corporal.
El Programa Calculará y presentará el IMC, en base a la siguiente formula:
IMC = kilogramos / (metros)2
Luego de mostrar el índice mostrará el estado de salud en base a los siguientes rangos:
Bajo Peso menos de 18.5
Normal entre 18.5 y 24.9
Sobrepeso entre 25 y 29.9
Obesidad más de 30
Mostrará los mensajes adicionales al estado de salud en los  siguientes casos
Menores desnutridos (menores de 15 años que presenten bajo peso)
Posible Infarto (mayores de 40 años que presenten obesidad)
Debe subir el archivo .java del formulario, se puede hacer en pareja, debe especificar en el texto los integrantes.

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.