"depot M213"

This commit is contained in:
JunkJumper
2020-05-03 14:24:13 +02:00
parent 1408744dbb
commit e5983242c6
136 changed files with 161184 additions and 0 deletions

66
TD3 src/boite/Boite.java Executable file
View File

@ -0,0 +1,66 @@
package boite;
import java.awt.Color;
public class Boite {
final private int BOITEMAX = 5;
private Color couleur;
private Objet contenu;
private Boite[] bContent = new Boite[15];
private int nbB = 0;
public Boite(Color col) {
couleur = col;
contenu = null;
}
public Boite(Color col, Objet obj) {
couleur = col;
contenu = obj;
}
public Boite(Color col, Boite box) {
couleur = col;
bContent[nbB] = box;
nbB += 1;
}
public Boite(Color col, Boite box, Objet obj) {
couleur = col;
contenu = obj;
bContent[nbB] = box;
nbB += 1;
}
public Color getColor() {
return couleur;
}
public Objet getObjet() {
return contenu;
}
public boolean contientObjet(Objet obj) {
return obj == contenu;
}
public boolean estVide() {
return contenu ==null && nbB == 0;
}
public void ajouteBoite(Boite B) {
if (nbB+1 >= 5)
throw new RuntimeException("Maximum déjà atteint");
bContent[nbB] = B;
nbB += 1;
}
}

38
TD3 src/boite/Objet.java Executable file
View File

@ -0,0 +1,38 @@
package boite;
import java.awt.*;
public class Objet {
Color couleur;
public Objet() {
couleur = Color.white;
}
public Objet(Color c) {
couleur = c;
}
public void changeCouleur(Color c) {
if (!couleur.equals(c))
couleur = c;
else
System.out.println("L'objet est déjà de couleur "+c);
}
public void changeCouleur2(Color c) {
if (couleur.equals(c))
throw new RuntimeException("Même couleur");
couleur = c;
}
public boolean equals(Object o) {
Objet currentO = (Objet) o;
return (currentO.couleur.equals(couleur));
}
public String toString() {
return "Objet "+couleur;
}
}

23
TD3 src/boite/testBoite.java Executable file
View File

@ -0,0 +1,23 @@
package boite;
import java.awt.Color;
public class testBoite {
public static void main(String[] args) {
Boite b1 = new Boite(Color.green);
Boite b2 = new Boite(Color.green, new Objet(Color.red));
Boite b3 = new Boite(Color.green, new Boite(Color.blue));
Boite b4 = new Boite(Color.green, new Boite(Color.blue));
b4.ajouteBoite(new Boite(Color.yellow));
Boite b5 = new Boite(Color.green, new Objet(Color.red));
b5.ajouteBoite(new Boite(Color.blue));
try {
b2.getObjet().changeCouleur2(Color.red);
} catch(RuntimeException e) {
e.getMessage();
}
}
}

33
TD3 src/fleuriste/Bouquet.java Executable file
View File

@ -0,0 +1,33 @@
package fleuriste;
public class Bouquet {
private LotFleurs lot1;
private LotFleurs lot2;
private LotFleurs lot3;
public Bouquet(LotFleurs un, LotFleurs deux, LotFleurs trois) {
if (un.fleur.getNom() == deux.fleur.getNom() || un.fleur.getNom() == trois.fleur.getNom() || deux.fleur.getNom() == trois.fleur.getNom())
throw new RuntimeException("Même fleurs");
lot1 = un;
lot2 = deux;
lot3 = trois;
}
public double prix() {
double prix = lot1.fleur.prix*lot1.nombre+lot2.fleur.prix*lot2.nombre+lot3.fleur.prix*lot3.nombre;
return prix += prix*15/100;
}
public LotFleurs getLot1() {
return lot1;
}
public LotFleurs getLot2() {
return lot2;
}
public LotFleurs getLot3() {
return lot3;
}
}

19
TD3 src/fleuriste/Fleur.java Executable file
View File

@ -0,0 +1,19 @@
package fleuriste;
public class Fleur {
String nom;
double prix;
public Fleur(String nomf, double prix) {
this.nom = nomf;
this.prix = prix;
}
public Fleur clone() {
return (new Fleur(this.nom, this.prix));
}
public String getNom() {
return this.nom;
}
}

View File

@ -0,0 +1,17 @@
package fleuriste;
public class LotFleurs {
Fleur fleur;
int nombre;
public LotFleurs(Fleur f, int nb) {
fleur = f.clone();
nombre = nb;
}
public int getNombre() {
return this.nombre;
}
}

39
TD3 src/fleuriste/Stock.java Executable file
View File

@ -0,0 +1,39 @@
package fleuriste;
public class Stock {
Fleur roses;
Fleur tulipes;
Fleur oeillet;
int nbr;
int nbt;
int nbo;
public Stock(Fleur r, Fleur t, Fleur o) {
roses = r;
tulipes = t;
oeillet = o;
nbr = 0;
nbt = 0;
nbo = 0;
}
public void ajouteRose(int nb) {
nbr += nb;
}
public void ajouteOeillet(int nb) {
nbo = nb;
}
public void ajouteTulipe(int nb) {
nbt = nb;
}
public boolean bouquetFaisable(Bouquet b) {
boolean faisable = true;
if (b.getLot1().nombre > nbr || b.getLot2().nombre > nbt || b.getLot3().nombre > nbo) {
faisable = false;
}
return faisable;
}
}

View File

@ -0,0 +1,27 @@
package fleuriste;
public class TestBouquet {
public static void main( String[] args) {
Fleur rose = new Fleur("rose",2.6);
Fleur tulipe = new Fleur("tulipe",0.4);
Fleur oeillet = new Fleur("oeillet",1.8);
LotFleurs lotroses = new LotFleurs(rose,5);
LotFleurs lottulipes = new LotFleurs(tulipe,7);
LotFleurs lotoeillets = new LotFleurs(oeillet,3);
Bouquet b = new Bouquet(lotroses, lottulipes, lotoeillets);
double prixb = b.prix(); //calcule le prix d<>un bouquet
System.out.println(b+" : "+prixb+" euros");
Stock magasin = new Stock(rose,tulipe,oeillet);
System.out.println(magasin);
magasin.ajouteRose(100);
magasin.ajouteTulipe(150);
magasin.ajouteOeillet(200);
System.out.println(magasin);
// Est-ce que le stock permet de produire le bouquet b ?
boolean orderBouquet = magasin.bouquetFaisable(b);
System.out.println(orderBouquet);
}
}

64
TD3 src/segments/Segment.java Executable file
View File

@ -0,0 +1,64 @@
package segments;
import Coords.Coords;
public class Segment {
private Coords origine;
private Coords extremite;
public Segment(Coords debut, Coords fin) throws RuntimeException {
if (debut.equals(fin) == true)
throw new RuntimeException("Points confondus");
origine = new Coords(debut);
extremite = new Coords(fin);
}
public Coords getOrigine() {
return this.origine;
}
public Coords getExtremite() {
return this.extremite;
}
public double length() {
return this.origine.getDistance(this.extremite);
}
public Segment projX() {
Segment projetX = new Segment(this.origine.projx(), this.extremite.projx());
return projetX;
}
public Segment projY() {
Segment projetY = new Segment(this.origine.projY(), this.extremite.projY());
return projetY;
}
public boolean equals(Segment deux) {
if (this.origine.equals(deux.origine) && this.extremite.equals(deux.extremite)) {
return true;
} else if (this.origine.equals(deux.extremite) && this.extremite.equals(deux.origine)){
return true;
} else {
return false;
}
}
public Segment clone() {
Segment clonage = new Segment(this.origine, this.extremite);
return clonage;
}
public String toString() {
return "Le point d'origine à pour coordonnées "+this.origine.toString()+" et le point d'extremite à pour coordonnées "+this.extremite.toString();
}
}

View File

@ -0,0 +1,34 @@
package segments;
import Coords.Coords;
public class TestSegment {
public static void main(String[] args) {
Coords p11 = new Coords(12.2, 8.3);
Coords p12 = new Coords(21.1, 6.5);
Coords p32 = new Coords(45.5, 8.6);
Segment s1 = new Segment(p11, p12);
Segment s2 = s1.clone();
Segment s3 = null;
try {
s3 = new Segment(p11, new Coords(45.5, 8.6));
} catch (RuntimeException e) {
e.getMessage();
}
assert (s1.equals(s2) == true);
assert (s1.equals(s3) == false);
assert (s3.getExtremite().equals(p32) == true);
assert (s3.length() == 33.30135);
assert (s3.projX().equals(new Segment(p11.projx(), p32.projx())));
//Segment err = new Segment(p11, p11);
System.out.println("fin du programme");
}
}