DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Лабораторна робота № 7: Перевантаження операторів

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних наук та інформаційних технологій
Факультет:
Факультет комп’ютерних інформаційних технологій
Кафедра:
Кафедра програмного забезпечення

Інформація про роботу

Рік:
2008
Тип роботи:
Лабораторна робота
Предмет:
Системне програмне забезпечення
Група:
КІ-12
Коротко про документ

Про що ця робота

У звіті з лабораторної роботи описано реалізацію перевантаження операторів на прикладі класу set мовою C++. Наведено текст програми, реалізацію методів та висновки щодо виконаного завдання.

У роботі розглядаються

  • Програмування мовою C++
  • Об'єктно-орієнтоване програмування
  • Перевантаження операторів
  • Робота з класами
  • Динамічна пам'ять
  • Потокове введення-виведення

Зміст і розділи

  1. Завдання
  2. Текст програми
  3. Висновок
Для кого:Студенти технічних спеціальностей, викладачі програмування та обчислювальної техніки.
Викладачі:Цигилик Л. О.

Ключові поняття

перевантаження операторівкласдинамічна пам'ятьмножинапотокиC++

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Національний університет «Львівська політехніка» Звіт: «Лабораторна робота № 7 Перевантаження операторів» Андрощук С.В. Перевірив: Цигилик Л.О. Львів 2008 Завдання Описати клас, що реалізовує вказаний нижче тип даних. Клас повинен містити множину конструкторів для створення об'єктів певного типу (конструктор по замочуванню та з параметрами, конструктор копії) та подані у таблиці операції над об'єктами класу (плюс обов'язково операцію присвоювання) з використанням механізму перевантаження операцій. Написати програму, яка демонструє роботу з об'єктами цього класу. Організувати виведення та введення даних за допомогою класів-потоків сin та cout. Варіант Завдання  1 Клас Matrix (матриця квадратна) Операції: - =, * =.  2 Клас Complex (комплексні числа) Операції: - =, * =.  3 Клас Fraction (дроби) Операції: - =, * =.  4 Клас HugeInt (цілі числа) Операції: - =, порівняння(<, >).  5 Клас Fraction (дроби) Операції: + =, / =.  6 Клас Set (множини) Операції: об’єднання множин(+ =), перетин множин (- =).  7 Клас HugeInt (цілі числа) Операції: * =, + =.   Тхт програми: #include<iostream.h> #include<stdlib.h> #include <conio.h> class Set { friend istream &operator >>(istream& input, Set& arr) ; friend ostream &operator << (ostream& output, Set& arr); public: int* p; int size; public: Set(int k = 14); Set(Set& arr); virtual ~Set(); Set& operator= (Set& ar); Set& operator-= (Set& ar); Set& operator+= (Set& ar); Set operator+ (Set& ar) ; Set operator- (Set& ar) ; int operator!= (Set& ar); int get_count() const { return size ; } }; Set::Set(int k) { size = k; p = new int[size]; for(int i = 0; i < size; i++) { p[i] = 0; } } Set::Set(Set& ar) { size = ar.size; p = new int[size]; for(int i = 0; i < size; i++) { p[i] = ar.p[i]; } } Set::~Set() { delete[] p; } int main () { Set a(7); Set b(7); cout<<"Enter pershu mnoжunu (operacia-=) "<<endl; cin>>a; cout<<"Enter drugu mnoжunu (operacia-=) "<<endl; cin>>b; a-=b; cout<<"resultat operacii '-=' : "<<a<<endl; Set c(7); Set d(7); cout<<"Enter pershu mnoжunu (operacia+=) "<<endl; cin>>c; cout<<"nter drugu mnoжunu (operacia+=) "<<endl; cin>>d; c+=d; cout<<"resultat operacii '+=' : "<<c<<endl; getch(); return 0; } Set& Set::operator= (Set& ar) { if(this != &ar) { delete[] p; size = ar.size; p = new int[size]; for(int i = 0; i < size; i++) { p[i] = ar.p[i]; } } return *this; } Set Set::operator+ (Set& ar) { int m = (size < ar.size) ? size : ar.size; Set t; if(m == ar.size) { t = *this; for(int i = 0; i < m; i++) { t.p[i] += ar.p[i]; } } else { t = ar; for(int i = 0; i < m; i++) { t.p[i] += p[i]; } } return t; } Set& Set::operator+= (Set& ar) { Set t; t = *this + ar; *this = t; return *this; } Висновок: я навчився перевантажувати оператори += and—=. Set Set::operator- (Set& ar) { Set t; int m = (size < ar.size) ? size : ar.size; if(m == ar.size) { t = *this; for(int i = 0; i < m; i++) { t.p[i] -= ar.p[i]; } } else { t = ar; for(int i = 0; i < m; i++) { t.p[i] -= p[i]; } } return t; } Set& Set::operator-= (Set& ar) { Set t; t = *this - ar; *this = t; return *this; } ostream& operator<< (ostream& output, Set& ar) { for(int i = 0; i < ar.size; i++) { output << ar.p[i]; } output << endl; return output; } istream& operator>> (istream& input, Set& ar) { for(int i = 0; i < ar.size; i++) { cout<<"element "<<i+1<<"="; input >> ar.p[i]; } return input;}
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!