В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
Kirill316111
Kirill316111
08.10.2022 21:27 •  Информатика

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

Показать ответ
Ответ:
mawa18
mawa18
13.01.2024 07:31
Хорошо, давайте рассмотрим решение задачи на 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`, чтобы получить ответы на остальные вопросы.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота