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

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

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

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

Звіт з лабораторної роботи № 6 з дисципліни «Програмування ч. 1 (ООП)» на тему «Класи та об’єкти»

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

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

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

Рік:
2013
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Програмування
Група:
КН-11
Коротко про документ

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

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

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

  • Об'єктно-орієнтоване програмування
  • Класи та об'єкти
  • Перевантаження операторів
  • Конструктори та деструктори
  • Потокове введення-виведення
  • Мова програмування C++

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

  1. Лабораторна робота № 6
  2. Тема роботи
  3. Мета роботи
  4. Завдання
  5. Текст програми
  6. Результати роботи програми
  7. Висновок
Для кого:Студенти технічних спеціальностей, які вивчають об'єктно-орієнтоване програмування та мову C++.
Викладачі:Викладач кафедри ЕОМ

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

класоб'єктперевантаження операторівдрібпотоки введення-виведенняC++інші методиоператор присвоєння

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

Міністерство освіти і науки України Національний університет „Львівська політехніка” Кафедра ЕОМ Звіт з лабораторної роботи № 6 з дисципліни: Програмування ч. 1 (ООП) на тему: Класи та об’єкти” Лабораторна робота № 6 Тема роботи: Перевантаження операторів Мета роботи: познайомитися із перевантаженням операторів. Завдання: Описати клас, що реалізовує вказаний нижче тип даних. Клас повинен містити множину конструкторів для створення об'єктів певного типу (конструктор по замочуванню та з параметрами, конструктор копії) та подані у таблиці операції над об'єктами класу (плюс обов'язково операцію присвоювання) з використанням механізму перевантаження операцій. Написати програму, яка демонструє роботу з об'єктами цього класу. Організувати виведення та введення даних за допомогою класів-потоків сin та cout. Клас Fraction (дроби) Операції: + =, / =. Текст програми: //--------------------------- main.c -------------------------- #include "Fraction.h" void main() { Fraction d1,d2(1,2),d3; cout << "d1=" << d1 << "; d2=" << d2 << endl << endl; d1+=d2; cout << "d1+=d2" << endl; cout << "d1=" << d1 << "; d2=" << d2 << endl << endl; d1/=d2; d2/=d1; cout << "d1/=d2" << endl; cout << "d2/=d1" << endl; cout << "d1=" << d1 << "; d2=" << d2 << endl; cin >> d3; cout << d3; getchar(); getchar(); } //------------------------ Fraction.h ------------------------- #include <iostream.h> #include <iostream.h> #include <stdio.h> using namespace std; //Клас дроби class Fraction { private: //Чисельник і знаменник int ch,zn; public: //Конструктор по замовчуванню Fraction(); //Конструктор з параметрами Fraction(int c, int z); //Конструктор копіювання Fraction(Fraction &fract); //Деструктор virtual ~Fraction(); //Метод скорочення дробу void Skor(); //Перевантаження операторів = += /= Fraction &operator = (Fraction &frac); Fraction &operator += (Fraction &frac); Fraction &operator /= (Fraction &frac); //Перевантаження операторів вводу-виводу friend ostream &operator << (ostream& os, Fraction &frac); friend istream &operator >> (istream& is, Fraction &frac); }; //----------------------- Fraction.cpp ------------------------- #include "Fraction.h" //Метод скорочення дробу void Fraction::Skor() { int m=zn, i; if (ch > zn) m = ch; if (ch % zn == 0){ ch /= zn; zn = 1; } for(i=m; i>1; i--){ if (ch % i == 0 && zn % i == 0){ ch /= i; zn /= i; } } } //Конструктор по замовчуванню Fraction::Fraction() { ch=1; zn=1; } //Конструктор з параметрами Fraction::Fraction(int c,int z) { ch=c; zn=z; } //Конструктор копіювання Fraction::Fraction(Fraction &fract) { ch=fract.ch; zn=fract.zn; Skor(); } //Деструктор Fraction::~Fraction(){} //Перевантаження операторів =, +=, /= Fraction &Fraction::operator = (Fraction &frac) { if(this != &frac) { ch=frac.ch; zn=frac.zn; } Skor(); return *this; } Fraction &Fraction::operator += (Fraction &frac) { ch=ch*frac.zn+frac.ch*zn; zn*=frac.ch; Skor(); return *this; } Fraction &Fraction::operator /= (Fraction &frac) { ch*=frac.zn; zn*=frac.ch; Skor(); return *this; } //Перевантаження операторів ввлду-виводу ostream &operator<< (ostream& os, Fraction &frac) { frac.Skor(); os << "(" << frac.ch<< "/" <<frac.zn << ")"; return os; } istream &operator>> (istream& is, Fraction &frac) { cout << "Ch="; is >> frac.ch; cout << "Zn="; is >> frac.zn; return is; } Результати роботи програми:  Висновок: На цій лабораторній роботі я ознайомився з перевантаженням операторів. Стоворив клас для зберігання і обробки дробів. Перевантажив оператори =, /=, +=, а також оператори потокового вводу-виводу.
Допоможи студентському архіву

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

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

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

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

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

Admin

26.02.2023 12:38

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