Total members 11895 |It is currently Wed Dec 18, 2024 5:12 am Login / Join Codemiles

Java

C/C++

PHP

C#

HTML

CSS

ASP

Javascript

JQuery

AJAX

XSD

Python

Matlab

R Scripts

Weka





Code:
<?
abstract
class StudentManager {
    
abstract function getStudent($previousStudent);

    
abstract function getStudentCount();
    
abstract function setStudentCount($new_count);

    
abstract function addStudent($oneStudent);
    
abstract function removeStudent($oneStudent);
}
  
class
SingleStudentClass extends StudentManager {
    
private $firstName;
    
private $lastName;

    function
__construct($firstName, $lastName) {
      
$this->firstName = $firstName;
      
$this->lastName = $lastName;
    }

    function
getStudent($studentToGet) {
      if (
1 == $studentToGet) {
        return
$this->firstName." by ".$this->lastName;
      } else {
        return
FALSE;
      }
    }

    function
getStudentCount() {
      return
1;
    }

    function
setStudentCount($newCount) {
      return
FALSE;
    }

    function
addStudent($oneStudent) {
      return
FALSE;
    }

    function
removeStudent($oneStudent) {
      return
FALSE;
    }

  }  
  
  
class
MultipleStudentsClass extends StudentManager {

    
private $oneStudents = array();
    
private $studentCount;

    
public function __construct() {
      
$this->setStudentCount(0);
    }

    
public function getStudentCount() {
      return
$this->studentCount;
    }
    
public function setStudentCount($newCount) {
      
$this->studentCount = $newCount;
    }

    
public function getStudent($studentToGet) {  
      if (
$studentToGet <= $this->studentCount) {
        return
$this->oneStudents[$studentToGet]->getStudent(1);
      } else {
        return
FALSE;
      }
    }

    
public function addStudent($oneStudent) {
      
$this->setStudentCount($this->getStudentCount() + 1);
      
$this->oneStudents[$this->getStudentCount()] = $oneStudent;
      return
$this->getStudentCount();
    }

    
public function removeStudent($oneStudent) {
      
$counter = 0;
      while (++
$counter <= $this->getStudentCount()) {
        if (
$oneStudent->getStudent(1) ==
          
$this->oneStudents[$counter]->getStudent(1)) {
          for (
$x = $counter; $x < $this->getStudentCount(); $x++) {
            
$this->oneStudents[$x] = $this->oneStudents[$x + 1];
          }
          
$this->setStudentCount($this->getStudentCount() - 1);
        }
      }
      return
$this->getStudentCount();
    }

  }
  
  
$firstStudent =  new SingleStudentClass("A","B");
echo
$firstStudent->getStudent(1);
echo
"<BR>";


$secondStudent = new SingleStudentClass("C", "D");
echo
$secondStudent->getStudent(1);
echo
"<BR>";

$students = new MultipleStudentsClass();
$studentsCount = $students->addStudent($firstStudent);
echo
$students->getStudent($studentsCount);
echo
"<BR>";

$studentsCount = $students->addStudent($secondStudent);
echo
$students->getStudent($studentsCount);
echo
"<BR>";

$studentsCount = $students->removeStudent($firstStudent);
echo
$students->getStudentCount();
echo
"<BR>";
  
echo
$students->getStudent(1);
echo
"<BR>";
?>  




_________________
M. S. Rakha, Ph.D.
Queen's University
Canada


Author:
Mastermind
User avatar Posts: 2715
Have thanks: 74 time
Post new topic Reply to topic  [ 1 post ] 

  Related Posts  to : Design Patterns Composite in php
 J2EE Design Patterns     -  
 Design Patterns Decorator     -  
 Regular Expressions and Patterns     -  
 What are H1, H2 & so on in web design?     -  
 GUI Design     -  
 Design of OS in java     -  
 How to design these JSP pages?     -  
 DAO design pattern     -  
 about dao design pattern     -  
 Design Jobs In India     -  



Topic Tags

PHP OOP






Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
All copyrights reserved to codemiles.com 2007-2011
mileX v1.0 designed by codemiles team
Codemiles.com is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to Amazon.com