Desafío: Clasificador de calificaciones
Parte de la sección Lógica y Flujo del Journey de Dart de Coddy — lección 63 de 65.
Desafío
FácilCrea un sistema integral de gestión de calificaciones de estudiantes que procese datos de estudiantes a partir de un mapa, filtre a los estudiantes aprobados y los organice alfabéticamente. Este desafío combina la iteración de mapas, el filtrado condicional, las operaciones de listas y la ordenación.
Se te proporciona la siguiente entrada:
- Una cadena JSON que representa un mapa de nombres de estudiantes (claves) y sus puntuaciones en los exámenes (valores)
La cadena JSON se verá así: {"Alice": 85, "Bob": 45, "Charlie": 92, "Diana": 58, "Eve": 76, "Frank": 39, "Grace": 88}
Tu tarea es:
- Analizar la cadena JSON en un Map utilizando los métodos de Dart apropiados
- Crear una lista vacía llamada
passingStudentspara almacenar los nombres de los estudiantes que aprobaron - Iterar a través del mapa y agregar los nombres de los estudiantes que obtuvieron una puntuación de 60 o superior a la lista
passingStudents - Ordenar la lista
passingStudentsalfabéticamente utilizando el métodosort() - Imprimir el número total de estudiantes que realizaron el examen con el formato exacto:
Total students: X - Imprimir el número de estudiantes que aprobaron con el formato exacto:
Students who passed: X - Imprimir el número de estudiantes que reprobaron con el formato exacto:
Students who failed: X - Imprimir los estudiantes aprobados en orden alfabético, cada uno en una línea nueva, con el formato exacto:
Passing student: [name] - Si ningún estudiante aprobó, imprimir:
No students passed the exam
Tu programa debe demostrar una iteración de mapa adecuada, lógica condicional para filtrar datos basados en el umbral de aprobación de 60, manipulación de listas y operaciones de ordenación. La salida debe coincidir con el formato exacto especificado anteriormente, con los estudiantes aprobados enumerados en orden alfabético.
Pruébalo tú mismo
import 'dart:io';
import 'dart:convert';
void main() {
// Leer la entrada de la cadena JSON
String? jsonString = stdin.readLineSync();
// Analizar la cadena JSON en un Map
Map<String, dynamic> studentGrades = jsonDecode(jsonString!);
// Crear una lista vacía para almacenar a los estudiantes aprobados
List<String> passingStudents = [];
// TODO: Escribe tu código a continuación
// 1. Iterar a través del mapa y filtrar a los estudiantes que obtuvieron 60 o más
// 2. Agregar los nombres de los estudiantes aprobados a la lista passingStudents
// 3. Ordenar la lista passingStudents alfabéticamente
// 4. Calcular e imprimir las estadísticas requeridas
// 5. Imprimir los estudiantes aprobados en el formato especificado
// Mostrar los resultados (reemplazar con tu implementación)
print("Total students: ");
print("Students who passed: ");
print("Students who failed: ");
// Imprimir estudiantes aprobados o el mensaje "No students passed the exam"
}Todas las lecciones de Lógica y Flujo
1Manipulación avanzada de listas
Propiedades de listas: first y lastEstado de la lista: isEmpty y isNotEmptyInvertir una listaAñadir a una lista: insertEliminación en listas: removeWhereBúsqueda en una lista: indexOfOrdenar una listaMezclar una listaResumen - Organizador de listas4Manipulación avanzada de mapas
Iterar sobre un mapaComprobación de claves y valoresPropiedades del mapa: keys y valuesAdición condicional: putIfAbsentEliminar entradas de un mapaMapas anidadosResumen - Actualización de inventario7Funciones avanzadas
Funciones anónimasPasar funciones como argumentosEntendiendo los ClosuresIntroducción a la recursividadFunción recursiva: Cuenta regresivaFunción recursiva: FactorialResumen - Procesador de listas10Desafíos finales
Desafío: Clasificador de calificacionesDesafío: Contador de vocalesDesafío: FizzBuzz2Operaciones funcionales con listas
Transformar con 'map'Filtrar con 'where'Uso de '.toList()'Comprobar condiciones con 'any'Condiciones con 'every'Búsqueda con 'firstWhere'Resumen - Filtrado de datos5Proyecto: Calculadora de carrito de compras
Configuración del proyectoAgregar artículos al carrito3Conjuntos
¿Qué es un Conjunto?Crear un ConjuntoAñadir y eliminar elementos de un ConjuntoComprobar elementos en un ConjuntoConvertir una lista en un ConjuntoUnión de ConjuntosIntersección de ConjuntosDiferencia de ConjuntosResumen - Lista de invitados única