[Précédent]
[Index] | [Corrigé] | [Version imprimable]
[Prochain]

8.6
  Boîte aux lettres - Enoncé
Niveau 2
 
 
But:
  Concevoir un petit programme permettant d'affranchir du courrier    
Thème:
  Héritage, algorithme    
Fichiers:
  Poste.java    

Il s’agit dans cet exercice de proposer une conception modélisant une boîtes aux lettres en Java orienté-objet.

Une boîtes aux lettres recueille des lettres, des colis et des publicités.

Une lettre est caractérisée par :

Un colis est caractérisé par :

Une publicité est caractérisée par :

Voici les règles utilisées pour affranchir le courrier :

  1. en mode d’expédition normal :
    – le montant nécessaire pour affranchir une lettre dépend de son format et de son poids :
    Formule : montant = tarif de base + 1.0 * poids (kilos), où le tarif de base pour une lettre "A4" est de 2.50, et 3.50 pour une lettre "A3"
    – le montant nécessaire pour affranchir une publicité dépend de son poids :
    Formule : montant = 5.0 * poids (kilos)
    – le montant nécessaire pour affranchir un colis dépend de son poids et de son volume :
    Formule : montant = 0.25 * volume (litres) + poids (kilos) * 1.0;
  2. en mode d’expédition express : les montants précédents sont doublés, quelque soit le type de courrier;
  3. seul le courrier valide est affranchi;
  4. un courrier n’est pas valide si l’adresse de destination est vide;
  5. un colis n’est pas valide si son adresse de destination est vide ou s’il dépasse un volume de 50 litres.


Les trois méthodes principales liées à la boîte aux lettre sont les suivantes :

1. une méthode affranchir() permettant d'associer à chaque courrier de la boîte, le montant nécessaire pour l'affranchir. Cette méthode retournera le montant total d'affranchissement du courrier de la boîte.
2. une méthode courriersInvalides() calculant et retournant le nombre de courriers invalides présents
dans la boîte aux lettres.

3. une méthode afficher() affichant le contenu de la boîte aux lettre (on indiquera alors quels courriers sont invalides).

Sur papier, commencez par dessiner une hiérarchie de classes permettant de mettre en oeuvre la conception suggérée en tenant compte des contraintes mentionnées. Vous spécifierez dans votre diagramme les classes, les attributs et les entêtes des méthodes (sans les corps). Les contraintes suivantes devront être respectées :

  1. Votre conception doit être faite de sorte à ce qu'aucune des méthodes requises n'ait besoin de faire de test sur la nature de l'objet auquel elle s'applique.
  2. Les classes doivent fournir toutes les méthodes qui leur sont nécessaires.
  3. Une classe ne comportera que les méthodes/attributs qui lui sont spécifique.
  4. Les modificateurs d'accès devront être clairement spécifiés.
  5. Vos classes doivent éviter de dupliquer inutilement des méthodes ou des attributs et elle seront compatibles avec le programme principal fourni dans le fichier Poste.java.

Implémentez ensuite le programme résultant de votre conception dans le fichier Poste.java

Avec le programme principal fourni, vous devriez avoir une exécution telle que (le prix indique le coùt d'affranchissement):


Le montant total d'affranchissement est de 47.4
Lettre
        Poids : 200.0 grammes
        Express : oui
        Destination : Chemin des Acacias 28, 1009 Pully
        Prix : 7.4 CHF
        Format : A3

Lettre
(Courrier  invalide)
        Poids : 800.0 grammes
        Express : non
        Destination : 
        Prix : 0.0 CHF
        Format : A4

Publicité
        Poids : 1500.0 grammes
        Express : oui
        Destination : Les Moilles  13A, 1913 Saillon
        Prix : 15.0 CHF

Publicité
(Courrier  invalide)
        Poids : 3000.0 grammes
        Express : non
        Destination : 
        Prix : 0.0 CHF

Colis
        Poids : 5000.0 grammes
        Express : oui
        Destination : Grand rue 18, 1950 Sion
        Prix : 25.0 CHF
        Volume : 30.0 litres

Colis
(Courrier  invalide)
        Poids : 3000.0 grammes
        Express : oui
        Destination : Chemin des fleurs 48, 2800 Delemont
        Prix : 0.0 CHF
        Volume : 70.0 litres

La boite contient 3 courriers invalides

 


[Précédent]
[Index] | [Corrigé] | [Version imprimable]
[Prochain]