Vous êtes sur la page 1sur 2

Gestion des commandes de clients

Soit la classe Commande (INTERDICTION de la modifier)

public class Commande


{
private static int prochain = 1 ;
private int numCommande ;
private float montant ;
public Commande(float montant)
{
this.montant = montant ;
numCommande = prochain++ ;
}
public void afficheInfos()
{
System.out.print("Commande "+numCommande+" - Montant = "+montant+"€");
}
public int getNumCommande()
{
return numCommande ;
}
public float getMontant()
{
return montant ;
} §
}

La classe CommandeCredit doit faire exactement la même chose, avec en plus :

§ un attribut montantVerse (le montant déjà versé), initialisé dans le constructeur de


sa classe avec un argument reçu
§ une méthode afficheInfos( ) qui affiche la même chose que la méthode afficheInfos( )
de la classe précédente et aussi le montant déjà versé (se servir au maximum de ce
qui est déjà prévu dans la classe Commande)

La classe Client doit pouvoir mémoriser le nom d'un client, son nombre de commandes (il y
en aura maximum 3 par client) et la liste de toutes ses commandes sous la forme d'un
tableau (aussi bien des commandes que des commandes à crédit).

Important : Un client peut avoir une seule commande à crédit.

Méthodes à prévoir :
§ Client( ) : constructeur qui initialise le nom du client
§ void ajouterCommande(Commande comm) : méthode qui ajoute un
commande dans le tableau et qui affiche les infos de la commande ajoutée
§ void afficherMeilleurClient( ) qui à tout moment permet d'afficher le nom du
meilleur client (celui qui a passé la commande avec le montant le plus élevé,
qu'elle soit à crédit ou pas)
Vous pouvez ajouter dans cette classe tout ce qui est nécessaire pour résoudre ce qui est
demandé.
Le problème engendré par l'ajout éventuel d'une 4ème commande (dépassement de capacité
du tableau) doit être géré par le mécanisme des exceptions standard
(ArrayIndexOutOfBoundsException).
Le problème engendré par l’ajout éventuel d’une 2ème commande à crédit doit être géré
par le mécanisme des exceptions non standard en levant une exception de la classe
MaxCommandeCreditException que vous devez créer vous-même. Lors de son instanciation,
elle doit afficher un message : (nom) votre commande (numCommande) est refusée

La classe Test disposera d'une méthode main qui :

§ prévoit 2 clients avec quelques commandes à crédit et à comptant


§ affiche ensuite le nom du meilleur client

Ecrire le code des classes CommandeCredit, MaxCommandeCreditException,


Client et Test.

Vous aimerez peut-être aussi