"depot M213"
This commit is contained in:
66
TD3 src/boite/Boite.java
Executable file
66
TD3 src/boite/Boite.java
Executable 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
38
TD3 src/boite/Objet.java
Executable 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
23
TD3 src/boite/testBoite.java
Executable 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
33
TD3 src/fleuriste/Bouquet.java
Executable 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
19
TD3 src/fleuriste/Fleur.java
Executable 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;
|
||||
}
|
||||
}
|
17
TD3 src/fleuriste/LotFleurs.java
Executable file
17
TD3 src/fleuriste/LotFleurs.java
Executable 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
39
TD3 src/fleuriste/Stock.java
Executable 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;
|
||||
}
|
||||
}
|
27
TD3 src/fleuriste/TestBouquet.java
Executable file
27
TD3 src/fleuriste/TestBouquet.java
Executable 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
64
TD3 src/segments/Segment.java
Executable 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();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
34
TD3 src/segments/TestSegment.java
Executable file
34
TD3 src/segments/TestSegment.java
Executable 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");
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user