киньте пожалуйста пару наводок по реализации одного задания, а то не могу уйти дальше реализации класса) (если еще и это правильно сделал)
Собственно:
Описать класс "Научно-исследовательские разработки", содержащий информацию (Наименование, дата начала, дата завершения, область исследования, ФИО сотрудников):
1)посчитать количество НИР в каждой области исследования;
2)посчитать количество сотрудников задействованных в НИР.
Вроде как бы все и просто, но меня все время останавливает куча вопросов)
Спустя 12 минут, 58 секунд (19.12.2010 - 00:14) Lenarfate написал(а):
Спустя 43 минуты, 30 секунд (19.12.2010 - 00:57) SuicideMouse написал(а):
Спасибо конечно, но меня больше интересовал алгоритм реализации, а не само ООП.
Спустя 15 минут, 39 секунд (19.12.2010 - 01:13) Lenarfate написал(а):
так ты покажи, как сам думаешь, отрывки кода по отдельным вопросам
Спустя 3 минуты, 27 секунд (19.12.2010 - 01:16) SuicideMouse написал(а):
Ладно буду обращаться по более конкретным вопросам)
Спустя 1 час, 46 минут, 38 секунд (19.12.2010 - 03:03) SuicideMouse написал(а):
Больше всего меня напрягает логика задания...
Тоесть получается есть области исследования (тут сразу вопрос как это представить... в виде массива или чего вообще?)
В области исследования есть Научно-исследовательские разработки, а в разработках сотрудники.
Тут у меня и встает вопрос который все тормозит)
сделать массив только из сотрудников где перечислить их ФИО или же для каждого элемента этой матрешки создавать массив?
Тоесть получается есть области исследования (тут сразу вопрос как это представить... в виде массива или чего вообще?)
В области исследования есть Научно-исследовательские разработки, а в разработках сотрудники.
Тут у меня и встает вопрос который все тормозит)
сделать массив только из сотрудников где перечислить их ФИО или же для каждого элемента этой матрешки создавать массив?
Спустя 1 час, 16 минут, 56 секунд (19.12.2010 - 04:20) kirik написал(а):
SuicideMouse
Так вам ООП или массивы?
Если ООП логика, то тут наследование классов.
Есть базовый класс "области исследования" с базовыми методами и свойствами, от него наследуются уже собственно сами области исследования - например "биология", класс которой включает в себя свои свойства и методы (а может не включает - тогда используются свойства-методы базового класса).
Вроде как-то так, не?
Так вам ООП или массивы?
Если ООП логика, то тут наследование классов.
Есть базовый класс "области исследования" с базовыми методами и свойствами, от него наследуются уже собственно сами области исследования - например "биология", класс которой включает в себя свои свойства и методы (а может не включает - тогда используются свойства-методы базового класса).
Вроде как-то так, не?
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Спустя 10 часов, 5 минут, 32 секунды (19.12.2010 - 14:25) SuicideMouse написал(а):
Мне ООП)
Но в задании базовым классом является НИР а "области исследования" этого одно из его свойств... ну я вот как то так понял... smile.gif
В общем как я начал
Но вот походу это уже не правильно?
Но в задании базовым классом является НИР а "области исследования" этого одно из его свойств... ну я вот как то так понял... smile.gif
В общем как я начал
// Создаем новый класс NIR:
class NIR {
// данные (свойства):
var $Naimenovanie = array ('');
var $StartData;
var $EndData;
var $oblast = array('Физика','Химия', 'Робототехника');
var $fio = array('Вассерман', 'Перельман', 'Азимов', 'Менделеев', 'Тесла');
Но вот походу это уже не правильно?
Спустя 4 минуты, 39 секунд (19.12.2010 - 14:30) Lenarfate написал(а):
создаешь базовый класс, содержащий информацию (Наименование, дата начала, дата завершения, область исследования, ФИО сотрудников). далее наследуешь его новым классом, где выполняется задание 1)посчитать количество НИР в каждой области исследования; потом наследуешь еще одним, где выполняешь
2)посчитать количество сотрудников задействованных в НИР.
2)посчитать количество сотрудников задействованных в НИР.
Спустя 7 минут, 15 секунд (19.12.2010 - 14:37) SuicideMouse написал(а):
Lenarfate
Спасибо, теперь хоть есть от чего отталкиваться)
Я кстати подозревал что все именно так придется делать)
Кстати... а массивы оставить или убрать? )
Спасибо, теперь хоть есть от чего отталкиваться)
Я кстати подозревал что все именно так придется делать)
Кстати... а массивы оставить или убрать? )
Спустя 6 часов, 43 минуты, 7 секунд (19.12.2010 - 21:20) SuicideMouse написал(а):
Как мне теперь совместить сотрудников с разработками и областями чтоб потом уже считать их?
<?php
class NIR {
var $Naimenovanie;
var $StartData;
var $EndData;
var $Oblast;
var $Fio;
//Объявление функций
function PostNaimenovanie($Naimenovanie) {$this->Naimenovanie = $Naimenovanie;}
function PostOblast($Oblast) {$this->Oblast = $Oblast;}
function PostFio($Fio) {$this->Fio = $Fio;}
function PrintNaimenovanie() {echo $this->Naimenovanie;}
function PrintOblast() {echo $this->Oblast;}
function PrintFio() {echo $this->Fio;}
}
//Массивы данных
$MassNaimenovanie = array('Адронный коллайдер', 'Броня Тесла', 'Детокс', 'Ультра Эфедрин', 'Терминатор Т3000');
$MassOblast = array('Физика','Физика','Химия', 'Робототехника');
$MassFio = array('Вассерман', 'Перельман', 'Азимов', 'Менделеев', 'Тесла', 'Моисеев', 'Яхве', 'Иегова');
?>
Спустя 25 минут, 51 секунда (19.12.2010 - 21:46) kirik написал(а):
Цитата (SuicideMouse @ 19.12.2010 - 13:20) |
Как мне теперь совместить сотрудников с разработками и областями чтоб потом уже считать их? |
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
У тебя же есть методы добавления данных в свойства класса (сеттеры) - PostNaimenovanie, PostOblast, PostFio.
Ты не верно понял. У тебя есть класс NIR - он базовый для остальных классов. Остальные классы, это например NIRmath (НИР по математике), NIRphysics (НИР по физике). Вот в этих классах уже будут свои сотрудники.
Спустя 1 минута, 43 секунды (19.12.2010 - 21:48) SuicideMouse написал(а):
Да я знаю, что их нужно туда добавить, просто как это сделать?
типа через цикл? Хотя я кажется понял...)))
типа через цикл? Хотя я кажется понял...)))
Спустя 1 минута, 57 секунд (19.12.2010 - 21:50) kirik написал(а):
Обновил свой пост.
Забудь пока про то, что у тебя есть какие-то данные. Оперируй сущностями. Соединяй не данные, а сущности.
Забудь пока про то, что у тебя есть какие-то данные. Оперируй сущностями. Соединяй не данные, а сущности.
Спустя 4 часа, 36 минут, 54 секунды (20.12.2010 - 02:27) SuicideMouse написал(а):
Соеденил сущьности... как теперь их посчитать?)))))
<?php
class NIR {
var $Naimenovanie;
var $StartData; // Зачем это вообще?
var $EndData; // Зачем это вообще?
var $Oblast;
var $Fio;
//Объявление функций
function PostNaimenovanie($Naimenovanie) {$this->Naimenovanie = $Naimenovanie;}
function PostOblast($Oblast) {$this->Oblast = $Oblast;}
function PostFio($Fio) {$this->Fio = $Fio;}
function PrintNaimenovanie() {echo $this->Naimenovanie;}
function PrintOblast() {echo $this->Oblast;}
function PrintFio() {echo $this->Fio;}
}
//Массивы данных
$MassNaimenovanie = array('Адронный коллайдер', 'Броня Тесла', 'Детокс', 'Ультра Эфедрин', 'Терминатор Т3000');
$MassOblast = array('Физика','Физика','Химия', 'Робототехника');
$MassFio = array('Вассерман', 'Перельман', 'Азимов', 'Менделеев', 'Тесла', 'Моисеев', 'Яхве', 'Иегова');
for ($i=0; $i<=3; $i++){
$NIRphis[$i] = new NIR;
$NIRphis[$i]->PostOblast($MassOblast[$i]);
$NIRphis[$i]->PostNaimenovanie($MassNaimenovanie[$i]);
$NIRphis[$i]->PostFio($MassFio[$i]);
}
?>
Спустя 49 минут, 5 секунд (20.12.2010 - 03:16) kirik написал(а):
Цитата (SuicideMouse @ 19.12.2010 - 18:27) |
Соеденил сущьности... как теперь их посчитать?))))) |
Кажется ты не совсем понимаешь о каких сущностях речь. Почитай на irbis'е про ООП.
Спустя 19 часов, 52 минуты, 21 секунда (20.12.2010 - 23:08) SuicideMouse написал(а):
Спустя 4 часа, 26 минут, 30 секунд (21.12.2010 - 03:35) SuicideMouse написал(а):
Вопрос: почему не работает подсчет?
<?php
class NIR {
var $Naimenovanie;
var $StartData; // Зачем это вообще?
var $EndData; // Зачем это вообще?
var $Oblast;
var $Fio;
var $k;
var $y;
var $flag;
//Объявление функций
function PostNaimenovanie($Naimenovanie) {$this->Naimenovanie = $Naimenovanie;}
function PostOblast($Oblast) {$this->Oblast = $Oblast;}
function PostFio($Fio) {if ($this->flag == 0){$this->k = 0; $this->flag = 1;};
if ($Fio != '-'){$this->Fio[$this->k] = $Fio;$this->k++;} ;}
function PrintNaimenovanie() {echo $this->Naimenovanie;}
function PrintOblast() {echo $this->Oblast;}
function PrintFio($y) {$this->y = $y;echo $this->Fio[$this->y].'<br>';}
};
//Массивы данных
$MassNaimenovanie = array('Адронный коллайдер', 'Броня Тесла', 'Детокс', 'Ультра Эфедрин', 'Терминатор Т3000');
$MassOblast = array('Физика','Физика','Химия', 'Химия', 'Робототехника');
$MassFio = array('Вассерман', 'Тесла', 'Менделеев', 'Шульгин', 'Моисеев');
$MassFio2 = array('Ассистент', 'Перельман', 'Ассистент', 'Моисеев',);
$MassFio3 = array('Яхве', 'Иегова', NULL, NULL, 'Азимов');
echo ' <table border=5 align=center>
<tr>
<td>Наименование</td>
<td>Область исследования</td>
<td>ФИО сотрудников</td>
<td>Кол-во сотрудников</td>
</tr>';
for ($i=0; $i<=4; $i++){
$NIRphis[$i] = new NIR;
$NIRphis[$i]->PostOblast($MassOblast[$i]);
$NIRphis[$i]->PostNaimenovanie($MassNaimenovanie[$i]);
$NIRphis[$i]->PostFio($MassFio[$i]);
$NIRphis[$i]->PostFio($MassFio2[$i]);
$NIRphis[$i]->PostFio($MassFio3[$i]);
echo '<tr align=center><td>'; $NIRphis[$i]->PrintOblast();
echo '</td align=center><td>'; $NIRphis[$i]->PrintNaimenovanie();
echo '</td><td align=center>'; for ($h=0; $h<=$NIRphis[$i]->k; $h++){$NIRphis[$i]->PrintFio($h);}
echo '</td><td align=center>'; $NIRphis[$i]->k;
};
echo '</table>';
?>
Спустя 6 часов, 14 минут, 9 секунд (21.12.2010 - 09:49) linker написал(а):
Во-первых, здесь
function PostFio($Fio) {if ($this->flag == 0)...условие не выполняется и во-вторых, здесь
if ($Fio != '-')А вообще, если честно, то этот код - ужас.
Спустя 2 часа, 52 минуты, 47 секунд (21.12.2010 - 12:42) SuicideMouse написал(а):
Цитата |
А вообще, если честно, то этот код - ужас. |
предложите вариант получше не обижусь)
Спустя 31 минута, 38 секунд (21.12.2010 - 13:13) linker написал(а):
Если я напишу лучше, то я сделаю всю работу за тебя, а ты ничего не поймешь. Я тебе указал на два момента, вот и правь.
Спустя 57 минут, 48 секунд (21.12.2010 - 14:11) SuicideMouse написал(а):
И все таки срочняк, согласится кто нибудь прямой сейчас дописать скрипт рублей за 400?
Только надо переработать пару моментов
этого
и этого
Только надо переработать пару моментов
function PostFio($Fio) {if ($this->flag == 0){$this->k = 0; $this->flag = 1;};
if ($Fio != '-'){$this->Fio[$this->k] = $Fio;$this->k++;} ;}
этого
function PrintFio($plus) {$this->plus = $plus;echo $this->Fio[$this->plus].';';}
и этого
echo '</td><td align=center>'; for ($h=0; $h<=$NIRphis[$i]->k; $h++){$NIRphis[$i]->PrintFio($h);}
echo '</td><td align=center>'; $NIRphis[$i]->k;
Спустя 4 часа, 27 минут, 54 секунды (21.12.2010 - 18:39) SuicideMouse написал(а):
Закрывайте тему, я на паре дописал)