Постановка задачи.Разработать объектную программу для хранения и обработки данных о проектах, выполняемых крупным IT-предприятием. Предприятие - набор отделов с уникальными названиями. Каждый отдел ведет свой список проектов, в котором каждый проект имеет уникальное название и параметр «Объем финансирования».Разработка включает в себя:·определение необходимых объектов и способов их взаимодействия·формальное описание объектов в виде классов·программную реализацию всех необходимых методов, включая подсчет общего объема финансирования по каждому отделу и предприятию в целом·всестороннее тестирование методов с помощью консольного (при разработке) и оконного (в окончательном варианте) приложения. Для объединения отделов используется структура данных в виде адресной очереди с заголовочным элементом. Для объединения проектов в отделах используется структура данных в виде неупорядоченного списка на основе массива .Общая информация для всех темРазработка выполняется с учетом следующих требований:·имена классов, свойств и методов должны носить содержательный смысл и соответствовать информационной задаче·обязательное соблюдение принципа инкапсуляции – использование в классах только закрытых свойств и реализация необходимого набора методов доступа·наличие двух методов для сохранения всей объектной структуры во внешнем файле с обратной загрузкой, при этом стандартные механизмы сериализации разрешается использовать только как дополнение к самостоятельно реализованным методам· тестовое оконное приложение должно обладать удобным пользовательским интерфейсом с контролем вводимых данных и отображением текущего состояния объектной структуры с помощью табличных компонентов·стандартные контейнеры/коллекции (включая обобщенные классы) разрешается использовать только как дополнение к самостоятельно разработанным классам·в качестве языка разработки разрешается использовать Java, С#, Object/Free Pascal и соответствующие инструменты быстрой разработки приложений.·разработка должна выполняться по этапам с обязательным отчетом по каждому этапуКраткое описание этапов разработки:1. Анализ исходной задачи, выделение необходимых объектов, определение способов их взаимодействия и формальное описание объектов на уровне классов (набор свойств и заголовков методов)2. Программная реализация всех методов и их проверка на консольном приложении для различных ситуаций с предоставлением набора скриншотов с краткими пояснениями3. Программная реализация оконного приложения в соответствии с указанными требованиями4. Оформление пояснительной записки (отчета по работе) в соответствии с приводимым ниже содержанием