|Refactoriza: calificaciones de estudianteDifícil
Ejercicio00:00

¿Quieres un reto mayor?

Resuelve en 15:00

info

Importante: Para que se registre el resultado tienes que iniciar sesión.

Refactoriza: calificaciones de estudiante

Difícil200 pts·Refactorización
ruleRestricciones de Refactoring
  • radio_button_unchecked
    Sin números mágicos de calificación
  • radio_button_unchecked
    Sin variables de una sola letra
  • radio_button_unchecked
    Declara constantes en UPPER_SNAKE_CASE
  • radio_button_unchecked
    Extrae al menos una función auxiliar

Enunciado

Contexto

Tienes una función que procesa las calificaciones de un estudiante y devuelve un objeto con su promedio, letra de calificación, si aprobó y cuántos puntos de bono recibe. El problema: toda la lógica vive en una sola función larga, con números mágicos por todas partes y variables de una letra.

Tu tarea

Refactoriza la función processStudentGrades para que:

  1. Elimines los números mágicos — extrae constantes como PASSING_SCORE, GRADE_A_THRESHOLD, etc.
  2. Renombres las variables — elimina letras sueltas y usa nombres que expresen intención
  3. Extraigas funciones auxiliares — al menos una función por responsabilidad: calcular promedio, determinar letra, calcular bono

Reglas del negocio

  • El promedio se calcula sobre todos los puntajes (redondea a 1 decimal)
  • Letra de calificación: A (≥90), B (≥80), C (≥70), D (≥60), F (<60)
  • Aprobado si el promedio es ≥ 60
  • Bono: si la materia es "math" y el promedio ≥ 90 → +10 puntos; si la materia es "science" y el promedio ≥ 80 → +5 puntos; en cualquier otro caso → 0
Restriccionesexpand_more
  • Dificultad: Difícil
  • Completa todos los test cases para obtener los 200 puntos.
  • No modificar la línea export al final del archivo.
  • Se recomienda evitar el uso de inteligencia artificial para que realmente tú practiques los ejercicios.

Puedes usar console.log() para depurar. Los resultados aparecen en la Consola de salida, no en el navegador.

Inicia sesión para reaccionar
Inicia sesión para reaccionar
8 soluciones · 100% aceptación