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
| /////////////////////////////////////////////////////////////////////////////////////////
// Реализовать программу для хранения информации о студентах.
// Предусмотреть ввод следующих данных:
// ФИО, группа, средний балл, количество задолженностей.
// Для контрактных студентов указать название предприятия, оплачивающее контракт
// и его расчетный счет, для бюджетных – размер стипендии.
// Реализовать по выбору пользователя вывод контрактных и/или бюджетных студентов,
// а также студентов, получающих стипендию. Реализовать операцию отчисления студентов
// с количеством задолженностей, превышающим заданное число.
/////////////////////////////////////////////////////////////////////////////////////////
#include <iostream>
#include <vector>
#include <string>
/////////////////////////////////////////////////////////////////////////////////////////
typedef int T_item;
typedef std::string T_string;
typedef bool T_logic;
/////////////////////////////////////////////////////////////////////////////////////////
class Student
{
//-----------------------------------------------------------------------------------
protected:
//-----------------------------------------------------------------------------------
T_string flm;
T_item number_group;
T_item average_score;
T_item count_debsts;
//-----------------------------------------------------------------------------------
public:
//-----------------------------------------------------------------------------------
Student(
T_string flm_, // first name, last name, middle name
T_item number_group_, // number of group
T_item average_score_, // average score
T_item debsts_ // number of debst
)
:
flm(flm_),
number_group(number_group_),
average_score(average_score_),
count_debsts(debsts_)
{}
virtual ~Student()
{}
//-----------------------------------------------------------------------------------
virtual int getGroup() const
{
return 1; // classic student
}
//-----------------------------------------------------------------------------------
};
/////////////////////////////////////////////////////////////////////////////////////////
typedef Student T_student;
/////////////////////////////////////////////////////////////////////////////////////////
class ContractStudent : public T_student
{
//-----------------------------------------------------------------------------------
public:
//-----------------------------------------------------------------------------------
ContractStudent(
T_student student_,
T_string concern_
)
:
concern(concern_),
T_student(student_)
{}
//-----------------------------------------------------------------------------------
T_item getGroup() const
{
return 2; // contract student
}
//-----------------------------------------------------------------------------------
private:
//-----------------------------------------------------------------------------------
T_string concern;
//-----------------------------------------------------------------------------------
};
/////////////////////////////////////////////////////////////////////////////////////////
class BudgetStudent : public T_student
{
//-----------------------------------------------------------------------------------
public:
//-----------------------------------------------------------------------------------
BudgetStudent(
T_student student_,
T_item grant_
)
:
grant(grant_),
T_student(student_)
{}
//-----------------------------------------------------------------------------------
T_item getGroup() const
{
return 3; // budget student
}
//-----------------------------------------------------------------------------------
private:
//-----------------------------------------------------------------------------------
T_item grant;
//-----------------------------------------------------------------------------------
};
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
std::vector<Student*> stud;
stud.push_back(new BudgetStudent({"Vasya Pupkin",1,4,0},100));
stud.push_back(new Student("Aleksandr Trololoev",2,3,3));
stud.push_back(new ContractStudent({"Denis Kontraktov",1,5,0},"Kontrakt Industries"));
} |