Курсовая работа по дисциплине Объектноориентированное программирование
Скачать 415.64 Kb.
|
МИНОБРНАУКИ РОССИИ Федеральное государственное бюджетное образовательное учреждение высшего образования «МИРЭА – Российский технологический университет» РТУ МИРЭА Институт информационных технологий Кафедра вычислительной техники КУРСОВАЯ РАБОТА
Москва 2021 г. МИНОБРНАУКИ РОССИИ Федеральное государственное бюджетное образовательное учреждение высшего образования «МИРЭА – Российский технологический университет» РТУ МИРЭА Институт информационных технологий Кафедра вычислительной техники Утверждаю Заведующий кафедрой Подпись Платонова О.В. ФИО «25» февраля 2021 г. ЗАДАНИЕ на выполнение курсовой работы по дисциплине «Объектно-ориентированное программирование»
Исходные данные: Исходная иерархия расположения объектов, координаты искомых объектов Перечень вопросов, подлежащих разработке, и обязательного графического материала: Реализовать алгоритм размещения всех объектов в составе программы на иерархическом дереве объектов. Реализовать алгоритм поиска объекта на дереве иерархии. Блок-схема реализованных алгоритмов.
Москва 2021 г. СОДЕРЖАНИЕ ВВЕДЕНИЕ 4 Постановка задачи 6 Метод решения 9 Описание алгоритма 11 Блок-схема алгоритма 17 Код программы 25 Тестирование 32 ЗАКЛЮЧЕНИЕ 33 СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ (ИСТОЧНИКОВ) 34 ВВЕДЕНИЕ Объектно-ориентированное программирование (ООП) - парадигма программирования, которая основана на представлении программы в виде совокупности объектов. Объект - некоторая сущность, у которой есть определенные состояния, свойства, операции, поведение. Каждый из объектов является экземпляром определенного класса, совокупность которых образует иерархию наследования. ООП является одной из самых популярных парадигм программирования. Оно уже долгое время является актуальным и не собирается сбавлять ход. ООП есть множество понятий, как абстракция данных, инкапсуляция и наследование. Они позволяют упрощать код, деля их на более маленькие. Это делает код простым для понимания. Возможно использовать один и тот же код в разных проектах и не переписывать его в одном проекте много раз. Благодаря этому программисты могут сэкономить большое количество времени. Также актуальность этой парадигмы связана с реальным миром. ООП очень похоже на наше окружение: объектами являются люди, животные, предметы, а методами - их действия. ООП помогает развить объектное мышление. Этот навык позволяет быстрее и легче проектировать сложные системы, представляя их в виде объектов. Важный аспект ООП состоит том, что его можно реализовать во многих языках программирования. Однако одним из лидеров является C++: 4 в нем изначально реализованы элементы ООП: классы, методы и другие; четко разграничены уровни доступа к членам класса; C++ поощряет программистов свойствами вроде множественного наследования и динамического полиморфизма; C++ дает большую свободу программисту, что позволяет ему писать продвинутый и быстрый код. На моем направлении C++ и ООП дают преимущества в дальнейшем обучении. Изучив их на первом курсе, впоследствии я смогу быстрее и качественнее писать программы на одном из самых производительных и многофункциональных языках программирования. 5 Постановка задачи Определение указателя на объект по его координате Иметь возможность доступа из текущего объекта к любому объекту системы, «мечта» разработчика программы. составе базового класса реализовать метод получения указателя на любой объект в составе дерева иерархии объектов. качестве параметра методу передать путь объекта от корневого. Путь задать в следующем виде: /root/ob_1/ob_2/ob_3 Уникальность наименования требуется только относительно множества подчиненных объектов для любого головного объекта. Если система содержит объекты с уникальными именами, то в методе реализовать определение указателя на объект посредством задания координаты в виде: //«наименование объекта» Состав и иерархия объектов строится посредством ввода исходных данных. Ввод организован как в контрольной работе № 1. Единственное различие: в строке ввода первым указать не наименование головного объекта, а путь к головному объекту. 6 Подразумевается, что к моменту ввода очередной строки соответствующая ветка на дереве иерархии уже построена. Система содержит объекты пяти классов, не считая корневого. Номера классов: 2, 3, 4, 5, 6. Пример ввода иерархии дерева объектов. root /root object_1 3 1 /root object_2 2 1 /root/object_2 object_4 3 -1 /root/object_2 object_5 4 1 /root object_3 3 1 /root/object_2 object_3 6 1 /root/object_1 object_7 5 1 /root/object_2/object_4 object_7 3 -1 endtree Описание входных данных Множество объектов, их характеристики и расположение на дереве иерархии. Структура данных для ввода согласно изложенному в фрагменте методического указания [3] в контрольной работе № 1. После ввода состава дерева иерархии построчно вводятся координаты искомых объектов. Ввод завершается при вводе: // Описание выходных данных Первая строка: 7 Object tree Со второй строки вывести иерархию построенного дерева. Далее, построчно: «координата объекта» Object name: «наименование объекта» Разделитель один пробел. Если объект не найден, то вывести: «координата объекта» Object not found Разделитель один пробел. 8 Метод решения Объект base класса BaseApplication. Класс Base: Методы: Метод get_object_by_path(string path) - возвращает указатель на искомый объект в составе дерева иерархии объектов по пути или координате. Класс BaseApplication: Методы: Метод build_tree_objects() - строит исходное дерево иерархии объектов; Метод exec_app() - запускает приложение. Иерархия наследования отображена в таблице 1. Таблица 1. "Описание иерархии наследования классов"
9
10 |