Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 02.03.2020
Сообщений: 40
1

Построить иерархию классов "Журнал", "книга", "печатное издание", "учебник"

02.03.2020, 02:09. Просмотров 862. Ответов 2

Помогите понять, правильно ли я сделал наследование?
Задание построить иерархию классов Журнал, книга, печатное издание, учебник.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#include <iostream>
#include <Windows.h>
#include <string>
#include <sstream>
class print_edition {
protected:
    std::string name;
    int year;
public:
    print_edition(std::string name, int year) {
        (*this).name = name;
        (*this).year = year;
    }
    std::string get_print()
    {
        std::ostringstream full_name;
        full_name <<"Название: " << (*this).name << " Год: " << (*this).year;
        return full_name.str();
    }
};
class journal : public print_edition {
protected:
    int day, moth;
    int pages;
public:
    journal(std::string name, int year, int day, int moth, int pages)
        : print_edition(name, year)
    {
        (*this).day = day;
        (*this).moth = moth;
        (*this).pages = pages;
    }
    std::string get_journal()
    {
        std::ostringstream full;
        full << "День: " << (*this).day << " Месяц: "  << (*this).moth << " Страницы: " << (*this).pages;
        return full.str();
    }
};
class book : public print_edition {
protected:
    std::string genre;
    std::string autor;
    int pages;
public:
    book(std::string name, int year, int day, int moth, std::string genre, std::string autor, int pages)
        : print_edition(name, year)
    {
        (*this).genre = genre;
        (*this).autor = autor;
        (*this).pages = pages;
    }
    std::string get_book()
    {
        std::ostringstream nam;
        nam << " Жанр: " << (*this).genre << " Автор: " << (*this).autor ;
        return nam.str();
    }
};
 
int main() {
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    std::string name; int year; int day; int moth; int pages;
    std::string genre; std::string autor;
    std::cout << "Название: "; std::cin >> name;
    std::cout << "Год: "; std::cin >> year;
    std::cout << "День: "; std::cin >> day;
    std::cout << "Месяц: "; std::cin >> moth;
    std::cout << "Страницы: "; std::cin >> pages;
    std::cout << "Жанр: "; std::cin >> genre;
    std::cout << "Автор: "; std::cin >> autor;
    book* st = new book(name, year, day, moth, genre, autor, pages);
    journal* stud = new journal(name, year, day, moth, pages);
    
    std::cout << (*stud).get_print() << std::endl;
    std::cout << (*stud).get_journal() << std::endl;
    std::cout << (*st).get_book() << std::endl;
 
    system("pause>>NUL");
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.03.2020, 02:09
Ответы с готовыми решениями:

Создать абстрактный класс "Издание" и производные классы "Книга", "Статья", "Электронный ресурс"
1. Создать абстрактный класс Издание с методами, позволяющими вывести на экран информацию об...

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно"
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;,...

Создать иерархию классов "Фирма", "Бухгалтер", "Сотрудник", "Зарплата"
Само по себе понятие &quot;зарплата&quot; не особенно конкретное: оно включает и почасовую, и ставочную...

Создать класс "Книга" с полями "название книги", "количество страниц", "год издания"
Создать класс Книга поля: название книги,количество страниц,год издания методы: вычислить сколько...

2
Эксперт С++
8317 / 3875 / 841
Регистрация: 15.11.2014
Сообщений: 8,770
02.03.2020, 02:31 2
Цитата Сообщение от neChelovek31 Посмотреть сообщение
правильно ли я сделал наследование?
нет.

во-первых, где учебник?

а во-вторых, журнал - это не печатное издание.

Код
          книга  <>---содержит---- печатное издание
             |
     ____/\_____
    /                  \
журнал       учебник

"журнал" и "учебник" - наследники "книги".
книга содержит компонент "печатное издание" (композиция)
0
1206 / 730 / 166
Регистрация: 05.12.2015
Сообщений: 2,140
03.03.2020, 03:46 3
Цитата Сообщение от hoggy Посмотреть сообщение
а во-вторых, журнал - это не печатное издание.
В стандарте написано, обратное.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.03.2020, 03:46

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Для каждой строки найти слова, которые не имеют ни одного из букв: "l", "k", "r", "s" i "j"
Задано символьные строки. Строка состоит из нескольких слов (наборов символов), которые разделяются...

Реализовать классы "Воин", "Пехотинец", "Винтовка", "Матрос", "Кортик" (наследование)
Разработать программу с использованием наследования классов, реализующую классы: − воин;...

Создать класс "Вентилятор" содержащий в себе классы: "Двигатель", "Контроллер", "Пульт управления"
Помогите с кодом написания задачи, не понимаю как написать классы в классе. Нужно создать класс...

Класс "Телефонная книга". Дописать методы, "поиск" и "удаления" абонента
Вот код класса, который должен предоставьте пользователю возможность добавлять новых абонентов,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.