Разработка объектно-ориентированной программы

Изучение базовых понятий объектно-ориентированного программирования. Исследование принципов работы с классами и объектами. Построение системы классов для описания плоских геометрических фигур. Анализ методов создания объектов, перемещения на плоскости.

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык русский
Дата добавления 10.03.2013
Размер файла 212,0 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://allbest.ru/

Министерство науки и образования Российской Федерации

Муромский институт (филиал)

Государственного образовательного учреждения высшего профессионального образования

«Владимирский государственный университет имени Александра Григорьевича и Николая Григорьевича Столетовых»

ЛАБОРАТОРНАЯ РАБОТА

Технология программирования.

Тема: Разработка объектно-ориентированной программы.

Руководитель Стародубов Д.Н.

Студент ИС-112 Логашов Д.С.

Муром 2012

Цель работы: Изучение базовых понятий объектно-ориентированного программирования (понятий класса и объекта), принципов работы с классами и объектами. Получение навыков в составлении программ на основе объектно-ориентированного программирования.

Вариант 1. Построить систему классов для описания плоских геометрических фигур: круг, квадрат, прямоугольник. Предусмотреть методы для создания объектов, перемещения на плоскости. Написать программу, демонстрирующую работу с этими классами. Использовать конструктор и методы класса.

#include<iostream>

#include<math.h>

using namespace std;

class Square

{

public:

float ldX;

float ldY;

float length;

Square (float ldX = 0, float ldY = 0,float length = 2 )

{

this->ldX = ldX;

this->ldY = ldY;

this->length = length;

}

float area_sqr()

{

return length*length;

}

void moveTo(float X,float Y)

{

ldX = X;

ldY = Y;

}

float perim_sqr()

{

return length*4;

}

float diagonal_sqr()

{

return sqrt(length*length*2);

}

};

class Rectangle

{

public:

float ldX;

float ldY;

float length_A;

float length_B;

Rectangle (float ldX = 0, float ldY = 0, float length_A = 2, float length_B = 1 )

{

this->ldX = ldX;

this->ldY = ldY;

this->length_A = length_A;

this->length_B = length_B;

}

float area_rec()

{

return length_A*length_B;

}

void moveTo(float X,float Y)

{

ldX = X;

ldY = Y;

}

float perim_rec()

{

return (length_A + length_B)*2 ;

}

float diagonal_rec()

{

return sqrt(length_A*length_A + length_B*length_B);

}

};

class Circle

{

public:

float X;

float Y;

float R;

Circle(float x = 0, float y = 0, float r = 1 )

{

this->X = x;

this->Y = y;

this->R = r;

}

void moveTo(float x,float y)

{

X = x;

Y = y;

}

double area_crl()

{

return 3,14*R*R;

}

double perim_crl()

{

return 2*3,14*R;

}

};

void main()

{

setlocale(LC_ALL, "Russian");

try

{

//работа с классом квадрат;

float sqr_x, sqr_y, sqr_len;

cout << "Введите координаты левого угла квадрата X и Y: ";

cin >> sqr_x >> sqr_y ;

cout << "Введите длинну ребра: ";

cin>> sqr_len;

if (sqr_len <= 0)

throw ("Длинна ребра должна быть больше нуля!");

Square sqr(sqr_x,sqr_y,sqr_len);

cout.precision(2);

cout << "Периметр квадрата: " << fixed << sqr.perim_sqr()

<< "\nПлощадь квадрата: " << fixed << sqr.area_sqr()

<< "\nДиагональ квадрата: " << fixed << sqr.diagonal_sqr();

cout << "\nВведите координаты для перемещения квадрата: ";

cin >> sqr_x >> sqr_y;

sqr.moveTo(sqr_x, sqr_y);

cout << "Координаты угла X: " << sqr.ldX << " Y: " << sqr.ldY << endl;

//работа с классом прямоугольник

float rec_x, rec_y, rec_len_A, rec_len_B;

cout << "\nВведите координаты левого угла прямоугольника X и Y:";

cin >> rec_x >> rec_y;

cout << "Введите длинну рёбер A и B: ";

cin>> rec_len_A >> rec_len_B;

if (rec_len_A <= 0 || rec_len_B <= 0)

throw ("Длинна рёбер должна быть больше нуля!");

Rectangle rec(rec_x, rec_y, rec_len_A, rec_len_B);

cout << "Периметр прямоугольника: " << fixed << rec.perim_rec()

<< "\nПлощадь прямоугольника: " << fixed << rec.area_rec()

<< "\nДиагональ прямоугольника: " << fixed << rec.diagonal_rec() ;

cout << "\nВведите координаты для перемещения прямоугольника: ";

cin >> rec_x >> rec_y;

rec.moveTo(rec_x, rec_y);

cout << "Координаты угла X: " << rec.ldX << " Y: " << rec.ldY << endl;

//работа с классом круг

float X, Y, R;

cout << "\nВведите координаты центра круга X и Y: ";

cin >> X >> Y ;

cout << "Введите длинну радиуса: ";

cin>> R;

if (R <= 0)

throw ("Длинна ребра должна быть больше нуля!");

Circle crl( X, Y, R);

cout << "Периметр круга: " << fixed << crl.perim_crl()

<< "\nПлощадь круга: " << fixed << crl.area_crl();

cout << "\nВведите координаты для перемещения круга: ";

cin >> X >> Y;

crl.moveTo(X, Y);

cout << "Координаты центра X: " << crl.X << " Y: " << crl.Y << endl;

}

catch(const char* error)

{

cerr << error << endl;

}

system("Pause");

}

программирование объектный ориентированный плоскость

Тест программы

В данной работе я научился работать с классами и его объектами, были получены понятия методы классы , конструктор и деструктор.

Размещено на Allbest.ru


Подобные документы

  • Построение системы классов для описания плоских геометрических фигур: круг, квадрат, прямоугольник. Методы для создания объектов, перемещения на плоскости, изменения размеров и вращения на заданный угол. Реализованные алгоритмы, тестирование программы.

    курсовая работа [129,3 K], добавлен 04.05.2014

  • Анализ объектно-ориентированного программирования, имитирующего способы выполнения предметов. Основные принципы объектно-ориентированного программирования: инкапсуляция, наследование, полиморфизм. Понятие классов, полей, методов, сообщений, событий.

    контрольная работа [51,7 K], добавлен 22.01.2013

  • Изучение принципов объектно-ориентированного программирования, в котором основными концепциями являются понятия классов и объектов. Свойства этого вида программирования: инкапсуляция, полиморфизм, наследование. Описание класса. Конструкторы и деструкторы.

    презентация [74,8 K], добавлен 14.10.2013

  • Исследование принципов объектно-ориентированного программирования на базе языка программирования С++. Разработка программного комплекса для ведения учёта памятников города. Описание процессов сортировки, поиска, формирования статистики по памятникам.

    курсовая работа [782,4 K], добавлен 26.05.2014

  • Использование скриптового языка программирования для разработки web-приложений (сценариев). Изучение основ объектно-ориентированного программирования в языке PHP. Ознакомление со специальными методами для работы с классами. Назначение интерфейсов.

    контрольная работа [25,1 K], добавлен 14.03.2015

  • Характеристики и свойства языков программирования. Исследование эволюции объектно-ориентированных языков программирования. Построение эволюционной карты механизмов ООП. Разработка концептуальной модели функционирования пользовательского интерфейса.

    курсовая работа [2,6 M], добавлен 17.11.2014

  • Использование объектно-ориентированного программирования - хорошее решение при разработке крупных программных проектов. Объект и класс как основа объектно-ориентированного языка. Понятие объектно-ориентированных языков. Языки и программное окружение.

    контрольная работа [60,1 K], добавлен 17.01.2011

  • Анализ методов объектно-ориентированного программирования на примере численных. Детальная характеристика модулей и связь их в одну общую программу. Принципы интегрирования по общей формуле трапеции и решение дифференциального уравнения методом Эйлера.

    курсовая работа [511,6 K], добавлен 25.03.2015

  • Разработка программы с использованием принципов объектно-ориентированного программирования на языке высокого уровня С средствами Microsoft Visual Studio 2010. Построение алгоритма реализации. Класс программы, инструкция по использованию программы.

    курсовая работа [1,0 M], добавлен 26.12.2013

  • Характеристика основных принципов объектно-ориентированного программирования. Этапы разработки программы на языке C++, реализующей игру "Морской бой". Выбор языка программирования. Характеристика необходимых классов, наследований, виртуальных методов.

    курсовая работа [657,6 K], добавлен 17.06.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.