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

Класс Book - C++

23.03.2017, 21:02. Показов 5396. Ответов 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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru