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