Advertisement
Guest User

Untitled

a guest
Jul 10th, 2017
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.10 KB | None | 0 0
  1. <?php
  2. /*
  3. Задача про компанию «Вектор»
  4.  
  5. В большой международной перспективной компании «Вектор» есть 4 департамента:
  6.  департамент закупок, продаж, рекламы и логистики. В этих 4 департаментах работают
  7.  менджеры (ме), маркетологи (ма), инженеры (ин) и аналитики (ан).
  8.  
  9. Менеджер получает 500 тугриков в месяц, выпивает 20 литров кофе и производит 200 страниц отчетов в месяц
  10.  
  11. Маркетолог — 400 тугриков, 15 литров кофе и 150 страниц отчетов
  12.  
  13. Инженер — 200 тугриков, 5 литров кофе и 50 страниц чертежей
  14.  
  15. Аналитик — 800 тугриков и 50 литров кофе и 5 страниц стратегических исследований
  16.  
  17. Кроме того, все сотрудники бывают 3 рангов: первого, второго и третьего.
  18. Сотрудник второго ранга получает на 25% больше, чем первого, а сотрудник 3-го ранга - на 50% больше, чем первого.
  19.  
  20. Для удобства, мы будем обозначать должность сокращенно, например менеджер 2-го ранга = ме2.
  21.  
  22. Вот состав департаментов:
  23.  
  24. Департамент закупок: 9×ме1, 3×ме2, 2×ме3, 2×ма1 + руководитель департамента ме2
  25. Департамент продаж: 12×ме1, 6×ма1, 3×ан1, 2×ан2 + руководитель ма2
  26. Департамент рекламы: 15×ма1, 10×ма2, 8×ме1, 2×ин1 + руководитель ма3
  27. Департамент логистики: 13×ме1, 5×ме2, 5×ин1 + руководитель ме1
  28. Руководитель получает на 50% больше, чем обычный сотрудник того же уровня,
  29.  пьет в 2 раза больше кофе, и не производит отчетов, чертежей или стратегических исследований.
  30.  
  31. Задание: напиши программу для учета расходов и результатов работы всего дружного коддектива компании «Вектор».
  32.  Программа должна вывести:
  33.  
  34. Число сотрудников в каждом департаменте
  35. Расходы на зарплату и на кофе по каждому департаменту и в сумме
  36. Число страниц документов и отчетов, которые производят каждый департамент и в сумме
  37. Посчитать средний расход тугриков на одну страницу
  38. Вывести результаты можно примерно так:
  39.  
  40. Департамент   сотр.     тугр.     кофе   стр.   тугр./стр.
  41. -----------------------------------------------------------------------
  42. Закупок          25     45040      100     10        450.4
  43. Продаж           14     56000      150     12        560
  44. ....
  45.  
  46. Среднее        23.5     35600      170     15        500
  47. Всего           120    120000      220     34       2000
  48. Программа должна быть сделана так, чтобы исходные данные о сотрудниках можно было легко поменять.
  49.  Должна быть возможность добавлять новые профессии, не меняя старые классы.
  50. */
  51.  
  52. class Department
  53. {
  54.   public $name;       //название департамента
  55.   public $staff;      //штат сотрудников(массив объектов)
  56.   public $population; //общее количество людей в компании
  57.  
  58.   public function __constructor($name)
  59.   {
  60.     $this->name=$name;
  61.   }
  62. }
  63.  
  64. abstract class Coworker extends Department //класс Сотрудник
  65. {
  66.   public $rank;         //ранг 1,2,3
  67.   public $profession;   //профессия
  68.   public $basic_salary; //базовая ставка
  69.   public $boss;         //является ли боссом
  70. }
  71.  
  72.  
  73. class Manager extends Coworker
  74. {
  75.   public $basic_salary = 500;
  76.   public $coffee = 20;
  77.   public $report = 200; //отчет
  78.  
  79.   public function __constructor($rank)
  80.   {
  81.     $this->rank=$rank;
  82.   }
  83. }
  84.  
  85. class Marketer extends Coworker
  86. {
  87.   public $basic_salary = 400;
  88.   public $coffee = 15;
  89.   public $report = 150; //отчет
  90. }
  91.  
  92. class Engineer extends Coworker
  93. {
  94.   public $basic_salary = 200;
  95.   public $coffee = 5;
  96.   public $report = 50; //отчет
  97. }
  98.  
  99. class Analyst extends Coworker
  100. {
  101.   public $basic_salary = 800;
  102.   public $coffee = 50;
  103.   public $report = 5; //отчет
  104. }
  105.  
  106. //департамент закупок
  107. $buy=new Department('buy');
  108. echo $buy->name;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement