#include <iostream>
#include <string>
#include <vector>
using namespace std;
// Definición de la estructura Libro
struct Libro {
string titulo;
string autor;
int annoPublicacion;
};
// Función para agregar un libro a la biblioteca
void agregarLibro(vector<Libro> &biblioteca) {
Libro nuevoLibro;
cout << "Ingrese el título del libro: ";
getline(cin >> ws, nuevoLibro.titulo);
cout << "Ingrese el autor del libro: ";
getline(cin >> ws, nuevoLibro.autor);
cout << "Ingrese el año de publicación del libro: ";
cin >> nuevoLibro.annoPublicacion;
biblioteca.push_back(nuevoLibro);
cout << "Libro agregado correctamente." << endl;
}
// Función para buscar un libro por título
void buscarPorTitulo(const vector<Libro> &biblioteca, const string &titulo) {
bool encontrado = false;
for (const auto &libro : biblioteca) {
if (libro.titulo == titulo) {
cout << "Libro encontrado:" << endl;
cout << "Título: " << libro.titulo << endl;
cout << "Autor: " << libro.autor << endl;
cout << "Año de publicación: " << libro.annoPublicacion << endl;
encontrado = true;
break;
}
}
if (!encontrado) {
cout << "El libro no se encuentra en la biblioteca." << endl;
}
}
// Función para mostrar todos los libros en la biblioteca
void mostrarBiblioteca(const vector<Libro> &biblioteca) {
cout << "Lista de libros en la biblioteca:" << endl;
for (const auto &libro : biblioteca) {
cout << "Título: " << libro.titulo << ", Autor: " << libro.autor << ", Año: " << libro.annoPublicacion << endl;
}
}
int main() {
vector<Libro> biblioteca; // Vector para almacenar los libros
int opcion;
string titulo;
do {
// Menú de opciones
cout << "\nMenú de la biblioteca:" << endl;
cout << "1. Agregar libro" << endl;
cout << "2. Buscar libro por título" << endl;
cout << "3. Mostrar todos los libros" << endl;
cout << "4. Salir" << endl;
cout << "Ingrese su opción: ";
cin >> opcion;
switch (opcion) {
case 1:
cin.ignore(); // Limpiar el buffer del teclado
agregarLibro(biblioteca);
break;
case 2:
cin.ignore(); // Limpiar el buffer del teclado
cout << "Ingrese el título del libro a buscar: ";
getline(cin >> ws, titulo);
buscarPorTitulo(biblioteca, titulo);
break;
case 3:
mostrarBiblioteca(biblioteca);
break;
case 4:
cout << "Saliendo del programa." << endl;
break;
default:
cout << "Opción no válida. Por favor, seleccione una opción válida." << endl;
}
} while (opcion != 4);
return 0;
}