Перечень тем лабораторных занятий, их наименование и объем в часах




 

№ пп Название темы Содержание Объем в часах (ауд.)
       
Пятый семестр
  Изучение иерархий классов и виртуальных методов Построить иерархию классов для вывода графических фигур: отрезок, прямоугольник, эллипс и т.д. Распределить классы по модулям. Создать список фигур в виде отдельного класса. В главном модуле программно добавить в список различные фигуры. Запустить рисование списка. Выполнить задание на языке Delphi, C++, C# или Java. Для рисования использовать любую подходящую графическую библиотеку. Если изучение графической библиотеки вызывает затруднение, допускается вывод фигур в файл или на экран в виде текстовых строк вида "Rectangle(10, 20, 30, 40)".  
  Ознакомление с расширяемым программированием Расширить пример с графическими фигурами так, чтобы фигуры можно было создавать на уровне пользовательского интерфейса. Существуют несколько способов: ввод координат с помощью мыши, диалоговый ввод значений, ввод на скриптовом языке. Студент может выбрать любой способ ввода. Создание объекта должно выполняться так, чтобы добавление нового класса в систему не требовало изменения существующего кода (выбор типа с помощью оператора case/switch делать нельзя). Получившаяся программа должна представлять собой примитивный графический редактор.  
  Изучение сериализации объектов Добавить в графический редактор возможность сохранять список графических объектов в файл и восстанавливать его из файла. Пользователь должен получить возможность расширять созданные ранее графические файлы новыми фигурами. При сериализации учесть, что добавление нового класса в систему не должно потребовать изменения существующего кода (проверку типа с помощью оператора case/switch делать нельзя).  
  Изучение расширяемого программирования Доработать графический редактор таким образом, чтобы в него можно было добавить новый модуль с классом Trapezium. Добавление нового модуля должно произойти таким образом, чтобы в графическом редакторе не изменилась ни одна строчка кода. Допускается лишь запись в главном модуле одной строки с именем нового модуля и перекомпиляция. В идеале добавление нового модуля должно выполняться его динамической загрузкой, т.е. вообще не должно требовать изменения кода программы. Это сравнительно легко реализуется лишь на языке C#, поэтому достаточно лишь обратить внимание студентов на существование такого требования в реальных системах.  
  Изучение расширяемого программирования на языке C++ В библиотеке расширяемого программирования Grom (https://sourceforge.net/projects/grom/) существует класс PropertyTree, который позволяет загружать настройки и другие данные из XML-файлов. В этом классе существуют 4 главных свойства: name, text, items, children. Следующий пример поясняет сказанное: <name item1="..." item2="..."... itemN="..."> <child1.../> <child2.../> ... <childN.../> text </name> За счет того, что child-элемент - это объект класса PropertyTree, можно строить в памяти и загружать из XML-файлов любые иерархии. Однако класс PropertyTree не вполне адекватно представляет XML-файл в памяти. Дело в том, что text в XML-файлах может быть "размазан" среди множества child-элементов. Например: <name item1="..."... itemN="..."> text1 <child1.../> text2 <child2.../> text3 ... <childN.../> textN </name> Если следовать формальному определению 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.  
  Построение программных компонентов Переработать классы задания 5 так, чтобы их можно было использовать из программ, написанных на других языках программирования. Для этого воспользоваться понятием интерфейса. Допускается применение языка C++/CLI (это позволит воспользоваться классами на платформе.NET).  
Итого: 5 семестр  
Всего за учебный год  

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-08-20 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: