С++
Завдання 1. Розробіть програму «Бібліотека». Створіть
структуру «Книга» (назва, автор, видавництво, жанр).
Створіть масив з 10 книг. Реалізуйте для нього такі можливості:
■ Редагувати книгу;
■ Друк усіх книг;
■ Пошук книг за автором;
■ Пошук книги за назвою;
■ Сортування масиву за назвою книг;
■ Сортування масиву за автором;
■ Сортування масиву за видавництвом.
Ответы
#include <iostream>
#include <string>
#include <algorithm>
struct Book {
std::string title;
std::string author;
std::string publisher;
std::string genre;
};
void editBook(Book& book) {
std::cout << "Enter the new title: ";
std::getline(std::cin >> std::ws, book.title);
std::cout << "Enter the new author: ";
std::getline(std::cin >> std::ws, book.author);
std::cout << "Enter the new publisher: ";
std::getline(std::cin >> std::ws, book.publisher);
std::cout << "Enter the new genre: ";
std::getline(std::cin >> std::ws, book.genre);
std::cout << "Book edited successfully.\n";
}
void printBooks(const Book books[], int size) {
for (int i = 0; i < size; ++i) {
std::cout << "Title: " << books[i].title << "\n";
std::cout << "Author: " << books[i].author << "\n";
std::cout << "Publisher: " << books[i].publisher << "\n";
std::cout << "Genre: " << books[i].genre << "\n";
std::cout << "------------------------\n";
}
}
void searchByAuthor(const Book books[], int size, const std::string& author) {
bool found = false;
for (int i = 0; i < size; ++i) {
if (books[i].author == author) {
std::cout << "Title: " << books[i].title << "\n";
std::cout << "Author: " << books[i].author << "\n";
std::cout << "Publisher: " << books[i].publisher << "\n";
std::cout << "Genre: " << books[i].genre << "\n";
std::cout << "------------------------\n";
found = true;
}
}
if (!found) {
std::cout << "No books found by this author.\n";
}
}
void searchByTitle(const Book books[], int size, const std::string& title) {
bool found = false;
for (int i = 0; i < size; ++i) {
if (books[i].title == title) {
std::cout << "Title: " << books[i].title << "\n";
std::cout << "Author: " << books[i].author << "\n";
std::cout << "Publisher: " << books[i].publisher << "\n";
std::cout << "Genre: " << books[i].genre << "\n";
std::cout << "------------------------\n";
found = true;
break;
}
}
if (!found) {
std::cout << "No book found with this title.\n";
}
}
bool compareByTitle(const Book& book1, const Book& book2) {
return book1.title < book2.title;
}
bool compareByAuthor(const Book& book1, const Book& book2) {
return book1.author < book2.author;
}
bool compareByPublisher(const Book& book1, const Book& book2) {
return book1.publisher < book2.publisher;
}
void sortBooksByTitle(Book books[], int size) {
std::sort(books, books + size, compare