<?php
// archive-ipq-co.narod.ru
class Employee
{
public $name ; // имя-фамилия
public $rate ; // часовая ставка (сколько он получает тугриков за час работы)
public $hours = array ( ) ; // массив, содержащий отработанные часы по неделям
public function __construct( $name , $rate )
{
// задаем имя и часовую ставку
$this -> name = $name ;
$this -> rate = $rate ;
}
/** Считает общее число отработанных часов */
public function getTotalHoursWorked( )
{
// Просто складываем значения часов в массиве
}
/** Считает зарплату */
public function getSalary( )
{
// Получаем число отработанных часов
$hours = $this -> getTotalHoursWorked ( ) ;
// и умножаем на часовую ставку
$salary = $hours * $this -> rate ;
return $salary ;
}
}
$ivan = new Employee( "Иванов Иван" , 10 ) ;
// name и rate заданы через конструктор, потому осталось лишь написать часы
$ivan -> hours = array ( 40 , 40 , 40 , 40 ) ; // Иван работает по 40 часов в неделю
$peter = new Employee( "Петров Петр" , 8 ) ;
$peter -> hours = array ( 40 , 10 , 40 , 50 ) ; // Петр взял отгул и потому отработал меньше часов, // но в последнюю неделю решил поработать побольше
$employees = array ( $ivan , $peter ) ;
// Функции padLeft и padRight оп проверь их на правильность, пожалуйста
function padLeft( $string , $length ) {
//объявляем переменную для пустого пространства
$space = "" ;
for ( ; $stringLen < $length ; $stringLen ++ ) {
$space .= " " ;
}
echo "$space $string " ;
}
function padRight( $string , $length ) {
//объявляем переменную для пустого пространства
$space = "" ;
for ( ; $stringLen < $length ; $stringLen ++ ) {
$space .= " " ;
}
echo "$string $space " ;
}
// Ширина колонок
$col1 = 30 ;
$col2 = 8 ;
$col3 = 8 ;
$col4 = 8 ;
// Заголовок таблицы
echo padRight( "Сотрудник" , $col1 ) .
padLeft( "Часы" , $col2 ) .
padLeft( "Ставка" , $col3 ) .
padLeft( "З/п" , $col4 ) . "\n \n " ;
// Сама таблица
foreach ( $employees as $employee ) {
echo padRight( $employee -> name , $col1 ) .
padLeft( $employee -> getTotalHoursWorked ( ) , $col2 ) .
padLeft( $employee -> rate , $col3 ) .
padLeft( $employee -> getSalary ( ) , $col4 ) . "\n " ;
}
?>
PD9waHAKCi8vIGFyY2hpdmUtaXBxLWNvLm5hcm9kLnJ1CmVycm9yX3JlcG9ydGluZygtMSk7CgpjbGFzcyBFbXBsb3llZSAgICAgICAgICAgICAKewogICAgcHVibGljICRuYW1lOyAgICAgICAgICAgICAgIC8vINC40LzRjy3RhNCw0LzQuNC70LjRjwogICAgcHVibGljICRyYXRlOyAgICAgICAgICAgICAgIC8vINGH0LDRgdC+0LLQsNGPINGB0YLQsNCy0LrQsCAo0YHQutC+0LvRjNC60L4g0L7QvSDQv9C+0LvRg9GH0LDQtdGCINGC0YPQs9GA0LjQutC+0LIg0LfQsCDRh9Cw0YEg0YDQsNCx0L7RgtGLKQogICAgcHVibGljICRob3VycyA9IGFycmF5KCk7ICAgIC8vINC80LDRgdGB0LjQsiwg0YHQvtC00LXRgNC20LDRidC40Lkg0L7RgtGA0LDQsdC+0YLQsNC90L3Ri9C1INGH0LDRgdGLINC/0L4g0L3QtdC00LXQu9GP0LwKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJG5hbWUsICRyYXRlKQogICAgewogICAgICAgIC8vINC30LDQtNCw0LXQvCDQuNC80Y8g0Lgg0YfQsNGB0L7QstGD0Y4g0YHRgtCw0LLQutGDCiAgICAgICAgJHRoaXMtPm5hbWUgPSAkbmFtZTsKICAgICAgICAkdGhpcy0+cmF0ZSA9ICRyYXRlOwogICAgfQoKICAgIC8qKiDQodGH0LjRgtCw0LXRgiDQvtCx0YnQtdC1INGH0LjRgdC70L4g0L7RgtGA0LDQsdC+0YLQsNC90L3Ri9GFINGH0LDRgdC+0LIgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRUb3RhbEhvdXJzV29ya2VkKCkKICAgIHsKICAgICAgICAvLyDQn9GA0L7RgdGC0L4g0YHQutC70LDQtNGL0LLQsNC10Lwg0LfQvdCw0YfQtdC90LjRjyDRh9Cw0YHQvtCyINCyINC80LDRgdGB0LjQstC1CiAgICAgICAgcmV0dXJuIGFycmF5X3N1bSgkdGhpcy0+aG91cnMpOwogICAgfQoKICAgIC8qKiDQodGH0LjRgtCw0LXRgiDQt9Cw0YDQv9C70LDRgtGDICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0U2FsYXJ5KCkKICAgIHsKICAgICAgICAvLyDQn9C+0LvRg9GH0LDQtdC8INGH0LjRgdC70L4g0L7RgtGA0LDQsdC+0YLQsNC90L3Ri9GFINGH0LDRgdC+0LIKICAgICAgICAkaG91cnMgPSAkdGhpcy0+Z2V0VG90YWxIb3Vyc1dvcmtlZCgpOwogICAgICAgIC8vINC4INGD0LzQvdC+0LbQsNC10Lwg0L3QsCDRh9Cw0YHQvtCy0YPRjiDRgdGC0LDQstC60YMKICAgICAgICAkc2FsYXJ5ID0gJGhvdXJzICogJHRoaXMtPnJhdGU7CiAgICAgICAgcmV0dXJuICRzYWxhcnk7CiAgICB9CiAgICAKfQoKCiRpdmFuID0gbmV3IEVtcGxveWVlKCLQmNCy0LDQvdC+0LIg0JjQstCw0L0iLCAxMCk7Ci8vIG5hbWUg0LggcmF0ZSDQt9Cw0LTQsNC90Ysg0YfQtdGA0LXQtyDQutC+0L3RgdGC0YDRg9C60YLQvtGALCDQv9C+0YLQvtC80YMg0L7RgdGC0LDQu9C+0YHRjCDQu9C40YjRjCDQvdCw0L/QuNGB0LDRgtGMINGH0LDRgdGLCiRpdmFuLT5ob3VycyA9IGFycmF5KDQwLCA0MCwgNDAsIDQwKTsgICAvLyDQmNCy0LDQvSDRgNCw0LHQvtGC0LDQtdGCINC/0L4gNDAg0YfQsNGB0L7QsiDQsiDQvdC10LTQtdC70Y4KCiRwZXRlciA9IG5ldyBFbXBsb3llZSgi0J/QtdGC0YDQvtCyINCf0LXRgtGAIiwgOCk7CiRwZXRlci0+aG91cnMgPSBhcnJheSg0MCwgMTAsIDQwLCA1MCk7ICAvLyDQn9C10YLRgCDQstC30Y/QuyDQvtGC0LPRg9C7INC4INC/0L7RgtC+0LzRgyDQvtGC0YDQsNCx0L7RgtCw0Lsg0LzQtdC90YzRiNC1INGH0LDRgdC+0LIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g0L3QviDQsiAg0L/QvtGB0LvQtdC00L3RjtGOINC90LXQtNC10LvRjiDRgNC10YjQuNC7INC/0L7RgNCw0LHQvtGC0LDRgtGMINC/0L7QsdC+0LvRjNGI0LUKCiRlbXBsb3llZXMgPSBhcnJheSgkaXZhbiwgJHBldGVyKTsKCi8vINCk0YPQvdC60YbQuNC4IHBhZExlZnQg0LggcGFkUmlnaHQg0L7QvyDQv9GA0L7QstC10YDRjCDQuNGFINC90LAg0L/RgNCw0LLQuNC70YzQvdC+0YHRgtGMLCDQv9C+0LbQsNC70YPQudGB0YLQsAoKZnVuY3Rpb24gcGFkTGVmdCgkc3RyaW5nLCAkbGVuZ3RoKXsKICAgJHN0cmluZ0xlbiA9IG1iX3N0cmxlbigkc3RyaW5nKTsKICAgLy/QvtCx0YrRj9Cy0LvRj9C10Lwg0L/QtdGA0LXQvNC10L3QvdGD0Y4g0LTQu9GPINC/0YPRgdGC0L7Qs9C+INC/0YDQvtGB0YLRgNCw0L3RgdGC0LLQsAogICAgJHNwYWNlID0iIjsKICAgIGZvciAoOyRzdHJpbmdMZW4gPCAkbGVuZ3RoOyAkc3RyaW5nTGVuKyspewogICAgICAgICRzcGFjZSAuPSAiICI7CiAgICB9CiAgICBlY2hvICIkc3BhY2Ukc3RyaW5nIjsKICAgIAp9CgpmdW5jdGlvbiBwYWRSaWdodCgkc3RyaW5nLCAkbGVuZ3RoKXsKICAgICRzdHJpbmdMZW4gPSBtYl9zdHJsZW4oJHN0cmluZyk7CiAgICAvL9C+0LHRitGP0LLQu9GP0LXQvCDQv9C10YDQtdC80LXQvdC90YPRjiDQtNC70Y8g0L/Rg9GB0YLQvtCz0L4g0L/RgNC+0YHRgtGA0LDQvdGB0YLQstCwCiAgICAkc3BhY2UgPSIiOwogICAgZm9yICg7JHN0cmluZ0xlbiA8ICRsZW5ndGg7ICRzdHJpbmdMZW4rKyl7CiAgICAgICAgJHNwYWNlIC49ICIgIjsKICAgIH0KICAgIGVjaG8gIiRzdHJpbmckc3BhY2UiOwp9Ci8vINCo0LjRgNC40L3QsCDQutC+0LvQvtC90L7QugokY29sMSA9IDMwOwokY29sMiA9IDg7CiRjb2wzID0gODsKJGNvbDQgPSA4OwoKLy8g0JfQsNCz0L7Qu9C+0LLQvtC6INGC0LDQsdC70LjRhtGLCmVjaG8gcGFkUmlnaHQoItCh0L7RgtGA0YPQtNC90LjQuiIsICRjb2wxKSAuCiAgICAgcGFkTGVmdCgi0KfQsNGB0YsiLCAkY29sMikgLiAKICAgICBwYWRMZWZ0KCLQodGC0LDQstC60LAiLCAkY29sMykgLiAKICAgICBwYWRMZWZ0KCLQly/QvyIsICRjb2w0KSAuICJcblxuIjsKCi8vINCh0LDQvNCwINGC0LDQsdC70LjRhtCwCmZvcmVhY2ggKCRlbXBsb3llZXMgYXMgJGVtcGxveWVlKSB7CiAgICBlY2hvIHBhZFJpZ2h0KCRlbXBsb3llZS0+bmFtZSwgJGNvbDEpIC4KICAgICAgICAgcGFkTGVmdCgkZW1wbG95ZWUtPmdldFRvdGFsSG91cnNXb3JrZWQoKSwgJGNvbDIpIC4gCiAgICAgICAgIHBhZExlZnQoJGVtcGxveWVlLT5yYXRlLCAkY29sMykgLiAKICAgICAgICAgcGFkTGVmdCgkZW1wbG95ZWUtPmdldFNhbGFyeSgpLCAkY29sNCkgLiAiXG4iOwp9Cj8+