0 / 0 / 0
Регистрация: 23.03.2020
Сообщений: 17
1

Композиция классов

30.05.2021, 17:50. Показов 501. Ответов 2
Метки нет (Все метки)

Помогите дописать, не знаю как дальше. Нужно ещё создать 3-ий класс(GroupJournal), который содержит объекты других классов и выводит: nameOfst, groupName, name(предмета), missedClasses и перегрузить операторы, которые необходимы в классах. STL библиотеки не использовать.
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#include <iostream>
 
using namespace std;
 
class Subject
{
private:
    int numberOfclasses;
    string name, lector, isAlt;
 
public:
    Subject() 
    {
        cout << "Last entry" << endl << endl;
 
    }
    void SetSubject()
    {
        cout << "Add a note about subject" << endl << endl;
 
        cout << "Enter the name of the subject - " << endl;
        cin >> name;
        cout << "Enter the number of classes for this subject - " << endl;
        cin >> numberOfclasses;
        cout << "Alternative or basic - " << endl;
        cin >> isAlt;
        cout << "Lector of this subject - " << endl;
        cin >> lector;
        cout << endl;
    }
    void PrintSubject()
    {
        cout << "Subject: " << name << '\n';
        cout << "Alternative or basic: " << isAlt << "\n";
        cout << "Number of classes: " << numberOfclasses << " classes" << endl;
        cout << "Lector of this subject: " << lector << endl << endl;
        cout << "==========================================" << endl;
    }
 
    int GetnumberOfclasses()
    {
        return numberOfclasses;
    }
    string GetName()
    {
        return name;
    }
    string GetisAlt()
    {
        return isAlt;
    }
 
    ~Subject() {
    }
};
 
class StudentAttendance
{
private:
    int classesAttended, missedClasses;
    string nameOfst;
    string groupName;
public:
 
   
    void SetAttendance()
    {
        cout << "Enter the student's first and last name -  " << endl;
        cin >> nameOfst;
        cout << "Enter the name of the group -  " << endl;
        cin >> groupName;
        cout << "Enter the number of classes attended by this student - " << endl;
        cin >> classesAttended;
        cout << "Enter the number of missed classes by this student - " << endl;
        cin >> missedClasses;
 
        cout << endl;
    }
    void PrintAttendance()
    {
        cout << "Full name of student: " << nameOfst << '\n';
        cout << "Student group name: " << groupName << '\n';
        cout << "Classes attended: " << classesAttended << "\n";
        cout << "Missed classes: " << missedClasses << endl << endl;
        cout << "==========================================" << endl;
    }
 
    string GetGroupName()
    {
        return groupName;
    }
    int GetClassesAttended()
    {
        return classesAttended;
    }
    int GetMissedClasses()
    {
        return missedClasses;
    }
    string GetNameOfst()
    {
        return nameOfst;
    }
    ~StudentAttendance() {
    }
};
 
class GroupJournal : public Subject, StudentAttendance
{
private:
    string nameOfst, subject, missedClasses;
public:
 
 
 
 
 
 
 
 
 
};
 
 
int main()
{
    Subject x;
    x.SetSubject();
    x.PrintSubject();
 
    StudentAttendance y;
    y.SetAttendance();
    y.PrintAttendance();
 
    GroupJournal z;
 
    
    system("pause");
    return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.05.2021, 17:50
Ответы с готовыми решениями:

Композиция и коллекция классов, использование интерфейсов
Разработать свою программу с коллекцией классов. Использовать один из стандартных «списков» языка...

Композиция
Допустим у меня есть класс точка, и отрезок, который строится с помощью двух точек. Так вот, я...

Наследование и Композиция
Много раз слышал о том, что Композиция почти всегда лучше Наследования. Так вот у меня такой вопрос...

Композиция, агрегация и абстракция
Всем привет! Можете на примерах объяснить, что собой представляют композиция, агрегация и...

2
Она кричала хватит
40 / 41 / 6
Регистрация: 21.05.2019
Сообщений: 110
30.05.2021, 19:50 2
Мне кажется ваш класс GroupJournal может наследоваться только от класса StudentAttendance. Через объект класса GroupJournal будут доступны публичные поля и методы класса StudentAttendance. Можете проверить.

Кликните здесь для просмотра всего текста
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
class StudentAttendance
{
private:
    int classesAttended;
    int missedClasses;
    string nameOfst;
    string groupName;
public:
    StudentAttendance()
    {
        classesAttended = 0;
        missedClasses = 0;
        nameOfst = "";
        groupName = "";
    }
 
    StudentAttendance(string nameOfst, string groupName, int classesAttended, int missedClasses)
    {
       this->classesAttended = classesAttended;
       this->missedClasses = missedClasses;
       this->nameOfst = nameOfst;
       this->groupName = groupName;
    }
 
    void SetAttendance()
    {
        cout << "Enter the student's first and last name -  " << endl;
        cin >> nameOfst;
        cout << "Enter the name of the group -  " << endl;
        cin >> groupName;
        cout << "Enter the number of classes attended by this student - " << endl;
        cin >> classesAttended;
        cout << "Enter the number of missed classes by this student - " << endl;
        cin >> missedClasses;
 
        cout << endl;
    }
    void PrintAttendance()
    {
        cout << "Full name of student: " << nameOfst << '\n';
        cout << "Student group name: " << groupName << '\n';
        cout << "Classes attended: " << classesAttended << "\n";
        cout << "Missed classes: " << missedClasses << endl << endl;
        cout << "==========================================" << endl;
    }
 
    string GetGroupName()
    {
        return groupName;
    }
    int GetClassesAttended()
    {
        return classesAttended;
    }
    int GetMissedClasses()
    {
        return missedClasses;
    }
    string GetNameOfst()
    {
        return nameOfst;
    }
    ~StudentAttendance() {
    }
};
 
class GroupJournal : public StudentAttendance
{
public:
    GroupJournal(string nameOfst, string groupName, int classesAttended, int missedClasses) : StudentAttendance(nameOfst, groupName, classesAttended, missedClasses)
    {     
    }
};
 
 
int main()
{
    //Subject x;
    //x.SetSubject();
    //x.PrintSubject();
 
    StudentAttendance y;
    //y.SetAttendance();
   // y.PrintAttendance();
 
    GroupJournal z("a", "b", 1,2);
    cout << z.GetNameOfst();
    cout << z.GetGroupName();
    cout << z.GetClassesAttended();
    cout << z.GetMissedClasses();
 
    system("pause");
    return 0;
}
1
49 / 147 / 33
Регистрация: 29.06.2019
Сообщений: 1,428
31.05.2021, 11:57 3
Цитата Сообщение от Jane Caulfield Посмотреть сообщение
который содержит объекты других классов
- не обязательно наследованием, можно делегированием - включая объекты др. классов в качестве полей в нужный создаваемый класс
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.05.2021, 11:57
Помогаю со студенческими работами здесь

Что есть Композиция??
Что такое композиция? Преподаватель сказал, что использование наследования в моей курсовой...

Композиция отношений (дискретная математика)
R1 ⚪ R2 если бы R1 и R2 были множествами, то всё ясень. как поступать, если они являются...

Массив разных классов. Как добратся до всех полей этих классов?
Все классы имеют общего предка. Экземпляры этих классов запихнуты в один массив нужно както...

Разработать систему классов по заданной теме. Обеспечить соответствующую функциональность классов
Блин, люди, помоги с задачей :( А то зачет не поставят :( Разработать систему классов по...

Сериализация списка классов (нескольких классов)
Ув. форумчане. Знаю, что данный вопрос неоднократно поднимался и здесь существует огромное...

Проектирование классов двух видов классов
Программное решение должно включать 2 проекта – библиотеку классов и проект с формой, который и...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru