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

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

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

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

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

МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ Національний університет “Львівська політехніка” Звіт до лабораторноі работи № 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:07-

Коментарі

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

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

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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