. нужно решить на С++. 4. Book: Автор, Название, Издательство, Год, Количество, страниц. Создать массив объектов. Вывести:
a) список книг заданного автора;
b) список книг, выпущенных заданным издательством;
c) список книг, выпущенных после заданного года.
Шаг 1: Определение класса "Book"
Для начала нам нужно создать класс "Book" со следующими свойствами: Автор, Название, Издательство, Год, Количество страниц. Также добавим методы для получения и установки значений свойств.
```cpp
class Book {
private:
string author;
string title;
string publisher;
int year;
int quantity;
int pages;
public:
// Конструктор класса
Book(string a, string t, string p, int y, int q, int pg) {
author = a;
title = t;
publisher = p;
year = y;
quantity = q;
pages = pg;
}
// Методы для получения и установки значений свойств
string getAuthor() {
return author;
}
void setAuthor(string a) {
author = a;
}
string getTitle() {
return title;
}
void setTitle(string t) {
title = t;
}
string getPublisher() {
return publisher;
}
void setPublisher(string p) {
publisher = p;
}
int getYear() {
return year;
}
void setYear(int y) {
year = y;
}
int getQuantity() {
return quantity;
}
void setQuantity(int q) {
quantity = q;
}
int getPages() {
return pages;
}
void setPages(int pg) {
pages = pg;
}
};
```
Шаг 2: Создание массива объектов
Теперь создадим массив объектов типа "Book" и заполним его данными о книгах. Для примера создадим 3 объекта.
```cpp
int main() {
// Создаем объекты книг
Book book1("Автор 1", "Название 1", "Издательство 1", 1990, 100, 200);
Book book2("Автор 2", "Название 2", "Издательство 1", 2005, 50, 150);
Book book3("Автор 3", "Название 3", "Издательство 2", 2015, 75, 300);
// Создаем массив объектов
Book books[] = {book1, book2, book3};
return 0;
}
```
Шаг 3: Вывод списка книг заданного автора
Теперь можем написать функцию для вывода списка книг, написанных заданным автором. Функция будет принимать массив книг и имя автора в качестве аргументов и выводить соответствующие книги.
```cpp
void printBooksByAuthor(Book books[], string author) {
for (int i = 0; i < 3; i++) {
if (books[i].getAuthor() == author) {
cout << books[i].getTitle() << endl;
}
}
}
```
Шаг 4: Вывод списка книг, выпущенных заданным издательством
Аналогично предыдущему шагу, напишем функцию, которая выводит список книг, выпущенных заданным издательством.
```cpp
void printBooksByPublisher(Book books[], string publisher) {
for (int i = 0; i < 3; i++) {
if (books[i].getPublisher() == publisher) {
cout << books[i].getTitle() << endl;
}
}
}
```
Шаг 5: Вывод списка книг, выпущенных после заданного года
Напишем функцию, которая будет выводить список книг, выпущенных после заданного года.
```cpp
void printBooksAfterYear(Book books[], int year) {
for (int i = 0; i < 3; i++) {
if (books[i].getYear() > year) {
cout << books[i].getTitle() << endl;
}
}
}
```
Шаг 6: Тестирование функций
Теперь можем протестировать функции, чтобы убедиться, что они работают правильно. Например, выведем список книг заданного автора:
```cpp
int main() {
// Создаем объекты книг
Book book1("Автор 1", "Название 1", "Издательство 1", 1990, 100, 200);
Book book2("Автор 2", "Название 2", "Издательство 1", 2005, 50, 150);
Book book3("Автор 3", "Название 3", "Издательство 2", 2015, 75, 300);
// Создаем массив объектов
Book books[] = {book1, book2, book3};
// Выводим список книг заданного автора
printBooksByAuthor(books, "Автор 1");
return 0;
}
```
Приведенное выше решение дает ответы на вопросы a), b) и c) задачи. Вам остается только протестировать функции `printBooksByPublisher` и `printBooksAfterYear`, чтобы получить ответы на остальные вопросы.