Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

[Sugerencia] Verificación de compatibilidad para donar sangre

public class Donante {

    private int edad;
    private double peso;

    public void compatible(){
        if ((edad >=18 && edad <= 65) && peso > 50){
            System.out.println("El donante es compatible.");
        } else {
            System.out.println("El donante no es compatible.\n" +
                    "Motivo: Debe tener entre 18 y 65 años.");
        }
    }

    public int getEdad() {
        return edad;
    }

    public void setEdad(int edad) {
        this.edad = edad;
    }

    public double getPeso() {
        return peso;
    }

    public void setPeso(double peso) {
        this.peso = peso;
    }
}

import java.util.Scanner;

public class Principal {
    public static void main(String[] args) {

        Donante donante = new Donante();
        int edad;
        double peso;
        Scanner tecladoE = new Scanner(System.in);
        System.out.print("ingresa la edad: ");
        edad = tecladoE.nextInt();
        Scanner tecladoP = new Scanner(System.in);
        System.out.print("ingresa el peso: ");
        peso = tecladoP.nextDouble();
        donante.setEdad(edad);
        donante.setPeso(peso);
        donante.compatible();
    }
}
1 respuesta

Hola Juan, espero que estés bien

Gracias por compartir tu código. Veo que estás en el camino correcto, pero hay un pequeño detalle que podrías mejorar para que tu programa cumpla con todos los requisitos de la actividad. Actualmente, tu programa solo indica que el donante no es compatible si no cumple con el criterio de edad, pero no menciona nada sobre el peso.

Para que el programa también indique si el peso es el problema, puedes modificar la lógica dentro del método compatible para verificar cada criterio por separado y proporcionar un mensaje específico para cada caso. Aquí tienes una sugerencia de cómo podrías hacerlo:

public void compatible() {
    if (edad < 18 || edad > 65) {
        System.out.println("El donante no es compatible.\n" +
                "Motivo: Debe tener entre 18 y 65 años.");
    } else if (peso <= 50) {
        System.out.println("El donante no es compatible.\n" +
                "Motivo: Debe pesar más de 50 kg.");
    } else {
        System.out.println("El donante es compatible.");
    }
}

Con esta modificación, el programa verificará primero si la edad está fuera del rango permitido y, si no lo está, verificará el peso. Así, podrás proporcionar un mensaje claro sobre cuál criterio no se cumple.

Espero que esta sugerencia te sea útil y que puedas continuar avanzando en tu aprendizaje de Java. ¡Espero haber ayudado y buenos estudios!