Ajuda para fazer um programa para calcular IMC(indice de massa corporal)  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
Kapucha
Smalltalk

Membro desde: 20/09/2010 21:51:21
Mensagens: 1
Offline

Boa noite sou iniciante em java e estou bem perdido preciso montar esse programa mas o que fiz ta dando erra e não sei o que fazer. Agradeço se puderem me ajudar. obrigado

. O cálculo do índice de massa corporal de uma pessoa (IMC) é o resultado do peso da pessoa dividido por sua altura ao quadrado.
A avaliação desse índice indica se a pessoa está acima ou abaixo do peso de acordo com a seguinte tabela:



Faça um programa com as seguintes características:

a) Defina uma classe pessoa com os atributos privados: nome, idade, sexo, peso e altura.
Além dos métodos públicos de acesso aos atributos, crie dois novos métodos:
calculoDoIMC ? Para calcular o índice de massa corporal da pessoa
avaliacaoDoIMC ? Retornar a condição de acordo com a tabela acima. (3,5 pontos)

b) Crie uma classe para testar o programa que leia os dados de N pessoas, armazene em um vetor e ao final exiba na tela o nome, o IMC e a avaliação de cada pessoa. (3,5 pontos).

esse foi o codigo que criei

public class Pessoa{
private string Nome, Sexo;
private int Idade;
private float Peso, Altura;




public void setNome(string pNome){
Nome= pNome;
}

public void setSexo(string pSexo){
Sexo= pSexo;
}

public void setIdade(int pIdade){
Idade= pIdade;
}

public void setPeso(float pPeso){
Peso= pPeso;
}

public void setAltura(float pAltura){
Altura= pAltura;
}

public string getNome(){
return Nome;
}

public string getSexo(){
return Sexo;
}

public int getIdade(){
return Idade;
}

public float getPeso(){
return Peso;
}

public float getAltura(){
return Altura;
}


}

public class Imprimir{

for ( int j= 0;j<cont;j++){
JOptionPane.showMessageDialog(null,"Nome"+p[i].getNome());
JOptionPane.showMessageDialog(null,"IMC"+calculoDoIMC[j]);
JOptionPane.showMessageDialog(null,"Avaliação"+avaliacaoDoIMC[j]);
}
}

import javax.swing.*;
public class CalculaIMC{
public static void main(String args[]){
public int Cont = 1;


Pessoa p[]= new Pessoa[Cont];
for (int i= 0;i<Cont;i++){
p[i]= new Pessoa();
p[i].setNome(JOptionPane.showInpultDialog("Entre como o Nome"));
p[i].setSexo(JOptionPane.showInpultDialog("Entre como o Sexo"));
p[i].setIdade(Integer.parseInt(JOptionPane.showInpultDialog("Entre com a Idade")));
p[i].setPeso(Float.parseFloat(JOptionPane.showInpultDialog("Entre com o Peso")));
p[i].setAltura(Float.parseFloat(JOptionPane.showInpultDialog("Entre com a Altura")));
Cont= Cont + 1;
public double CalculoDoIMC[i](double p[i].getPeso(), double p[i].getAltura()){
return p[i].getPeso() / (Math.pow(p[i].getAltura(),2));
}

public string avaliacaoDoIMC[i](string p[i].getSexo(), double CalculoDoIMC){
if (p[i].getSexo() == "f"){
if (CalculoDoIMC < 19.1){
return "Abaixo do peso ideal";
}
else if (CalculoDoIMC < 25.{
return "No peso ideal";
}
else if (CalculoDoIMC < 27.3){
return "Marginalmente acima do peso";
}
else if (CalculoDoIMC < 32.3){
return "Acima do peso ideal";
}
else
return "Obeso";

}
else if (p[i].getSexo() == "m"){
if (CalculoDoIMC < 20.7){
return "Abaixo do peso ideal";
}
else if (CalculoDoIMC < 26.4){
return "No peso ideal";
}
else if (CalculoDoIMC < 27.{
return "Marginalmente acima do peso";
}
else if (CalculoDoIMC < 31.1){
return "Acima do peso ideal";
}
else
return "Obeso";
}
}


}

Imprimir= new Imprimir();

System.exit(0);
}
}
Roger75
GUJ Master
[Avatar]

Membro desde: 26/10/2003 12:18:59
Mensagens: 1465
Offline

http://www.youtube.com/watch?v=-3yjFXcVWg0
Anime
JWizard
[Avatar]

Membro desde: 11/11/2009 07:37:26
Mensagens: 2003
Localização: São José do Rio Preto-SP
Offline

Oi,

Da uma olhadinha aq,talvez ajude:http://www.guj.com.br/posts/list/218856.java

Aq também:http://www.rodrigocordula.com.br/javagraf2.php

Boa Sorte!


O sorriso de fraternidade, a ajuda silenciosa, a humildade sem alarde,
a flor da gentileza e o gesto amigo cabem prodigiosamente, em qualquer parte.
Chico Xavier - Emmanuel
edu_fernandes
JavaGuru
[Avatar]

Membro desde: 10/05/2010 09:35:02
Mensagens: 236
Localização: São Paulo
Offline

Meu caro.
Vou te dar uma ajudinha baseado nesse código.
Não vou te ensinar a fazer, mas lhe mostar os erros que esta cometendo.

Você quer imprimir certo?
Antes disso, não testei, mas me parece, a olho nu, e levando em conta o horario, que está tudo certo.

Você tem uma classe Imprimir.
O papel dessa classe é imprimir certo?
Mas você quer acessar um objeto Pessoa e essa classe não tem acesso a ela. Esse p[i] (Pessoa) dentro dela é com ose fosse uma variável da classe. Entendeu?
A classe é a receita do objeto, assim como a receita do bolo. Compara as classes Pessoa e Imprimir. Entendeu a diferença?
Cria um método em pessoa para imprimir e passe como parêmetro um objeto do tipo Pessoa. Entendeu?

Ao tentar imprimir você digitou assim.

Imprimir = new Imprimir();

Imprimir é uma classe e você não pode instanciar um novo objeto Imprimir na própria classe. Precisa dar um nome.

Imprimir imprimir = new Imprimir();

Desta forma está correto.

Uma outra dica. Você pode construir um construtor com parâmetros, já que a função da sua classe de calcular o IMC é apenas calcular em cima de uma pessoa.
Vai que alguém esquece de instanciar essa pessoa? Então ela seria inutil. No próprio construtor da classe já crie o objeto Pessoa, assim fica menos propicio a erros.

Espero que tenha conseguido ser claro.
Espero também ter ajudado em algo.
Caso contrário, favor desconciderar o post.

Abraço e boa sorte.

Eduardo Fernandes

A cada 1mb na internet custa 0,1 á 0,2 centavos direto ou indiretamente.
Poupe dinheiro com respostas que não ajudam.
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team