Разработка объектно-ориентированной программы
Изучение базовых понятий объектно-ориентированного программирования. Исследование принципов работы с классами и объектами. Построение системы классов для описания плоских геометрических фигур. Анализ методов создания объектов, перемещения на плоскости.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 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