DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

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

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
СІ
Кафедра:
Не вказано

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

Рік:
2020
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Програмування
Група:
ІТП

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

МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ Національний університет “Львівська політехніка” Звіт до лабораторноі работи № 2 Реалізація абстракцій в мові програмування С++. Львів 2010 1. МЕТА РОБОТИ Мета роботи - Реалізація абстракцій в мові програмування С++. 2. ТЕОРЕТИЧНА ЧАСТИНА 1. Компоненти об’єктно-орієнтовааного проектування. Розрізняють чисто об’єктно-орієнтовані мови та змішані. До перших належать Smalltalk, Ada, Simula, до других С++, CLOS, Об’єктний Паскаль та інші. Введемо визначення п’яти ключових компонент об’єктно-орієнтованого проектування: - Об’єкт Об’єкт - це інкапсульована абстракція, яка включає інформацію про стан і чітко визначену множину протоколу доступу (повідомлення, які опрацьовує об’єкт). - Повідомлення Повідомлення - це спеціальний символ, ідентифікатор або ключове слово з або без параметрів, яке представляє дію. - Клас Представляє певний тип об’єктів і задається прои допомозі опису класу, який визначає змінні стану і протокол доступа до об’єктів даного класу. Класи організуються ієрархічно, причому підкласи наслідують властивості базових класів. В деяких об’ктно-орієнтованих мовах класи - це також і об’єкти. - Екземпляр об’єкта Об’єкти належать до будь-якого класу. Властивості екземпляра об’єкта визначаються описом класу. - Метод Метод існує для кожного повідомлення, визначеного для деякого класу. Метод визначає реакцію об’єкта на повідомлення. Як правило складається з ряду виразів і може використовувати протокол з іншого класу. 2. Опис абстракцій в мові С++. Мова С++ використовує подібну термінологію Клас Вводить новий тип даних Об’єкт Змінна типу className Дані стану Об’являються в опису класу і називаються членами Повідомлення Повідомлення, які об’єкт може опрацювати, вказуються при допомозі прототипів функцій в описі класу. Прототипи функцій включають ім’я функції, список параметрів та тип, який повертає функція. Метод Це визначення (реалізіція) функцій. Прототипи функцій і їх визначення разом представляють собою повідомлення, які об’єкт може опрацьовувати. В сукупності вони називаються функціями-членами. До членів класу відносяться функції-члени і поля даних. Підклас Похідний клас. Його суперклас називається базовим класом. 3. ЛАБОРАТОРНЕ ЗАВДАННЯ Варіант № 20 Скласти програму на С++, яка представляє стандартний тип як об’єкт і дозволяє порівнювати дані між собою, проводити операції, що допускаються над даним типом integer і вивести на екран ці дані. Текст програми #include "stdafx.h" #include<iostream> #include<stdlib.h> using namespace std; class INTEGER { private: int value; public: // Конструктори і деструктори INTEGER() {} INTEGER(int anlnt) { value = anlnt; } ~INTEGER() {} //Mетоди доступа int getValue() { return value; } void setVlue(int aValue) { value = aValue; } // Методи порівняння friend int operator==(const INTEGER& anlnt1, const INTEGER& anlnt2) { return anlnt1.value == anlnt2.value; } friend int operator>(const INTEGER& anlnt1, const INTEGER& anlnt2) { return anlnt1.value > anlnt2.value; } friend int operator<(const INTEGER& anlnt1, const INTEGER& anlnt2) { return anlnt1.value < anlnt2.value; } //Арифметичні методи friend INTEGER operator+(const INTEGER& anlnt1, const INTEGER& anlnt2) { return INTEGER(anlnt1.value + anlnt2.value); } friend INTEGER operator-(const INTEGER& anlnt1, const INTEGER& anlnt2) { return(anlnt1.value - anlnt2.value); } friend int operator*(const INTEGER& anlnt1, const INTEGER& anlnt2) { return(anlnt1.value * anlnt2.value); } friend INTEGER operator/(const INTEGER& anlnt1, const INTEGER& anlnt2) { if(anlnt2.value == 0) { cout << "Divide by zero.Stop"; exit(1); } return(anlnt1.value / anlnt2.value); } //Методи друку friend ostream& operator<<(ostream& stream, const INTEGER& anlnt) { stream << anlnt.value; return stream; } }; void main() { INTEGER one,two,three,four, varOne; char choice; int a,b; bool fQuit=false; cout<<"vvedit' operaciy: \n"<<" + \n"<<" - \n"<<" * \n"<<" < \n"<<" > \n"<<" / \n"<<" o \n"<<" = \n"<<endl; while(1) { cin>>choice; switch(choice) { case '+': cin>>a; one.setVlue(a); cin>>b; two.setVlue(b); varOne=one+two; cout<<"1: "<<varOne.getValue()<<endl; break; case '-': cin>>a; one.setVlue(a); cin>>b; two.setVlue(b); varOne=one-two; cout<<"1: "<<varOne.getValue()<<endl; break; case '*': cin>>a; one.setVlue(a); cin>>b; two.setVlue(b); varOne=one*two; cout<<"1: "<<varOne.getValue()<<endl; break; case '=': cin>>a; one.setVlue(a); cin>>b; two.setVlue(b); if(one==two) cout<<"Rivni"<<endl; else cout<<"nifiga ne rivni"<<endl; break; case '>': cin>>a; one.setVlue(a); cin>>b; two.setVlue(b); if(one>two) cout<<"one bilwe"<<endl; else cout<<"one menwe"<<endl; break; case '<': cin>>a; one.setVlue(a); cin>>b; two.setVlue(b); if(one<two) cout<<"two bil'we"<<endl; else cout<<"two menwe"<<endl; break; case '/': cin>>a; one.setVlue(a); cin>>b; two.setVlue(b); varOne=one/two; cout<<"1: "<<varOne.getValue()<<endl; break; case 'o': cin>>a; one.setVlue(a); cout<<"vuvid 4erez perezavantagenn9: \n"<<one; break; } } } Результат виконання програми  Висновок Я навчився реалізовувати абстракції в мові програмування С++.
Антиботан аватар за замовчуванням

20.07.2020 12:53

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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