Olá pessoal, estou precisando resolver um pepino em uma classe que criei para a faculdade, eu preciso receber dados de N pessoas: nome, idade, sexo, peso e altura.
Após recebê-las é necessário verificar, de acordo com o sexo, qual o IMC e mostrar o resultado em tela.
Criei uma classe chamada de AtributosPessoa, onde está as variáveis, sets/gets e método de cálculo de IMC:
public class AtributosPessoa{
private String nome, sexo;
private int idade;
private double peso, altura;
public AtributosPessoa(){
nome="";
sexo="";
idade=0;
peso=0;
altura=0;
}
public AtributosPessoa(String snome, String ssexo, int sidade, double speso, double saltura){
nome=snome;
sexo=ssexo;
idade=sidade;
peso=speso;
altura=saltura;
}
public void setNome(String snome){
nome=snome;
}
public void setSexo(String ssexo){
sexo=ssexo;
}
public void setIdade(int sidade){
idade=sidade;
}
public void setPeso(double speso){
peso=speso;
}
public void setAltura(double saltura){
altura=saltura;
}
public String getNome(){
return nome;
}
public String getSexo(){
return sexo;
}
public int getIdade(){
return idade;
}
public double getPeso(){
return peso;
}
public double getAltura(){
return altura;
}
public double CalculaImc(){
return peso/(altura*altura);
}
}
E outra classe para entrar com as informações de 3 pessoas:
import javax.swing.*;
public class EntradaPessoa{
public static void main(String args[]){
AtributosPessoa c[]=new AtributosPessoa[3];
for(int i=0;i<3;i++){
c[i]=new AtributosPessoa();
c[i].setNome(JOptionPane.showInputDialog("Entre com o Nome:"));
c[i].setIdade(Integer.parseInt(JOptionPane.showInputDialog("Entre com a Idade:")));
c[i].setSexo(JOptionPane.showInputDialog("Entre com o Sexo:"));
c[i].setPeso(Double.parseDouble(JOptionPane.showInputDialog("Entre com o Peso:")));
c[i].setAltura(Double.parseDouble(JOptionPane.showInputDialog("Entre com a Altura:")));
}
}
}
Até aí tudo ok, consigo até retornar o cálculo de IMC e mostrar em tela, porém não estou conseguindo fazer isso com base no sexo da pessoa cadastrada, preciso mostrar se ela está acima do peso, abaixo, na média de acordo com uma tabelinha pré-definida:

imc por contato.rickmachado, no Flickr
Alguém poderia me auxiliar nesse caso? Por favor, não pensem que quero respostas prontas, pois assim seria muito fácil, eu gostaria de entender como faço esse retorno, eu acredito que precisaria utilizar uns if para isso mas já tentei inserir como abaixo:
if(c[i].getSexo()=="F")
if(CalculaImc<19.1)
JOptionPane.showMessageDialog(null,"Você está abaixo do peso");
else
if(CalculaImc<25.8)
JOptionPane.showMessageDialog(null,"Você está no peso ideal");
else
if(CalculaImc<27.3)
JOptionPane.showMessageDialog(null,"Você está acima do peso");
}
}
}
Se alguém puder me dar uma luz, agradeceria muito, pois, preciso alcançar média nessa matéria para não reprovar.
Obrigado.
[color=red]ATUALIZAÇÃO:[/color]
Olá pessoal, estou criando um esqueminha da seguinte maneira:
import javax.swing.*;
public class EntradaPessoa{
public static void main(String args[]){
AtributosPessoa c[]=new AtributosPessoa[100];
for(int i=0;i<3;i++){
c[i]=new AtributosPessoa();
c[i].setNome(JOptionPane.showInputDialog("Entre com o Nome:"));
c[i].setIdade(Integer.parseInt(JOptionPane.showInputDialog("Entre com a Idade:")));
c[i].setSexo(JOptionPane.showInputDialog("Entre com o Sexo - (M)Masculino / (F)Feminino:"));
c[i].setPeso(Float.parseFloat(JOptionPane.showInputDialog("Entre com o Peso:")));
c[i].setAltura(Float.parseFloat(JOptionPane.showInputDialog("Entre com a Altura:")));
if(c[i].getSexo().equalsIgnoreCase("F"))
if(getCalculaImc()<=19.1)
JOptionPane.showMessageDialog(null,"Você está abaixo do peso");
else
if(getCalculaImc<=25.8)
JOptionPane.showMessageDialog(null,"Você está no peso ideal");
else
if(getCalculaImc<=27.3)
JOptionPane.showMessageDialog(null,"Você está acima do peso");
}
}
}
Porém, está retornando erro nas linhas 15, 18 e 21.
Alguma dica?
