Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...
Топ:
Устройство и оснащение процедурного кабинета: Решающая роль в обеспечении правильного лечения пациентов отводится процедурной медсестре...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
История развития методов оптимизации: теорема Куна-Таккера, метод Лагранжа, роль выпуклости в оптимизации...
Интересное:
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Подходы к решению темы фильма: Существует три основных типа исторического фильма, имеющих между собой много общего...
Принципы управления денежными потоками: одним из методов контроля за состоянием денежной наличности является...
Дисциплины:
2017-06-09 | 399 |
5.00
из
|
Заказать работу |
|
|
Цель: Изучить основы объектно-ориентированного программирования (далее – ООП).
Базовые понятия ООП: инкапсуляция, наследование и полиморфизм. Основное понятие класс.
Класс – это структурированный тип, включающий в себя в качестве элементов типизированные данные и функции, применяемые к этим данным. Таким образом, инкапсуляция заложена в составе элементов класса. Тип класса устанавливается для объектов.
Синтаксис объявления класса:
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 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!