/*
* Uma pesquisa com as pessoas adultas (acima de 18 anos) que utilizam o serviço do
* Posto de Saúde da Zona Leste será realizada na primeira sexta-feira de junho, das
* 08:00 Ã s 12:00.
* pesquisa serão perguntados:
* . Nome
* . Sexo
* . Peso
* . Altura
* . Idade
* Ao final da pesquisa,deverão ser calculados:
* . Número de homens adultos
* . Média de peso dos homens adultos
* . IMC dos homens adultos
* . Percentual de homens obesos (todas as classificações)
*
* . Número de mulheres adultas
* . Media de peso das mulheres adultas
* . IMC das mulheres adultas.
* . Percentual de pessoas obesas (todas as classificações)
*
* . Número de pessoas entrevistadas
* . Media de peso das pessoas entrevistadas
* . IMC das pessoas entrevistadas
* . Percentual de pessoas obesas (todas as classificações)
*
* Observaçoes :
* Não se sabe ao certo quantas pessoas serão entrevistadas pela pesquisa.
* Considere um número máxihomens_obesos de 1000 entrevistados.
* A cada nova entrevistado o programa deve perguntar se a pesquija já
* encerrou (se não existe mais pessoas a serem entrevistadas ou se ja terminou
* o horário da entrevista). Caso tenha encerrado, deverá ser finalizada a rotina
* de inclusão de dados na pesquisa e exibir o menu com as seguintes informaçoes:
* . Exibir lista de entrevistados.
* . Exibir os cálculos dos homens adultos.
* . Exibir os cálculos das mulheres adultas.
* . Exibir todos que estão obesos.
* . Exibir a lista de todos os pesquisados por ordem de situação:
* - Abaixo do normal.
* - Normal.
* - Obeso (todas as classificaçoes).
*/
import javax.swing.JOptionPane;
/**
*
* @author Bruno Ferreira e Barbara Mangili
*/
public class TRABALHO {
public static void main(String[] args) {
// Informaçoes
int []idade = new int[1000];
double []altura = new double[1000];
double []peso = new double[1000];
String []nome=new String[1000];
String []sexo=new String[1000];
double []IMC=new double[1000];
// variavel de saida
int n=1;
int final1=1;
// estatisticas
// Gordos
int homens_obesos=0;
int mulheres_obesas=0;
int pessoas_obesas=0;
// Normais
int homens_normais=0;
int mulheres_normais=0;
int pessoas_normais=0;
// Anorexos
int homens_leves=0;
int mulheres_leves=0;
int pessoas_leves=0;
// coleta de informaçoes
int pessoas=0;
int homens=0;
int mulheres=0;
for(int cont1=0; cont1<1000; cont1++) {
while(n!=0) {
pessoas+=1;
nome[cont1] = (JOptionPane.showInputDialog(null, "Nome:"));
sexo[cont1] = (JOptionPane.showInputDialog(null, "Sexo (masculino ou feminino ou m ou f|):"));
peso[cont1] = Double.parseDouble(JOptionPane.showInputDialog(null, "Peso:"));
altura[cont1] = Double.parseDouble(JOptionPane.showInputDialog(null, "Altura:"));
idade[cont1] = Integer.parseInt(JOptionPane.showInputDialog(null, "Idade:"));
IMC[cont1] = peso[cont1]/(altura[cont1]*altura[cont1]);
// Comparaçao Sexo
JOptionPane.showMessageDialog(null,IMC[cont1]+" = "+peso[cont1]+" /( "+altura[cont1]+" * "+altura[cont1]+")" );
if(sexo[cont1] == "masculino" || sexo[cont1] == "m") {
homens++;
if(IMC[cont1] < 20) {
homens_leves = homens_leves+1;
pessoas_leves = pessoas_leves+1;
} else if(IMC[cont1] >= 20 && IMC[cont1] < 24.9) {
homens_normais = homens_normais + 1;
pessoas_normais = pessoas_normais + 1;
} else if(IMC[cont1]>25) {
homens_obesos=homens_obesos+1;
pessoas_obesas=pessoas_obesas+1;
}
} else if(sexo[cont1] == "feminino" || sexo[cont1] == "f") {
mulheres++;
if(IMC[cont1] < 19) {
pessoas_leves=pessoas_leves+1;
mulheres_leves=mulheres_leves+1;
} else if(IMC[cont1] >= 19 && IMC[cont1] < 23.9) {
pessoas_normais = pessoas_normais + 1;
mulheres_normais = mulheres_normais + 1;
} else if(IMC[cont1] > 24) {
pessoas_obesas = pessoas_obesas+1;
mulheres_obesas = mulheres_obesas+1;
}
}
// Menor de Idade
if(idade[cont1] < 18) {
if(sexo[cont1] == "masculino" || sexo[cont1] == "m") {
homens--;
} else if(sexo[cont1] == "feminino" || sexo[cont1] == "f") {
mulheres--;
}
pessoas--;
nome[cont1] = "Descartado";
sexo[cont1] = "Descartado";
peso[cont1] = 0;
altura[cont1] = 0;
idade[cont1] = 0;
IMC[cont1] = 0;
if(cont1 > 0) {
cont1--;
}
JOptionPane.showMessageDialog(null, "IDADE INAPROPRIADA DADOS DESCARTADOS");
}
// SAIDA
n = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite 0 para sair caso queria continuar qualquer outro numero:"));
if(n==0) {
cont1 = 1000;
}
}
}
JOptionPane.showMessageDialog(null,"Certo pesquisa finalizada agora vá aos dados");
while(final1!=0) {
final1 = Integer.parseInt((JOptionPane.showInputDialog(null, "Digite um numero correspondente as opçoes:"
+"\n0.Sair"
+"\n1.Nome das pessoas obesas"
+"\n2.Numero de homens mulheres e geral em cada ixa de peso"
+"\n3.Exibir todas informaçoes dos candidatos"
+"\n4.Exibir calculos"
+"\n5.Medias de peso"
+"\n6.Medias de IMC ")));
switch(final1) {
case 1:
for(int cont1 = 0; cont1 <= pessoas; cont1++) {
if(sexo[cont1].equalsIgnoreCase("m") || sexo[cont1].equalsIgnoreCase("masculino")) {
if(IMC[cont1] > 24.9) {
JOptionPane.showMessageDialog(null, nome[cont1]);
}
} else if(sexo[cont1].equalsIgnoreCase("f") || sexo[cont1].equalsIgnoreCase("feminino")) {
if(IMC[cont1] > 23.9) {
JOptionPane.showMessageDialog(null, nome[cont1]);
}
} else if (homens_obesos==0 && mulheres_obesas==0) {
JOptionPane.showMessageDialog(null, "Ta todo mundo BUNITO");
}
}
break;
case 2:
// Homens
JOptionPane.showMessageDialog(null, "Homens\nObesos: " + homens_obesos+"\nNormais: " + homens_normais + "\nBaixo do peso: " + homens_leves);
// Mulheres
JOptionPane.showMessageDialog(null, "Mulheres\nObesas: " + mulheres_obesas + "\nNormais: " + mulheres_normais + "\nBaixo do peso: " + mulheres_leves);
// Pessoas
JOptionPane.showMessageDialog(null, "Total\nObesos: " + pessoas_obesas + "\nNormais: " + pessoas_normais + "\nBaixo do peso: " + pessoas_leves);
break;
case 3:
for(int cont1 = 0; cont1 <= pessoas; cont1++) {
JOptionPane.showMessageDialog(null,"Informaçoes\nnome:" + nome[cont1] + "\nidade:" + idade[cont1] + "\npeso:" + peso[cont1] + "\nsexo:" + sexo[cont1] + "\naltura:" + altura[cont1]);
}
break;
case 4:
// Calculos
JOptionPane.showMessageDialog(null, "IMC=Peso/altura²");
break;
case 5:
//Medias de peso
double mediapesog=0;
double mediapesom=0;
double mediapesof=0;
for (int cont1 = 0; cont1 < pessoas; cont1++) {
mediapesog = mediapesog + IMC[cont1];
if(sexo[cont1] == "m" || sexo[cont1] == "masculino") {
mediapesom=mediapesom+IMC[cont1];
} else {
mediapesof = mediapesof + IMC[cont1];
}
}
mediapesog=mediapesog/pessoas;
mediapesom=mediapesom/homens;
mediapesof=mediapesof/mulheres;
JOptionPane.showMessageDialog(null, "IMC=Peso/altura²");
break;
case 6:
// Medias de IMC
double mediaimcg=0;
double mediaimcm=0;
double mediaimcf=0;
for (int cont1 = 0; cont1 < pessoas; cont1++) {
mediaimcg = mediaimcg + IMC[cont1];
if(sexo[cont1].equalsIgnoreCase("m") || sexo[cont1].equalsIgnoreCase("masculino")) {
mediaimcm=mediaimcm+IMC[cont1];
} else {
mediaimcf=mediaimcf+IMC[cont1];
}
}
JOptionPane.showMessageDialog(null, "IMC=Peso/altura²");
break;
default:
JOptionPane.showMessageDialog(null, "Voce escolheu sair!");
break;
}
}
}
}
NullPointerException
acontece quando você tenta invocar um método em uma referência que aponta para null
. Por exemplo:
List<Integer> listaX = null; // variavel listaX aponta para null
listaX.size(); // NullPointerException
Ou então:
void funcao(Object parametro) {
parametro.wait(); // null pointer exception, pois parametro == null
}
//...
funcao(null);
Quando acontece a exceção, vai aparecer no console a linha do teu código que está causando esse erro. Procure essa linha, descubra qual referência aponta para null
e corrija isso. É erro de lógica, você esqueceu de instanciar um objeto ou setou a referência para null
explicitamente.
1 curtida