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

Віртуальні функції та поліморфізм

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

ВУЗ:
Інші
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

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

Рік:
2012
Тип роботи:
Лабораторна робота
Предмет:
Інші
Група:
КН-21

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

Міністерство освіти та науки України Кафедра АСУ Лабораторна робота №4 з дисципліни ООП “ Віртуальні функції та поліморфізм” Мета: Ознайомитись з поняттям поліморфізму, його застосуванням та вивчити механізм його реалізації за допомогою віртуальних функцій. Послідовність роботи: Ознайомитись з правилами оголошення та використання віртуальних функцій. Визначити, які віртуальні функції будуть викликані в результаті виконання наведеної програми. Проаналізувати результат роботи наведеної програми. Для заданого варіанту завдання написати програму з використанням віртуальних функцій та продемонструвати дію механізму пізнього зв’язування. Оформити звіт про роботу за такою структурою: назва роботи; мета роботи; послідовність роботи; індивідуальне завдання; текст програми; контрольний приклад та результати роботи програми; висновки. Індивідуальне завдання: створити клас ТРІЙКА ЦІЛИХ ЧИСЕЛ. Визначити віртуальну фунцію обчислення різниці між трійками. Створити похідні класи ЧАС (з полями: година, хвилина і секунда), ДАТА (з полями: рік, місяць і день) зі своїми функціями обчислення різниці між моментами часу (датами). Для перевірки використати масив вказівників на об’єкти базового класу, яким присвоїти адреси об’єктів похідних класів. Лістинг програми #include <iostream> #include <conio.h> using namespace std; class three{ public: double t1; double t2; double t3; public: three(){ } ~three(){ } void set_t1_t2_t3(double a, double b, double c){ t1=a; t2=b; t3=c; } double get_t1(){ return t1; } double get_t2(){ return t2; } double get_t3(){ return t3; } virtual double riznucia(three *pr){ double rez; rez=(t1+t2+t3)-(pr->t1)-(pr->t2)-(pr->t3); return rez; } }; class clock:public three{ public: virtual double riznucia(three *pr){ double rez1, rez2, rez; rez1=t1*3600+t2*60+t3; rez2=(pr->t1*3600)+(pr->t2*60)+pr->t3; if(rez1<rez2) return -1; else return rez=rez1-rez2; } }; class data:public three{ public: virtual double riznucia(three *pr){ double rez,rez1,rez2; rez1=(t1*365.3)+(t2*30.3)+t3; rez2=(pr->t1*365.3)+(pr->t2*30.3)+pr->t3; if(rez1<rez2) return -1; else return rez=rez1-rez2; } }; int main(){ double x,y,z; three *p[6]; p[0]=new three; p[1]=new three; cout<<"Enter dani 1 thriyku: "; cin>>x>>y>>z; p[0]->set_t1_t2_t3(x,y,z); cout<<"Enter dani 2 thriyku: "; cin>>x>>y>>z; p[1]->set_t1_t2_t3(x,y,z); cout<<"Riznucia: "<<p[0]->riznucia(p[1]); delete p[0]; delete p[1]; cout<<"\n\n"; p[2]=new clock; p[3]=new clock; cout<<"Enter hours, minutes, seconds: "; cin>>x>>y>>z; p[2]->set_t1_t2_t3(x,y,z); cout<<"Enter hours, minutes, seconds: "; cin>>x>>y>>z; p[3]->set_t1_t2_t3(x,y,z); if(p[2]->riznucia(p[3])==-1) cout<<"Error clock1 < clock2: videmnuy result!"<<endl; else cout<<"Riznucia: "<<p[2]->riznucia(p[3])<<" seconds"; delete p[2]; delete p[3]; cout<<"\n\n"; p[4]=new data; p[5]=new data; cout<<"Enter year, month, day: "; cin>>x>>y>>z; p[4]->set_t1_t2_t3(x,y,z); cout<<"Enter year, month, day: "; cin>>x>>y>>z; p[5]->set_t1_t2_t3(x,y,z); if(p[4]->riznucia(p[5])==-1) cout<<"Error data1 < data2: videmnuy result!"<<endl; else cout<<"Riznucia: "<<p[4]->riznucia(p[5])<<" days"; delete p[4]; delete p[5]; getch(); return 0; } /Скріншот виконання програми Висновок: виконуючи дану лабораторну роботу, я ознайомився з поняттям поліморфізму, його застосуванням та вивчив механізм його реалізації за допомогою віртуальних функцій.
Антиботан аватар за замовчуванням

29.11.2012 17:26

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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