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

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

Войти
Регистрация
Восстановить пароль
 
Aleks.11
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 4
#1

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

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


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

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

Создать абстрактный базовый класс Figure с виртуальной функцией Периметр. Создать производные классы Rectangle - C++
Создать абстрактный базовый класс Figure с виртуальной функцией -периметр.Создать производные классы Rectangle, Circle,Triangle,Rhomb в...

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

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

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

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

6
M128K145
Эксперт JavaЭксперт С++
8320 / 3540 / 143
Регистрация: 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 / 44
Регистрация: 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Эксперт С++
10020 / 5943 / 1004
Регистрация: 25.07.2009
Сообщений: 11,230
18.11.2009, 16:09 #6
Цитата Сообщение от Rififi Посмотреть сообщение
virtual void print(std::ostream&) const = 0;
Извините за любопытство: а зачем "= 0" в конце объявления?
0
rangerx
1941 / 1550 / 141
Регистрация: 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 - C++
Создать абстрактный базовый класс Figure с виртуальными методами вычисления площади и периметра. Создать производные классы: Rectangle...

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

Создать базовый класс «Транспортное средство» и производные классы «Автомобиль», «Велосипед», «Повозка» - C++
При выполнении данной работы необходимо определить базовый класс и производные от него классы. Предусмотреть передачу аргу- ментов...

Создать базовый класс «Музыкальный инструмент» и производные классы «Ударный», «Струнный», «Духовой» - C++
Создать базовый класс «Музыкальный инструмент» и производные классы «Ударный», «Струнный», «Духовой». Создать массив объектов «Оркестр»....


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

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

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