
Міністерство освіти і науки України
ДВНЗ «Червоноградський гірничо-економічний коледж»
Звіт
по навчальній практиці
з предмету
«Об’єктно-орієнтоване програмування»
Виконав:
студент групи 2-РПЗ-10
Шклярський Ігор
Перевірив:
Глобчак Ю.В.
Червоноград 2013
Варіант № 24
Отримані завдання і значення:
Завдання №1 |
a
=
x = 2.3y-10;
|
Завдання №2,3,5,9,10 |
Базовий - Техніка Похідний клас 1 – Мобільний телефон Похідний клас 2 – Радіо телефон
|
Завдання №4 |
Обчислити суму двох значень |
Завдання №6,7,8 |
Клас – Мобільний
|
Тема № 1. Створення класів, методів доступу
Завдання
Створити клас, призначений для обчислення значення арифметичного виразу (а+b) при заданих значеннях аргументів x, y.
В класі створити приховане поле а, методи доступу до цього поля і відкрите поле 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. Використання наслідування.
Завдання
Створити базовий клас. Визначити приховані поля та методи доступу до них.
Створити два похідних класа. Додати нові поля та методи в похідних класах.
Лістинг програми:
#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. Створення конструкторів та деструкторів.
Завдання
В одному із похідних класів створити конструктор без параметрів і деструктор. В іншому похідному класі створити 3 перевантажені версії конструктора з параметрами.
Створити деструктор.
Лістинг програми:
#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. Створення дружніх функцій та класів.
Завдання
Створити дружню функцію для обчислення максимального, мінімального, середнього арифметичного, суми чи добутку заданих значень відповідно до варіанту.
Створити дружній клас.
Лістинг програми:
#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-функцій.
Завдання
Створити в кожному похідному класі по дві 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;}
};