Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package team;
- import voiture.*;
- public class Equipe {
- //attributs d'instance
- private String nom;
- //getter setter
- public String getNom() {
- return nom;
- }
- public void setNom(String nom) {
- this.nom = nom;
- }
- //association 1<-->5
- private int nbPersonnes = 0;
- private Personne[] personnes = new Personne[6];
- private int nbVoitures = 0;
- private Voiture[] parc = new Voiture[6];
- //Constructeur
- public Equipe(String nom) {
- this.setNom(nom);
- }
- // gestion des personnes
- public void embauche(Personne pers){
- //controle d'existencce
- if(pers == null )return;
- // a t on atteint la limitte 5
- if(this.nbPersonnes == 5) return;
- //controle d'absence de la nouvelle personne
- //mise a jour de personnel
- this.nbPersonnes++;
- this.personnes[this.nbPersonnes]= pers;
- }
- //maintenant nosu allons verifier qu'une personne est présente ou absente
- private int localiser(Personne pers) {
- // nous allons simplement renvoyer sa position
- if (pers == null) return 0;
- /// j'utilise une sentinelle pour localiser ? on perd de la place pour gagner du temps
- this.personnes[0] = pers; // je vais mettree en 0 la valeur que je cherche
- int i = this.nbPersonnes;
- int cle = pers.getMatricule();
- while (this.personnes[i].getMatricule() != cle)i = i - 1;
- return i; // je cherche la presence d'eric : je met 0.8/eric donc ma clef est egale a 0.8
- // on appelle ca une sentinelle
- // si on cherche une informatioon 09 marc je la trouve pas en 1-2-3-4 mais nous la trouvons a 0
- // le but est de diviser par deux le nmb de tests
- //comment faire si une personne est presente ou absente
- //test present
- if (this.personnePresent(pers)) {return 0;}
- }
- private boolean personnePresent (Personne pers){
- return (this.localiser(pers) > 0);
- }
- // --REGLES METIERS--
- public void affecter(Personne pers, Voiture voit){
- int positionP =this.localiser(pers);
- if(positionP ==0) return;
- int positionV = this.localiser(voit);
- if(positionV==0) return;
- if(! this.estPresent(voit)) return;
- this.personnes[positionP].affectVoiture(parc[positionV]);
- //pers.affecter(voit) !!!! il n'est pas défini ici pour eviter la confusion pour gérer exactement ce que
- //je gère moi
- }
- public void restituer(Personne pers){
- int positionP = this.localiser(pers);
- if(positionP==0) return;
- this.personnes[positionP].desaffectVoiture();
- }
- @Override
- public String toString(){
- String str = "Equipe" +
- "nom" + nom + "\n";
- str = str+"Personnel"; // maybe fonction de retour
- for (int i=1; i<=this.nbPersonnes; i++) {
- str = str+"\n\t" + personnes [i];
- }
- str = str+"Parc";
- for (int i=1; i<=this.nbVoitures; i++) {
- str = str+"\n\t" + parc [i];
- }
- return str + "\n";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement