Advertisement
Guest User

Untitled

a guest
Jan 27th, 2020
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.18 KB | None | 0 0
  1. package team;
  2. import voiture.*;
  3. public class Equipe {
  4.     //attributs d'instance
  5.     private String nom;
  6.             //getter setter
  7.  
  8.     public String getNom() {
  9.         return nom;
  10.     }
  11.  
  12.     public void setNom(String nom) {
  13.         this.nom = nom;
  14.     }
  15.  
  16.     //association 1<-->5
  17.     private int nbPersonnes = 0;
  18.  
  19.                     private Personne[] personnes = new Personne[6];
  20.  
  21.                     private int nbVoitures = 0;
  22.                     private Voiture[] parc = new Voiture[6];
  23.  
  24. //Constructeur
  25.  
  26. public Equipe(String nom) {
  27.     this.setNom(nom);
  28. }
  29.  
  30. // gestion des personnes
  31. public void embauche(Personne pers){
  32.     //controle d'existencce
  33.         if(pers == null )return;
  34.  
  35.         // a t on atteint la limitte 5
  36.         if(this.nbPersonnes == 5) return;
  37.  
  38.  
  39.         //controle d'absence de la nouvelle personne
  40.  
  41.         //mise a jour de personnel
  42.  
  43.     this.nbPersonnes++;
  44.     this.personnes[this.nbPersonnes]= pers;
  45.         }
  46.  
  47.         //maintenant nosu allons verifier qu'une personne est présente ou absente
  48.  
  49. private int localiser(Personne pers) {
  50.  
  51.     // nous allons simplement renvoyer sa position
  52.     if (pers == null) return 0;
  53.  
  54.     /// j'utilise une sentinelle pour localiser ? on perd de la place pour gagner du temps
  55.  
  56.     this.personnes[0] = pers; // je vais mettree en 0 la valeur que je cherche
  57.  
  58.     int i = this.nbPersonnes;
  59.     int cle = pers.getMatricule();
  60.     while (this.personnes[i].getMatricule() != cle)i = i - 1;
  61.  
  62.     return i; // je cherche la presence d'eric : je met 0.8/eric donc ma clef est egale a 0.8
  63.     // on appelle ca une sentinelle
  64.     // si on cherche une informatioon 09 marc je la trouve pas en 1-2-3-4 mais nous la trouvons a 0
  65.     // le but est de diviser par deux le nmb de tests
  66.  
  67.     //comment faire si une personne est presente ou absente
  68.     //test present
  69.  
  70.     if (this.personnePresent(pers)) {return 0;}
  71. }
  72.  
  73.     private boolean personnePresent (Personne pers){
  74.         return (this.localiser(pers) > 0);
  75.     }
  76.     //                              --REGLES METIERS--
  77.  
  78.     public void affecter(Personne pers, Voiture voit){
  79.         int positionP =this.localiser(pers);
  80.         if(positionP ==0) return;
  81.  
  82.         int positionV = this.localiser(voit);
  83.         if(positionV==0) return;
  84.  
  85.         if(! this.estPresent(voit)) return;
  86.  
  87.  
  88.         this.personnes[positionP].affectVoiture(parc[positionV]);
  89.  
  90.         //pers.affecter(voit) !!!! il n'est pas défini ici pour eviter la confusion pour gérer exactement ce que
  91.         //je gère moi
  92.     }
  93.     public void restituer(Personne pers){
  94.                 int positionP = this.localiser(pers);
  95.                 if(positionP==0) return;
  96.  
  97.                 this.personnes[positionP].desaffectVoiture();
  98.     }
  99.     @Override
  100.     public String toString(){
  101.         String str = "Equipe" +
  102.                 "nom" + nom + "\n";
  103.  
  104.         str = str+"Personnel"; // maybe fonction de retour
  105.         for (int i=1; i<=this.nbPersonnes; i++) {
  106.             str = str+"\n\t" + personnes [i];
  107.         }
  108.  
  109.         str = str+"Parc";
  110.         for (int i=1; i<=this.nbVoitures; i++) {
  111.             str = str+"\n\t" + parc [i];
  112.         }
  113.  
  114.         return str + "\n";
  115.     }
  116. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement