Modeling months of office
Задание:
Необходимо описать задачу с применением принципов ООП на языке Java или C#. При выполнении задания просьба пользоваться системами контроля версий (GitHub, Bitbucket…).
Необходимо смоделировать рабочий процесс офиса в течении одного месяца. В офисе работает 10 - 100 сотрудников (задается случайно), каждый из них имеет одну или более одной должности (задается случайно для каждого сотрудника): Программист, Дизайнер, Тестировщик, Менеджер, Директор, Бухгалтер. Каждый сотрудник имеет свой рабочий график, не более 40 часов в неделю. Каждая должность имеет свою почасовую ставку. Директор, Менеджер и Бухгалтер имеют фиксированную ставку. В фирме должны быть хотя бы один Директор, Менеджер и Бухгалтер. В процессе моделирования каждый час Директор дает одно или более одного распоряжения своим сотрудникам. Выполнение каждого распоряжения может занять от одного до двух часов каждым сотрудником, в должности которого входит выполнение поставленного задания. Сотрудник не может выполнять более одного распоряжения одновременно. Если на выполнение распоряжения в офисе не имеется ресурсов, фирма передает задание фрилансерам (удаленным сотрудникам). Каждую неделю Бухгалтер начисляет зарплату сотрудникам исходя из фактически отработанных часов. По окончании месяца необходимо сформировать суммарный отчет о выполненной работе и выданной зарплате по всем рабочим и сохранить его в текстовый документ.
Минимальный набор должностных обязанностей:
Программист – «писать код»
Дизайнер – «рисовать макет»
Тестировщик – «тестировать программу»
Менеджер – «продавать услуги»
Бухгалтер – «составить отчетность»