Dev - C++ - Ayuda para arreglar mi codigo

 
Vista:
sin imagen de perfil

Ayuda para arreglar mi codigo

Publicado por roger la rosa (2 intervenciones) el 21/07/2023 19:05:24
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

// Estructura para representar un libro
struct Libro {
string titulo;
string autor;
int anio;
};

// Función para imprimir los detalles de un libro
void imprimirLibro(const Libro& libro) {
cout << "Título: " << libro.titulo << endl;
cout << "Autor: " << libro.autor << endl;
cout << "Año: " << libro.anio << endl;
}

int main() {

// Vector para almacenar los libros
vector<Libro> biblioteca;

// Ciclo principal de la aplicación
while (true) {
cout << "-------------------------------------" << endl;
cout << "Bienvenido al Sistema de Gestión de Biblioteca" << endl;
cout << "-------------------------------------" << endl;
cout << "Por favor seleccione una opción:" << endl;
cout << "1. Agregar un libro" << endl;
cout << "2. Modificar un libro" << endl;
cout << "3. Eliminar un libro" << endl;
cout << "4. Buscar un libro" << endl;
cout << "5. Listar todos los libros" << endl;
cout << "6. Salir" << endl;

// Leer la opción seleccionada
int opcion;
cin >> opcion;

// Realizar la operación correspondiente según la opción seleccionada
switch (opcion) {
case 1: {
// Agregar un libro
Libro libro;
cout << "Por favor ingrese los detalles del libro:" << endl;
cout << "Título:" << endl;
cin >> libro.titulo;
cout << "Autor:" << endl;
cin >> libro.autor;
cout << "Año:" << endl;
cin >> libro.anio;
biblioteca.push_back(libro);
cout << "¡Libro agregado exitosamente!" << endl;
break;
}
case 2: {
// Modificar un libro
cout << "Por favor ingrese el título del libro que desea modificar:" << endl;
string titulo;
cin >> titulo;
auto it = find_if(biblioteca.begin(), biblioteca.end(), [&titulo](const Libro& libro) {
return libro.titulo == titulo;
});
if (it != biblioteca.end()) {
cout << "Por favor ingrese los nuevos detalles para el libro:" << endl;
cout << "Título:" << endl;
cin >> it->titulo;
cout << "Autor:" << endl;
cin >> it->autor;
cout << "Año:" << endl;
cin >> it->anio;
cout << "¡Libro modificado exitosamente!" << endl;
}
else {
cout << "¡Libro no encontrado!" << endl;
}
break;
}
case 3: {
// Eliminar un libro
cout << "Por favor ingrese el título del libro que desea eliminar:" << endl;
string titulo;
cin >> titulo;
auto it = find_if(biblioteca.begin(), biblioteca.end(), [&titulo](const Libro& libro) {
return libro.titulo == titulo;
});
if (it != biblioteca.end()) {
biblioteca.erase(it);
cout << "¡Libro eliminado exitosamente!" << endl;
}
else {
cout << "¡Libro no encontrado!" << endl;
}
break;
}
case 4: {
// Buscar un libro por título
cout << "Por favor ingrese el título del libro que desea buscar:" << endl;
string titulo;
cin >> titulo;
auto it = find_if(biblioteca.begin(), biblioteca.end(), [&titulo](const Libro& libro) {
return libro.titulo == titulo;
});
if (it != biblioteca.end()) {
imprimirLibro(*it);
}
else {
cout << "¡Libro no encontrado!" << endl;
}
break;
}
case 5: {
// Listar todos los libros
for (const auto& libro : biblioteca) {
imprimirLibro(libro);
cout << endl;
}
break;
}
case 6: {
// Salir de la aplicación
cout << "¡Adiós!" << endl;
return 0;
}
default: {
// Opción inválida
cout << "¡Opción inválida, por favor intente de nuevo!" << endl;
break;
}
}
}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder