GitMory / Code_Block_V1

1 stars 0 forks source link

ejercicio 3 (14/05) #5

Open GitMory opened 4 months ago

GitMory commented 4 months ago

include

include

include

using namespace std;

class Libro { public: string titulo; string autor; int anioPublicacion;

Libro(string t, string a, int anio) : titulo(t), autor(a), anioPublicacion(anio) {}

};

class GestionLibros { private: vector libros;

public: void ingresarLibro() { string titulo, autor; int anio;

    cout << "Ingrese el titulo del libro: ";
    cin.ignore();
    getline(cin, titulo);
    cout << "Ingrese el autor del libro: ";
    getline(cin, autor);
    cout << "Ingrese el año de publicacion del libro: ";
    cin >> anio;

    libros.push_back(Libro(titulo, autor, anio));
    cout << "Libro ingresado con exito.\n";
}

void mostrarLibros()
{
    cout<<"--------------------------------------------------"<<endl;
    if (libros.empty())
    {
        cout << "No hay libros en la coleccion.\n";
        return;
    }

    for (const auto& libro : libros)
    {
        cout << "Titulo: " << libro.titulo << ", Autor: " << libro.autor << ", Año de Publicacion: " << libro.anioPublicacion << "\n";
    }
    cout<<"--------------------------------------------------"<<endl;
}

bool substringExists(string s, string subs){
    return (s.find(subs) != string::npos);
}
void buscarLibro()
{
    string titulo;
    cout << "Ingrese el titulo del libro a buscar: ";
    cin.ignore();
    getline(cin, titulo);

    bool encontrado = false;
    for (const auto& libro : libros)
    {

        if (libro.titulo == titulo||substringExists(libro.titulo, titulo))
        {
            cout << "Libro encontrado: " << "Titulo: " << libro.titulo << ", Autor: " << libro.autor << ", Año de Publicación: " << libro.anioPublicacion << "\n";
            encontrado = true;
            break;
        }
    }

    if (!encontrado)
    {
        cout << "Libro no encontrado.\n";
    }
}

};

int main() { GestionLibros gestionLibros; int opcion;

do
{
    cout << "\nGestion de Libros\n";
    cout << "1. Ingresar libro\n";
    cout << "2. Mostrar libros\n";
    cout << "3. Buscar libro\n";
    cout << "4. Salir\n";
    cout << "Seleccione una opcion: ";

    cin >> opcion;

    switch (opcion)
    {
    case 1:
        gestionLibros.ingresarLibro();
        break;
    case 2:
        gestionLibros.mostrarLibros();
        break;
    case 3:
        gestionLibros.buscarLibro();
        break;
    case 4:
        cout << "Saliendo...\n";
        break;
    default:
        cout << "Opción no válida, intente nuevamente.\n";
    }
}
while (opcion != 4);

return 0;

}

GitMory commented 4 months ago

include

include

include

GitMory commented 4 months ago

include iostream>

include vector>

include string>