Программный продукт "Графический редактор учебно-методических материалов"

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



серии MS Office и другие. Подробно процедура сохранения различных типов файлов описана ниже в приложении пользователя.

3.3 Разработка. Архитектура классов и модулей программного средства

В соответствии с представленным техническим заданием, необходимо предусмотреть возможности редактирования таких графических элементов как:

а)линия Безье

б)линия по двум точкам

в)ломаная линия по нескольким точкам

г)вектор по нескольким точкам

д)диаграмма с двумя окружностями

е)диаграмма с тремя пересекающимися окружностями

ж)текст

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

отсутствие некоторых свойств.

а)примитивы на основе точек (линия Безье, линия по двум точкам, ломаная линия по нескольким точкам, вектор по нескольким точкам);

б)BitMap-примитивы (текст);

в)составные примитивы (диаграмма с двумя окружностями, диаграмма с тремя пересекающимися окружностями).

Для каждой из этих групп при реализации объектно-ориентированной модели принято выделять как доступные для обращения, так и скрытые свойства. Доступные свойства могут быть установлены пользователем по желанию, а скрытые свойства предполагают, что обращение к ним может быть вызвано только самим классом посредством вызова скрытых процедур и функций, а также непосредственным обращением к скрытому свойству из открытых процедур.

В соответствии с данным разделением можно выделить рад свойств, характерных для каждого подкласса. Так для класса примитивов, строящихся на основе точек характерны такие свойства как: толщина линии, цвет линии, тип линии и видимость.

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

Рис. 3.1. Типы стрелок для вектора

Для подкласса BitMap-примитивы характерны свойства: тип, размер и цвет шрифта.

К скрытым свойствам классов относятся такие как координаты на экране (X и Y), наборы точек примитивов, имя объекта, выделение. Наличие таких свойств позволяет пользователю позиционировать и обращаться к выделенным примитивам, а также выделять примитивы в случае, когда они были предварительно скрыты пользователем, т.е. невидимы на рисунке.

Для удобства программирования и доступа к свойствам и методам определенного класса, реализующего тот или иной примитив, необходимо предусмотреть такой класс который позволит обращаться к свойствам любого из примитивов посредством единого набора методов. Данный класс позволит также объединить характерные для всех классов общие свойства, такие как видимость, цвет линии или текста, имя примитива, выделение. Класс будет являться родительским по отношении к каждому из классов реализующих примитивы, условно назовем данный класс Примитив.

Кроме организации такого класса необходимо предусмотреть способ хранения набора примитивов. В качестве способов реализации можно воспользоваться либо массивом с типом класс Примитив, либо динамической структурой типа стек или очередь.

Основными преимуществами в пользу массива является достаточно простая реализация, возможность динамического выделения памяти под элементы массива. Простота объясняется возможностями большинства языков программирования выделять память под элементы массива любого типа заданного программистом путем использования встроенных функций.

К преимуществам использования стека относятся возможности хорошей структуризации набора записей, а также в каждый момент времени для хранения всех нарисованных примитивов используется только тот объем системной памяти, который необходим для их хранения. Однако такой поход связан с реализацией дополнительных функций, таких как организация структуры стека, функциями добавления, прохода по стеку (просмотра), удаления верхнего элемента. Также данный подход затрудняет обращение к тем элементам стека, которые находятся ниже верхнего, а, следовательно, затрудняется и алгоритм, реализующий изменение свойств примитивов.

Таким образом, наиболее целесообразным в нашем случае будет использование для хранения созданных примитивов массива, так как данный вариант более удобен для использования методов родительского класса, реализующих изменение свойств примитивов.

Структурная диаграмма классов, реализующая в программном средстве набор примитивов, их свойства и методы приведены в Приложении Б.

Рассмотрим свойства и методы базового абстрактного класса Примитив.

Открытые свойства.

_NamePrim - имя примитива, используется для доступа к некоторому примитиву, уникально для каждого примитива.

_selected - признак того, что примитив является выбранным или не выбранным.

_visible - признак того, что примитив видим или не видим на экране.

_fillcolor - цвет заполнения примитива.

Закрытые свойства.

_color , _size - цвет и толщина линии примитива.,G,B - цветовые составляющие цвета линии примитива., GFill, BFill - цветовые составляющие цвета заливки примитива.- признак того, что примитив является замкнутой фигурой.- тип линии примитива (сплошная, пунктирная, штрих пунктирная, точечная).

Открытые ме

Copyright © 2008-2014 geum.ru   рубрикатор по предметам  рубрикатор по типам работ  пользовательское соглашение