fork(1) download
  1. <?php
  2.  
  3. // archive-ipq-co.narod.ru
  4.  
  5. class Employee
  6. {
  7. public $name; // имя-фамилия
  8. public $rate; // часовая ставка (сколько он получает тугриков за час работы)
  9. public $hours = array(); // массив, содержащий отработанные часы по неделям
  10.  
  11. public function __construct($name, $rate)
  12. {
  13. // задаем имя и часовую ставку
  14. $this->name = $name;
  15. $this->rate = $rate;
  16. }
  17.  
  18. /** Считает общее число отработанных часов */
  19. public function getTotalHoursWorked()
  20. {
  21. // Просто складываем значения часов в массиве
  22. return array_sum($this->hours);
  23. }
  24.  
  25. /** Считает зарплату */
  26. public function getSalary()
  27. {
  28. // Получаем число отработанных часов
  29. $hours = $this->getTotalHoursWorked();
  30. // и умножаем на часовую ставку
  31. $salary = $hours * $this->rate;
  32. return $salary;
  33. }
  34.  
  35. }
  36.  
  37.  
  38. $ivan = new Employee("Иванов Иван", 10);
  39. // name и rate заданы через конструктор, потому осталось лишь написать часы
  40. $ivan->hours = array(40, 40, 40, 40); // Иван работает по 40 часов в неделю
  41.  
  42. $peter = new Employee("Петров Петр", 8);
  43. $peter->hours = array(40, 10, 40, 50); // Петр взял отгул и потому отработал меньше часов,
  44. // но в последнюю неделю решил поработать побольше
  45.  
  46. $employees = array($ivan, $peter);
  47.  
  48. // Функции padLeft и padRight оп проверь их на правильность, пожалуйста
  49.  
  50. function padLeft($string, $length){
  51. $stringLen = mb_strlen($string);
  52. //объявляем переменную для пустого пространства
  53. $space ="";
  54. for (;$stringLen < $length; $stringLen++){
  55. $space .= " ";
  56. }
  57. echo "$space$string";
  58.  
  59. }
  60.  
  61. function padRight($string, $length){
  62. $stringLen = mb_strlen($string);
  63. //объявляем переменную для пустого пространства
  64. $space ="";
  65. for (;$stringLen < $length; $stringLen++){
  66. $space .= " ";
  67. }
  68. echo "$string$space";
  69. }
  70. // Ширина колонок
  71. $col1 = 30;
  72. $col2 = 8;
  73. $col3 = 8;
  74. $col4 = 8;
  75.  
  76. // Заголовок таблицы
  77. echo padRight("Сотрудник", $col1) .
  78. padLeft("Часы", $col2) .
  79. padLeft("Ставка", $col3) .
  80. padLeft("З/п", $col4) . "\n\n";
  81.  
  82. // Сама таблица
  83. foreach ($employees as $employee) {
  84. echo padRight($employee->name, $col1) .
  85. padLeft($employee->getTotalHoursWorked(), $col2) .
  86. padLeft($employee->rate, $col3) .
  87. padLeft($employee->getSalary(), $col4) . "\n";
  88. }
  89. ?>
Runtime error #stdin #stdout #stderr 0s 82880KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
PHP Fatal error:  Uncaught Error: Call to undefined function mb_strlen() in /home/4X1L1Y/prog.php:63
Stack trace:
#0 /home/4X1L1Y/prog.php(78): padRight('\xD0\xA1\xD0\xBE\xD1\x82\xD1\x80\xD1\x83\xD0\xB4\xD0\xBD\xD0...', 30)
#1 {main}
  thrown in /home/4X1L1Y/prog.php on line 63