Предмет: Информатика, автор: Kukuwka0Ha0DepeBe

С++
Завдання 1. Розробіть програму «Бібліотека». Створіть
структуру «Книга» (назва, автор, видавництво, жанр).
Створіть масив з 10 книг. Реалізуйте для нього такі можливості:
■ Редагувати книгу;
■ Друк усіх книг;
■ Пошук книг за автором;
■ Пошук книги за назвою;
■ Сортування масиву за назвою книг;
■ Сортування масиву за автором;
■ Сортування масиву за видавництвом.

Ответы

Автор ответа: vladislav6718
0

#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

Похожие вопросы
Предмет: Алгебра, автор: ivanova06maria