объектно-ориентированное программирование — КиберПедия 

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

объектно-ориентированное программирование

2017-06-09 396
объектно-ориентированное программирование 0.00 из 5.00 0 оценок
Заказать работу

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

Базовые понятия ООП: инкапсуляция, наследование и полиморфизм. Основное понятие класс.

Класс – это структурированный тип, включающий в себя в качестве элементов типизированные данные и функции, применяемые к этим данным. Таким образом, инкапсуляция заложена в составе элементов класса. Тип класса устанавливается для объектов.

Синтаксис объявления класса:

class имя

{тип переменных;

public:

функции;

};

В конце обязательно ставится точка с запятой – это оператор.

Не все элементы класса считаются закрытыми, существует режим доступа к элементам. Для этого перед элементами класса записывается спецификатор:

private: /*частный, устанавливается по умолчанию, часто используется для переменных*/

public: // общедоступный, часто используется для функции

protected: /*защищенный, используется для переменных при наличии наследования*/.

Методы работы с переменными класса реализуются через функции, описание которых производится отдельно. При этом нужно указывать к какому классу принадлежит данная функция. Для этого используется операция – ::. Обращение к элементам класса происходит при помощи составного имени (через точку).

Наследование позволяет формировать иерархию. Класс-наследник получает свойства класса-предка. В классе-наследнике могут быть добавлены дополнительные элементы и методы. Функция потомка перекрывает соответствующую функцию предка.

Формат задания класса-потомка:

сlass имя-потомка: режим доступа имя-предка

{элементы};

Листинг11.

/*объявляются класс четырехугольников и классы наследники параллелограммов и ромбов*/

#include<iostream.h>

#include <math.h>

class fourangle //базовый класс

{protected: / /переменные класса

double x1, y 1. x 2, y 2, x 3, y 3, x 4, y 4,

a, b, c, d, d1, d 2,

p, s;

public: // методы класса

void vvod(void);

void storony(void);

void diagonali(void);

void perimetr(void);

void ploshad(void);

void vyvod(void);

};

class parall:public fourangle // класс параллелограммов – наследник

{public:

void storony(void);

void perimetr(void);

void ploshad(void);

};

class romb:public parall // класс ромбов – наследник

{public:

void storony(void);

void perimetr(void);

};

void fourangle::vvod(void) /*описание функции ввода для класса четырехугольников*/

{cin>>x 1 >>y 1 >>x 2 >>y 2 >>x 3 >>y 3 >>x 4 >>y 4 ;}

void fourangle::storony (void)

{a=sqrt((x 2 -x 1 )*(x 2 -x 1 )+(y 2 -y 1 )*(y 2 -y 1 ));

b=sqrt((x 2 -x 3 )*(x 2 -x 3 )+(y 2 -y 3 )*(y 2 -y 3 ));

c=sqrt((x 4 -x 3 )*(x 4 -x 3 )+(y 4 -y 3 )*(y 4 -y 3 ));

d=sqrt((x 4 -x 1 )*(x 4 -x 1 )+(y 4 -y 1 )*(y 4 -y 1 ));}

void fourangle::diagonali (void)

{d1=sqrt((x 3 -x 1 )*(x 3 -x 1 )+(y 3 -y 1 )*(y 3 -y 1 ));

d2=sqrt((x 2 -x 4 )*(x 2 -x 4 )+(y 2 -y 4 )*(y 2 -y 4 ));}

void fourangle::perimetr (void)

{ p=a+b+c+d;}

void fourangle::ploshad (void)

{double per1,per 2;

per1=(a+d+d 2 )/ 2;

per2=(b+c+d 2 )/ 2;

s=sqrt(per 1 *(per 1 -a)*(per 1 -d)*(per 1 -d 2 ))+

+sqrt(per 2 *(per 2 -b)*(per 2 -c)*(per 2 -d 2 ));}

void fourangle::vyvod (void)

{cout<<”a=”<<a<<”\tb=”<<b<<”\tc=”<<c<<”\td=”<<d;

cout<<”\np=”<<p<<”\ts=”<<s;

cout<<”\nd1=”<<d1<<”\td 2 =”<<d 2 ;}

void parall::storony (void)

{a=sqrt((x 2 -x 1 )*(x 2 -x 1 )+(y 2 -y 1 )*(y 2 -y 1 ));

b=sqrt((x 2 -x 3 )*(x 2 -x 3 )+(y 2 -y 3 )*(y 2 -y 3 ));

c=a;

d=b;}

void parall::perimetr (void)

{ p= 2 *(a+b);}

void parall::ploshad (void)

{double per;

per=(a+d+d 2 )/ 2;

s= 2 *sqrt(per 1 *(per 1 -a)*(per 1 -d)*(per 1 -d 2 ));}

void romb::storony (void)

{a=b=c=d=sqrt((x 2 -x 1 )*(x 2 -x 1 )+(y 2 -y 1 )*(y 2 -y 1 ));}

void romb::perimetr (void)

{ p= 4 *a;}

// основная функция, по координатам вершин вычисляет все //параметры ромба

void main()

{romb obj;

obj.vvod();

obj.storony();

obj.diagonali();

obj.perimetr();

obj.ploshad();

obj.vyvod();

}

Практическая работа

Построить систему классов для описания элементов в какой-либо области. Предусмотреть различные методы для созданных классов. Написать программу в соответствии с задуманным вариантом. Количество переменных класса, их тип и название определить самостоятельно. Минимальные требования: два класса, два метода наследуются и два не изменяются. Проанализировать результат работы программы.

Контрольные вопросы

1. Как задаются переменные класса и режимы доступа к ним?

2. Формат задания класса потомка.

3. Как происходит обращение к элементам класса?

 

 

 

Список Литературы

1. Павловская, Т. А. С/С++. Программирование на языке высокого уровня: учеб. для студентов высш. учеб. завед./Т. А. Павловская. –СПб.: Питер, 2008.— 460 с.

2. Подбельский, В. В. Язык СИ++: учебное пособие для студентов высших учебных заведений /В. В. Побельский. – М.: Финансы и статистика, 2007.— 559 с.

3. БД Сургутский Государственный университет «Книги» [Электронный ресурс]. – URL: http://www.lib.surgu.ru/abis.php.

4. Лысенкова, С. А., Назина, Н. Б. Численные методы: учеб.-метод. пособие /С. А. Лысенкова, Н. Б. Назина. – Сургут: ИЦ СурГУ, 2014. – 56 с.


 

 

Учебное издание

Лысенкова Светлана Александровна

Шайторова Ирина Анатольевна

 

 

ПРОГРАММИРОВАНИЕ.

 

 

Учебно-методическое пособие

 


Поделиться с друзьями:

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.013 с.