Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Ориентированный нагруженный графСтр 1 из 3Следующая ⇒
МЕТОДИЧЕСКОЕ ПОСОБИЕ ДЛЯ ВЫПОЛНЕНИЯ ЛАБОРАТОРНЫХ РАБОТ ПО ДИСЦИПЛИНЕ
Москва 2018
Содержание 1. Aрхитектура программы.. 4 2. Ориентированный нагруженный граф. 8 3. Класс. 14 3.1. Виртуальный объект. 14 3.2. Описание класса. 14 3.3. Распределение частей класса по файлам. 15 3.4. Взаимодействие с объектом. 16 3.5. Реализация парадигмы ООП.. 16 3.6. Дерево иерархии объектов. 17 4. Фрагменты программной реализации на языке С++. 19 4.1. Базовый класс. 19 4.2. Класс приложение. 20 4.3. Основная функция main. 21 5. Отчет по лабораторной работе. 22 5.1. Общие пояснения. 22 5.2. Пояснения к разделу «Постановка задачи». 22 5.3. Пояснения к разделу «Методы и объекты». 23 5.4. Пояснения к разделу «Архитектура программы-системы». 23 5.4.1. Пояснения к пункту «Иерархия объектов». 23 5.4.2. Пояснения к пункту «Взаимодействие объектов». 24 5.4.3. Пояснения к пункту «Алгоритм функционирования системы, решение задачи» 24 5.5. Пояснения к разделу «Схемы». 25 5.5.1. Пояснения к пункту «Схема иерархии наследования классов». 25 5.5.2. Пояснения к пункту «Схема архитектуры программы». 26 5.5.3. Пояснения к пункту «Схема взаимодействия объектов». 27 5.5.4. Пояснения к пункту «Схема алгоритма решения задачи». 28 5.6. Пояснения к разделу «Код программы». 28 5.7. Пояснения к разделу «Тестирование». 28 5.8. Пояснения к разделу «Инструкция для пользователя». 29
Aрхитектура программы
Окружающий нас мир состоит из объектов. Объекты созданы человеком или природой. Человек научился из объектов конструировать системы для решения определенных задач. Система, в свою очередь тоже является объектом. Так, что все происходящее вокруг – это, взаимодействие объектов.
Объект–то, что может быть индивидуально описано и рассмотрено. Система– множество взаимосвязанных и взаимодействующих объектов для решения одной или множества задач (достижения одной или множества целей).
Любое приложение, разработанное с соблюдением требований объектно-ориентированного подхода, является системой. Программирование на объектно-ориентированном языке соответствует работе конструктора, который из элементов (объектов) собирает систему (программу).
При запуске программы реализованная система начинает функционировать, решать задачи. Разработка алгоритмов становится естественным процессом отображения реальной действительности. Алгоритм представляет описание последовательности взаимодействия объектов. Классифицируем сложность задания (программы) исходя из конструктивного построения взаимосвязи объектов и их взаимодействия. Первый уровень сложности: взаимодействие допустимо между конструктивно взаимосвязанными объектами и внешней средой. Задание лабораторной работы имеет первый уровень сложности. Схема описания архитектуры программы имеет следующийвид
Рисунок 1
Внешней среде соответствует: − клавиатура; − консоль; − файл.
Для взаимосвязи с внешней средойв код программы добавляется:
#include <iostream> using namespace std;
После этого, в составе программыкомпилятором добавляются объект вывода и объектввода. Они организуют обмен данными между консолью и клавиатурой соответственно. Для взаимодействия с другими объектами программы предоставляются стандартные интерфейсы вывода «cuot»и ввода «cin». Детализированная схема описания архитектуры программы имеет следующий вид.
Рисунок 2
Содержание этапов разработки программы (системы) при объектно-ориентированном программировании отличается от сформулированныхпри процедурном программировании (Таблица 1)
Составные части (разделы, пункты) отчета лабораторной работы должны соответствовать содержанию второго столбца таблицы 1.
Ориентированный нагруженный граф
Для описания: − иерархии наследственности классов; − архитектуры программы (системы), иерархии объектов; − схемы взаимодействия объектов; − схемы функционирования системы, алгоритма решения задачи; будем пользоваться ориентированным нагруженным графом. Элементами ориентированного нагруженного графа являются: − вершина, которой сопоставляется определенная функциональная нагрузка и наименование; − ориентированное ребро, соединяющее две вершины, имеющее определенную нагрузку над и под ребром; − комплекс– это вершина, с исходящими из него определенного количества ориентированных ребер и вершин перехода по данным ребрам. Все схемы и алгоритмы собираются из множества комплексов. Графически комплекс для описания определенной конструкции выглядит следующим образом:
Рисунок 3 Входом в комплекс является вершина, из которой выходят ребра. Схемасобирается совмещением входной вершины одного комплекса с исходящей вершиной другого комплекса. Такие схемы используются для описания: − иерархии наследования классов; − архитектуры программы. Пример схемы описания иерархии наследования классов.
Рисунок 4 Графически комплекс вершины, для описания алгоритма выглядит следующим образом:
Рисунок 5 Рассмотрим подробнее элементы, представленные нарис. 5: - «Имя вершины» - наименование комплекса. Оно совпадает с наименованием объектаили метки алгоритма. - «Линейные операторы 0» - процедура вершины комплекса. - «Условие i» - предикат, условие перехода по ребру. Предикат представляет определенное логическое выражение (i = {1÷N} ). - «Имя вершины i» - наименование комплекса перехода (i = {1÷N}). Наименование комплекса перехода совпадает c наименованием очередного комплекса согласно алгоритмуили является отметкой завершения алгоритма Æ. - «Линейные операторы i» - процедуры, выполняемые при переходе по соответствующим ребрам (i = {1÷N} ).
Правило обхода комплекса. Вход в комплекс осуществляется только через вершину наименования комплекса. После входа отрабатывает процедура вершины комплекса. Далее по порядку сверху вниз проверяются предикаты. Если предикат«Условие i» принимает значение «истина», то отрабатывается процедура«Линейные операторы i» и происходит переход к комплексу «Имя вершины i». Если ни один из предикатов не принимает значение «истина», то фиксируется ошибка. Если на ребре логическое условие отсутствует, значение предиката считается истинным и можно выполнить движение по ребру. Графическое представление комплекса однозначно отображается в таблице. В таблице 2 приведено правило отображения комплекса. Таблица 2
В табличном представлении наименование комплекса, состоит из двух частей: - уникальный номер вершины комплекса; - имя вершины. Тогда, в четвертом столбце достаточно указать только уникальный номер вершины комплекса или Æ (завершение алгоритма). Пример описания алгоритмасхемой нагруженного ориентированного графа.
Рисунок 6 Допускается нагрузку ребер задавать согласно операторам базового алгоритмического языка С++.
Рисунок 7 Достоинства предложенного описания блок-схем алгоритма: 1) Простота используемых графических элементов. 2) Графическое изображение алгоритма строится слева на право и сверху вниз. 3) Взаимная однозначность реализации кода на языке С++. 4) Возможность и взаимная однозначность представления алгоритма в табличном виде. Класс Виртуальный объект
В языке С++ реальному объекту из предметной области ставится в соответствие виртуальный объект. Язык обеспечивает жизненный цикл виртуального объекта по аналогии жизненного цикла объекта из предметной области. Схемы этих жизненных циклов совпадают. Схема жизненного цикла виртуального объекта.
Рисунок 8 Реализация жизненного цикла виртуального объекта на языке С++(Таблица 3)
Описание класса
Описание класса состоит из двух частей: заголовка и реализации. Синтаксис описания заголовочной части класса:
class«имякласса» { [private:] «список скрытых элементов класса» public: «список доступных элементов класса» protected: «список защищенных элементов класса» };
имякласса ::= идентификатор элемент класса ::= описание свойства(поля, переменной) ::= описание заголовка метода
Синтаксис описаниязаголовка метода: «типвозвращаемого значения»«имяметода» ( [списокпараметров] );
Описание свойств аналогично описанию переменных в языке С. Часть реализации содержит описание методов класса. Синтаксис описания метода:
«типвозвращаемогозначения»«имякласса» :: «имяметода» ( [списокпараметров] ) { // тело метода (код алгоритма метода) }
Здесь«имякласса»—этоимятогокласса, которомупринадлежитопределяемый метод.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2018-05-10; просмотров: 209. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |