
- •Звіт з навчальної практики з об’єктно-орієнтованого програмування
- •Індивідуальне завдання 1
- •Текст програми
- •Індивідуальне завдання 2
- •Текст програми
- •Індивідуальне завдання 3
- •Текст програми
- •Індивідуальне завдання 4
- •Текст програми
- •Індивідуальне завдання 5
- •Текст програми
- •Тема 2. Конструктори. Деструктори.
- •Індивідуальне завдання 1
- •Текст програми
- •Тема 3. Дружні функції і класи.
- •Індивідуальне завдання 1
- •Текст програми
- •Тема 4. Превантаження операцій.
- •Індивідуальне завдання 1
- •Текст програми
Міністерство освіти і науки, молоді та спорту Україні
Полтавський політехнічний коледж
Національного Технічного Університету
„Харківський політехнічний інститут”
Звіт з навчальної практики з об’єктно-орієнтованого програмування
Керівник Жуковець О.О.
(підпис, посада, прізвище, ініціали)
Студент гр. 35 спец. 5.05010301 Лошманова С.В.
(група, спеціальність, підпис, прізвище, ініціали)
2012
Зміст
Тема 1. Класи, об'єкти, вказівник this………………………………………..………………………3
Тема 2. Конструктори, деструктори……………………………………………….………………..17
Тема 3. Дружні функції і класи………………………………………………………….…………..20
Тема 4. Перевантаження операцій………………………………….……………………………….22
Тема 1. Класи. Об'єкти. Вказівник this.
Мета: Вивчити структуру класу (компоненти класу). Розглянути атрибути доступу. Розглянути принцип роботи.
Індивідуальне завдання 1
Створити клас типу – квадрат. Поля – сторона. Функції-члени вичисляють площу, периметр, встановлює поля і повертають значення. Функції-члени встановлення полів класу повинні перевіряти коректність заданих параметрів.
Текст програми
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
class Kvadrat \\ створюємо клас
{
public:
Kvadrat(double, double, double, double);
double fooP();
double fooS();
private:
double x1, y1, x2, y2;
double perimetr;
double square;
};
Kvadrat::Kvadrat(double a, double b, double c, double d)
{
x1 = a; y1 = b; x2 = c; y2 = d;
if ((sqrt(((x2 - x1)*(x2 - x1)) + ((y2 - y1)*(y2 - y1)))) <= 0) // умова
cout << "Данные координаты не верны!" << endl;
else
{
cout << "Координаты начала и конца одной из сторон квадрата: "
<< "(" << x1 << "," << y1 << ")" << " и " << "(" << x2 << "," << y2 << ")" << endl << endl;
}
}
double Kvadrat::fooP()
{
perimetr = ((sqrt(((x2 - x1)*(x2 - x1)) + ((y2 - y1)*(y2 - y1)))) + (sqrt(((x2 - x1)*(x2 - x1)) + ((y2 - y1)*(y2 - y1))))) / 2; // обчислюємо периметр
return perimetr;
}
double Kvadrat::fooS()
{
square = (sqrt(((x2 - x1)*(x2 - x1)) + ((y2 - y1)*(y2 - y1))) * sqrt(((x2 - x1)*(x2 - x1)) + ((y2 - y1)*(y2 - y1)))); // обчислюємо площу
return square;
}
Kvadrat q(double, double, double, double);
int main()
{
double x1, y1, x2, y2;
cout << "Введите x1: " << endl;
cin >> x1;
cout << "Введите y1: " << endl;
cin >> y1;
cout << "Введите x2: " << endl;
cin >> x2;
cout << "Введите y2: " << endl;
cin >> y2;
Kvadrat w = Kvadrat(x1, y1, x2, y2);
cout << "Периметр квадрата равен: " << w.fooP();
cout << endl;
cout << "Площадь квадрата равна: " << w.fooS();
getch();
return 0;
}
Результат роботи програми:
Рисунок 1.1
Індивідуальне завдання 2
Розробити підпрограми роботи з деком. Дек організований на масиві із циклічним заповненням та із зсувом. Операції виконуються з обох кінців дека.
Текст програми
#include <iostream.h>
#include <conio.h>
#define n 10
class Dec// оглошуємо клас
{
public:
void revers(int dec[n]){
char v;
do {// заповнення дека
for(int i=0;i<n;i++) dec[i]=dec[i+1];
cin>>dec[n];
cout<<"Continue(y/n)"; cin>>v;
clrscr();
}
while(v!='n');
}
void not_revers(int dec[n]){
char v;
do {
for(int i=n;i>=0;i--) dec[i]=dec[i-1];
cin>>dec[0];
cout<<"Continue(y/n)"; cin>>v;
clrscr();
}
while(v!='n');
}
void Pocaz_Dec(int dec[n]){
for(int i=0;i<n;i++) cout<<dec[i]<<"\t";
getch();
}
};
void main(){
Dec asdf;
int dec[n];
int v;
for(int i=0;i<n;i++) dec[i]=0;
start:clrscr();
cout<<"1-S konca\n";
cout<<"2-S nachala\n";
cout<<"3-Pokazat` Dec\n";
cout<<"4-Exit\n";
cout<<"Sdelaite vibor-> "; cin>>v;
switch(v){
case 1:asdf.revers(dec); goto start;
case 2:asdf.not_revers(dec); goto start;
case 3:asdf.Pocaz_Dec(dec); goto start;
}
getch();
}
Результат роботи програми:
Рисунок 1.2