Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/25: Рейтинг темы: голосов - 25, средняя оценка - 4.60
4 / 4 / 5
Регистрация: 13.10.2016
Сообщений: 116

Класс Book - C++

23.03.2017, 21:02. Показов 5507. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите решить:

Класс Book - C++
Данные: название, автор, код ISBN, издательство.
Методы:
1. Получения значения полей (каждого в отдельности)
2. Установки кода ISBN
Операция сравнения: по автору, в случае совпадения по коду ISBN
Желательно создание классов Author, Publisher

Для каждого класса необходимо:
1. Реализовать два конструктора
a. конструктор без параметров
b. конструктор с параметрами
2. Создать статическое поле для подсчёта количества экземпляров класса.
3. Реализовать не менее трех методов
a. вывода данных на экран
b. метод возвращающий кол-во созданных объектов
с. методы в контексте конкретного класса
4. Реализовать переопределение операций
a. сравнения
Продемонстрировать работу с данным классом: в функции main произвести создание нескольких объектов, вызвать для них созданные функции.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.03.2017, 21:02
Ответы с готовыми решениями:

Создать класс Book. Переменная типа Book должна содержать следующие поля:
Помогите решить=(. Создать класс Book. Переменная типа Book должна содержать следующие поля: название, количество авторов; авторы; год...

Класс Book
Подскажите, как добавить в список книг ещё одну книгу? Я думаю функцию больше не надо писать, можно в case засунуть. Я немного запутался. ...

Класс Book
напсиал программу с классами #include <iostream> #include <string.h> using namespace std; #define N 3 class book { private:...

6
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
24.03.2017, 15:21
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 <iostream>
#include <string>
 
class Author
{
public:
    Author() = default;
    Author(const std::string &name, const std::string &surname, const std::string &patr) :
        m_name(name), m_surname(surname), m_patr(patr) {}
    std::string getName()    const { return m_name; }
    std::string getSurname() const { return m_surname; }
    std::string getPatr()    const { return m_patr; }
 
private:
    std::string m_name, m_surname, m_patr; // ФИО
};
 
class Publisher
{
public:
    Publisher() = default;
    Publisher(const std::string &name) : m_name(name) {}
    std::string getName() const { return m_name; }
 
private:
    std::string m_name; // название
};
 
class Book
{
public:
    Book() = default;
    Book(const std::string &name, const Author &author, const std::string &ISBN, const Publisher &publisher) :
        m_name(name), m_author(author), m_ISBN(ISBN), m_publisher(publisher) {}
 
private:
    std::string m_name;    // название
    Author m_author;       // автор
    std::string m_ISBN;    // ISBN
    Publisher m_publisher; // издатель
};
Дальше сами.
Сразу скажу, что для учёта созданных экземпляров нужно явно определить конструктор копий, деструктор и изменить конструктор по умолчанию.
1
4 / 4 / 5
Регистрация: 13.10.2016
Сообщений: 116
24.03.2017, 20:45  [ТС]
Сделал по вашему примеру так как с нас просят.
Можете подсказать, что будет в "main" располагаться?
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
#include "iostream"
#include "string"
 
using namespace std;
 
class Author{
private:
    string p_fName, p_lName, p_Adr;     // Фамилия, Имя, Адрес
    int p_God;                          // Год р.
public:
    Author(string firstname, string lastname, int year, string adress) : p_fName(firstname), p_lName(lastname), p_God(year), p_Adr(adress)
    {}
 
    void setFirstName(string new_fn){ 
        p_fName = new_fn; 
    }
    string getFirstName(){ 
        return p_fName; 
    }
    void show(){
        cout << "FirstName=" << p_fName << endl;
    }
 
    void setLastName(string new_ln){
        p_lName = new_ln;
    }
    string getLastName(){ 
        return p_lName; 
    }
    void show(){
        cout << "LastName=" << p_lName << endl;
    }
 
    void setYear(int new_g){
        p_God = new_g;
    }
    int getYear(){ 
        return p_God; 
    }
    void show(){
        cout << "Year=" << p_God << endl;
    }
 
    void setAdress(string new_adr){
        p_Adr = new_adr;
    }
    string getAdress(){ 
        return p_Adr; 
    }
    void show(){
        cout << "Adress=" << p_Adr << endl;
    }
};
 
 
class Publisher{
private:
    string p_publisher; // название
public:
    Publisher(string Name) : p_publisher(Name)
    {}
 
    void setName(string new_publisher){ 
        p_publisher = new_publisher;
    }
    string getName(){ 
        return p_publisher;
    }
    void show(){
        cout << "Publisher=" << p_publisher << endl;
    }
};
 
 
class Book{
private:
    int p_isbn;             // код ISBN 
    Author p_author;        // автор
    string p_title;         // название
    Publisher p_publisher;  // издатель 
 
public: 
    Book(Author author, Publisher publisher, string Title, int ISBN) : p_title(Title), p_author(author), p_isbn(ISBN), p_publisher(publisher)
    {}
 
    void setIsbn(int new_isbn){
        p_isbn = new_isbn;
    }
    int getIsbn(){
        return p_isbn; 
    }
    void show(){
        cout << "ISBN=" << p_isbn << endl;
    }
 
 
    void Title(string new_title){
        p_title = new_title;
    }
    string getTitle(){
        return p_title; 
    }
    void show(){
        cout << "Title=" << p_title << endl;
    }
};
 
 
int main(){
 
    //..//
 
}
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
24.03.2017, 20:52
Создайте объект типа Book, выведите его на экран. Поменяйте ISBN, выведите на экран (для вывода можно использовать методы get).
Выведите количество экземпляров классов.
Вызовите конструктор копий класса Book.
Выведите количество экземпляров классов.
Создайте новый объект класса Book.
Выведите количество экземпляров классов.
Сравните новый объект класса Book со старым.

Но вам ещё надо использовать статические переменные-счётчики. В конструкторе копий и других версиях конструкторов, вам нужно увеличивать счётчик. В деструкторе уменьшать.
И реализовать оператор сравнения.
0
4 / 4 / 5
Регистрация: 13.10.2016
Сообщений: 116
24.03.2017, 21:06  [ТС]
Возник нюанс с созданием объекта, проконсультируйте пожалуйста
Миниатюры
Класс Book - C++   Класс Book - C++  
0
4 / 4 / 5
Регистрация: 13.10.2016
Сообщений: 116
24.03.2017, 21:08  [ТС]
исправил ошибки с obj.show
Миниатюры
Класс Book - C++  
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
24.03.2017, 21:40
vladrrom, так вы определите конструктор по умолчанию. Из-за того, что вы конструктор с параметрами описали, конструктор по умолчанию генерироваться не будет.
В моём примере, кстати, они создаются (с реализацией по умолчанию).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.03.2017, 21:40
Помогаю со студенческими работами здесь

Разработать класс Book
почему мне выдает ошибку??? Нужно разработать класс Book. определить конструктор и деструктор. реализовать объявленные методы доступными...

Создать динамический класс Book, содержащий динамический массив Authors
Мне нужно написать программу,а я не знаю как ее написать. Знаю, тут люди за кого-то не делают, укажите хотя бы направление. вот сама...

Создать динамический класс Book, содержащей динамический массив Authors
всем привет. может кто-то набросать код для такой вот задачи: Создать динамический класс Book, содержащей динамический массив...

Класс "Book", упорядочить элементы по названию
Задание такое:Создать класс Book. Переменная типа Book должна содержать следующие поля: название; количество авторов; авторы; год издания;...

What's the best C++ beginners book?
Hello everyone,, What's the best book to learn C++ for someone new to programming? So far I've received three different...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru