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.
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 operadormap[]para añadir estudiantes. - Emplea
map.at()omap[]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.
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++.



