Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /*
- Задача про компанию «Вектор»
- В большой международной перспективной компании «Вектор» есть 4 департамента:
- департамент закупок, продаж, рекламы и логистики. В этих 4 департаментах работают
- менджеры (ме), маркетологи (ма), инженеры (ин) и аналитики (ан).
- Менеджер получает 500 тугриков в месяц, выпивает 20 литров кофе и производит 200 страниц отчетов в месяц
- Маркетолог — 400 тугриков, 15 литров кофе и 150 страниц отчетов
- Инженер — 200 тугриков, 5 литров кофе и 50 страниц чертежей
- Аналитик — 800 тугриков и 50 литров кофе и 5 страниц стратегических исследований
- Кроме того, все сотрудники бывают 3 рангов: первого, второго и третьего.
- Сотрудник второго ранга получает на 25% больше, чем первого, а сотрудник 3-го ранга - на 50% больше, чем первого.
- Для удобства, мы будем обозначать должность сокращенно, например менеджер 2-го ранга = ме2.
- Вот состав департаментов:
- Департамент закупок: 9×ме1, 3×ме2, 2×ме3, 2×ма1 + руководитель департамента ме2
- Департамент продаж: 12×ме1, 6×ма1, 3×ан1, 2×ан2 + руководитель ма2
- Департамент рекламы: 15×ма1, 10×ма2, 8×ме1, 2×ин1 + руководитель ма3
- Департамент логистики: 13×ме1, 5×ме2, 5×ин1 + руководитель ме1
- Руководитель получает на 50% больше, чем обычный сотрудник того же уровня,
- пьет в 2 раза больше кофе, и не производит отчетов, чертежей или стратегических исследований.
- Задание: напиши программу для учета расходов и результатов работы всего дружного коддектива компании «Вектор».
- Программа должна вывести:
- Число сотрудников в каждом департаменте
- Расходы на зарплату и на кофе по каждому департаменту и в сумме
- Число страниц документов и отчетов, которые производят каждый департамент и в сумме
- Посчитать средний расход тугриков на одну страницу
- Вывести результаты можно примерно так:
- Департамент сотр. тугр. кофе стр. тугр./стр.
- -----------------------------------------------------------------------
- Закупок 25 45040 100 10 450.4
- Продаж 14 56000 150 12 560
- ....
- Среднее 23.5 35600 170 15 500
- Всего 120 120000 220 34 2000
- Программа должна быть сделана так, чтобы исходные данные о сотрудниках можно было легко поменять.
- Должна быть возможность добавлять новые профессии, не меняя старые классы.
- */
- class Department
- {
- public $name; //название департамента
- public $staff; //штат сотрудников(массив объектов)
- public $population; //общее количество людей в компании
- public function __constructor($name)
- {
- $this->name=$name;
- }
- }
- abstract class Coworker extends Department //класс Сотрудник
- {
- public $rank; //ранг 1,2,3
- public $profession; //профессия
- public $basic_salary; //базовая ставка
- public $boss; //является ли боссом
- }
- class Manager extends Coworker
- {
- public $basic_salary = 500;
- public $coffee = 20;
- public $report = 200; //отчет
- public function __constructor($rank)
- {
- $this->rank=$rank;
- }
- }
- class Marketer extends Coworker
- {
- public $basic_salary = 400;
- public $coffee = 15;
- public $report = 150; //отчет
- }
- class Engineer extends Coworker
- {
- public $basic_salary = 200;
- public $coffee = 5;
- public $report = 50; //отчет
- }
- class Analyst extends Coworker
- {
- public $basic_salary = 800;
- public $coffee = 50;
- public $report = 5; //отчет
- }
- //департамент закупок
- $buy=new Department('buy');
- echo $buy->name;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement