М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Smile460
Smile460
29.05.2021 06:07 •  Информатика

. нужно решить на С++. 4. Book: Автор, Название, Издательство, Год, Количество, страниц. Создать массив объектов. Вывести:
a) список книг заданного автора;
b) список книг, выпущенных заданным издательством;
c) список книг, выпущенных после заданного года.

👇
Ответ:
Matthieu5401
Matthieu5401
29.05.2021
Хорошо, давайте рассмотрим решение задачи на 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`, чтобы получить ответы на остальные вопросы.
4,5(72 оценок)
Проверить ответ в нейросети
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ