#include #include #include using namespace std; struct Book { string title; string author; int year; string genre; }; void addBook(vector& library) { Book NewBook; cout << "Введите название книги: "; getline(cin >> ws, NewBook.title); cout << "Введите автора книги"; getline(cin >> ws, NewBook.author); cout << "Введите год издания"; cin >> NewBook.year; cin.ignore(); cout << "Введите жанр книги: "; getline(cin >> ws, NewBook.genre); library.push_back(NewBook); cout << "Книга успешно добавлена в библиотеку" << endl; } void searchBook(vector& library, const string& criterion) { cout << "Найденные книги: " << endl; for (const Book& book : library) { if (book.title == criterion || book.author == criterion || book.genre == criterion) { cout << "Название: " << book.title << ", Автор: " << book.author << ", Год издания: " << book.year << ", Жанр: " << book.genre << endl; } } } void displayLibrary(const vector& library) { cout << "Список всех книг в библиотеке: " << endl; for (const Book& book : library) { cout << "Название: " << book.title << ", Автор: " << book.author << ", Год издания: " << book.year << ", Жанр: " << book.genre << endl; } } void removeBook(vector& library, const string& title) { for (auto it = library.begin(); it != library.end(); ++it) { if (it->title == title) { library.erase(it); cout << "Книга \"" << title << "\" успешно удалена из библиотеки!" << endl; return; } } } int main() { setlocale(LC_ALL, "RU"); vector library; string criterion; string title; while (true) { cout << "Выберите действие: " << endl; cout << "1. Добавить книгу: " << endl; cout << "2. Поиск книги: " << endl; cout << "3. Вывести список всех книг: " << endl; cout << "4. Удалить книгу " << endl; cout << "5. Выйти " << endl; int choice; cout << "Введите номер действия: "; cin >> choice; cin.ignore(); switch (choice) { case 1: addBook(library); break; case 2: string criterion; cout << "Введите критерий поиска(название, автор или жанр): "; getline(cin >> ws, criterion); searchBook(library, criterion); break; case 3: displayLibrary(library); break; case 4: string title; cout << "Введите название книги которую хотите удалить: " << endl; getline(cin >> ws, title); removeBook(library, title); break; case 5: cout << "Программа завершена." << endl; return 0; default: cout << "Некоректный ввод. Пожалуйста, введите номер действия от 1 до 5." << endl; break; } } return 0; }