МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ
ХАРЬКОВСКИЙ НАЦИОНАЛЬНЫЙ УНИВЕРСИТЕТ РАДИОЭЛЕКТРОНИКИ
Кафедра информационно-управляющих систем
Отчёт
о выполнении лабораторной работы №1
«Конструирование объектов»
по дисциплине «Объектно-ориентированное программирование»
Выполнила ст. гр. КН-14-3 Принял
Демченко А.Е. ст. преп Павленко Е.П.
асс. Малькова И.А.
Харьков 2015
1.1 Цель работы
Ознакомление со способами описания классов, создания объектов и составление тестовых программ, выполняющих операции с объектами.
1.3 Постановка задачи
2. Опишите класс отрезков на плоскости. Задайте функцию сравнения двух отрезков, а также функцию, проверяющую, пересекаются ли отрезки в пространстве.
1.2 Ход работы
При использовании ООП программа представляется как совокупность объектов. Объекты - это не только значения, например, целые числа или строки. В них также имеются функции, связывающие данные и выполняющие те или иные вычисления.
Создание абстрактных типов данных (классов) - это основополагающая концепция в объектно-ориентированном программировании. Абстрактные типы данных работают почти так же, как и базовые типы: можно создавать переменные этого типа (называемые объектами или экземплярами) и манипулировать этими переменными (это называется посылка сообщений или запрос; посылается сообщение и объект определяет, что нужно с ним делать).
Как только класс описан, можно создать столько объектов этого класса, сколько нужно, а затем манипулировать этими объектами. Каждый объект может удовлетворять только определенные запросы.
Должен существовать код для удовлетворения этого запроса. Класс, наряду с данными, содержит функцию, или метод для каждого возможного запроса и, когда делается определенный запрос к объекту, вызывается такая функция.
1.3Реализация проекта
line.h
#pragma once
namespace Program
{
class Line
{
private:
int No1x, No1y, Ko1x, Ko1y, No2x, No2y,Ko2x, Ko2y;
public:
Line(void);
void getNo1x(int);
int setNo1x();
void getNo1y(int);
int setNo1y();
void getKo1x(int);
int setKo1x();
void getKo1y(int);
int setKo1y();
void getNo2x(int);
int setNo2x();
void getNo2y(int);
int setNo2y();
void getKo2x(int);
int setKo2x();
void getKo2y(int);
int setKo2y();
float lengthLine (int, int, int, int, int, int, int, int);
void lengthCmp();
float parLine(int, int, int, int, int, int, int, int);
~Line(void);
};
}
Code1.cpp
#include "line.h"
#include <iostream>
#include <cmath>
using namespace std;
float lA, lB;
float k1, k2;
namespace Program
{
Line::Line(void)
{
}
Line::~Line(void)
{
}
void Line::getNo1x(int no1x)
{
No1x = no1x;
}
void Line::getNo1y(int no1y)
{
No1y = no1y;
}
void Line::getKo1x(int ko1x)
{
Ko1x = ko1x;
}
void Line::getKo1y(int ko1y)
{
Ko1y = ko1y;
}
void Line::getNo2x(int no2x)
{
No2x = no2x;
}
void Line::getNo2y(int no2y)
{
No2y = no2y;
}
void Line::getKo2x(int ko2x)
{
Ko2x = ko2x;
}
void Line::getKo2y(int ko2y)
{
Ko2y = ko2y;
}
float Line :: lengthLine (int no1x, int no1y, int ko1x, int ko1y, int no2x, int no2y, int ko2x, int ko2y)
{
lA = pow((pow((ko1x-no1x),2)+pow((ko1y-no1y),2)), 1.0/2.0);
cout << "Длина первого отрезка: "<< lA <<endl;
lB = pow((pow((ko2x-no2x),2)+pow((ko2y-no2y),2)), 1.0/2.0);
cout << "Длина второго отрезка: "<<lB << endl;
cout<< endl;
return 1;
}
void Line::lengthCmp()
{
if(lA>lB)
{
cout<<"Первый отрезок больше"<<endl;
}
if(lB>lA)
{
cout<< "Второй отрезок больше"<<endl;
}
if(lA == lB)
{
cout<< "Отрезки равны"<<endl;
}
cout<< endl;
}
float Line:: parLine(int no1x, int no1y, int ko1x, int ko1y, int no2x, int no2y, int ko2x, int ko2y)
{
k1 = (ko1y-no1y)/(ko1x-ko1y);
k2 = (ko2y-no2y)/(ko2x-ko2y);
if(k1 == k2)
{
cout<< "Прямые параллельны"<< endl;
return 4;
}
else
{
cout<< "Прямые пересекаются"<<endl;
return 4;
}
}
}
Code2.cpp
#include <iostream>
#include <conio.h>
#include "line.h"
using namespace std;
using Program::Line;
int main ()
{
Line prog;
setlocale(LC_ALL, "Russian");
int no1x, no1y, ko1x, ko1y, no2x, no2y, ko2x, ko2y;
cout << "Введите координаты начала первого отрезка:"<<endl;
cout << "x= ";
cin >> no1x;
cout << "y= ";
cin >> no1y;
cout << endl;
cout << "Введите координаты конца первого отрезка:"<<endl;
cout << "x= ";
cin >> ko1x;
cout << "y= ";
cin >> ko1y;
cout << endl;
cout << "Введите координаты начала второго отрезка:"<<endl;
cout << "x= ";
cin >> no2x;
cout << "y= ";
cin >> no2y;
cout << endl;
cout << "Введите координаты конца второго отрезка:"<<endl;
cout << "x= ";
cin >> ko2x;
cout << "y= ";
cin >> ko2y;
cout << endl << endl;
prog.lengthLine (no1x, no1y, ko1x, ko1y,no2x, no2y, ko2x, ko2y);
prog.lengthCmp();
prog.parLine(no1x, no1y, ko1x, ko1y,no2x, no2y, ko2x, ko2y);
_getch();
return 0;
}
Выводы:
На лабораторной работе мы ознакомились со способами описания классов, создания объектов и составление тестовых программ, выполняющих операции с объектами. Так же изучили лекционные материалы по темам «Объекты», «Конструкторы», «Доступ к элементам класса».
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.