- Создать класс Employee, который содержит информацию о Ф. И. О., отделе и зарплате сотрудника. Отделы для простоты должны быть названы от 1 до 5.
- Добавить статическую переменную-счетчик, которая будет отвечать за id.
- Добавить в класс Employee поле id, которое проставляется из счетчика, а затем счетчик увеличивает свое значение.
- Добавить возможность получать значения полей из Employee (геттеры) для всех полей.
- Добавить возможность устанавливать значения полей отдела и зарплаты (сеттеры).
- По умолчанию все поля должны передавать через конструктор (кроме id) и заполняться в нем (включая id, который нужно получить из счетчика).
- Создать внутри класса с методом main поле типа Employee[10], которое будет выполнять роль «хранилища» для записей о сотрудниках.
- Создать статические методы, которые будут взаимодействовать с массивом и предоставлять результат:
- Получить список всех сотрудников со всеми имеющимися по ним данными (вывести в консоль значения всех полей (toString)).
- Посчитать сумму затрат на зарплаты в месяц.
- Найти сотрудника с минимальной зарплатой.
- Найти сотрудника с максимальной зарплатой.
- Подсчитать среднее значение зарплат (можно использовать для этого метод из пункта b).
- Получить Ф. И. О. всех сотрудников (вывести в консоль).
1.1
Создать дополнительные статические методы для решения следующих задач.
- Проиндексировать зарплату (вызвать изменение зарплат у всех сотрудников на величину аргумента в %).
- Получить в качестве параметра номер отдела (1–5) и найти (всего 6 методов):
- Сотрудника с минимальной зарплатой.
- Сотрудника с максимальной зарплатой.
- Сумму затрат на зарплату по отделу.
- Среднюю зарплату по отделу (учесть, что количество людей в отделе отличается от employees.length).
- Проиндексировать зарплату всех сотрудников отдела на процент, который приходит в качестве параметра.
- Напечатать всех сотрудников отдела (все данные, кроме отдела).
- Получить в качестве параметра число и найти:
- Всех сотрудников с зарплатой меньше числа (вывести id, Ф. И. О. и зарплатой в консоль).
- Всех сотрудников с зарплатой больше (или равно) числа (вывести id, Ф. И. О. и зарплатой в консоль).
1.2
Привести структуру проекта к ООП.
- Создать класс EmployeeBook.
- Перенести хранилище сотрудников в него (массив), закрыть к нему доступ извне (сделать приватным).
- Все статические методы по работе с массивом перенести в этот класс и сделать нестатическими.
- Добавить несколько новых методов:
- Добавить нового сотрудника (создаем объект, заполняем поля, кладем в массив). Нужно найти свободную ячейку в массиве и добавить нового сотрудника в нее. Искать нужно всегда с начала, так как возможно добавление в ячейку удаленных ранее сотрудников.
- Удалить сотрудника (находим сотрудника по Ф. И. О. и/или id, обнуляем его ячейку в массиве).
- Изменить сотрудника (получить сотрудника по Ф. И. О., модернизировать его запись):
- Изменить зарплату.
- Изменить отдел. Придумать архитектуру. Сделать или два метода, или один, но продумать его.
- Получить Ф. И. О. всех сотрудников по отделам (напечатать список отделов и их сотрудников).
- Критерии оценки
- – Создан приватный класс EmployeeBook.
- – Данные о сотрудниках перенесены в приватный класс EmployeeBook.
- – Реализованы метод добавления нового сотрудника.
- – Реализован метод удаления сотрудника.
- – Реализован метод изменения зарплаты сотрудника.
- – Реализован метод изменения отдела.