Конструирование объектов. Способы описания классов, создания объектов и составление тестовых программ, выполняющих операции с объектами

Страницы работы

Содержание работы

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ

ХАРЬКОВСКИЙ НАЦИОНАЛЬНЫЙ УНИВЕРСИТЕТ РАДИОЭЛЕКТРОНИКИ

Кафедра информационно-управляющих систем

Отчёт

о выполнении лабораторной работы №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;

}

Выводы:

На лабораторной работе мы ознакомились со способами описания классов, создания объектов и составление тестовых программ, выполняющих операции с объектами. Так же изучили лекционные материалы по темам «Объекты», «Конструкторы», «Доступ к элементам класса».

Информация о работе