Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
звіт з ООП(практика)Шклярський Ігор.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.09 Mб
Скачать

Міністерство освіти і науки України

ДВНЗ «Червоноградський гірничо-економічний коледж»

Звіт

по навчальній практиці

з предмету

«Обєктно-орієнтоване програмування»

Виконав:

студент групи 2-РПЗ-10

Шклярський Ігор

Перевірив:

Глобчак Ю.В.

Червоноград 2013

Варіант № 24

Отримані завдання і значення:

Завдання №1

a = ;

x = 2.3y-10;

;

Завдання №2,3,5,9,10

Базовий - Техніка

Похідний клас 1 – Мобільний телефон

Похідний клас 2 – Радіо телефон

Завдання №4

Обчислити суму двох значень

Завдання №6,7,8

Клас Мобільний

Тема № 1. Створення класів, методів доступу

Завдання

  1. Створити клас, призначений для обчислення значення арифметичного виразу +b) при заданих значеннях аргументів x, y.

  2. В класі створити приховане поле а, методи доступу до цього поля і відкрите поле b.

Лістинг програми:

#include <iostream>

#include <math.h>

using namespace std;

class myClass

{

double a;

public:

double b;

void Get(double, double);

double Put();

};

void myClass::Get(double x, double y)

{

a=((log(x+y)/pow(sin(x+y),3))-cos(x+2*y))+b;

}

double myClass::Put()

{

return a;

}

void main()

{

myClass ObjA;

ObjA.b=5.9;

double y=10;

double x = 2.3*y-10;

ObjA.Get(x,y);

cout << "a+b = " << ObjA.Put() << endl;

system("pause");

}

Результат виконання програми:

Тема № 2. Використання наслідування.

Завдання

  1. Створити базовий клас. Визначити приховані поля та методи доступу до них.

  2. Створити два похідних класа. Додати нові поля та методи в похідних класах.

Лістинг програми:

#include <iostream>

#include <math.h>

#include <string>

using namespace std;

class Teh //Базовий клас Техніка

{

int a;

double b;

public:

void InfT(int);

};

void Teh:: InfT(int a)

{

cout<<"Розглядаємо "<<a<<" види технiки"<<endl

<<"Мобiльний та Радiо телефони,"<<endl

<<"а також їхнi спiльнi та вiдмiннi риси."<<endl<<endl;

}

class Mob:public Teh // Похідний клас Мобільний

{

int b;

int c;

int d;

int p;

public:

void InfM(int b,int d,int c,int p);

};

void Mob::InfM(int b,int d,int c,int p)

{

cout<<"Мобiльний телефон: "<<endl<<endl

<<" -Кiлькiсть кнопок у мобiльному телефонi коливається вiд: "<<b<<"- "<<d<<"кнопок "<<endl

<<"+ "<<c<<"-джойстик"<<endl

<<" -Покриття мобiльного телефону (радiус дiї) фактично "<<p<<"%"<<endl<<endl;

}

class RTel: public Teh // Похідний клас Радіотелефон

{

int k1;

int k2;

int k3;

int p,p2;

public:

void InfRT(int k1,int k2,int k3,int p,int p2);

};

void RTel::InfRT(int k1,int k2,int k3,int p,int p2)

{

cout<<"Радiо телефон: "<<endl<<endl

<<" -Кiлькiсть кнопок у радiо-телефонi коливається вiд: "<<k1<<"-"<<k2<<"кнопок + "<<k3<<"-джойстик"<<endl

<<" -Покриття радiо-телефону (радiус дiї) в межах мiста(радiо антени) "<<p<<"%"<<endl

<<"за межами мiста(радiо антени) "<<p2<<"%"<<endl;

}

Void main()

{

setlocale (LC_ALL,".1251");

Mob ObjA;

RTel ObjB;

ObjA.InfT(2);

ObjA.InfM(15,13,1,100);

ObjB.InfRT(13,11,1,100,0);

system("pause");

}

Результат виконання програми:

Тема № 3. Створення конструкторів та деструкторів.

Завдання

  1. В одному із похідних класів створити конструктор без параметрів і деструктор. В іншому похідному класі створити 3 перевантажені версії конструктора з параметрами.

  2. Створити деструктор.

Лістинг програми:

#include <iostream>

#include <string>

#include <conio.h>

#include <clocale>

using namespace std;

class Teh //Базовий клас Техніка

{

public:

Teh(){cout<<""<<endl;}

};

class Mob:public Teh // Похідний клас Мобільний

{

public:

int a;

Mob(){cout<<"Mоб тел"<<endl;}

~Mob(){}

};

class RTel: public Teh // Похідний клас Радіотелефон

{

public:

int a,b;

RTel()

{

a=NULL;

}

RTel(int a)

{

cout<<"Радiотелефон має "<<a<<" конопок";

}

RTel(double a)

{

cout<<"Покриття радiотелефона в межах радiо антени "<<a<<"%";

}

RTel(int a,int b)

{

cout<<"Розмiри радiотелефона : "<<a<<"x"<<b<<"cm^2";

}

~RTel()

{

//cout<<"Деструктор в похiдному класi"<<endl;

}

};

Void main()

{

setlocale (LC_ALL,".1251");

Mob ObjA;

RTel one (13);

RTel two (99.9);

RTel three;

RTel four(5,10);

_getch();

}

Результат виконання програми:

Тема № 4. Створення дружніх функцій та класів.

Завдання

  1. Створити дружню функцію для обчислення максимального, мінімального, середнього арифметичного, суми чи добутку заданих значень відповідно до варіанту.

  2. Створити дружній клас.

Лістинг програми:

#include <iostream>

#include <string>

#include <conio.h>

#include <clocale>

#include <math.h>

using namespace std;

class Tem;

class Mob //Базовий клас Техніка

{

int a;

int b;

public:

friend class Tem; //Оголошення дружнього касу

friend int func(Mob Obj); // Оголошення дружньої функції

Mob(int a1,int b1){a=a1,b=b1;}

private:

int data;

};

class Tem //Дружній клас

{

public:

void Do(Mob & mob)

{

mob.data=2;

cout<<"Обчислюємо смарну вартiсть "<<mob.data<<"-х побiльних телефонiв "<<endl;

}

};

int func(Mob Obj)

{

cout<<"Вартiсть першого телефону- "<<Obj.a<<"$"<<endl

<<"Вартiсть другого телефону- "<<Obj.b<<"$"<<endl;

return Obj.a+Obj.b;

}

Void main()

{

setlocale (LC_ALL,".1251");

Mob Obj(400,500);

Tem ObjA;

ObjA.Do(Obj);

cout<<"Сума вартостi 2-х телефонiв= "<<func(Obj)<<"$"<<endl;

system("pause");

}

Результат виконання програми:

Тема № 5. Створення inline-функцій.

Завдання

  1. Створити в кожному похідному класі по дві inline-функції.

Лістинг програми:

#include <iostream>

#include <math.h>

#include <string>

using namespace std;

class Teh //Базовий клас Техніка

{

public:

void A()

{

cout<<"Розглядаємо порiвняну вартiсть i зону покриття (%) "<<endl

<<"Мобiльного та Радiо телефонiв."<<endl<<endl;

}

};

class Mob:public Teh // Похідний клас Мобільний

{

int a,b;

public:

Mob(int c,int d){a=c;b=d;}

inline void funcB()

{

cout<<"Мобiльний телефон: "<<endl<<endl

<<" -Покриття мобiльного телефону "<<a<<"%"<<endl;

}

inline void funcC(){cout<<" -Вартiсть мобiльного телефону "<<b<<"$"<<endl<<endl;}

};

class RTel: public Teh // Похідний клас Радіотелефон

{

int a,b,y;

public:

RTel(int d,int x,int z){a=d;b=x;y=z;}

inline void func()

{

cout<<"Радiо телефон: "<<endl<<endl

<<" -Покриття радiо-телнфону(в межах радiо антени) "<<a<<"%"<<endl

<<"(За межами радiо-антени) "<<b<<"%"<<endl;

}

inline void funcA(){cout<<" -Вартiсть радiо-телефону "<<y<<"$"<<endl;}

};