Неро. НП3_Коваленко. Міністерство освіти і науки України Фаховий коледж ракетнокосмічного машинобудування
Скачать 0.79 Mb.
|
WRKER()Vector3D();Vector3D()Matrix()function()//деструкторqwerty()//деструкторМіністерство освіти і науки України Фаховий коледж ракетно-космічного машинобудування Дніпровського національного університету імені Олеся Гончара ЗВІТ з навчальної практики №3 з дисципліни «Об’єктно-орієнтоване програмування» Спеціальність 121 Група ПЗ-19-2 Виконав Коваленко О.П. Перевірила Лазарєва Ю. І. 2021 ЗМІСТ ЗАВДАННЯ № 1 ЗАВДАННЯ № 2 ЗАВДАННЯ № 3 ЗАВДАННЯ № 4 ЗАВДАННЯ № 5 ЗАВДАННЯ № 1 Проектування структури класу. Розробка класу. Специфікатори доступу до елементів класу. Правила опису методів класу та порядок роботи з методами класу. Створення методів класу. Контроль даних класу. Розробка програми з різним оголошенням об'єктів Мета: навчитися проектувати структуру класу та розробляти клас, використовувати специфікатори доступу до елементів класу, створювати методи класу, реалізовувати контроль даних класу та розробляти програму з різним оголошенням об'єктів. Хід роботи Постановка задачі: В завданні необхідно створити клас, що має два поля, конструктор за замовчуванням, методи установки і виведення значень полів а також індивідуальний метод, який реалізує функції, зазначені в завданні. Поставлена задача повинна бути реалізована з декількома модифікаціями: У методі класу повинен відбуватись контроль введених даних. Поля класу повинні бути описані як змінні вказаного типу або являтися полями структури. У програмі повинні бути оголошені два об’єкти: один об'єкт за ім’ям, другий об'єкт – через вказівник. Варіант № 6. Лінійне рівняння у = Ах + В. Поле first - дробове число, коефіцієнт А; поле second - дробове число, коефіцієнт В. Реалізувати метод function () - обчислення для заданого х значення функції у. Програмний код програми міститься відповідно у лістингах 1.1 − 1.3. Програмний код програми міститься відповідно у лістингах 1.1 − 1.3. Лістинг 1.1 – Код головної функції #include #include #include "qwerty.h" using namespace std; int main(void) { system("color 04"); SetConsoleOutputCP(1251); qwerty obj1; qwerty* obj2 = new qwerty; //Створення вказівника на об'єкт cout << endl << "Рішення рівняння y = Ax + B " << endl; cout << endl << "Oб'єкт 1: "; //Оголошення через ім'я obj1.setX(); obj1.setA(); obj1.setB(); obj1.function(); system("pause"); system("cls"); cout << endl << "Oб'єкт 2: "; //Оголошення через об'єкт obj2->setX(); obj2->setA(); obj2->setB(); obj2->function(); delete obj2; //Видалення вказівника на об'єкт return 0; } Лістинг 1.2 – Специфікація класу qwerty #pragma once class qwerty { float x; // x float y; // y float first; // A float second; // B public: qwerty(); //Конструктор без параметрів #include using namespace std; qwerty::qwerty() : x(0), first(0), second(0) //конструктор { } qwerty:: { } void qwerty::function() { float sum = 0; sum = first * x + second; //Рішення cout << endl << "Рішення y = " << sum << endl; } void qwerty::setX() { double str; do { cout << endl << "Введіть x: "; cin >> str; // Перевірка на вірність значень if (str < 0) { cout << endl << "Невiрно введені дані!"; continue; //Починає новий цикл } else { x = str; break; //Вихід з циклу } } while (true); } void qwerty::setA() { double str; do { cout << endl << "Введіть коефіцієнт А "; cin >> str; // Перевірка на вірність значень if (str == (long long)str || str < 0) { cout << endl << "Невiрна введені дані!"; continue; //Починає новий цикл } else { first = str; break; //Вихід з циклу } } while (true); } void qwerty::setB() { double str; do { cout << endl << "Введіть коефіцієнт B "; cin >> str; // Перевірка на вірність значень if (str == (long long)str || str < 0) { cout << endl << "Невiрна введені дані!"; continue; //Починає новий цикл } else { second = str; break; //Вихід з циклу } } while (true); } int qwerty::getX() const { return x; //Повертає значення поля x } float qwerty::getA() const { return first; //Повертає значення поля first } float qwerty::getB() const { return second; //Повертає значення поля second } Вікна виконання програми представлені на рисунках 1.1 – 1.2. Рисунок 1.1 – Введення значень та перевірка на коректність Рисунок 1.2 – Введення та виконання для другого об'єкту Висновок: в ході виконання завдання я навчився проектувати структуру класу та розробляти клас, використовувати специфікатори доступу до елементів класу, враховувати правила опису методів класу та порядок роботи з методами класу, створювати методи класу, реалізовувати контроль даних класу та розробляти програму з різним оголошенням об'єктів. ЗАВДАННЯ № 2 Перевірки даних на допустимість. Проектування конструкторів та деструктора. Конструктор за замовчанням. Розробка класу з елементом-масивом та його конструкторів. Розробка методів класу для одномірного елементу-масиву. Мета: закріпити навички з реалізації перевірок даних на допустимість в класі, навчитись проектувати конструктори, в тому числі за замовчуванням, та деструктор, розробляти клас з членом класу одномірним масивом та відповідні методи для роботи з ним. Хід роботи Постановка задачі В завданні необхідно виконати наступне. Користувальницький клас Array повинен працювати з одновимірним числовим масивом і містити поля , одне з яких - значення розмірності масиву, друге поле задає масив. Поля повинні бути закритими. Масив створюється в пам'яті динамічно. Клас містить методи : конструктори за замовчуванням та з параметрами, де створюється динамічний масив (операція new для створення), деструктор, в якому виконується звільнення пам'яті. Крім цього, клас містить також методи : виведення на екран поточного стану масиву: void print (...) ; установлення (переустановлення) поточного стану та кiлькості елементiв масиву: void set (... ) ; методи, які виконують дії з масивами, зазначені для кожного варіанта (якщо завдання вирішити не можна, то повідомте програмно про це). Запропонувати користувачу можливість повторного виконання програми з іншою розмірністю масиву. У звіті продемонструвати роботу програми у випадку, якщо є відповідні елементи в масиві, якщо є один, якщо немає, тощо. Варіант № 6 Обчислити: 1. Добуток елементів масиву з номерами, кратними трьом. 2. Суму елементів масиву, розташованих між першим і останнім максимальними за модулем елементами. Програмний код програми міститься відповідно у лістингах 2.1 − 2.3. Лістинг 2.1 – Код головної функції #include "function.h" #include #include #include #include using namespace std; int main() { system("color 04"); SetConsoleCP(1251); SetConsoleOutputCP(1251); function A; int razm, g[50], f, h, i = 0, p = 1, data; do { system("cls"); p = 1; while (p) { cout << endl << "\t\tЗавдання 2" << endl; cout << endl << " Введіть розмір масиву: "; cin >> h; cout << endl; if (h > 0) p = 0; else cout << endl << " Невірно,ви ввели не коректне число!"; } razm = h; A.CreateArr(razm);//створення масиву for (int a = 0; a < razm; a++) { cout << " Введіть " << a + 1 << "-й елемент масиву: "; cin >> g[i]; data = g[i]; A.SetArr(a, data); i++; } A.print();//виведення масиву A.Krat();//виконання першого завдання A.Sum();//виконання другого завдання cout << endl << " Запустити програму знову? (1 - так)"; cin >> f; } while (f == 1); cout << endl << " Кінець роботи!"; return 0; } Лістинг 2.2 – Специфікація класу function #ifndef function_H #define function_H class function { private: int* mas; int size; public: function();//конструктор virtual |
#include
#include
using namespace std;
function::function() :size(0)//конструктор
{
mas = NULL;
}
void function::CreateArr(int razm)//введення розмірності масиву
{
mas = new int[razm];
size = razm;
}
void function::print()//виведення масиву
{
cout << endl << "\t\tВведений масив: " << endl;
for (int i = 0; i < size; i++)
cout << "\t" << mas[i];
cout << endl;
}
void function::SetArr(int i, int Data)
{
mas[i] = Data;
}
function::
{
delete mas;
}
void function::Krat()//пошук номерів кратних 3.
{
system("pause");
system("cls");
print();
cout << endl << "\n\t\t1. Мінімальний елемент масиву за модулем \n" << endl;
int min = 0;
int j = 0;
min = mas[0];
int su = 0;
for (int i = 0; i < size; i++)
{
j++;
if (((j % 3 == 0)))
{
min = mas[i];
cout << "Число -> ";
cout << min <<" ";
cout <
for (int i = 0; i < size; i++)
{
if (abs(mas[i]) == min) cout << "\t" << i + 1;
}
su += mas[i];
cout << endl << "Сумма = "<< su;
}
cout << endl;
}
system("pause");
system("cls");
}
void function::Sum()//пошук суми елементів
{
print();
int prov = 0, sum = 0, negative = 0, k = 0, neg;
cout << endl << "\n 2. Сума елементів масиву, розташованих після першого негативного.\n\n";
if (size == 1)
{
cout << endl << " Не можливо підрахувати. Розмір масиву 1 елемент.";
return;
}
for (int i = 0; i < size; i++)
{
if (mas[i] < 0)
{
prov++;
}
}
for (int i = 0; i < size; i++)
{
if (abs(mas[i]) > negative)
{
negative = abs(mas[i]);
neg = i;
}
}
int i = 0;
k = 0;
for (i = neg + 1; i < size; i++)
{
sum += mas[i];
}
cout << "Максимальний елемент в масиві -> " << negative << endl << "Знаходитться на позиції -> (" << neg + 1 << ")" << endl;
cout << endl << "Сума елементів масиву розташованих між першим максимальним та останнім елементом масиву -> " << sum;
return;
}
Вікна виконання програми представлені на рисунках 2.1 – 2.4.
Рисунок 2.1 – введення та перевірка на корректність
,
Рисунок 2.2 – добуток елементів масиву з номерами, кратними трьом
Рисунок 2.3 – Пошук cуми елементів масиву, розташованих між першим і останнім максимальними за модулем елементами.
Рисунок 2.3 – Виконання програми коли введено 1 елемент масиву
Рисунок 2.4 – Завершення програми
Висновок: в ході виконання завдання я закріпив навички з реалізації перевірок даних на допустимість в класі, навчився проектувати конструктори, в тому числі за замовчуванням, та деструктор, розробляти клас з членом класу одномірним масивом та відповідні методи для роботи з ним.
ЗАВДАННЯ № 3
Розробка програми з елементом класу – двомірним масивом. Розробка конструктору з параметрами.
Мета: навчитись розробляти програми з елементом класу двомірним масивом, використовувати конструктор з параметрами.
Хід роботи
Постановка задачі
В завданні необхідно виконати наступне. Користувальницький клас Array повинен містити конструктор з параметрами для створення динамічних масивів (операція new або інша) і установки початкових значень їх елементів: Array ( ...) ( реальні розміри масиву - кількість рядків і стовпців передається в конструктор через параметри).
Передбачити реалізацію конструктору за замовчуванням та конструктору копіювання.
Метод друку поточного стану масиву: void print (... ) ; Виконати з виведенням в табличному вигляді, надписами, межами та ін., використати форматоване виведення.
Метод перевстановлення поточного стану масиву: void set (... ), значення елементів вводяться користувачем. Передбачити використання перевірочних функцій, оформлених у вигляді власної бібліотеки (функцій в файлі *.h).
Метод, який вирішує поставлене завдання: void Run (... );
Скласти функцію (метод) Run(), яка дозволить виконати наступні дії з двомірними масивами (якщо завдання вирішити не можна, то повідомить про це). Передбачити дружню функцію для виведення результатів.
Варіант 6: Дана дійсна квадратна матриця. Сусідами елемента Aij є елементи Akl, де i-1<=k<=i+1, j-1<=l<=j+1 (k,l)!=(i,j). Елемент матриці називається локальним мінімумом, якщо він менший, ніж всі його сусіди. Вивести локальні мінімуми матриці.
Програмний код програми міститься відповідно у лістингах 3.1 − 3.5.
Лістинг 3.1 – Код головної функції
#include "Matrix.h"
#include
int main()
{
using namespace std;
Matrix mat;
mat.set();
mat.print();
mat.run();
return 0;
}
Лістинг 3.2 – Реалізація класу Arrei
#pragma once
#include
class Matrix
{
private:
float** arr;
int size;
public:
Matrix();
Matrix(int);
Matrix(const Matrix& c);
{
for (int i = 0; i < size; i++)
{
delete arr[i];
}
delete arr;
}
Matrix& Matrix::operator=(const Matrix& c)
{
if (this == &c)
return *this;
for (int i = 0; i < size; i++)
{
delete arr[i];
}
delete arr;
size = c.size;
if (c.arr)
{
arr = new float* [size];
for (int i = 0; i < size; i++)
{
arr[i] = new float[size];
}
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
arr[i][j] = c.arr[i][j];
}
}
}
else
{
size = 0;
}
return *this;
}
void Matrix::print() const
{
using namespace std;
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
cout << arr[i][j] << " ";
}
cout << endl;
}
}
void Matrix::set()
{
using namespace std;
setlocale(LC_ALL, "Rus");
while(size == 0)
{
cout << "Введите размер квадратной матрицы"<
cin >> size;
cout << "Введите матрицу" << endl;
}
if (arr==nullptr)
{
arr = new float* [size];
for (int i = 0; i < size; i++)
{
arr[i] = new float[size];
}
}
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
cin >> arr[i][j];
}
}
}
void Matrix::run()
{
using namespace std;
cout << "Локальные минимумы матрицы = " << endl;
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
if (i - 1 >= 0)
{
if (arr[i][j] >= arr[i - 1][j])
continue;
}
if (i + 1 < size)
{
if (arr[i][j] >= arr[i + 1][j])
continue;
}
if (j - 1 >= 0)
{
if (arr[i][j] >= arr[i][j-1])
continue;
}
if (j + 1 < size)
{
if (arr[i][j] >= arr[i][j + 1])
continue;
}
std::cout << arr[i][j]<<" ";
}
}
}
Вікна виконання програми представлені на рисунках 3.1.
Рисунок 3.1 – Виведення меню програми
Висновок: в ході виконання завдання я закріпив навички з розробкою програми з елементом класу двомірним масивом, використовувати конструктор з параметрами.
ЗАВДАННЯ № 4
Розробка методів класу у відповідності з завданням. Розробка програми, яка працює з об’єктами класу у відповідності з завданням.
Мета: закріпити навички з розробки та використання методів класу, розробити програму, яка працює з об’єктами класу у відповідності з завданням.
Хід роботи
Постановка задачі.
Повинні бути реалізовані наступні методи:
– метод ініціалізації
– введення з клавіатури
– виведення на екран
Всі завдання повинні бути реалізовані таким чином: тип даних представляється як клас із закритими полями, де функціональність класу реалізується як методи класу.
У класі повинен бути реалізований програмний код, який дозволяє, наприклад, «складати» об’єкти, тобто отримувати третій об’єкт, дані якого відповідають «сумі» об’єктів, або «віднімати» об’єкти, тобто отримувати третій об’єкт, дані якого відповідають «різниці» об’єктів, тощо.
Використати метод класу для виведення стану об’єкту.
Варіант № 6.
Створити клас vector3D для роботи з двома векторами, кожен з яких задається трійкою координат. Програма повинна виконувати для об’єктів:
додавання (Сума векторів - це вектор з координатами , рівними сумі однойменних координат першого і другого векторів).
Програмний код програми міститься відповідно у лістингах 4.1 – 4.5.
Лістинг 4.1 – Proverka.h файл заголовок классу, в якому містяться методи для перевірки даних що будуть введені
#pragma once
#include
#include
#include
#include
using namespace std;
class Proverka//Класс в котором находятся статические методы которые не требуют создания обьекта для использоввания
{
public:
static int VvodInt();//Метод для контроля вводимых цэлочисленных данных
static float VvodFloat();//Метод для контроля вводимых данных с плавающей точкой(возможна запись экспонентного вида)
static size_t VvodSize_t();//Метод для контроля вводимых цэлочисленых данных польше нуля
};
Лістинг 4.2 – Proverka.cpp файл реалізації класу з перевірками
#include "Proverka.h"
int Proverka::VvodInt()
{
string s;
while (true)
{
cin >> s;
size_t dlinna = 0;
if (s[dlinna] == '-')
++dlinna;
if (s[dlinna] == '\0' || (s.find_first_not_of("0123456789", dlinna) == string::npos) == 0)
{
cout << endl << "Некоректные данные. Попробуйте еще раз : ";
}
else
{
break;
}
}
return stoi(s);
}
float Proverka::VvodFloat()
{
string str;
while (true)
{
cin >> str;
int k = 0;
int s1 = 0;
bool proverka1 = 0, proverka2 = 0;
size_t dlinna = 0;
size_t dlinna1 = 0;
size_t dlinna2 = 0;
if (str[dlinna] == '-')
++dlinna;
for (int i = 0; i < str.length(); i++)
{
if ((str[i] == 'e') || (str[i] == 'E')) { s1 = i; break; }
}
if (s1 != 0)
{
string r1 = str.substr(0, s1);
string r2 = str.substr(s1);
for (int i = 0; i < r2.length(); i++)
{
if (r1[i] == ',') k++;
}
if ((k > 1) || (r1[dlinna] == '\0') || (r1[dlinna] == ',') || (r2.find_first_not_of("0123456789,", dlinna) == string::npos) == 0)
{
cout << endl << "Некоректные данные. Попробуйте еще раз : ";
}
else
{
proverka1 = 1;
}
int m = 0;
if (r2[dlinna2] == 'e' || r2[dlinna2] == 'E')
++dlinna2;
for (int i = 0; i < r2.length(); i++)
{
if ((r2[i] == '-') || (r2[i] == '+')) m++;
}
if ((m >= 2) || (r2[dlinna2] == '\0') || (r2[dlinna2] == 'E') || (r2[dlinna2] == 'e') || (r2.find_first_not_of("0123456789-+", dlinna2) == string::npos) == 0)
{
cout << endl << "Некоректные данные2. Попробуйте еще раз : ";
}
else
{
proverka2 = 1;
}
if ((proverka1 == 1) && (proverka2 == 1))break;
}
else
{
for (int i = 0; i < str.length(); i++)
{
if (str[i] == ',') k++;
}
if ((k > 1) || (str[dlinna] == '\0') || (str[dlinna] == ',') || (str.find_first_not_of("0123456789,", dlinna) == string::npos) == 0)
{
cout << endl << "Некоректные данные. Попробуйте еще раз : ";
}
else
{
break;
}
}
}
return stof(str);
}
size_t Proverka::VvodSize_t()
{
string s;
while (true)
{
cin >> s;
if ((s.find_first_not_of("0123456789") == 0))
{
cout << endl << "Некоректные данные. Попробуйте еще раз : ";
}
else if (s.size() == 1 && s[0] == '0')
{
cout << endl << "Некоректные данные. Попробуйте еще раз : ";
}
else
{
break;
}
}
return stoi(s);
}
Лістинг 4.3 – Vector3D.h файл заголовок основного класу що потрібен за завданням
#pragma once
#include "Proverka.h"
class Vector3D
{
static int sum;// обьщее поле которое означает скалярное произведение векторов
int x, y, z;//координаты которыми задается вектор
public:
Vector3D();//Конструктор по умолчанию в котором реализован ввод данных в поля обьекта
Vector3D(int, int, int);//Конструктор который принимает 3 параметра Следовательно х, у, z
Vector3D(const Vector3D&);//Конструктор который принимает как параметр другой обьект и создает его копию
{
}
void Vector3D::SetterVectora()
{
cout << endl << "Введите значение х : ";
x = Proverka::VvodInt();
cout << endl << "Введите значение у : ";
y = Proverka::VvodInt();
cout << endl << "Введите значение z : ";
z = Proverka::VvodInt();
}
void Vector3D::Print()
{
cout << endl << "Координаты задающие вектор : x = " << x << ", y = " << y << ", z = " << z;
}
Vector3D& Vector3D::operator * (const Vector3D& right)
{
int summ = (x + right.x) + (y + right.y) + (z + right.z);
SetSum(summ);
return *this;
}
void Vector3D::SetSum(int s)
{
sum = s;
}
int Vector3D::GetSum()
{
return sum;
}
Лістинг 2.5 – Головна функція
#include
#include "Proverka.h"
#include "Vector3D.h"
using namespace std;
int Vector3D::sum;
int main()
{
int z;
setlocale(0, "");
do
{
cout << endl << "Процесс создания первого вектора!";
Vector3D vector1;
cout << endl << "Процесс создания второго вектора!";
Vector3D vector2;
cout << endl << "Для первого вектора : ";
vector1.Print();
cout << endl << "Для второго вектора : ";
vector2.Print();
vector1* vector2;
cout << endl << "Сума этих двух векторов = " << Vector3D::GetSum() << "\t\t((x1+x2)+(y1+y2)+(z1+z2))";
Vector3D::SetSum(0);
vector1.
cout << endl << "Продолжить выполнение программы?(1 - да, 0 - нет) : ";
for (; true;)
{
z = Proverka::VvodInt();
if (z != 1 && z != 2)
{
cout << endl << "Некоректные данные!! Попробуйте еще раз : ";
continue;
}
break;
}
} while (z);
}
Вікна виконання програми представлені на рисунках 4.1 – 4.7.
Рисунок 4.1 – Результат роботи перевірки на коректність введення даних про координати вектора
Рисунок 4.2 – Результат введення даних про два вектори які потрібні за завданням
Рисунок 4.3 – Виведення даних про два вектори
Рисунок 4.4 – Результат розрахунку суми
Рисунок 4.5 – Результат розрахунку суми
Рисунок 4.6 – Результат розрахунку суми
Висновок: в ході виконання завдання я закріпив навички з розробки та використання методів класу, розробив програму, яка працює з об’єктами класу у відповідності з завданням.
ЗАВДАННЯ № 5
Конструктор копіювання. Розробка класу для завдання з масивом об’єктів. Розробка конструкторів класу для завдання з масивом об’єктів. Розробка методів класу для завдання з масивом об’єктів
Мета: закріпити навички з використання конструктора копіювання, проектування та розробки методів класу відповідно до завдання, навчитись використовувати масиви об’єктів в програмі.
Постановка задачі
В завданні необхідно виконати наступне. Масив повинен бути оголошений як через ім’я, так і через вказівник. Елементами класу повинні бути в тому числі текстові дані. Об’єкти класу повинні створюватись в тому числі і динамічно, під час виконання програми.
У завданні, обов'язково повинні бути реалізовані наступні методи:
– метод ініціалізації;
– введення даних з клавіатури;
– виведення даних на екран.
Завдання повинне бути реалізовано таким способом: тип даних представляється як клас із закритими полями, де функціональність класу реалізується як методи класу.
Використати метод класу для виведення стану об’єкту.
Варіант № 3
Завдання:
1 Оголосити клас з ім'ям STUDENT, що містить наступні поля:
прізвище та ініціали;
номер групи;
успішність (масив з п'яти елементів).
2. Написати програму, що виконує наступні дії:
введення з клавіатури даних в масив, що складається з вказаної кількості об'єктів типу STUDENT; записи мають бути впорядковані але алфавітом;
виведення на екран прізвищ і номерів груп для всіх студентів, які мають хоча б одну оцінку 2;
якщо таких студентів немає, вивести відповідне повідомлення.
ХІД РОБОТИ
Програмний код програми міститься відповідно у лістингах 5.1 − 5.4.
Лістинг 5.1 – Код головної функції
#include "WRKER.h"
#include "Check.h"
#include
#include
using namespace std;
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
Check temp;
int am(0), count(0);
cout << "Введите количество роботников: ";
am = temp.LilCheck(0);
WRKER* Stud = new WRKER[am];
for (int a = 0; a < am; a++)
{
cout << endl << "Введите информацию о роботнике №" << a + 1;
Stud[a].Enter();
cout << endl << "Данные введены!" << endl;
system("pause");
system("cls");
for (int a = 0; a < am - 1; a++)
{
for (int b = a + 1; b < am; b++)
{
if (Stud[a].get_Name() > Stud[b].get_Name())
{
Stud[a].swap(Stud[b]);
}
}
}
for (int a = 0; a < am; a++)
{
cout << endl;
cout << endl << "Роботник №" << a + 1;
Stud[a].Show();
}
cout << endl << "\nДанные о роботниках которые имеют стаж роботы больше чем: ";
for (int a = 0; a < am; a++)
{
cout << endl;
count += Stud[a].Losers();
}
if (count == 0)
{
cout << endl << "Небыло роботников с таким стажем ";
}
delete[]Stud;
}
Лістинг 5.2 – Клас WRKER
#pragma once
#include
class WRKER
{
std::string Name;
std::string group;
int* grades;
public:
WRKER();
WRKER(const WRKER&);