Diagramme de classes de l`exercice Caddie virtuel

Transcription

Diagramme de classes de l`exercice Caddie virtuel
Diagramme de classes de l'exercice Caddie virtuel
La classe Article (fichier Article.java)
public abstract class Article {
private String marque;
private String ref;
private double prixU;
public Article(String ref, double prixU, String marque) {
this.ref= ref; this.prixU = prixU; this.marque = marque;
}
/* Constructeur sans parametre qui va servir pour la contrusction
d'un Lot */
public Article() {
ref = new String("NC");
}
protected void setPrixU(double prix) {
prixU = prix;
}
protected void setMarque(String marque) {
this.marque = marque;
}
protected void setRef(String ref) {
this.ref = ref;
}
public String getFiche() {
String resultat = new String("Ref = " + ref + " Marque = "+
marque + " prix unitaire = "+ prixU);
return resultat;
}
public double getPrixU() {
return prixU;
}
public String getRef() {
return ref;
}
public String getMarque() {
return marque;
}
}
La classe Memoire
public class Memoire extends Article {
private String type;
private String capacite;
public Memoire(String type, String capacite, String ref, double
prix, String marque) {
super(ref, prix, marque);
this.capacite = capacite;
this.type = type;
}
public String getFiche() {
String resultat = super.getFiche() + " Type = " + type + "
Capa = "+capacite;
return resultat;
}
}
La classe Imprimante
public class Imprimante extends Article {
private String typeImp;
private String vitesse;
private boolean couleur;
public Imprimante(String typeImp, String vitesse, boolean
couleur, String ref, double prix, String marque) {
super(ref, prix, marque);
this.vitesse = vitesse;
this.typeImp = typeImp;
this.couleur = couleur;
}
public String getFiche() {
String resultat = super.getFiche() + " Type impression = "
+ typeImp + " Couleur = "+couleur + " Vitesse = " + vitesse;
return resultat;
}
}
La classe Lot
public class Lot extends Article {
private Article articleType;
private int quantite;
public Lot(Article articleAjoute, int quantite) {
this.quantite= quantite;
articleType = articleAjoute;
if (quantite>=10 && quantite<50)
setPrixU(articleType.getPrixU()*0.9*quantite);
else
if (quantite>=50)
setPrixU(articleType.getPrixU()*0.75*quantite);
else
setPrixU(articleType.getPrixU()*quantite);
setRef(articleType.getRef()+"-LOT");
setMarque(articleType.getMarque());
}
public String getFiche() {
String resultat = super.getFiche() + " Lot de " + quantite;
return resultat;
}
}
La classe CaddieArrayList
import java.util.*;
public class CaddieArrayList {
private ArrayList listArticle = new ArrayList();
private String client;
public CaddieArrayList(String client) {
this.client= client;
}
public String getClient() {
return client;
}
public void setClient(String client) {
this.client = client;
}
public void addArticle(Article articleAjoute) {
listArticle.add(articleAjoute);
}
public void removeArticle(int position) {
if (position>=0 && position<listArticle.size())
listArticle.remove(position);
else
System.out.println("Erreur, position");
}
public Article getArticle(int position) {
if (listArticle.size()>position)
return (Article)listArticle.get(position);
return null;
}
public void getArticles() { Article article;
Iterator iterator = listArticle.iterator();
int i=1;
while (iterator.hasNext()) {
article = (Article) iterator.next();
System.out.println("Article # " + i + " : " +
article.getFiche());
i++;
}
}
public void getPrix() {
double prixGlobal = 0;
Article article;
Iterator iterator = listArticle.iterator();
while (iterator.hasNext() ) {
article = (Article) iterator.next();
prixGlobal += article.getPrixU();
}
System.out.println("Prix total du caddie = " + prixGlobal);
}
}
La classe CaddieALTest
public class CaddieALTest {
public static void main(String[] args) {
CaddieArrayList cadOne = new CaddieArrayList("Toto");
System.out.println("Caddie de " + cadOne.getClient());
System.out.println("Ajouter articles dans CadOne");
cadOne.addArticle(new Memoire
("SDRAM","128Mo","SDRAM001",99.90,"BestOne"));
cadOne.addArticle(new Imprimante("Laser","10 pages /
minute",true,"Canon001",799.00,"Canon"));
System.out.println("Ajouter un lot dans CadOne");
cadOne.addArticle(new Lot(new Memoire
("SDRAM","256Mo","SDRAM002",199.90,"BestOne"),10));
cadOne.addArticle(new Lot(new Memoire
("SDRAM","256Mo","SDRAM002",199.90,"BestOne"),15));
cadOne.getArticles();
System.out.println("Supprime article de CadOne");
cadOne.removeArticle(2);
cadOne.getArticles();
cadOne.getPrix();
}
}
Résultat de l'exécution
Caddie de Toto
Ajouter articles dans CadOne
Ajouter un lot dans CadOne
Article # 1 : Ref = SDRAM001 Marque = BestOne prix unitaire = 99.9 Type =
SDRAM Capa = 128Mo
Article # 2 : Ref = Canon001 Marque = Canon prix unitaire = 799.0 Type
impression = Laser Couleur = true Vitesse = 10 pages /minute
Article # 3 : Ref = SDRAM002-LOT Marque = BestOne prix unitaire = 1799.1
Lot de 10
Article # 4 : Ref = SDRAM002-LOT Marque = BestOne prix unitaire = 2698.65
Lot de 15
Supprime article de CadOne
Article # 1 : Ref = SDRAM001 Marque = BestOne prix unitaire = 99.9 Type =
SDRAM Capa = 128Mo
Article # 2 : Ref = Canon001 Marque = Canon prix unitaire = 799.0 Type
impression = Laser Couleur = true Vitesse = 10 pages /minute
Article # 3 : Ref = SDRAM002-LOT Marque = BestOne prix unitaire = 2698.65
Lot de 15
Prix total du caddie = 3597.55