Домашнее задание к занятиям “3. Базовые типы и модель памяти, 4. Управляющие конструкции, объекты, классы”
Необходимо написать программу “Оборудование организации”.
Программа выполняется в виде простой программы, которая запускается без параметров, и производит всю работу без каких либо вопросов. Просто выполняет то, что в ней написано.
Все нужные объекты создаются в методе main, как в примерах программ на лекции. Программа работает в двумя видами объектов - Сотрудники и Оборудование.
Данные о сотруднике
- должность *
- ФИО *
- телефон
- название отдела *
- список закрепленного оборудования
Данные об оборудовании
- тип оборудования (например, компьютер, телефон, принтер, ИБП) *
- стоимость (целое число) *
-
IP адрес
Требования к функциональности программы:
-
Предусмотреть конструкторы объектов с указанием краткой и полной информации (часть полей помеченных звёздочкой обязательные)
-
Реализовать класс InfoPrinter - в данном классе реализовать методы, которые выводят на экран информацию:
- Оборудование отдела (на входе название отдела), включаемое в сеть, на выходе массив строк - “ip адрес, ФИО сотрудника”. Выводит только те объекты, у которых есть IP адрес.
- Общая стоимость оборудования отдела (на входе название отдела), на выходе целое число.
- Состав отдела (на входе название отдела), на выходе массив строк - “ФИО, должность”.
- Метода подсчёта количества оборудования в отделе по типам - на входе название отдела, на выходе массив строк в формате: “Тип оборудования - количество”.
Условия реализации:
- “Список сотрудников, список оборудования” - массивы объектов (коллекции пока не используем, достаточно обычного массива).
- В классах используемых для описания данных о сотрудниках, оборудовании, программном обеспечении обязательно должна присутствовать иерархия наследования. Например, абстрактный класс Device, наследники PersonalComputer, Phone и т.д. (соответствуют типу оборудования); абстрактный класс Employee, наследники NetworkAdministrator, Manager, SoftwareDeveloper и т.д. (соответствуют должности сотрудника).
- Необходимо создать Unit-тесты для методов класса InfoPrinter.
- Все классы размещаем в пакете com.eltex.study.
- Программа выполняется в виде простого приложения (запуск из командной строки, либо средствами IDE).
- Каждое оборудование закреплено за одним единственным сотрудником. Нет общего оборудования. Нет оборудования без хозяина.
Программу необходимо оформить в виде проекта в gitflic. В проекте должны быть ветки main (в ней только inital commit, не содержит реализацию задания) и ветку feature/orgdevices (в ней вся реализация). В качестве отчёта прикладываем cсылку на merge-request ветки feature/orgdevice в main. Комментарии к коду будут даны в gitflic. В ветку main также необходимо добавить следующий файл “.gitignore” (приложен к заданию) - отличие от файла из задания “Основы git” - исключен каталог .idea (в задании Основы Git был приведен файл который частично исключает настройки (больше подходит для корпоративной разработки - где должны применяться одинаковые настройки окружения для idea, в учебных проектах удобнее исключить весь каталог .idea)).