fork download
  1. <?php
  2.  
  3. // archive-ipq-co.narod.ru
  4.  
  5. abstract class Worker
  6. {
  7.  
  8. public $rang; // Ранг сотрудника 1-3
  9. public $dicrementcoffe; // выжрано кофе
  10. public $stavka; // начальная ставка
  11. public $mainingDocument; // Произвел документов
  12. public $endStavka; // окончательная ставка, вычисляется через функцию EndStavka
  13. public $boss = false; // является ли сотрудник начальником
  14. public function __construct(){$this->endStavka=$this->getendStavka();}
  15.  
  16. public function getendStavka()
  17. { $percent=1;
  18. if ($this->rang==2)
  19. {
  20. $percent=1.25;
  21. }
  22. elseif ($this->rang==3)
  23. {
  24. $percent=1.5;
  25. }
  26. else
  27. {
  28. $percent=1;
  29. }
  30.  
  31. $endStavkaB = $this->stavka * $percent;
  32.  
  33. if ($this->boss)
  34. {
  35. $endStavkaB *= 1.5;
  36. }
  37. return $endStavkaB;
  38. }
  39. }
  40.  
  41. class Menedger extends Worker
  42. {
  43.  
  44.  
  45. public $dicrementcoffe = 20;
  46. public $stavka = 500;
  47. public $mainingDocument = 200;
  48. }
  49. class Market extends Worker
  50. {
  51. public $dicrementcoffe = 15;
  52. public $stavka = 400;
  53. public $mainingDocument = 150;
  54. }
  55. class Engeener extends Worker
  56. {
  57. public $dicrementcoffe = 5;
  58. public $stavka = 200;
  59. public $mainingDocument = 50;
  60. }
  61. class Analitic extends Worker
  62. {
  63. public $dicrementcoffe = 50;
  64. public $stavka = 800;
  65. public $mainingDocument = 5;
  66. }
  67. class Departament // возвращает массив с работниками в каждом департаменте
  68. { public $name;
  69. public $workers;
  70. public $menedgerA; //1 rang
  71. public $menedgerB; //2 rang
  72. public $menedgerC; //3 rang
  73. public $menedgerBoss;
  74. public $menedgerthere_Boss=0;//Руководитель
  75. // инженеры
  76. public $engeenerA; //1 rang
  77. public $engeenerB; //2 rang
  78. public $engeenerC; //3 rang
  79. public $engeenerBoss;
  80. public $engeenerthere_Boss=0;//Руководитель
  81. //маркетологи
  82. public $marketA;//1 rang
  83. public $marketB;//2 rang
  84. public $marketC;//3 rang
  85. public $marketBoss;
  86. public $marketthere_Boss=0;//Руководитель (его ранг)
  87. //аналитики
  88. public $analiticA; //1 rang
  89. public $analiticB; //2 rang
  90. public $analiticC; //3 rang
  91. public $analiticBoss;
  92. public $analiticthere_Boss=0;
  93. public function __construct(){$this->workers=$this->quantityWorker();}
  94. public function quantityWorker () // Возвращает массив с сотрудниками
  95. {
  96. for ($i=0; $i<$this->menedgerA; $i++) // заносим в массив менеджеров 1й ранг
  97. {
  98. $w = new Menedger;
  99. $w->rang = 1;
  100. $w->getendStavka();
  101. $w->__construct();
  102. $workers[] = $w;
  103. }
  104. for ($i=0; $i<$this->menedgerB; $i++) // заносим в массив менеджеров 2й ранг
  105. {
  106. $w = new Menedger;
  107. $w->rang = 2;
  108. $w->getendStavka();
  109. $w->__construct();
  110. $workers[] = $w;
  111. }for ($i=0; $i<$this->menedgerC; $i++) // заносим в массив менеджеров 1й ранг
  112. {
  113. $w = new Menedger;
  114. $w->rang = 3;
  115. $w->getendStavka();
  116. $w->__construct();
  117. $workers[] = $w;
  118. }
  119. for ($i=0; $i<$this->menedgerthere_Boss; $i++) // заносим в массив менеджеров руководителей
  120. {
  121. $w = new Menedger;
  122. $w->rang = $this->menedgerBoss;
  123. $w->boss = true;
  124. $w->getendStavka();
  125. $w->__construct();
  126. $workers[] = $w;
  127. }for ($i=0; $i<$this->engeenerA; $i++) // заносим в массив инженеров 1й ранг
  128. {
  129. $w = new Engeener;
  130. $w->rang = 1;
  131. $w->getendStavka();
  132. $w->__construct();
  133. $workers[] = $w;
  134. }for ($i=0; $i<$this->engeenerB; $i++) // заносим в массив инжей 2й ранг
  135. {
  136. $w = new Engeener;
  137. $w->rang = 2;
  138. $w->getendStavka();
  139. $w->__construct();
  140. $workers[] = $w;
  141. }for ($i=0; $i<$this->engeenerC; $i++) // заносим в массив инжей 3й ранг
  142. {
  143. $w = new Engeener;
  144. $w->rang = 3;
  145. $w->getendStavka();
  146. $w->__construct();
  147. $workers[] = $w;
  148. }
  149. for ($i=0; $i<$this->engeenerthere_Boss; $i++) // заносим в массив инжей боссов
  150. {
  151. $w = new Engeener;
  152. $w->rang =$this->engeenerBoss;
  153. $w->boss = true;
  154. $w->getendStavka();
  155. $w->__construct();
  156. $workers[] = $w;
  157. }
  158. for ($i=0; $i<$this->marketA; $i++) // заносим в массив маркетологов 1
  159. {
  160. $w = new Market;
  161. $w->rang = 1;
  162. $w->getendStavka();
  163. $w->__construct();
  164. $workers[] = $w;
  165. }
  166. for ($i=0; $i<$this->marketB; $i++) // заносим в массив маркетологов 2
  167. {
  168. $w = new Market;
  169. $w->rang = 2;
  170. $w->getendStavka();
  171. $w->__construct();
  172. $workers[] = $w;
  173. }
  174. for ($i=0; $i<$this->marketC; $i++) // заносим в массив мfhrtnjkjujd 3
  175. { $w = new Market;
  176. $w->rang = 3;
  177. $w->getendStavka();
  178. $w->__construct();
  179. $workers[] = $w;
  180. }
  181. for ($i=0; $i<$this->marketthere_Boss; $i++) // заносим в массив Boss Market
  182. {
  183. $w = new Market;
  184. $w->rang =$this->marketBoss;
  185. $w->boss = true;
  186. $w->getendStavka();
  187. $w->__construct();
  188. $workers[] = $w;
  189. }
  190. for ($i=0; $i<$this->analiticA; $i++) // заносим в массив Analitic 1
  191. {
  192. $w = new Analitic;
  193. $w->rang = 1;
  194. $w->getendStavka();
  195. $w->__construct();
  196. $workers[] = $w;
  197. }for ($i=0; $i<$this->analiticB; $i++) // заносим в массив Analitic 2
  198. {
  199. $w = new Analitic;
  200. $w->rang = 2;
  201. $w->getendStavka();
  202. $w->__construct();
  203. $workers[] = $w;
  204. }for ($i=0; $i<$this->analiticC; $i++) // Analitic 3
  205. {
  206. $w = new Analitic;
  207. $w->rang = 3;
  208. $w->getendStavka();
  209. $w->__construct();
  210. $workers[] = $w;
  211. }
  212. for ($i=0; $i<$this->analiticthere_Boss; $i++) // Analitic BoSS
  213. {
  214. $w = new Analitic;
  215. $w->rang = $this->analiticBoss;
  216. $w->boss = true;
  217. $w->getendStavka();
  218. $w->__construct();
  219. $workers[] = $w;
  220. }
  221. return $workers;
  222. }
  223. public function totalcalc()
  224. {
  225. $totalCoffe=0;
  226. $totalDocument=0;
  227. $totalRate=0;
  228. $countOfWorker = count($this->workers);
  229. for ($i=0; $i<$countOfWorker; $i++) // считает бабло,коффе и документы
  230. {
  231. $rate = $this->workers[$i]->endStavka;
  232. $totalRate = $totalRate + $rate; //выплаченное бабло всем сотрудником
  233. $coffe = $this->workers[$i]->dicrementcoffe;
  234. $totalCoffe = $totalCoffe + $coffe; //всего кофе выпито в департаменте
  235. $document = $this->workers[$i]->mainingDocument;
  236. $totalDocument = $totalDocument + $document;
  237. }
  238. return [$totalRate, $totalCoffe, $totalDocument,$countOfWorker];
  239. }
  240.  
  241. }
  242. //Департамент продаж: 12×ме1, 6×ма1, 3×ан1, 2×ан2 + руководитель ма2
  243. //Департамент рекламы: 15×ма1, 10×ма2, 8×ме1, 2×ин1 + руководитель ма3
  244. //Департамент логистики: 13×ме1, 5×ме2, 5×ин1 + руководитель ме1
  245. class ProcurementDivision extends Departament
  246. {
  247. public $name = "Закупок";
  248. public $menedgerA=9;
  249. public $menedgerB=3;
  250. public $menedgerC=2;
  251. public $marketA=2;
  252. public $menedgerBoss=2; //Ранг руководителя
  253. public $menedgerthere_Boss=1;
  254. }
  255. class MarketDivision extends Departament
  256. {
  257.  
  258. public $name = "Рекламы";
  259. public $menedgerA=8;
  260. public $engeenerA=2;
  261. public $marketA=15;
  262. public $marketB=10;
  263. public $marketBoss=3; //Ранг руководителя
  264. public $marketthere_Boss=1;
  265. }
  266. class SellerDivision extends Departament
  267. { public $name = "Продаж";
  268. public $menedgerA=12;
  269. public $marketA=6;
  270. public $analiticA=3;
  271. public $marketBoss=2; //Ранг руководителя
  272. public $marketthere_Boss=1;
  273. }
  274. class LogisticDivision extends Departament
  275. { public $name = "Логистики";
  276. public $menedgerA=13;
  277. public $menedgerB=5;
  278. public $engeenerA=5;
  279. public $menedgerBoss=1;
  280. public $menedgerthere_Boss=1;
  281. }
  282.  
  283.  
  284. $quest = new ProcurementDivision;
  285. list($quest->totalRate, $quest->totalCoffe, $quest->totalDocument,$quest->countOfWorker)=$quest->totalcalc();
  286. $quest1 = new MarketDivision;
  287. list($quest1->totalRate, $quest1->totalCoffe, $quest1->totalDocument,$quest1->countOfWorker)=$quest1->totalcalc();
  288. $quest2 = new SellerDivision;
  289. list($quest2->totalRate, $quest2->totalCoffe, $quest2->totalDocument,$quest2->countOfWorker)=$quest2->totalcalc();
  290. $quest3 = new LogisticDivision;
  291. list($quest3->totalRate, $quest3->totalCoffe, $quest3->totalDocument,$quest3->countOfWorker)=$quest3->totalcalc();
  292.  
  293. echo '<html>
  294. <head>
  295. <meta charset="utf-8">
  296. <title>Тег table</title>
  297. </head>
  298. <body>
  299. <table border="1">
  300. <tr>
  301. <th>Департамент</th>
  302. <th>Сотрудников</th>
  303. <th>Тугриков</th>
  304. <th>Кофе</th>
  305. <th>Страниц</th>
  306. <th>Кофе/страниц</th>
  307. </tr>
  308. <tr>
  309. <td> '.$quest->name.' </td>
  310. <td>'.$quest->countOfWorker.'</td>
  311. <td>'.$quest->totalRate.'</td>
  312. <td>'.$quest->totalCoffe.'</td>
  313. <td>'.$quest->totalDocument.'</td>
  314. <td>Ячейка 4</td>
  315. </tr>
  316. <tr>
  317. <td> '.$quest2->name.' </td>
  318. <td>'.$quest2->countOfWorker.'</td>
  319. <td>'.$quest2->totalRate.'</td>
  320. <td>'.$quest2->totalCoffe.'</td>
  321. <td>'.$quest2->totalDocument.'</td>
  322. <td>Ячейка 4</td>
  323. </tr>
  324. <tr>
  325. <td> '.$quest3->name.' </td>
  326. <td>'.$quest3->countOfWorker.'</td>
  327. <td>'.$quest3->totalRate.'</td>
  328. <td>'.$quest3->totalCoffe.'</td>
  329. <td>'.$quest3->totalDocument.'</td>
  330. <td>Ячейка 4</td>
  331. </tr>
  332. <tr>
  333. <td> '.$quest1->name.' </td>
  334. <td>'.$quest1->countOfWorker.'</td>
  335. <td>'.$quest1->totalRate.'</td>
  336. <td>'.$quest1->totalCoffe.'</td>
  337. <td>'.$quest1->totalDocument.'</td>
  338. <td>Ячейка 4</td>
  339.  
  340. </tr>
  341. </table>
  342. </body>
  343. </html>';
  344.  
  345.  
Success #stdin #stdout 0s 82880KB
stdin
Standard input is empty
stdout
<html>
 <head>
  <meta charset="utf-8">
  <title>Тег table</title>
 </head>
 <body>
  <table border="1">
   <tr>
    <th>Департамент</th>
    <th>Сотрудников</th>
	<th>Тугриков</th>
	<th>Кофе</th>
	<th>Страниц</th>
	<th>Кофе/страниц</th>
   </tr>
   <tr>
    <td> Закупок </td>
    <td>17</td>
	<td>9612.5</td>
	<td>330</td>
	<td>3300</td>
	<td>Ячейка 4</td>
	</tr>
   <tr>
    <td> Продаж </td>
    <td>22</td>
	<td>11550</td>
	<td>495</td>
	<td>3465</td>
	<td>Ячейка 4</td>
	</tr>
   <tr>
    <td> Логистики </td>
    <td>24</td>
	<td>11375</td>
	<td>405</td>
	<td>4050</td>
	<td>Ячейка 4</td>
	</tr>
   <tr>
    <td> Рекламы </td>
    <td>36</td>
	<td>16300</td>
	<td>560</td>
	<td>5600</td>
	<td>Ячейка 4</td>
	
  </tr>
 </table>
 </body>
</html>