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

Класс Book - C++

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


Помогите решить:

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

Для каждого класса необходимо:
1. Реализовать два конструктора
a. конструктор без параметров
b. конструктор с параметрами
2. Создать статическое поле для подсчёта количества экземпляров класса.
3. Реализовать не менее трех методов
a. вывода данных на экран
b. метод возвращающий кол-во созданных объектов
с. методы в контексте конкретного класса
4. Реализовать переопределение операций
a. сравнения
Продемонстрировать работу с данным классом: в функции main произвести создание нескольких объектов, вызвать для них созданные функции.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.03.2017, 21:02
Ответы с готовыми решениями:

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

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

Класс Book
напсиал программу с классами #include <iostream> #include <string.h> using namespace std;...

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

6
Форумчанин
Эксперт CЭксперт С++
8164 / 5012 / 1436
Регистрация: 29.11.2010
Сообщений: 13,455
24.03.2017, 15:21 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
#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  [ТС] 3
Сделал по вашему примеру так как с нас просят.
Можете подсказать, что будет в "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Эксперт С++
8164 / 5012 / 1436
Регистрация: 29.11.2010
Сообщений: 13,455
24.03.2017, 20:52 4
Создайте объект типа Book, выведите его на экран. Поменяйте ISBN, выведите на экран (для вывода можно использовать методы get).
Выведите количество экземпляров классов.
Вызовите конструктор копий класса Book.
Выведите количество экземпляров классов.
Создайте новый объект класса Book.
Выведите количество экземпляров классов.
Сравните новый объект класса Book со старым.

Но вам ещё надо использовать статические переменные-счётчики. В конструкторе копий и других версиях конструкторов, вам нужно увеличивать счётчик. В деструкторе уменьшать.
И реализовать оператор сравнения.
0
4 / 4 / 5
Регистрация: 13.10.2016
Сообщений: 116
24.03.2017, 21:06  [ТС] 5
Возник нюанс с созданием объекта, проконсультируйте пожалуйста
0
Миниатюры
Класс Book - C++   Класс Book - C++  
4 / 4 / 5
Регистрация: 13.10.2016
Сообщений: 116
24.03.2017, 21:08  [ТС] 6
исправил ошибки с obj.show
0
Миниатюры
Класс Book - C++  
Форумчанин
Эксперт CЭксперт С++
8164 / 5012 / 1436
Регистрация: 29.11.2010
Сообщений: 13,455
24.03.2017, 21:40 7
vladrrom, так вы определите конструктор по умолчанию. Из-за того, что вы конструктор с параметрами описали, конструктор по умолчанию генерироваться не будет.
В моём примере, кстати, они создаются (с реализацией по умолчанию).
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.03.2017, 21:40

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Создать динамический класс 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...


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

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

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