Implementar un Registro de Estudiantes Simple

C++Beginner
Practicar Ahora

Introducción

En este desafío, crearás un programa en C++ que gestione un registro de estudiantes utilizando el contenedor std::map de la Biblioteca de Plantillas Estándar (STL). El objetivo es practicar el uso de estructuras de datos de tipo clave-valor para realizar el seguimiento y la gestión de información académica de manera eficiente, tal como lo haría un administrador escolar.

El programa deberá permitirte añadir nuevos estudiantes con sus respectivos nombres y edades, consultar la edad de un alumno mediante su nombre y mostrar todos los registros almacenados en el sistema.

Este es un Desafío (Challenge), el cual difiere de un Laboratorio Guiado en que deberás intentar completar la tarea de forma independiente, en lugar de seguir pasos de aprendizaje estructurados. Los desafíos suelen tener una dificultad mayor. Si encuentras obstáculos, puedes consultarlo con Labby o revisar la solución propuesta. Los datos históricos indican que este es un desafío de nivel principiante con una tasa de aprobación del 100%. Ha recibido una valoración positiva del 100% por parte de los usuarios.

Implementar un Registro de Estudiantes Simple

Como administrador de una escuela, necesitas desarrollar un sistema digital para organizar y gestionar la información de los alumnos de forma eficaz utilizando el contenedor map de C++ STL. Este reto te ayudará a dominar el manejo de estructuras de datos basadas en pares clave-valor.

Tareas

  • Desarrollar un programa en C++ que gestione un registro de estudiantes mediante std::map.
  • Implementar funciones para dar de alta a estudiantes con su nombre y edad.
  • Permitir la consulta de la edad de un estudiante a partir de su nombre.
  • Listar todos los registros de estudiantes presentes en el sistema.

Requisitos

  • Crear el código fuente en la ruta ~/project/student_roster.cpp.
  • Utilizar std::map<std::string, int> para almacenar los nombres y las edades.
  • Implementar las siguientes operaciones:
    • Añadir un nuevo estudiante al registro.
    • Recuperar la edad de un estudiante por su nombre.
    • Mostrar la lista completa de estudiantes.
  • Emplear únicamente operaciones estándar de map de la STL de C++ vistas anteriormente.
  • Compilar el programa utilizando el compilador g++.

Ejemplos

Compila y ejecuta el programa para gestionar el registro:

g++ student_roster.cpp -o student_roster
./student_roster

Ejemplo de interacción (entrada y salida):

Enter command (add/get/list/quit): add
Enter student name: Alice
Enter student age: 20

Enter command (add/get/list/quit): add
Enter student name: Bob
Enter student age: 22

Enter command (get/list): get
Enter student name: Alice
Alice is 20 years old

Enter command (list): list
Alice: 20
Bob: 22

Consejos

  • Utiliza map.insert() o el operador map[] para añadir estudiantes.
  • Emplea map.at() o map[] para obtener la edad de un alumno.
  • Recorre el mapa utilizando un bucle for basado en rangos (range-based for loop).
  • Gestiona las posibles excepciones al intentar recuperar edades de claves inexistentes.
✨ Revisar Solución y Practicar

Resumen

En conclusión, este desafío te ha requerido implementar un programa en C++ para gestionar un registro de alumnos mediante el contenedor std::map. El sistema permite dar de alta nuevos estudiantes, consultar sus edades por nombre y visualizar la lista completa de registros. Este ejercicio ha sido diseñado para fortalecer tus habilidades en el uso de estructuras de datos clave-valor para la gestión eficiente de información en C++.