Elabora un programa que lea mandé un mensaje con todas las materias que cursas en el semestre (módulo, cultura digital, comunicación, matemáticas, sociales, inglés, energía con la materia, tutoría y solicite seleccionar una materia para darles 4 libros importantes de esa materia
Aquí te presento un ejemplo de programa en C++ que realiza lo que solicitas: ```cpp #include <iostream> #include <vector> #include <string> // Estructura para representar una materia struct Materia { std::string nombre; std::vector<std::string> libros; }; // Función para agregar una materia void agregarMateria(std::vector<Materia>& materias) { Materia materia; std::cout << "Ingrese el nombre de la materia: "; std::cin >> materia.nombre; std::cout << "Ingrese los 4 libros importantes de la materia (separados por comas): "; std::string libros; std::cin.ignore(); // Ignorar el salto de línea std::getline(std::cin, libros); size_t pos = 0; while ((pos = libros.find(',')) != std::string::npos) { materia.libros.push_back(libros.substr(0, pos)); libros.erase(0, pos + 1); } materias.push_back(materia); } // Función para mostrar las materias void mostrarMaterias(const std::vector<Materia>& materias) { std::cout << "Materias del semestre:" << std::endl; for (size_t i = 0; i < materias.size(); ++i) { std::cout << (i + 1) << ". " << materias[i].nombre << std::endl; } } // Función para seleccionar una materia Materia seleccionarMateria(const std::vector<Materia>& materias) { int opcion; std::cout << "Seleccione una materia del semestre:" << std::endl; mostrarMaterias(materias); std::cout << "Opción: "; std::cin >> opcion; if (opcion >= 1 && opcion <= materias.size()) { return materias[opcion - 1]; } else { std::cerr << "Opción inválida" << std::endl; return Materia(); // Devolver una materia vacía } } int main() { std::vector<Materia> materias; agregarMateria(materias); agregarMateria(materias); agregarMateria(materias); agregarMateria(materias); agregarMateria(materias); Materia materiaSeleccionada = seleccionarMateria(materias); if (!materiaSeleccionada.nombre.empty()) { std::cout << "Libros importantes de la materia '" << materiaSeleccionada.nombre << "':" << std::endl; for (const auto& libro : materiaSeleccionada.libros) { std::cout << libro << std::endl; } } return 0; } ``` Este programa define una estructura `Materia` para representar una materia con su nombre y una lista de libros importantes. La función `agregarMateria` permite agregar una materia al vector de materias, mientras que la función `mostrarMaterias` muestra las materias del semestre. La función `seleccionarMateria` permite seleccionar una materia del semestre y devuelve la materia seleccionada. En el `main`, se agregan 4 materias al vector de materias y luego se selecciona una materia del semestre. Si la materia seleccionada no está vacía, se muestran los libros importantes de la materia seleccionada. Recuerda que este es solo un ejemplo y puedes personalizarlo según tus necesidades.