zaeto.ru

Первая тема называется "Графический редактор". Она состоит из 4-х последовательных заданий: 1 Изучение иерархий классов и виртуальных методов

Другое
Экономика
Финансы
Маркетинг
Астрономия
География
Туризм
Биология
История
Информатика
Культура
Математика
Физика
Философия
Химия
Банк
Право
Военное дело
Бухгалтерия
Журналистика
Спорт
Психология
Литература
Музыка
Медицина
добавить свой файл
 

 
страница 1


Задания для лабораторных работ

Первая тема называется "Графический редактор". Она состоит из 4-х последовательных заданий:


1) Изучение иерархий классов и виртуальных методов. Построить иерархию классов для вывода графических фигур: отрезок, прямоугольник, эллипс и т.д. Распределить классы по модулям. Создать список фигур в виде отдельного класса. В главном модуле программно добавить в список различные фигуры. Запустить рисование списка. Выполнить задание на языке Delphi, C++, C# или Java. Для рисования использовать любую подходящую графическую библиотеку. Если изучение графической библиотеки вызывает затруднение, допускается вывод фигур в файл или на экран в виде текстовых строк вида "Rectangle(10, 20, 30, 40)".
2) Ознакомление с расширяемым программированием. Расширить пример с графическими фигурами так, чтобы фигуры можно было создавать на уровне пользовательского интерфейса. Существуют несколько способов: ввод координат с помощью мыши, диалоговый ввод значений, ввод на скриптовом языке. Студент может выбрать любой способ ввода. Создание объекта должно выполняться так, чтобы добавление нового класса в систему не требовало изменения существующего кода (выбор типа с помощью оператора case/switch делать нельзя). Получившаяся программа должна представлять собой примитивный графический редактор.
3) Изучение сериализации объектов. Добавить в графический редактор возможность сохранять список графических объектов в файл и восстанавливать его из файла. Пользователь должен получить возможность расширять созданные ранее графические файлы новыми фигурами. При сериализации учесть, что добавление нового класса в систему не должно потребовать изменения существующего кода (проверку типа с помощью оператора case/switch делать нельзя).
4) Изучение расширяемого программирования. Доработать графический редактор таким образом, чтобы в него можно было добавить новый модуль с классом Trapezium. Добавление нового модуля должно произойти таким образом, чтобы в графическом редакторе не изменилась ни одна строчка кода. Допускается лишь запись в главном модуле одной строки с именем нового модуля и перекомпиляция. В идеале добавление нового модуля должно выполняться его динамической загрузкой, т.е. вообще не должно требовать изменения кода программы. Это сравнительно легко реализуется лишь на языке C#, поэтому достаточно лишь обратить внимание студентов на существование такого требования в реальных системах.
В качестве следующей темы по курсу ООП предлагается "Редактор XML-документов" и следующие задания:
5) Изучение расширяемого программирования на языке C++. В библиотеке расширяемого программирования Grom существует класс PropertyTree, который позволяет загружать настройки и другие данные из XML-файлов. В этом классе существуют 4 главных свойства: name, text, items, children. Следующий пример поясняет сказанное:




...


text



За счет того, что child-элемент - это объект класса PropertyTree, можно строить в памяти и загружать из XML-файлов любые иерархии. Однако класс PropertyTree не вполне адекватно представляет XML-файл в памяти. Дело в том, что text в XML-файлах может быть "размазан" среди множества child-элементов. Например:

text1


text2


text3


...

textN



Если следовать формальному определению XML, то text - это такой же узел, как и child. Кроме того, даже атрибут - item - это child-узел. Т.е. XML должен быть построен следующим образом. Существует базовый класс - XMLNode. Он представляет собой любой узел XML-дерева. В нем есть список дочерних узлов. Дочерние узлы представляются производными классами: XMLAttribute - item, XMLText - text, XMLElement - child, XMLComment - коментарий, XMLCData - любые данные в формате ASCII, XMLInstruction - указание кодировки/схемы. Необходимо изучить класс PropertyTree в библиотеке Grom, а также интерфейсы библиотеки MSXML от Microsoft и создать в библиотеке Grom классы, реализующие полную поддержку XML. Написать тестовую программу, которая загружает XML в память, редактирует его и сохраняет на диск. Проверить правильность работы собственных классов с помощью классов MSXML. Таким образом, студенты ознакомятся с концепциями библиотеки Grom и одновременно изучат формат XML.
6) Построение программных компонентов. Переработать классы задания 5 так, чтобы их можно было использовать из программ, написанных на других языках программирования. Для этого воспользоваться понятием интерфейса. Допускается применение языка C++/CLI (это позволит воспользоваться классами на платформе .NET).
Ссылка на библотеку Grom: http://sourceforge.net/projects/grom/
страница 1


Смотрите также:





     

скачать файл




 



 

 
 

 

 
   E-mail:
   © zaeto.ru, 2018