Generation

generate functionSat, 26 Apr 2025

Crear un pequeño sistema de gestión de libros para una biblioteca digital. El usuario podrá agregar libros, listar los disponibles, buscar por título, y guardar la información en un archivo de texto. Requisitos del programa: Mostrar un menú principal con opciones: Agregar libro Listar libros Buscar libro por título Guardar y salir Utilizar estructuras condicionales (if, elif, else) para controlar el menú. Utilizar bucles (while, for) para repetir acciones y navegar por el menú hasta que el usuario elija salir. Utilizar arreglos (listas) para almacenar temporalmente los libros. Cada libro puede ser representado como un diccionario con claves como titulo, autor, año Leer y escribir en un archivo de texto para guardar y cargar los libros. El archivo debe actualizarse al salir del programa. Las opciones del menu se deben manejar como funciones con el using namespace std; HASMELO PARA PRINCIPIENTES

Aquí te muestro un ejemplo de cómo podrías implementar el sistema de gestión de libros en C++: ```cpp #include <iostream> #include <fstream> #include <vector> #include <map> #include <string> using namespace std; // Estructura para representar un libro struct Libro { string titulo; string autor; int año; }; // Función para agregar un libro void agregarLibro(vector<Libro>& libros) { Libro libro; cout << "Ingrese el título del libro: "; getline(cin, libro.titulo); cout << "Ingrese el autor del libro: "; getline(cin, libro.autor); cout << "Ingrese el año de publicación del libro: "; cin >> libro.año; cin.ignore(); // Ignorar el salto de línea libros.push_back(libro); } // Función para listar los libros void listarLibros(const vector<Libro>& libros) { cout << "Lista de libros:" << endl; for (const auto& libro : libros) { cout << "Título: " << libro.titulo << endl; cout << "Autor: " << libro.autor << endl; cout << "Año: " << libro.año << endl; cout << endl; } } // Función para buscar un libro por título void buscarLibro(const vector<Libro>& libros) { string titulo; cout << "Ingrese el título del libro a buscar: "; getline(cin, titulo); bool encontrado = false; for (const auto& libro : libros) { if (libro.titulo == titulo) { cout << "Título: " << libro.titulo << endl; cout << "Autor: " << libro.autor << endl; cout << "Año: " << libro.año << endl; encontrado = true; break; } } if (!encontrado) { cout << "Libro no encontrado." << endl; } } // Función para guardar los libros en un archivo de texto void guardarLibros(const vector<Libro>& libros, const string& archivo) { ofstream archivoSalida(archivo); if (archivoSalida.is_open()) { for (const auto& libro : libros) { archivoSalida << libro.titulo << "," << libro.autor << "," << libro.año << endl; } archivoSalida.close(); cout << "Libros guardados en el archivo " << archivo << endl; } else { cout << "No se pudo abrir el archivo " << archivo << endl; } } // Función para cargar los libros desde un archivo de texto vector<Libro> cargarLibros(const string& archivo) { vector<Libro> libros; ifstream archivoEntrada(archivo); if (archivoEntrada.is_open()) { string linea; while (getline(archivoEntrada, linea)) { istringstream iss(linea); string titulo, autor, año; getline(iss, titulo, ','); getline(iss, autor, ','); getline(iss, año); libros.push_back({titulo, autor, stoi(año)}); } archivoEntrada.close(); return libros; } else { cout << "No se pudo abrir el archivo " << archivo << endl; return {}; } } // Función para mostrar el menú principal void mostrarMenu() { cout << "Menú principal:" << endl; cout << "1. Agregar libro" << endl; cout << "2. Listar libros" << endl; cout << "3. Buscar libro por título" << endl; cout << "4. Guardar y salir" << endl; } int main() { string archivo = "libros.txt"; vector<Libro> libros = cargarLibros(archivo); while (true) { mostrarMenu(); int opcion; cout << "Ingrese su opción: "; cin >> opcion; cin.ignore(); // Ignorar el salto de línea switch (opcion) { case 1: agregarLibro(libros); break; case 2: listarLibros(libros); break; case 3: buscarLibro(libros); break; case 4: guardarLibros(libros, archivo); return 0; default: cout << "Opción inválida. Por favor, ingrese una opción válida." << endl; } } return 0; } ``` Este código define las siguientes funciones: * `agregarLibro`: agrega un libro a la lista de libros. * `listarLibros`: lista todos los libros en la lista. * `buscarLibro`: busca un libro por título en la lista. * `guardarLibros`: guarda la lista de libros en un archivo de texto. * `cargarLibros`: carga la lista de libros desde un archivo de texto. * `mostrarMenu`: muestra el menú principal. El programa principal utiliza un bucle `while` para mostrar el menú principal y ejecutar la opción seleccionada por el usuario. Si el usuario selecciona la opción 4, el programa guarda la lista de libros en el archivo de texto y termina.

Want to kickstart your project?Use the new AI Studio to create your code