Лабораторная работа № 2. Классы. Программирование линейных алгоритмов с использованием функций инициализации set() и вывода результатов print() - Технология разработки программного обеспечения систем управления
Цель Работы - изучить основные способы работы с пользовательским типом данных "класс", его объектами, методами и способы доступа к ним.
- Теоретические сведения
Основное отличие С++ от С состоит в том, что в С++ имеются классы. С точки зрения языка С классы в С++ - это структуры, в которых вместе с данными определяются функции. Это и есть инкапсуляция в терминах ООП.
Класс (class) - это тип, определяемый пользователем, включающий в себя данные и функции, называемые методами или функциями-членами класса.
Данные класса - это то, что класс "знает".
Функции - члены (методы) класса - это то, что класс "делает".
Таким образом, определение типа, задаваемого пользователем (class), содержит спецификацию данных, требующихся для представления объекта этого типа, и набор операций (функций) для работы с подобными объектами.
Объявление класса
Приведем пример объявления класса:
Class my_Fun
{
// компоненты-данные
Double x, y;
// компоненты-функции
Public:
// функция инициализации
Void set(char *c, double X)
{
X=X;
Y=sin(x);
}
// функция вывода результатов
Void print(void)
{
Cout << point<<y << endl;
}
};
Обычно описания классов включают в заголовочные файлы (*.H), а реализацию функций-членов классов - в файлы *.CPP.
Для каждого объекта класса устанавливается область видимости либо явно - указанием уровня доступа одним из ключевых слов public, private, protected с двоеточием, либо неявно - по умолчанию. Указание области видимости относится ко всем последующим объектам класса, пока не встретится указание другой области видимости. Область видимости public разрешает доступ к объектам класса из любой части программы, в которой известен этот объект (общедоступный). Область видимости private разрешает доступ к объектам класса только из методов этого класса. Объекты с такой областью видимости называют частными. Область видимости protected определяется для защищенных объектов, она имеет смысл только в иерархической системе классов и разрешает доступ к объектам этой области из методов производных классов. В теле класса ключевое слово области видимости может использоваться неоднократно. Область видимости для объектов типа "класс" по умолчанию private.
Способы объявления и инициализации объектов и доступ к методам класса:
1. Прямой вызов
My_Fun Fun1;//объявление объекта1,но не инициализация
Fun1.set("Function1 = ",1.0);// инициализация данных
Fun1.print(); // прямой вызов
Cout << "Input enter1..." << endl<<endl.
2. Косвенный вызов
My_Fun *p1 = &Fun1; // воспользовались объектом 1
// новая инициализация
P1->set("Function1 = ",1.0); // косвенный вызов
P1->print();
// косвенный вызов
Cout << "Input enter1..." << endl<<endl;
3 Динамическое выделение памяти
My_Fun *p1 = new my_Fun;
P1->set("Function1 = ",1.0); // косвенный вызов
P1->print();
// косвенный вызов
Cout << "Input enter1..." << endl<<endl;
// удаляется динамически выделенный объект
Delete p1;
-Задание К Лабораторной Работе
Пользовательский класс должен содержать необходимые элементы - данные, метод установки их начальных значений:
Void set(double X,);
Метод печати:
Void print(void);
Метод, решающий поставленную задачу:
Void Run(void);
Код методов - вне пространства определения класса. Программа должна включать в себя статический и динамический способы создания объектов и для каждого объекта использовать прямую и косвенную адресацию при вызове методов класса.
- - Варианты Заданий 1.
При x=14,26, y= -1,22, z=3,5г, t=0,564849.
2.
При x= -4,5, y=0,75г, z=0,845, u=-55,6848.
3.
При x=3,74, y= -0,825, z=0,16, v=1,0553.
4.
При x=0,4, y= -0.875, z= -0,475, w=1,9873.
5.
При x= -15,246, y=4,642, z=20.001, = -182.036.
- 6. 7. При x=16,55, y= -2,75, z=0,15, = - 40,630. 8.
При x=0,1722, y=6,33, z=3,25, = -205,305.
9.
При x= -2,235, y=2,23, z=15,221, =39,374.
10.
При x=1,825, y=18,225, z= -3,298, =1,2131.
11.
При x=6,251, y=0,827, z=25,001, b=0,7121.
12.
При x=3,251, y=0,325, z=0,466, c = 4,25.
13.
При x=17,421, y=10,365, z=0,828, f=0,33056.
14.
При X=12,3, Y=15,4, z=0,252, G=82,8257.
15.
При x=2,444, y=0,869, z= -0,13, -0,49871.
Контрольные вопросы
- 1. Что значит в ООП понятие "класс", и какой формат его объявления в программе? 2. Что такое объект класса, что он содержит? 3. Какие существуют уровни доступа к объектам и методам класса? (Дать характеристику каждому). 4. Что такое операция привязки, ее основное назначение? 3. Лабораторная Работа № 3. Классы. Программирование Линейных Алгоритмов С Использованием Конструктора, Деструктора, Friend - Функции Инициализации Set() И Функции Вывода Результатов Print()
Цель Работы - изучить основные способы работы по созданию конструктора класса с захватом динамической памяти и деструктора для ее освобождения, применение friend - функции и изучение ее особенностей.
Теоретические сведения
Конструктор Класса
Конструктор - это метод класса, имя которого совпадает с именем класса. Конструктор вызывается автоматически после выделения памяти для переменной и обеспечивает инициализацию данных. Конструктор не имеет никакого типа (даже типа void) и не возвращает никакого значения в результате своей работы. Конструктор нельзя вызывать как обычную компонентную функцию в программе. Для класса может быть объявлено несколько конструкторов, различающихся числом и типами параметров. При этом, даже если для объектного типа не определено ни одного конструктора, компилятор создает для него конструктор по умолчанию, не использующий параметров, а также конструктор копирования, необходимый в том случае, если переменная объектного типа передается в конструктор как аргумент. В этом случае создаваемый объект будет точной копией аргумента конструктора.
Class my_Fun
{
// компоненты-данные
Double x;
Unsigned size;
Public:
// объявление конструктора 1 (с параметрами)
My_Fun (double X=0);
// объявление конструктора 2 (без параметров)
My_Fun(void);
// объявление и описание деструктора
~my_Fun ()
{
Cout<<"Destroyed object... "<<endl;
}
// описание конструктора 1
My_Fun::my_Fun (double X)
{
Cout<<"Constructor1...."<<endl;
X=X;
}
// описание конструктора 2
My_Fun::my_Fun (void)
{
Cout<<"Constructor2..."<<endl;
X=5.0;
}
}
Деструктор класса
Еще одним специальным методом класса является деструктор. Деструктор вызывается перед освобождением памяти, занимаемой объектной переменной, и предназначен для выполнения дополнительных действий, связанных с уничтожением объектной переменной: например, для освобождения динамической памяти, закрытия, уничтожения файлов и т. п. Деструктор всегда имеет то же имя, что и имя класса, но перед именем записывается знак ~ (тильда). Деструктор не имеет параметров и, подобно конструктору не возвращает никакого значения.
Таким образом, деструктор не может быть перегружен и должен существовать в классе в единственном экземпляре. Деструктор вызывается автоматически при уничтожении объекта. Таким образом, для статически определенных объектов деструктор вызывается, когда заканчивается блок программы, в котором определен объект (блок в данном случае - составной оператор или тело функции). Для объектов, память для которых выделена динамически, деструктор вызывается при уничтожении объекта операцией delete.
Дружественная Функция (friend)
В языке С++ одна и та же функция не может быть компонентом двух разных классов. Чтобы предоставить функции возможность выполнения действий над различными классами, можно определить обычную функцию языка С++ и предоставить ей право доступа к элементам класса типа private, protected. Для этого нужно в описании класса поместить заголовок функции, перед которым поставить ключевое слово friend.
Дружественная функция не является методом класса, не зависит от позиции в классе и спецификаторов прав доступа. Friend - функции получают доступ к членам класса через указатель, передаваемый им явно. Можно сделать все функции класса Y друзьями класса X в одном объявлении.
- Задание К Лабораторной Работе
Общая постановка. Пользовательский класс Х должен содержать необходимые элементы - данные, которые создаются в динамической области памяти, конструктор для их создания (операция new) и установки их начальных значений: Х(), деструктор: ~ Х (), friend - функция печати: friend void print(), функция, решающая поставленную задачу: friend Void Run().
Код методов и функций - вне пространства определения класса.
- Варианты заданий
Варианты заданий используются из лабораторной работы № 2.
- - Контрольные вопросы 1. Что такое "конструктор", формат объявления, его особенности? 2. Формат объявления деструктора, его назначение. 3. Особенности дружественных функций, доступ к закрытой части класса. 4. Каким образом дружественная функция получает доступ к закрытой части класса?
Похожие статьи
-
Цель Работы - изучить приемы создания и использования шаблонов классов. - Теоретические сведения Достаточно часто встречаются классы, объекты которых...
-
Цель Работы - изучить одну из базовых концепций ООП, наследование классов в С++, заключающуюся в построении цепочек классов, связанных иерархически,...
-
Объект ориентированный класс программирование Цель Работы - изучить методику создания одномерных динамических символьных массивов при помощи...
-
Цель Работы - научиться использовать элемент управления ListBox а также основные методы класса СListBox. Использование возможности контроля правильности...
-
Цель Работы - использовать принципы архитектуры "Документ-Представление" для выборки и сохранения данных в файлах, а также взаимодействия элементов меню,...
-
Цель Работы - изучить принципы работы элементов управления Progress и Slider. Получить навыки по самостоятельному созданию модальных диалоговых окон. -...
-
Цель Работы - научиться использовать операции динамического выделения и освобождения памяти на примере работы с одномерными и двумерными массивами, а...
-
Введение - Технология разработки программного обеспечения систем управления
С++ является языком объектно-ориентированного программирования (ООП). Объект - абстрактная сущность, наделенная характеристиками объектов реального мира....
-
Для перехода в административный раздел системы необходимо выбрать пункт меню "Файл" > "Администратор", после чего откроется окно, показанное на...
-
Общее описание программного обеспечения, реализующего разработанный алгоритм Основной идеей дипломного проекта, является реализация алгоритма...
-
Алгоритм работы. В результате работы АИС генерируются три xml документа - два со структурой сравниваемых баз данных и один с результатами сравнения. В...
-
Регистрация нового пользователя в системе возможна двумя способоами: 1) Самостоятельная регистрация пользователя; 2) Регистрация пользователя...
-
SimpleXML. В PHP версии 5.0 и выше появилось расширение для работы с xml структурой. Библитека SimpleXML содержит большое количество методов для работы с...
-
Работа с контентом Контент системы содержит как отдельные медийные составляющие - текст, таблицы, ссылки, графику, так и связанные между собой....
-
Наименование системы Программная система управления контентом портала с архивом конструкторской документации. Цели, назначение и область использования...
-
1. Изучение теоретических аспектов использования: MS Word, MS Excel, MS Access, Paint и Photoshop... (ППО) Часть 1 : Руководство по выполнению...
-
Объекты области временного хранения классифицируются по предметным областям. Аутентичность исходным данным Заказчика в объектах DF , TD и R достигается...
-
Проведем сравнительную оценку напряженность процесса эксплуатации системы в процессе работы. Для этого заполним таблицу 7.2, в которой отражается степень...
-
Считается, что правильно организованный документооборот и электронный архив документов становятся необходимыми условиями эффективной работы современного...
-
Введение - Программное обеспечение для пропускной системы на основе технологии NFC
Массовые мероприятия стали неотъемлемой частью современного мира. Для таких мероприятий требуется быстрая организация временного разделенного доступа для...
-
СХЕМА АЛГОРИТМА РАБОТЫ ПРОГРАММЫ, ЗАКЛЮЧЕНИЕ - Основы программирования в операционной системе Unix
Блок-схема главной функции программы (main) изображена на рисунке 4. Рисунок 4 - блок-схема main. cpp Блок-схема модуля (Math. cpp) изображена на рисунке...
-
Для написания АИС использовались следующие языки программирования, программные средства и библиотеки: - Язык программирования PHP 5.4; -...
-
Синтаксис объявления класса в языке С++ имеет следующий вид: Class<имя класса>: <спецификатор доступа><имя базового класса> { Элементы класса...
-
Основная цель системы ДИСКОР - совершенствование оперативного управления работой железных дорог на основе более эффективного использования пропускной...
-
Выводы по результатам тестирования - Исследование алгоритмов
По полученным в ходе анализа данным сделать вывод о качестве обученных каскадных классификаторов и о причинах таких результатов, а также выяснить, какие...
-
В организации ООО "Дружба" имеется различное оборудование. Оно подразделяется на офисную оргтехнику и профессиональное оборудование в цехе. Офис оснащен...
-
Базы данных (БД) составляют в настоящее время основу компьютерного обеспечения информационных процессов, входящих практически во все сферы человеческой...
-
Введение - Разработка справочной информационной системы "Рецепты"
Задание курсовой работы. Разработать и отладить информационную справочную систему "Рецепты", которая будет позволять хранить, выводить на экран,...
-
В качестве доступного инструментария были рассмотрены две открытые кроссплатформенные библиотеки для разработки C++ приложений WxWidgets и Boost ,...
-
Выбор средств реализации информационной системы Названные в параграфе 1.4. настоящей работы задачи могут быть решены тремя типами средств автоматизации:...
-
В разработке системы принимал участие один инженер-программист. Длительность выполнения работ по проектированию и разработке системы представлена в...
-
Поскольку клиентская часть представляет собой приложение на базе операционной системы Android, то для ее разработки был выбран рекомендуемый...
-
"РЕШЕНИЕ ЗАДАЧ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ С ИСПОЛЬЗОВАНИЕМ MICROSOFT EXCEL" Цель работы Приобретение навыков решения задач линейного программирования...
-
Особенностью архитектуры REST является отсутствия хранения состояния на сервере. Для того, чтобы не передавать пользовательские логин и пароль каждый...
-
В этой главе представлено описание инструментов и методов, использованных при написании кода программы. Инструменты разработки серверной части Для...
-
Схема организации подсистемы хранения данных с указанием потоков данных представлена на рисунке 5. Рисунок 5. Схема хранения данных Область Временного...
-
Наименование и область применения Наименование: Автоматизированная информационная система "Отель" в дальнейшем именуемая АИС "Отель". Область применения:...
-
Лоцман: КБ относится к классу PDM-систем и предназначен для быстрого формирования и поддержания в актуальном состоянии электронного архива...
-
Программный продукт "1С:Предприятие 8. PDM Управление инженерными данными" - совместное решение фирмы "1С" и компании АППИУС предназначенное для...
-
Solidworcks Enterprise PDM (SWE-PDM) управляет данными и процессами на различных этапах жизненного цикла изделия, обеспечивая коллективную (параллельную)...
Лабораторная работа № 2. Классы. Программирование линейных алгоритмов с использованием функций инициализации set() и вывода результатов print() - Технология разработки программного обеспечения систем управления