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

[Proyecto] Verificación de compatibilidad para donar sangre.

import java.util.Scanner;

public class VerificaciónDeCompatibilidadParaDonarSangre {
    public static void main(String[] args) {
        
        Scanner scanner = new Scanner(System.in);

        System.out.print("Ingrese la edad del donante: ");
        int edad = scanner.nextInt();

        System.out.print("Ingrese el peso del donante (en kg): ");
        double peso = scanner.nextDouble();

        System.out.print("¿El donante está en buen estado de salud? (sí/no): ");
        String estadoSalud = scanner.next();

        System.out.print("¿El donante ha tenido cirugías recientes? (sí/no): ");
        String cirugias = scanner.next();

        System.out.print("¿El donante está embarazada o en periodo de lactancia? (sí/no): ");
        String embarazoLactancia = scanner.next();

        System.out.print("¿El donante ha tenido enfermedades como VIH o hepatitis? (sí/no): ");
        String enfermedades = scanner.next();

        System.out.print("¿El donante ha consumido drogas ilícitas en los últimos 6 meses? (sí/no): ");
        String drogas = scanner.next();

   
        if (edad >= 18 && edad <= 65 && peso > 50 && estadoSalud.equalsIgnoreCase("si")
                && cirugias.equalsIgnoreCase("no") && embarazoLactancia.equalsIgnoreCase("no")
                && enfermedades.equalsIgnoreCase("no") && drogas.equalsIgnoreCase("no")) {
            System.out.println("El donante es compatible.");
        } else {
            System.out.println("El donante no es compatible.");
            if (edad < 18 || edad > 65) {
                System.out.println("Motivo: Debe tener entre 18 y 65 años.");
            }
            if (peso <= 50) {
                System.out.println("Motivo: Debe pesar más de 50 kg.");
            }
            if (estadoSalud.equalsIgnoreCase("no")) {
                System.out.println("Motivo: El donante debe estar en buen estado de salud.");
            }
            if (cirugias.equalsIgnoreCase("sí")) {
                System.out.println("Motivo: El donante no debe haber tenido cirugías recientes.");
            }
            if (embarazoLactancia.equalsIgnoreCase("sí")) {
                System.out.println("Motivo: El donante no debe estar embarazada o en periodo de lactancia.");
            }
            if (enfermedades.equalsIgnoreCase("sí")) {
                System.out.println("Motivo: El donante no debe haber tenido enfermedades como VIH o hepatitis.");
            }
            if (drogas.equalsIgnoreCase("sí")) {
                System.out.println("Motivo: El donante no debe haber consumido drogas ilícitas en los últimos 6 meses.");
            }
        }

        scanner.close();
    }
}
1 respuesta

Hola Yair, espero que estés bien

¡Espero que estés bien! He revisado tu código y parece que está funcionando correctamente para verificar la compatibilidad de un donante de sangre según los criterios que mencionaste. Sin embargo, parece que el ejercicio solo requiere verificar la edad y el peso del donante, mientras que tu código también considera otros factores como el estado de salud, cirugías recientes, embarazo/lactancia, enfermedades y consumo de drogas.

Para simplificar el programa y ajustarlo a los requisitos del ejercicio, podrías modificarlo para que solo considere la edad y el peso del donante. Aquí tienes un ejemplo de cómo podría quedar:

import java.util.Scanner;

public class VerificaciónDeCompatibilidadParaDonarSangre {
    public static void main(String[] args) {
        
        Scanner scanner = new Scanner(System.in);

        System.out.print("Ingrese la edad del donante: ");
        int edad = scanner.nextInt();

        System.out.print("Ingrese el peso del donante (en kg): ");
        double peso = scanner.nextDouble();

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

        scanner.close();
    }
}

Con estas modificaciones, el programa ahora se centra solo en los criterios de edad y peso, que son los requeridos por el ejercicio. Espero que esto te ayude a avanzar en tu proyecto.

¡Espero haber ayudado y buenos estudios!