Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
Aleks.11
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 4
#1

Создать производные классы

18.11.2009, 13:53. Просмотров 605. Ответов 6
Метки нет (Все метки)


Создать производные классы со своими методами вывода информации на экран (абстрактного класса Библиотека). Производные классы:
1. Электронный ресурс (название, фамилия автора, ссылка, аннотация)
2. Статья (название, фамилия автора, название журнала, его номер и год издания)
3. Книга (название, фамилия автора, год издания, издательство).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2009, 13:53
Ответы с готовыми решениями:

Классы и наследование (Создать класс 3D фигура, и производные классы шар, конус, цилиндр и куб. Создать функцию вычисления объёма.)
Уважаевые, помогите написать прожку на экзамене: Создать класс 3D фигура, и...

Создать абстрактный базовый класс Figure с виртуальной функцией Периметр. Создать производные классы Rectangle
Создать абстрактный базовый класс Figure с виртуальной функцией...

Создать иерархию классов Шахматная фигура – абстрактный класс, содержащий поле – цвет. Создать производные классы
Создать иерархию классов Шахматная фигура – абстрактный класс, содержащий поле...

Создать абстрактный базовый класс с виртуальной функцией - Объем. Создать производные классы: Пирамида, Шар со своими функциями объема
Создать абстрактный базовый класс с виртуальной функцией - Объем. Создать...

Класс: Создать производные классы StraightLine, Ellipse, Hyperbola
Создать абстрактный базовый класс Lines с виртуальной функцией f(x). Создать...

6
M128K145
Эксперт JavaЭксперт С++
8324 / 3544 / 420
Регистрация: 03.07.2009
Сообщений: 10,708
18.11.2009, 14:24 #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
//Абстрактный класс Библиотека
class Library
{
public:
    void Print(){};
};
//Электронный ресурс (название, фамилия автора, ссылка, аннотация)
class ElRes : Library
{
private:
    std::string nazv;
    std::string fio;
    std::string link;
    std::string annot;
public:
    ElRes();
    ElRes(std::string _nazv, std::string _fio, std::string _link, std::string _annot);
    void Print();
 
};
ElRes::ElRes()
{
    nazv = "Неизвестно";
    fio = "Неизвестно";
    link = "Неизвестно";
    annot = "Неизвестно";
}
ElRes::ElRes(std::string _nazv, std::string _fio, std::string _link, std::string _annot)
{
    nazv = _nazv;
    fio = _fio;
    link = _link;
    annot = _annot;
}
void ElRes::Print()
{
    std::cout<<"Электронный ресурс:\nНазвание:\n< "<<nazv<<
        "\nФИО автора:\n< "<<fio<<"\nСсылка:\n< "<<link<<
        "\nАннотация:\n< "<<annot<<std::endl;
}
//Статья (название, фамилия автора, название журнала, его номер и год издания)
class Stat : Library
{
private:
    std::string nazv;
    std::string fio;
    std::string journ;
    int numb;
    int year;
public:
    Stat();
    Stat(std::string _nazv, std::string _fio, std::string _journ, int _numb, int _year);
    void Print();
 
};
Stat::Stat()
{
    nazv = "Неизвестно";
    fio = "Неизвестно";
    journ = "Неизвестно";
    numb = 0;
    year = 0;
}
Stat::Stat(std::string _nazv, std::string _fio, std::string _journ, int _numb, int _year)
{
    nazv = _nazv;
    fio = _fio;
    journ = _journ;
    numb = _numb;
    year = _year;
}
void Stat::Print()
{
    std::cout<<"Статья:\nНазвание:\n< "<<nazv<<
        "\nФИО автора:\n< "<<fio<<"\nЖурнал:\n< "<<journ<<
        "\nНомер:\n< "<<numb<<"\nГод издания:\n< "<<year<<std::endl;
}
//Книга (название, фамилия автора, год издания, издательство).
class Book : Library
{
private:
    std::string nazv;
    std::string fio;
    int year;
    std::string izd;
public:
    Book();
    Book(std::string _nazv, std::string _fio, int _year, std::string _izd);
    void Print();
};
Book::Book()
{
    nazv = "Неизвестно";
    fio = "Неизвестно";
    year = 0;
    izd = "Неизвестно";
}
Book::Book(std::string _nazv, std::string _fio, int _year, std::string _izd)
{
    nazv = _nazv;
    fio = _fio;
    year = _year;
    izd = _izd;
}
void Book::Print()
{
    std::cout<<"Книга:\nНазвание:\n< "<<nazv<<
        "\nФИО автора:\n< "<<fio<<"\nГод издания:\n< "<<year<<
        "\nИздательство:\n< "<<izd<<std::endl;
}
1
Aleks.11
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 4
18.11.2009, 14:32  [ТС] #3
M128K145, Спасибо огромное. Меня зовут Лида, я студентка 3 курса Политеха. Я над этой задачей билась 4 недели. Можно задать наивный вопрос. Вы программист который пишет такие сложные задачи или вы просто имеете готовые шаблоны? В любом случае огромное СПАСИБО. Вы очень умный человек. Спасибо.
0
Rififi
2363 / 1056 / 104
Регистрация: 03.05.2009
Сообщений: 2,656
18.11.2009, 14:40 #4
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
#include <string>
#include <iostream>
 
struct library
{
    virtual ~library() {};
    virtual void print(std::ostream&) const = 0;
};
 
struct link : public library
{
    std::string name_, author_, url_, annotation_;
    
    virtual void print(std::ostream& o) const
    { o << name_ << author_ << url_ << annotation_; }
};
 
struct article : public library
{
    std::string name_, author_, magazine_;
    unsigned number_, year_;
 
    virtual void print(std::ostream& o) const
    { o << name_ << author_ << magazine_ << number_ << year_; }
};
 
struct book : public library
{
    std::string name_, author_, publisher_;
    unsigned year_;
 
    virtual void print(std::ostream& o) const
    { o << name_ << author_ << publisher_ << year_; }
};
 
template <typename O>
O& operator<<(O& o, const library& l)
{
    l.print(o);
    return o;
}
пример:
library* obj = new book();
std::cout << *obj << endl;
2
Aleks.11
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 4
18.11.2009, 14:50  [ТС] #5
Rififi, Спасибо огромное за помощь.
0
easybudda
Модератор
Эксперт CЭксперт С++
10053 / 5973 / 1493
Регистрация: 25.07.2009
Сообщений: 11,311
18.11.2009, 16:09 #6
Цитата Сообщение от Rififi Посмотреть сообщение
virtual void print(std::ostream&) const = 0;
Извините за любопытство: а зачем "= 0" в конце объявления?
0
rangerx
1941 / 1550 / 478
Регистрация: 31.05.2009
Сообщений: 2,913
18.11.2009, 18:16 #7
Извините за любопытство: а зачем "= 0" в конце объявления?
Чтобы сделать класс абстрактным.
1
18.11.2009, 18:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2009, 18:16

Создать базовый класс «Учащийся» и производные классы «Школьник» и «Студент»
Создать базовый класс «Учащийся» и производные классы «Школьник» и «Студент»....

Создать абстрактный базовый класс Figure и производные классы Rectangle, Circle
Создать абстрактный базовый класс Figure с виртуальными методами вычисления...

Создать базовый класс «Домашнее животное» и производные классы «Собака», «Кошка», «Попугай»
9. Создать базовый класс «Домашнее животное» и производные классы «Собака»,...


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

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

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