Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
СанекКенас
0 / 0 / 0
Регистрация: 07.12.2014
Сообщений: 103
#1

Создать абстрактный класс "Издание" и производные классы "Книга", "Статья", "Электронный ресурс" - C++

12.01.2016, 18:37. Просмотров 598. Ответов 1
Метки нет (Все метки)

1. Создать абстрактный класс Издание с методами, позволяющими вывести на экран информацию об издании, а также определить является ли данное издание искомым.
2. Создать производные классы: Книга (название, фамилия автора, год издания, издательство), Статья (название, фамилия автора, название журнала, его номер и год издания), Электронный_ресурс (название, фамилия автора, ссылка, аннотация) со своими методами вывода информации на экран.
3. Создать каталог (массив) из n изданий, вывести полную информацию из каталога, а также организовать поиск изданий по фамилии автора, названия публикации.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2016, 18:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создать абстрактный класс "Издание" и производные классы "Книга", "Статья", "Электронный ресурс" (C++):

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

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

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно". Я так...

Базовый класс "Источник напряжения", производные классы "Цепь" и "Аккумулятор" - C++
Дали задачу по программированию: составить класс "Источник напряжения", для которого нужно реализовать два производных класса: "Цепь" и...

Базовый класс "многоугольник" и производные классы "треугольник" и "прямоугольник" - C++
Не могу понять как реализовать данное задание. Создать 1 базовый класс и несколько производных.Все небольшие ф-ии сделать встроенными...

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

1
egor2116
342 / 373 / 42
Регистрация: 20.01.2013
Сообщений: 1,132
15.01.2016, 17:10 #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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
#include <iostream>
#include <string>
#include <vector>
 
namespace cf{
    
    class Object{
        protected:
            std::string title;
            std::string fio;
            Object(const std::string & _title, const std::string & _fio) : 
                        title(_title), fio(_fio){}
        public:
            void setTitle(const std::string & _title){
                title = _title;
            }
            const std::string & getTitle() const{
                return title;
            }
            void setFIO(const std::string & _fio){
                fio = _fio;
            }
            const std::string & getFIO() const {
                return title;
            }
            virtual void print() const = 0;
            virtual ~Object(){}
    };
    
    class PaperObject : public Object{
        protected:
            size_t yearMake;
        public:
            PaperObject(const std::string & _title, const std::string & _fio , size_t _yearMake) : 
                                    Object(_title, _fio), yearMake(_yearMake){}
            void setYearMake(size_t _yearMake){
                yearMake = _yearMake;
            }
            size_t getYearMake() const {
                return yearMake;
            }
            virtual void print() const = 0;
            virtual ~PaperObject(){}
    };
    
    class Book : PaperObject{
        protected:
            std::string publishingHouse;
        public:
            Book(const std::string & _title, const std::string & _fio, size_t _yearMake,
                     const std::string & _publishingHouse) : PaperObject(_title, _fio, _yearMake),
                     publishingHouse(_publishingHouse){}
            void setPubHouse(const std::string & _publishingHouse){
                publishingHouse = _publishingHouse;
            }
            const std::string & getPubHouse() const{
                return publishingHouse;
            }
            virtual void print() const{
                std::cout << "Book " << std::endl;
                std::cout << "Title : " << title << std::endl;
                std::cout << "FIO author : " << fio << std::endl;
                std::cout << "Year make : " << yearMake << std::endl;
                std::cout << "Publishing house : " << publishingHouse << std::endl;
                std::cout << std::endl;
            }
            virtual ~Book(){}
    };
    
    class Article : PaperObject{
        protected:
            std::string jurnal;
            std::string number;
        public:
            Article(const std::string & _title, const std::string & _fio, size_t _yearMake,
                     const std::string & _jurnal, const std::string & _number) : PaperObject(_title, _fio, _yearMake),
                     jurnal(_jurnal), number(_number){}
            void setJurnal(const std::string & _jurnal){
                jurnal = _jurnal;
            }
            const std::string & getJurnal() const{
                return jurnal;
            }
            void setNumber(const std::string & _number){
                number = _number;
            }
            const std::string & getNumber() const{
                return number;
            }
            virtual void print() const{
                std::cout << "Article " << std::endl;
                std::cout << "Title : " << title << std::endl;
                std::cout << "FIO author : " << fio << std::endl;
                std::cout << "Year make : " << yearMake << std::endl;
                std::cout << "Jurnal : " << jurnal << std::endl;
                std::cout << "Number : " << number << std::endl;
                std::cout << std::endl;
            }
            virtual ~Article(){}
    };
    
    class Web : public Object{
        protected:
            std::string annotation;
            std::string link;
        public:
            Web(const std::string & _title, const std::string & _fio,
                     const std::string & _annotation, const std::string & _link) : Object(_title, _fio),
                     annotation(_annotation), link(_link){}
            void setAnnotation(const std::string & _annotation){
                annotation = _annotation;
            }
            const std::string & getAnnotation() const{
                return annotation;
            }
            void setLink(const std::string & _link){
                link = _link;
            }
            const std::string & getLink() const{
                return link;
            }
            virtual void print() const{
                std::cout << "Web " << std::endl;
                std::cout << "Title : " << title << std::endl;
                std::cout << "FIO author : " << fio << std::endl;
                std::cout << "Annotation : " << annotation << std::endl;
                std::cout << "Link : " << link << std::endl;
                std::cout << std::endl;
            }
            virtual ~Web(){}
    };
    
    template<class T>
    class Builder{
        private:
            Builder(){}
        public:
            static T * build(const std::string & _title, const std::string & _fio, size_t _yearMake,
                     const std::string & _publishingHouse){
                        return new T(_title, _fio, _yearMake, _publishingHouse);
            }
            static T * build(const std::string & _title, const std::string & _fio, size_t _yearMake,
                     const std::string & _jurnal, const std::string & _number){
                        return new T(_title, _fio, _yearMake, _jurnal, _number);            
            }
            static T * build(const std::string & _title, const std::string & _fio,
                     const std::string & _annotation, const std::string & _link){
                        return new T(_title, _fio, _annotation, _link);         
            }
    };
    
    class Catalog{
        private:
            std::vector<cf::Object *> catalog;
        public:
            void add(Object * obj){
                catalog.push_back(obj);
            }
            const Object * findByTitle(const std::string & _title) const{
                for(size_t i = 0; i < catalog.size(); ++i)
                    if(catalog[i]->getTitle() == _title)
                        return catalog[i];
            }
            const Object * findByAuthor(const std::string & _author) const{
                for(size_t i = 0; i < catalog.size(); ++i)
                    if(catalog[i]->getFIO() == _author)
                        return catalog[i];
            }
            void print() const{
                for(size_t i = 0; i < catalog.size(); ++i)
                    catalog[i]->print();
            }
    };
}
 
int main(){
    
    cf::Catalog catalog;
    
    catalog.add(reinterpret_cast<cf::Object *>(cf::Builder<cf::Book>::build(std::string("Book 1"), std::string("Author 1"), 2000, std::string("pub house 1"))));
    catalog.add(reinterpret_cast<cf::Object *>(cf::Builder<cf::Article>::build(std::string("Article 1"), std::string("Author 2"), 2000, std::string("IT"), std::string("#2"))));
    catalog.add(reinterpret_cast<cf::Object *>(cf::Builder<cf::Web>::build(std::string("Web 1"), std::string("Author 3"), std::string("Annotation 1"), std::string("www.jopa.com"))));
    
    catalog.print();
    
    return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.01.2016, 17:10
Привет! Вот еще темы с ответами:

Создать класс комплексных чисел и ввести операции: "+", "-", "*", "/". - C++
пожалуйста-помогите написатьпрограмму!!! сижу на экзамене!!! вот само задание: создать класс комплексных чисел и ввести операции: &quot;+&quot;,...

Класс "Графический объект", от которого будут наследоваться классы "круг" и "квадрат" - C++
Реализовать класс Графический объект от которого будут наследоваться классы &quot;круг&quot; и &quot;квадрат&quot;. Собственно, сам код, который был написан...

Создать классы "Computer", "Software", "User" и реализовать взаимодействие объектов этих типов между собой - C++
Помогите решить задачку,нужна в инст на экзамен. Составить программу реализующую: 1)классы,которые могут содержать...

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


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

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

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