switch(opcion) {
case 1: // Agregar nuevo donante
contadorDonantes++;
System.out.println("\nREGISTRO DE DONANTE #" + contadorDonantes);
System.out.print("Ingrese nombres completos del donante: ");
String nombres = scanner.nextLine();
System.out.print("Ingrese apellidos completos del donante: ");
String apellidos = scanner.nextLine();
System.out.print("Ingrese tipo de documento de identificación: ");
String tipoDocumento = scanner.nextLine();
System.out.print("Ingrese número de documento de identificación: ");
String numeroDocumento = scanner.nextLine();
System.out.print("Ingrese peso del donante (kg): ");
double peso = scanner.nextDouble();
System.out.print("Ingrese edad del donante: ");
int edad = scanner.nextInt();
scanner.nextLine(); // Limpiar buffer
System.out.print("Ingrese tipo de sangre: ");
String tipoSangre = scanner.nextLine();
// Verificar criterios
boolean esCompatible = (edad >= 18 && edad <= 65) && (peso > 50);
String[] donante = {
String.valueOf(contadorDonantes),
nombres,
apellidos,
tipoDocumento,
numeroDocumento,
String.valueOf(peso),
String.valueOf(edad),
tipoSangre
};
if(esCompatible) {
donantesCompatibles.add(donante);
System.out.println("\nRESULTADO: Donante COMPATIBLE");
System.out.println("Criterios cumplidos:");
if(edad >= 18 && edad <= 65) {
System.out.println("- Edad entre 18 y 65 años: CUMPLIDO");
}
if(peso > 50) {
System.out.println("- Peso mayor a 50 kg: CUMPLIDO");
}
} else {
donantesNoCompatibles.add(donante);
System.out.println("\nRESULTADO: Donante NO COMPATIBLE");
System.out.println("Criterios no cumplidos:");
if(edad < 18 || edad > 65) {
System.out.println("- Edad entre 18 y 65 años: NO CUMPLIDO");
}
if(peso <= 50) {
System.out.println("- Peso mayor a 50 kg: NO CUMPLIDO");
}
}
break;
case 2: // Mostrar donantes compatibles
System.out.println("\nLISTA DE DONANTES COMPATIBLES");
System.out.println("-------------------------------------------------------------");
System.out.println("No. | Nombres y Apellidos | Tipo Doc | Núm Doc | Peso | Edad | Tipo Sangre");
System.out.println("-------------------------------------------------------------");
for(String[] d : donantesCompatibles) {
System.out.printf("%-3s | %-20s | %-8s | %-8s | %-4s | %-4s | %-11s\n",
d[0], d[1] + " " + d[2], d[3], d[4], d[5], d[6], d[7]);
}
break;
case 3: // Mostrar donantes no compatibles
System.out.println("\nLISTA DE DONANTES NO COMPATIBLES");
System.out.println("-------------------------------------------------------------");
System.out.println("No. | Nombres y Apellidos | Tipo Doc | Núm Doc | Peso | Edad | Tipo Sangre");
System.out.println("-------------------------------------------------------------");
for(String[] d : donantesNoCompatibles) {
System.out.printf("%-3s | %-20s | %-8s | %-8s | %-4s | %-4s | %-11s\n",
d[0], d[1] + " " + d[2], d[3], d[4], d[5], d[6], d[7]);
}
break;
case 4: // Editar donante
System.out.println("\nEDITAR DONANTE");
System.out.print("Ingrese el número del donante a editar: ");
int numEditar = scanner.nextInt();
scanner.nextLine(); // Limpiar buffer
boolean encontrado = false;