From 738be287998dbca8a44941126fea0dd14d1a01eb Mon Sep 17 00:00:00 2001 From: sayebabu Date: Wed, 29 Nov 2023 15:05:29 +0100 Subject: [PATCH] oups --- DEV3.2/Arbre/Repertoires/build/Noeud.class | Bin 0 -> 740 bytes .../Arbre/Repertoires/build/repertoires.class | Bin 0 -> 2171 bytes DEV3.2/Arbre/Repertoires/src/Noeud.java | 50 ++++++++++ DEV3.2/Arbre/Repertoires/src/repertoires.java | 52 ++++++++++ DEV3.2/Florent/TD5/stub/exo3/Chef.java | 75 +++++++++++++++ DEV3.2/Florent/TD5/stub/exo3/Exemple.java | 36 +++++++ DEV3.2/Florent/TD5/stub/exo3/Exemple2.java | 33 +++++++ DEV3.2/Florent/TD5/stub/exo3/Exemple3.java | 43 +++++++++ DEV3.2/Florent/TD5/stub/exo3/Person.java | 44 +++++++++ DEV3.2/Florent/TD5/stub/exo3/Travailleur.java | 31 ++++++ DEV3.2/Florent/TD5/stub/exo4/Chef.java | 89 ++++++++++++++++++ DEV3.2/Florent/TD5/stub/exo4/Exemple.java | 36 +++++++ DEV3.2/Florent/TD5/stub/exo4/Exemple2.java | 33 +++++++ DEV3.2/Florent/TD5/stub/exo4/Exemple3.java | 43 +++++++++ DEV3.2/Florent/TD5/stub/exo4/Person.java | 44 +++++++++ DEV3.2/Florent/TD5/stub/exo4/Travailleur.java | 31 ++++++ DEV3.2/Florent/TD5/stub/exo5/Chef.java | 48 ++++++++++ DEV3.2/Florent/TD5/stub/exo5/Exemple.java | 36 +++++++ DEV3.2/Florent/TD5/stub/exo5/Exemple2.java | 33 +++++++ DEV3.2/Florent/TD5/stub/exo5/Exemple3.java | 43 +++++++++ DEV3.2/Florent/TD5/stub/exo5/Person.java | 44 +++++++++ DEV3.2/Florent/TD5/stub/exo5/Travailleur.java | 31 ++++++ 22 files changed, 875 insertions(+) create mode 100644 DEV3.2/Arbre/Repertoires/build/Noeud.class create mode 100644 DEV3.2/Arbre/Repertoires/build/repertoires.class create mode 100644 DEV3.2/Arbre/Repertoires/src/Noeud.java create mode 100644 DEV3.2/Arbre/Repertoires/src/repertoires.java create mode 100644 DEV3.2/Florent/TD5/stub/exo3/Chef.java create mode 100644 DEV3.2/Florent/TD5/stub/exo3/Exemple.java create mode 100644 DEV3.2/Florent/TD5/stub/exo3/Exemple2.java create mode 100644 DEV3.2/Florent/TD5/stub/exo3/Exemple3.java create mode 100644 DEV3.2/Florent/TD5/stub/exo3/Person.java create mode 100644 DEV3.2/Florent/TD5/stub/exo3/Travailleur.java create mode 100644 DEV3.2/Florent/TD5/stub/exo4/Chef.java create mode 100644 DEV3.2/Florent/TD5/stub/exo4/Exemple.java create mode 100644 DEV3.2/Florent/TD5/stub/exo4/Exemple2.java create mode 100644 DEV3.2/Florent/TD5/stub/exo4/Exemple3.java create mode 100644 DEV3.2/Florent/TD5/stub/exo4/Person.java create mode 100644 DEV3.2/Florent/TD5/stub/exo4/Travailleur.java create mode 100644 DEV3.2/Florent/TD5/stub/exo5/Chef.java create mode 100644 DEV3.2/Florent/TD5/stub/exo5/Exemple.java create mode 100644 DEV3.2/Florent/TD5/stub/exo5/Exemple2.java create mode 100644 DEV3.2/Florent/TD5/stub/exo5/Exemple3.java create mode 100644 DEV3.2/Florent/TD5/stub/exo5/Person.java create mode 100644 DEV3.2/Florent/TD5/stub/exo5/Travailleur.java diff --git a/DEV3.2/Arbre/Repertoires/build/Noeud.class b/DEV3.2/Arbre/Repertoires/build/Noeud.class new file mode 100644 index 0000000000000000000000000000000000000000..4dde9f5887828e16c6415cea80791c710dd21d27 GIT binary patch literal 740 zcmZuvTWb?R6#h3HwbiyHDHva6OHo9hLVbu-?AxRn!-jMhwzCEQm4daP z;1BReiQi0CT0>Ykd*;mfE;DC-|M~F?z)S4=D4^(}6rhZXpgvWXsy|clr2lR-)n`Uf zIgH}S90`h@?nxCZsCw`N+(95HA168+3rev%*Mi3220k=t6i-4AcLhyX&P+7xze-c} zc@SL~A2k#$-CBSKngUP9pHyrv1noJ^|NWr_v;*A3I<2TNRok6gdULyB_f$|FMw3{X zETyHbWn6~?=Q}(K7f5o`-4h<^buuP?br8k+I6EKd^t~F*SgEOLk{O-8adriMCug%L zf1=HNgXdW9beE}9bbI;EZC@)UnY$6R{&l;#-Xi2Vn|4W1z}{cR^pm6j literal 0 HcmV?d00001 diff --git a/DEV3.2/Arbre/Repertoires/build/repertoires.class b/DEV3.2/Arbre/Repertoires/build/repertoires.class new file mode 100644 index 0000000000000000000000000000000000000000..36a1225fdeb98a9da39af6f23f56ee55cceb0653 GIT binary patch literal 2171 zcmaJ?TUQfT7~O|l28K~C8Zm-O5iPl3P+O~nT9s<0Cebz)iq`6o9AF@sNoOV$dVBIm zw6DI{)u-AAq`H=?PkrcX|3d#j-@06F?LL#BL0DxiPR^Y9zJ2!I-*?XZ_V44T0M6qZ z9c>6{2pfnXD$u=Tu9%sMX)k21%`M52FA$xuY|B3<5E@BLYiJiRf*{MuT(&AwhX!3` zcM8Ntaxe3XzH8YF*~D}Qc44=ME(6`@*|J4(>iI$WEOb#Tv=Pz0ORZ`O>Ur+p$ML zS37xwrYpyF#IR38pMm{q%RQT1T5<%mnnI}9Iu4*;!+?QN%9?b2$8x175Rt33 ziX+h1WZe{$P2>uWte3MYdCPQ3 zDOqpRnpewtv2In$l2RrRYR7qjw!uO5aM8dd-et3xwVJfc0;4;%!ZwvnI9fe{%Ld+4 zyxV=J(K>tzgYI-j1~cymGl{;08WwRJh?V5&JePT=%U?=7Q^*YdMyb zx@YjQhFJqQaci@Sw#Lv9i^Vd1#}(MO1!t=U-r_7+PoMp>Gy*ek|8|GX^rBzMKR+O6U7&QNj zL(d~q^v%+8-mC@j8Y%>NrE}?0(W$#7srr}|ZaJREl?EZZCDq z%9g|%Yc;t;c&i~h^kNfY(yUa9EG=)i&v}l7;Ke#++tQt^n4Tvo@C$*X+qCUOS;JQX zhyFj5XS1P?NBsaVef1XsFAhXG&hzOYe}!62K7x42iNFF!^%@AF1B_WeW3!x)$D8@oub4;` zMxUMzhfYUgky!XX(xb7+$?>R)iboq^<62ycM@e-Zr_*T;_afrK^WW1y60X%#m)F1s4~JgGfyxv`v~Xqp>qfO@1r~2`_4Kp%-jo+^Pe=H z0xl&taOE)>fo9W-57#kW82uTa2z-Y)CvyV7U~D`b5BG=fa`y+%|4;;4#U^NJlJ2J{ zJ4uP7q(6qMIDsNgVj8Ccu`z`Ifv#afJVVdlIH2M7Gl~zP8o=3b_}fkeHU6()l}|cn KYxojhBmN(5IR_X3 literal 0 HcmV?d00001 diff --git a/DEV3.2/Arbre/Repertoires/src/Noeud.java b/DEV3.2/Arbre/Repertoires/src/Noeud.java new file mode 100644 index 0000000..a4455a7 --- /dev/null +++ b/DEV3.2/Arbre/Repertoires/src/Noeud.java @@ -0,0 +1,50 @@ +import java.util.ArrayList; + +/** + * La classe Noeud représente un nœud dans une structure d'arbre. + * Chaque nœud possède un identifiant unique (ID), un nom, un rang, et une liste d'enfants. + */ +public class Noeud { + + + /** Le nom du nœud */ + public String name; + + /** La liste des enfants du nœud */ + public ArrayList enfants; + + + public Noeud(String nom) { + this.name = nom; + this.enfants = new ArrayList<>(); + } + + /** + * Ajoute un nœud en tant qu'enfant du nœud actuel. + * + * @param enfant Le nœud à ajouter en tant qu'enfant. + */ + public void ajouterEnfant(Noeud enfant) { + this.enfants.add(enfant); + } + + /** + * Obtient la liste des enfants du nœud. + * + * @return La liste des enfants du nœud. + */ + public ArrayList getEnfants() { + return enfants; + } + + + /** + * Obtient une représentation textuelle du nœud (son nom). + * + * @return Le nom du nœud. + */ + @Override + public String toString() { + return name; + } +} \ No newline at end of file diff --git a/DEV3.2/Arbre/Repertoires/src/repertoires.java b/DEV3.2/Arbre/Repertoires/src/repertoires.java new file mode 100644 index 0000000..9ea36b9 --- /dev/null +++ b/DEV3.2/Arbre/Repertoires/src/repertoires.java @@ -0,0 +1,52 @@ +import java.io.*; + +public class repertoires { + public static void main(String args[]) + { + + try { + + File f = new File(args[0]); + System.out.println("Files are:"); + + Noeud test = explo(f); + afficherArbre(test); + } + catch (Exception e) { + System.err.println(e.getMessage()); + } + } + + private static Noeud explo(File f) + { + File[] files = f.listFiles(); + Noeud root = new Noeud(f.getName()); + if (files != null) { + for (File fi : files) { + Noeud node = new Noeud(fi.getName()); + node.ajouterEnfant(explo(fi)); + root.ajouterEnfant(root); + } + } + + return root; + } + + public static void afficherArbre(Noeud racine) { + afficherArbre(racine, 0); + } + + private static void afficherArbre(Noeud noeud, int niveau) { + // Affiche le nœud actuel avec une indentation basée sur le niveau + StringBuilder indentation = new StringBuilder(); + for (int i = 0; i < niveau; i++) { + indentation.append(" "); // Deux espaces par niveau pour l'indentation + } + System.out.println(indentation.toString() + noeud); + + // Appelle récursivement la méthode pour chaque enfant du nœud actuel + for (Noeud enfant : noeud.getEnfants()) { + afficherArbre(enfant, niveau + 1); + } + } +} \ No newline at end of file diff --git a/DEV3.2/Florent/TD5/stub/exo3/Chef.java b/DEV3.2/Florent/TD5/stub/exo3/Chef.java new file mode 100644 index 0000000..c690b36 --- /dev/null +++ b/DEV3.2/Florent/TD5/stub/exo3/Chef.java @@ -0,0 +1,75 @@ +import java.util.ArrayList; +import java.util.List; + +/** feuille du motif composite */ +public class Chef extends Person { + + private List subalternes = new ArrayList(); + + public boolean addSubalterne(Person p){ + return subalternes.add(p); + } + + + + /** constructeur + * + * @param n fun factor + * + */ + public Chef(int n){ + super(n); + // d'autres choses peut-être. + } + + + /** + * La meilleure fête avec moi, c'est la meilleure fête sans mes subalternes pour eux plus moi. + * + * @return retourne la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique, mais pas elle. + * + */ + public int bestPartyWithoutMe(){ + int output = 0; + for (Person person : subalternes) { + output += person.bestParty(); + } + return output; + } + + /** + * La meilleure fête avec moi, c'est la meilleure fête sans mes subalternes pour eux plus moi. + * + * @return retourne la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique, mais pas elle. + * + */ + private int bestPartyWithMe(){ + int output = getFunFactor(); + for (Person person : subalternes) { + output += person.bestPartyWithoutMe(); + } + return output; + } + + /** + * La meilleure fête est soit sans moi (c'est l'union des meilleures fêtes de mes subalternes). + * soit c'est la meilleure fête avec moi. + * + * @return la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique (peut-être avec elle). + * + */ + public int bestParty(){ + int avec,sans; + avec = this.bestPartyWithMe(); + sans = this.bestPartyWithoutMe(); + System.err.println("avec:"+avec+"\nsans:"+sans); + if (avec > sans) { + return avec; + } else { + return sans; + } + } + +} + + diff --git a/DEV3.2/Florent/TD5/stub/exo3/Exemple.java b/DEV3.2/Florent/TD5/stub/exo3/Exemple.java new file mode 100644 index 0000000..9a23013 --- /dev/null +++ b/DEV3.2/Florent/TD5/stub/exo3/Exemple.java @@ -0,0 +1,36 @@ +public class Exemple { + public static void main(String[] args) { + // bar 2 + // foo 5 + // titi 4 + // tata 4 + // toto 6 + // tete 6 + + Travailleur titi = new Travailleur(4); + Travailleur tata = new Travailleur(4); + Travailleur toto = new Travailleur(6); + + Chef foo = new Chef(5); + foo.addSubalterne(titi); + foo.addSubalterne(tata); + foo.addSubalterne(toto); + System.out.println(foo.bestParty()); + System.out.println(foo.bestPartyWithoutMe()); + + Travailleur tete = new Travailleur(6); + // System.out.println(tete.bestParty()); + // System.out.println(tete.bestPartyWithoutMe()); + + Chef bar = new Chef(2); + bar.addSubalterne(foo); + bar.addSubalterne(tete); + System.out.println(bar.bestParty()); + //System.out.println(bar.bestPartyWithoutMe()); + } + +} + + + + diff --git a/DEV3.2/Florent/TD5/stub/exo3/Exemple2.java b/DEV3.2/Florent/TD5/stub/exo3/Exemple2.java new file mode 100644 index 0000000..808a518 --- /dev/null +++ b/DEV3.2/Florent/TD5/stub/exo3/Exemple2.java @@ -0,0 +1,33 @@ +public class Exemple2 { + public static void main(String[] args) { + // Exemple inspiré question Thibault B. + // 1 + // 10 + // 1 + // 1 + // 10 + // 3 + // 4 + + Travailleur a = new Travailleur(3); + Travailleur b = new Travailleur(4); + Chef c = new Chef(10); + c.addSubalterne(a); + c.addSubalterne(b); + Chef d = new Chef(1); + d.addSubalterne(c); + Chef e = new Chef(1); + e.addSubalterne(d); + Chef f = new Chef(10); + f.addSubalterne(e); + Chef g = new Chef(1); + g.addSubalterne(f); + + System.out.println(g.bestParty()); + } + +} + + + + diff --git a/DEV3.2/Florent/TD5/stub/exo3/Exemple3.java b/DEV3.2/Florent/TD5/stub/exo3/Exemple3.java new file mode 100644 index 0000000..55651c9 --- /dev/null +++ b/DEV3.2/Florent/TD5/stub/exo3/Exemple3.java @@ -0,0 +1,43 @@ +public class Exemple3 { + public static void main(String[] args) { + + Travailleur a = new Travailleur(3); + Travailleur b = new Travailleur(4); + Chef c = new Chef(10); + c.addSubalterne(a); + c.addSubalterne(b); + Chef d = new Chef(1); + d.addSubalterne(c); + Chef e = new Chef(1); + e.addSubalterne(d); + Chef f = new Chef(10); + f.addSubalterne(e); + Chef g = new Chef(1); + g.addSubalterne(f); + + Travailleur titi = new Travailleur(4); + Travailleur tata = new Travailleur(4); + Travailleur toto = new Travailleur(6); + Chef foo = new Chef(5); + foo.addSubalterne(titi); + foo.addSubalterne(tata); + foo.addSubalterne(toto); + Chef bar = new Chef(2); + bar.addSubalterne(foo); + Travailleur tete = new Travailleur(6); + bar.addSubalterne(tete); + + Chef x = new Chef(2); + x.addSubalterne(g); + x.addSubalterne(bar); + Chef y = new Chef(39); + y.addSubalterne(x); + + System.out.println(y.bestParty()); + } + +} + + + + diff --git a/DEV3.2/Florent/TD5/stub/exo3/Person.java b/DEV3.2/Florent/TD5/stub/exo3/Person.java new file mode 100644 index 0000000..b4f1951 --- /dev/null +++ b/DEV3.2/Florent/TD5/stub/exo3/Person.java @@ -0,0 +1,44 @@ + +/** "Les personnes sont soit des chefs, soit des travailleurs" */ +public abstract class Person{ + /** + * valeur indiquant le niveau de coolitude de la personne + */ + private int funFactor; + + /** + * @return la valeur indiquant le niveau de coolitude de la personne. plus cete valeur est grande, plus la personne contribue à améliorer l'ambiance dans une fête. + * + */ + public int getFunFactor(){ + return this.funFactor; + } + + /** + * constructeur + * + * NB. Cette méthode ne peut pas être appelé directement pour instancier un objet car la classe est abstraite, mais sert dans les constructeurs de classes dérivées. + * + * @see Travailleur, Chef + */ + // + public Person(int n){ + if (n < 0) + throw new IllegalArgumentException("Le fun facteur est positif ou nul, vous avez proposé " + n); + this.funFactor = n; + } + + /** + * + * @return retourne la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique, mais pas elle. + */ + public abstract int bestPartyWithoutMe(); + + + /** + * + * @return la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique (peut-être avec elle). + */ + public abstract int bestParty(); +} + diff --git a/DEV3.2/Florent/TD5/stub/exo3/Travailleur.java b/DEV3.2/Florent/TD5/stub/exo3/Travailleur.java new file mode 100644 index 0000000..b042242 --- /dev/null +++ b/DEV3.2/Florent/TD5/stub/exo3/Travailleur.java @@ -0,0 +1,31 @@ +/** feuille du motif composite */ +public class Travailleur extends Person { + + /** constructeur + * + * @param n fun factor + * + */ + public Travailleur(int n){ + super(n); + } + + /** + * + * @return fête sans le travailleur + */ + public int bestPartyWithoutMe(){ + return 0; + } + + /** + * @return fête avec le travailleur + */ + public int bestParty(){ + return getFunFactor(); + } + + +} + + diff --git a/DEV3.2/Florent/TD5/stub/exo4/Chef.java b/DEV3.2/Florent/TD5/stub/exo4/Chef.java new file mode 100644 index 0000000..6ef3dbb --- /dev/null +++ b/DEV3.2/Florent/TD5/stub/exo4/Chef.java @@ -0,0 +1,89 @@ +import java.util.ArrayList; +import java.util.List; + +/** feuille du motif composite */ +public class Chef extends Person { + + private List subalternes = new ArrayList(); + private Integer avec,sans = null; + + public boolean addSubalterne(Person p){ + return subalternes.add(p); + } + + + + /** constructeur + * + * @param n fun factor + * + */ + public Chef(int n){ + super(n); + // d'autres choses peut-être. + } + + + /** + * La meilleure fête avec moi, c'est la meilleure fête sans mes subalternes pour eux plus moi. + * + * @return retourne la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique, mais pas elle. + * + */ + public int bestPartyWithoutMe(){ + if (this.sans != null) { + return this.sans; + } + int output = 0; + for (Person person : subalternes) { + output += person.bestParty(); + } + this.sans = output; + return output; + } + + /** + * La meilleure fête avec moi, c'est la meilleure fête sans mes subalternes pour eux plus moi. + * + * @return retourne la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique, mais pas elle. + * + */ + private int bestPartyWithMe(){ + if (this.avec != null) { + return this.avec; + } + int output = getFunFactor(); + for (Person person : subalternes) { + output += person.bestPartyWithoutMe(); + } + this.avec = output; + return output; + } + + /** + * La meilleure fête est soit sans moi (c'est l'union des meilleures fêtes de mes subalternes). + * soit c'est la meilleure fête avec moi. + * + * @return la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique (peut-être avec elle). + * + */ + public int bestParty(){ + if (this.avec != null && this.sans != null) { + if (this.avec > sans) { + return this.avec; + } else { + return this.sans; + } + } + this.avec = this.bestPartyWithMe(); + this.sans = this.bestPartyWithoutMe(); + if (this.avec > this.sans) { + return this.avec; + } else { + return this.sans; + } + + } +} + + diff --git a/DEV3.2/Florent/TD5/stub/exo4/Exemple.java b/DEV3.2/Florent/TD5/stub/exo4/Exemple.java new file mode 100644 index 0000000..9a23013 --- /dev/null +++ b/DEV3.2/Florent/TD5/stub/exo4/Exemple.java @@ -0,0 +1,36 @@ +public class Exemple { + public static void main(String[] args) { + // bar 2 + // foo 5 + // titi 4 + // tata 4 + // toto 6 + // tete 6 + + Travailleur titi = new Travailleur(4); + Travailleur tata = new Travailleur(4); + Travailleur toto = new Travailleur(6); + + Chef foo = new Chef(5); + foo.addSubalterne(titi); + foo.addSubalterne(tata); + foo.addSubalterne(toto); + System.out.println(foo.bestParty()); + System.out.println(foo.bestPartyWithoutMe()); + + Travailleur tete = new Travailleur(6); + // System.out.println(tete.bestParty()); + // System.out.println(tete.bestPartyWithoutMe()); + + Chef bar = new Chef(2); + bar.addSubalterne(foo); + bar.addSubalterne(tete); + System.out.println(bar.bestParty()); + //System.out.println(bar.bestPartyWithoutMe()); + } + +} + + + + diff --git a/DEV3.2/Florent/TD5/stub/exo4/Exemple2.java b/DEV3.2/Florent/TD5/stub/exo4/Exemple2.java new file mode 100644 index 0000000..808a518 --- /dev/null +++ b/DEV3.2/Florent/TD5/stub/exo4/Exemple2.java @@ -0,0 +1,33 @@ +public class Exemple2 { + public static void main(String[] args) { + // Exemple inspiré question Thibault B. + // 1 + // 10 + // 1 + // 1 + // 10 + // 3 + // 4 + + Travailleur a = new Travailleur(3); + Travailleur b = new Travailleur(4); + Chef c = new Chef(10); + c.addSubalterne(a); + c.addSubalterne(b); + Chef d = new Chef(1); + d.addSubalterne(c); + Chef e = new Chef(1); + e.addSubalterne(d); + Chef f = new Chef(10); + f.addSubalterne(e); + Chef g = new Chef(1); + g.addSubalterne(f); + + System.out.println(g.bestParty()); + } + +} + + + + diff --git a/DEV3.2/Florent/TD5/stub/exo4/Exemple3.java b/DEV3.2/Florent/TD5/stub/exo4/Exemple3.java new file mode 100644 index 0000000..55651c9 --- /dev/null +++ b/DEV3.2/Florent/TD5/stub/exo4/Exemple3.java @@ -0,0 +1,43 @@ +public class Exemple3 { + public static void main(String[] args) { + + Travailleur a = new Travailleur(3); + Travailleur b = new Travailleur(4); + Chef c = new Chef(10); + c.addSubalterne(a); + c.addSubalterne(b); + Chef d = new Chef(1); + d.addSubalterne(c); + Chef e = new Chef(1); + e.addSubalterne(d); + Chef f = new Chef(10); + f.addSubalterne(e); + Chef g = new Chef(1); + g.addSubalterne(f); + + Travailleur titi = new Travailleur(4); + Travailleur tata = new Travailleur(4); + Travailleur toto = new Travailleur(6); + Chef foo = new Chef(5); + foo.addSubalterne(titi); + foo.addSubalterne(tata); + foo.addSubalterne(toto); + Chef bar = new Chef(2); + bar.addSubalterne(foo); + Travailleur tete = new Travailleur(6); + bar.addSubalterne(tete); + + Chef x = new Chef(2); + x.addSubalterne(g); + x.addSubalterne(bar); + Chef y = new Chef(39); + y.addSubalterne(x); + + System.out.println(y.bestParty()); + } + +} + + + + diff --git a/DEV3.2/Florent/TD5/stub/exo4/Person.java b/DEV3.2/Florent/TD5/stub/exo4/Person.java new file mode 100644 index 0000000..b4f1951 --- /dev/null +++ b/DEV3.2/Florent/TD5/stub/exo4/Person.java @@ -0,0 +1,44 @@ + +/** "Les personnes sont soit des chefs, soit des travailleurs" */ +public abstract class Person{ + /** + * valeur indiquant le niveau de coolitude de la personne + */ + private int funFactor; + + /** + * @return la valeur indiquant le niveau de coolitude de la personne. plus cete valeur est grande, plus la personne contribue à améliorer l'ambiance dans une fête. + * + */ + public int getFunFactor(){ + return this.funFactor; + } + + /** + * constructeur + * + * NB. Cette méthode ne peut pas être appelé directement pour instancier un objet car la classe est abstraite, mais sert dans les constructeurs de classes dérivées. + * + * @see Travailleur, Chef + */ + // + public Person(int n){ + if (n < 0) + throw new IllegalArgumentException("Le fun facteur est positif ou nul, vous avez proposé " + n); + this.funFactor = n; + } + + /** + * + * @return retourne la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique, mais pas elle. + */ + public abstract int bestPartyWithoutMe(); + + + /** + * + * @return la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique (peut-être avec elle). + */ + public abstract int bestParty(); +} + diff --git a/DEV3.2/Florent/TD5/stub/exo4/Travailleur.java b/DEV3.2/Florent/TD5/stub/exo4/Travailleur.java new file mode 100644 index 0000000..b042242 --- /dev/null +++ b/DEV3.2/Florent/TD5/stub/exo4/Travailleur.java @@ -0,0 +1,31 @@ +/** feuille du motif composite */ +public class Travailleur extends Person { + + /** constructeur + * + * @param n fun factor + * + */ + public Travailleur(int n){ + super(n); + } + + /** + * + * @return fête sans le travailleur + */ + public int bestPartyWithoutMe(){ + return 0; + } + + /** + * @return fête avec le travailleur + */ + public int bestParty(){ + return getFunFactor(); + } + + +} + + diff --git a/DEV3.2/Florent/TD5/stub/exo5/Chef.java b/DEV3.2/Florent/TD5/stub/exo5/Chef.java new file mode 100644 index 0000000..38ed1b9 --- /dev/null +++ b/DEV3.2/Florent/TD5/stub/exo5/Chef.java @@ -0,0 +1,48 @@ +import java.util.LinkedHashSet; +import java.util.Objects; + +/** feuille du motif composite */ +public class Chef extends Person { + + + public boolean addSubalterne(Person p){ + + } + + + + /** constructeur + * + * @param n fun factor + * + */ + public Chef(int n){ + super(n); + // d'autres choses peut-être. + } + + + /** + * La meilleure fête avec moi, c'est la meilleure fête sans mes subalternes pour eux plus moi. + * + * @return retourne la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique, mais pas elle. + * + */ + public int bestPartyWithoutMe(){ + // to do + } + + /** + * La meilleure fête est soit sans moi (c'est l'union des meilleures fêtes de mes subalternes). + * soit c'est la meilleure fête avec moi. + * + * @return la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique (peut-être avec elle). + * + */ + public int bestParty(){ + // to do + } + +} + + diff --git a/DEV3.2/Florent/TD5/stub/exo5/Exemple.java b/DEV3.2/Florent/TD5/stub/exo5/Exemple.java new file mode 100644 index 0000000..9a23013 --- /dev/null +++ b/DEV3.2/Florent/TD5/stub/exo5/Exemple.java @@ -0,0 +1,36 @@ +public class Exemple { + public static void main(String[] args) { + // bar 2 + // foo 5 + // titi 4 + // tata 4 + // toto 6 + // tete 6 + + Travailleur titi = new Travailleur(4); + Travailleur tata = new Travailleur(4); + Travailleur toto = new Travailleur(6); + + Chef foo = new Chef(5); + foo.addSubalterne(titi); + foo.addSubalterne(tata); + foo.addSubalterne(toto); + System.out.println(foo.bestParty()); + System.out.println(foo.bestPartyWithoutMe()); + + Travailleur tete = new Travailleur(6); + // System.out.println(tete.bestParty()); + // System.out.println(tete.bestPartyWithoutMe()); + + Chef bar = new Chef(2); + bar.addSubalterne(foo); + bar.addSubalterne(tete); + System.out.println(bar.bestParty()); + //System.out.println(bar.bestPartyWithoutMe()); + } + +} + + + + diff --git a/DEV3.2/Florent/TD5/stub/exo5/Exemple2.java b/DEV3.2/Florent/TD5/stub/exo5/Exemple2.java new file mode 100644 index 0000000..808a518 --- /dev/null +++ b/DEV3.2/Florent/TD5/stub/exo5/Exemple2.java @@ -0,0 +1,33 @@ +public class Exemple2 { + public static void main(String[] args) { + // Exemple inspiré question Thibault B. + // 1 + // 10 + // 1 + // 1 + // 10 + // 3 + // 4 + + Travailleur a = new Travailleur(3); + Travailleur b = new Travailleur(4); + Chef c = new Chef(10); + c.addSubalterne(a); + c.addSubalterne(b); + Chef d = new Chef(1); + d.addSubalterne(c); + Chef e = new Chef(1); + e.addSubalterne(d); + Chef f = new Chef(10); + f.addSubalterne(e); + Chef g = new Chef(1); + g.addSubalterne(f); + + System.out.println(g.bestParty()); + } + +} + + + + diff --git a/DEV3.2/Florent/TD5/stub/exo5/Exemple3.java b/DEV3.2/Florent/TD5/stub/exo5/Exemple3.java new file mode 100644 index 0000000..55651c9 --- /dev/null +++ b/DEV3.2/Florent/TD5/stub/exo5/Exemple3.java @@ -0,0 +1,43 @@ +public class Exemple3 { + public static void main(String[] args) { + + Travailleur a = new Travailleur(3); + Travailleur b = new Travailleur(4); + Chef c = new Chef(10); + c.addSubalterne(a); + c.addSubalterne(b); + Chef d = new Chef(1); + d.addSubalterne(c); + Chef e = new Chef(1); + e.addSubalterne(d); + Chef f = new Chef(10); + f.addSubalterne(e); + Chef g = new Chef(1); + g.addSubalterne(f); + + Travailleur titi = new Travailleur(4); + Travailleur tata = new Travailleur(4); + Travailleur toto = new Travailleur(6); + Chef foo = new Chef(5); + foo.addSubalterne(titi); + foo.addSubalterne(tata); + foo.addSubalterne(toto); + Chef bar = new Chef(2); + bar.addSubalterne(foo); + Travailleur tete = new Travailleur(6); + bar.addSubalterne(tete); + + Chef x = new Chef(2); + x.addSubalterne(g); + x.addSubalterne(bar); + Chef y = new Chef(39); + y.addSubalterne(x); + + System.out.println(y.bestParty()); + } + +} + + + + diff --git a/DEV3.2/Florent/TD5/stub/exo5/Person.java b/DEV3.2/Florent/TD5/stub/exo5/Person.java new file mode 100644 index 0000000..b4f1951 --- /dev/null +++ b/DEV3.2/Florent/TD5/stub/exo5/Person.java @@ -0,0 +1,44 @@ + +/** "Les personnes sont soit des chefs, soit des travailleurs" */ +public abstract class Person{ + /** + * valeur indiquant le niveau de coolitude de la personne + */ + private int funFactor; + + /** + * @return la valeur indiquant le niveau de coolitude de la personne. plus cete valeur est grande, plus la personne contribue à améliorer l'ambiance dans une fête. + * + */ + public int getFunFactor(){ + return this.funFactor; + } + + /** + * constructeur + * + * NB. Cette méthode ne peut pas être appelé directement pour instancier un objet car la classe est abstraite, mais sert dans les constructeurs de classes dérivées. + * + * @see Travailleur, Chef + */ + // + public Person(int n){ + if (n < 0) + throw new IllegalArgumentException("Le fun facteur est positif ou nul, vous avez proposé " + n); + this.funFactor = n; + } + + /** + * + * @return retourne la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique, mais pas elle. + */ + public abstract int bestPartyWithoutMe(); + + + /** + * + * @return la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique (peut-être avec elle). + */ + public abstract int bestParty(); +} + diff --git a/DEV3.2/Florent/TD5/stub/exo5/Travailleur.java b/DEV3.2/Florent/TD5/stub/exo5/Travailleur.java new file mode 100644 index 0000000..7df408b --- /dev/null +++ b/DEV3.2/Florent/TD5/stub/exo5/Travailleur.java @@ -0,0 +1,31 @@ +/** feuille du motif composite */ +public class Travailleur extends Person { + + /** constructeur + * + * @param n fun factor + * + */ + public Travailleur(int n){ + super(n); + } + + /** + * + * @return fête sans le travailleur + */ + public int bestPartyWithoutMe(){ + // return null; + } + + /** + * @return fête avec le travailleur + */ + public int bestParty(){ + // return null; + } + + +} + +