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