Vous êtes sur la page 1sur 3

Gestion des ventes d'une pharmacie

Présentation

Une pharmacie dispose d'un stock de médicaments. Certains médicaments sont remboursables par
l'assurance soins de santé.
On doit pouvoir procéder aux ventes de médicaments et afficher le stock de la pharmacie.
Lors d'une vente, il est possible que certains médicaments aient un stock insuffisant.

La classe Medicament est fournie (à utiliser telle quelle, sans aucun changement)

public class Medicament {


private String nom ;
private float prix ;
private int stock ;
public Medicament(String nom, float prix, int stock) {
this.nom = nom;
this.prix = prix;
this.stock = stock;
}
public String getNom() {
return nom;
}
public float getPrix() {
return prix;
}
public int getStock() {
return stock;
}
public String toString() {
return nom + " - " + prix + " € - " + stock + " unités";
}
public void diminueStock(int nb) {
stock -= nb ;
}
}

La classe MedicamentRembourse

Attributs :
- Idem classe Medicament
- pourcRemb : le pourcentage de remboursement du médicament (un float)

Méthodes :
+ un constructeur, si nécessaire
+ un getter pour l'attribut pourcRemb

1 POO – Info & Systèmes


La classe Pharmacie

Attributs :
• nom de type String (le nom de la pharmacie)
• medicaments de type ArrayList (les médicaments en vente dans la pharmacie)

Méthodes :

• le constructeur initialise l'attribut nom avec l'argument reçu et ajoute de l'Aspirine


(médicament non remboursé), du Rhinathiol et du Lipitor (médicaments remboursés)
dans l'ArrayList.

• void vente(String nomMed, int qte) : recherche dans l'ArrayList le nom du médicament
reçu en argument (peu importe la casse), avec un 'for' classique.

Quand elle le trouve, elle vérifie la quantité disponible et soit affiche un message avec le
prix total à payer (exemple : "RHINATHIOL - Vente 2 unités - 12.0 €") et diminue le stock
en conséquence, soit affiche "(nom du médicament) pas disponible dans la quantité
demandée".

• void afficheStock( ) : affiche les infos de tous les médicaments en stock (toString()), avec
un 'for' each.
Remarque : la mention " - MEDICAMENT REMBOURSE" doit apparaitre à coté de chaque
médicament remboursé.

La classe 'main' TestPharmacie

1. Affiche le stock d'une pharmacie.


2. Fait appel à la méthode vente pour du Rhinathiol en 2 unités et pour de l'aspirine en 8
unités.
3. Réaffiche le stock.

STOCK
Aspirine - 4.5 € - 6 unités
Rhinathiol - 6.0 € - 5 unités - MEDICAMENT REMBOURSE
Lipitor - 12.6 € - 10 unités - MEDICAMENT REMBOURSE

RHINATHIOL - Vente 2 unités - 12.0 €


Aspirine pas disponible dans la quantité demandée

STOCK
Aspirine - 4.5 € - 6 unités
Rhinathiol - 6.0 € - 3 unités - MEDICAMENT REMBOURSE
Lipitor - 12.6 € - 10 unités - MEDICAMENT REMBOURSE

2 POO – Info & Systèmes


Aide de la classe String

java.lang
Class String
boolean equalsIgnoreCase (String anotherString)

Compares this String to another String, ignoring case considerations.

Aide de la classe ArrayList

java.util
Class ArrayList<E>

Constructor Summary

ArrayList(Collection<? extends E> c)


Constructs a list containing the elements of the specified collection.

Method Summary

boolean add (E e)
Appends the specified element to the end of this list.

E get (int index)


Returns the element at the specified position in this list.

int size ( )
Returns the number of elements in this list.

3 POO – Info & Systèmes

Vous aimerez peut-être aussi