pieds

Patient


pieds

Lien vers Programmes Perl
Lien vers Word

Dans cette partie, on associe à un objet (ou référence) des données et des méthodes (ou procédures).
Une classe d'objets est un package.
En pratique, on construit un fichier Perl avec l ’extension pm qui contient la classe d ’objet que l ’on veut définir.

Méthodes particulières :

- new : constructeur d ’objet
- destroy : destructeur d ’objet
- bless : rendre l ’objet visible de l ’extérieur


lézard

Voici notre fichier patient2.pm :

#!/bin/perl
package patient2; 

sub new { 
      my ($class, $nom, $age, $sexe, $adresse, $etat, $unite, $visite) = @_; 
      my $patient = {};  
      $patient->{nom} = $nom; 
      $patient->{age} = $age;
      $patient->{sexe} = $sexe;
	$patient->{adresse} = $adresse;
      $patient->{visite} = 0;
      if ($etat) {
	  $patient->{etat} = $etat;
      } else {
	  $patient->{etat} = 'Non defini';    
      }  
      if ($unite) { 
            $patient->{unite} = $unite; 
      } else { 
            $patient->{unite} = 'Non definie'; 
      } 
	$patient->{visite}=0;
          return bless $patient; 
    } 

sub adressecomplete {
my($patient, $adressecomplete)=@_;
$patient->{adresse};
}

sub nbrevisite {
my($patient, $adressecomplete)=@_;
$patient->{visite}=$adressecomplete;
}


sub transfert { 
    my ($patient, $nvunite) = @_; 
    $patient->{unite} = $nvunite; 
} 

sub sante {
  my ($patient, $nvetat)= @_;
  $patient->{etat}=$nvetat;
  print "le patient $patient->{nom} est dans un etat $patient->{etat}\n";
}


sub affiche { 
      my ($patient) = @_; 
      print "le patient $patient->{nom} agé de $patient->{age} ans, de sexe $patient->{sexe}, résidant $patient->{adresse} se trouve dans l'unite $patient->{unite} et a reçu $patient->{visite} visites.\n"; 
  } 

sub DESTROY { 
      my ($patient) = @_; 
      print "le patient $patient->{nom} est parti!\n"; 
} 

1; 


lézard

patient2 est le nom donné à l'objet.
La méthode "sub new" est appelée pour la création. La "class" est toujours le premier paramètre.
La méthode "sub destroy" est appelée à la destruction.
Les autres méthodes sont destinées entre autres, à la gestion de l'adresse du patient, au nombre de visites, à l'affichage des données.

Le package étant défini, on l'utilise dans le programme perl usepatient2.pl :

#!/bin/perl 
use patient2; 

$patient1=new patient2('dupont pierre', '44', 'Masculin', 'Rambouillet', 'stable', 'Reanimation'); 
$patient2=new patient2('durand albert', '75', 'Masculin', 'Vincennes', 'grave', 'Urgences'); 
$patient3=new patient2('martin guy', '25', 'Masculin', 'Nantes', 'grave', 'Urgenceschirurgie'); 
$patient4=new patient2('dubois marie','26', 'Féminin', 'Paris', 'normal', 'Maternite');
$patient5=new patient2('bolin dominique', '62', 'Masculin', 'Lyon', 'preoccupant', 'Geriatrie');
$patient6=new patient2('madene patricia', '23', 'Féminin', 'Rennes', '', 'Psychiatrie');

$patient1->affiche; 
$patient2->affiche; 
$patient3->affiche; 
$patient4->affiche; 
$patient5->affiche;
$patient6->affiche; 


$patient4->nbrevisite('4');
$patient5->nbrevisite('9');

$patient1->transfert('Cardio'); 
$patient2->transfert('Pneumo'); 
$patient5->transfert('Soins intensifs');

$patient1->sante('meilleur');
$patient2->sante('stationnaire');
$patient5->sante('critique');
 
$patient1->affiche; 
$patient2->affiche;
$patient5->affiche; 


exit

Dans la première partie ($patient1=new patient2('dupont pierre'...) on construit chacun des patients en lui associant un certain nombre de paramètres : nom, age, sexe, adresse, état, unité (unité dans laquelle il se trouve ou est transféré), visite (nombre de visites reçues).
Dans la partie suivante, on fait appel aux méthodes : affichage des patients, nombre de visites, transfert, sante.
Enfin, "exit" marque la fin du programme et l'appel à la destruction.

Voici le résultat de l'éxécution de notre programme :


résultat

Retour à la page d'accueil