Skip to content

Графический редактор (ООТПиСП часть 1, 4 семестр, ЛР №1-4)

Notifications You must be signed in to change notification settings

chiki-takipavel/OOP

Repository files navigation

OOP

Лабораторная работа №1. Иерархия

Построить иерархию классов для вывода графических фигур: отрезок, прямоугольник, эллипс и т.д. Распределить классы по модулям. Создать список фигур в виде отдельного класса. В главном модуле программно добавить в список различные фигуры. Запустить рисование списка. Для рисования использовать любую подходящую графическую библиотеку. Допускается вывод фигур в файл или на экран в виде текстовых строк вида "Rectangle(10, 20, 30, 40)".

Image alt

Лабораторная работа №2. UI

Расширить пример с графическими фигурами так, чтобы фигуры можно было создавать на уровне пользовательского интерфейса. Можно выбрать любой способ: ввод координат с помощью мыши, диалоговый ввод значений, ввод на скриптовом языке. Создание объекта должно выполняться так, чтобы добавление нового класса в систему не требовало изменения существующего кода (выбор с помощью оператора switch-case делать нельзя). Получившаяся программа должна представлять собой примитивный графический редактор.

Image alt

Лабораторная работа №3. Сериализация

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

Image alt

Лабораторная работа №4. Плагины

Доработать графический редактор таким образом, чтобы в него можно было добавить новый модуль с классом Trapezium. Добавление нового модуля должно произойти таким образом, чтобы в графическом редакторе не изменилась ни одна строчка кода. Допускается лишь запись в главном модуле одной строки с именем нового модуля и перекомпиляция. В идеале добавление нового модуля должно выполняться его динамической загрузкой, т.е. вообще не должно требовать изменения кода программы (данное требование сравнительно легко реализуется на языке C#, необходимо обратить внимание на существование такого требования в реальных системах).

Image alt

About

Графический редактор (ООТПиСП часть 1, 4 семестр, ЛР №1-4)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages