0% acharam este documento útil (0 voto)
14 visualizações2 páginas

Atividade Java

O documento apresenta um programa em Java que calcula o Índice de Massa Corporal (IMC) com base em sistemas de medida imperial ou métrico. Ele inclui classes para calcular o IMC e obter dados do usuário, garantindo que as entradas sejam válidas. O resultado final exibe o IMC calculado e a classificação correspondente.

Enviado por

tomcorrea53
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato TXT, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
14 visualizações2 páginas

Atividade Java

O documento apresenta um programa em Java que calcula o Índice de Massa Corporal (IMC) com base em sistemas de medida imperial ou métrico. Ele inclui classes para calcular o IMC e obter dados do usuário, garantindo que as entradas sejam válidas. O resultado final exibe o IMC calculado e a classificação correspondente.

Enviado por

tomcorrea53
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato TXT, PDF, TXT ou leia on-line no Scribd

import java.util.

Scanner;

public class Main {

static class BmiCalculadora {


double peso;
double altura;

public BmiCalculadora(double peso, double altura) {


this.peso = peso;
this.altura = altura;
}

public double calcularImcImperial() {


return (peso / (altura * altura)) * 703;
}

public double calcularImcMetric() {


return peso / (altura * altura);
}

public static String classificarImc(double imc) {


if (imc < 18.5) {
return "Abaixo do peso";
} else if (imc < 24.9) {
return "Peso normal";
} else if (imc < 29.9) {
return "Sobrepeso";
} else {
return "Obesidade";
}
}
}

static class EntradaUsuario {


static Scanner scanner = new Scanner(System.in);

public static String obterSistemaIMC() {


String sistema;
do {
System.out.print("Escolha o sistema de medida (Imperial ou
Métrico): ");
sistema = scanner.nextLine().trim().toLowerCase();
if (!sistema.equals("imperial") && !sistema.equals("métrico") && !
sistema.equals("metrico")) {
System.out.println("Sistema inválido! Digite 'Imperial' ou
'Métrico'.");
}
} while (!sistema.equals("imperial") && !sistema.equals("métrico") && !
sistema.equals("metrico"));
return sistema;
}

public static double obterPeso(String sistemaIMC) {


double peso;
do {
if (sistemaIMC.equals("imperial")) {
System.out.print("Informe o peso em libras: ");
} else {
System.out.print("Informe o peso em quilogramas: ");
}
while (!scanner.hasNextDouble()) {
System.out.println("Valor inválido! Digite um número válido.");
scanner.next();
}
peso = scanner.nextDouble();
scanner.nextLine();
if (peso <= 0) {
System.out.println("Peso deve ser maior que zero.");
}
} while (peso <= 0);
return peso;
}

public static double obterAltura(String sistemaIMC) {


double altura;
do {
if (sistemaIMC.equals("imperial")) {
System.out.print("Informe a altura em polegadas: ");
} else {
System.out.print("Informe a altura em metros: ");
}
while (!scanner.hasNextDouble()) {
System.out.println("Valor inválido! Digite um número válido.");
scanner.next();
}
altura = scanner.nextDouble();
scanner.nextLine();
if (altura <= 0) {
System.out.println("Altura deve ser maior que zero.");
}
} while (altura <= 0);
return altura;
}
}

public static void main(String[] args) {


System.out.println("=== Calculadora de IMC ===");
String sistema = EntradaUsuario.obterSistemaIMC();

double peso = EntradaUsuario.obterPeso(sistema);


double altura = EntradaUsuario.obterAltura(sistema);

BmiCalculadora calculadora = new BmiCalculadora(peso, altura);

double imc;
if (sistema.equals("imperial")) {
imc = calculadora.calcularImcImperial();
} else {
imc = calculadora.calcularImcMetric();
}

System.out.printf("Seu IMC é: %.2f\n", imc);


System.out.println("Classificação: " + BmiCalculadora.classificarImc(imc));
}
}

Você também pode gostar