Programmation Java 1A - TP18
Calculatrice avec Pile et Stack

Le but de ce TP est de simuler le fonctionnement d'une calculatrice. Cette calculatrice, basée sur une pile, fonctionne en notation polonaise inversée : pour effectuer l'opération 2+3, on entrera la valeur 2, puis la valeur 3, et enfin on effectuera l'addition, qui dépilera les deux valeurs et empilera le résultat.

1. Ecrire une classe CalculatricePile ayant pour attribut un objet de type PileDeReels (voir TP précédent), représentant la pile dans laquelle sont stockés les valeurs et les résultats des opérations.
    Ecrire un constructeur qui initialise les attributs.
    Ecrire une méthode entrerValeur() qui prend en paramètre un double et l'empile.
    Ecrire la méthode public String toString() qui affiche la valeur située au sommet de la pile (utile pour visualiser le résultat de la dernière opération).
    Ecrire quatre méthodes correpondant aux quatre opérations de base (ajouter, soustraire, multiplier, diviser).

2. Ecrire une classe TestCalculatricePile contenant uniquement la méthode main().
    Dans cette méthode, déclarer un objet de type CalculatricePile, empiler plusieurs valeurs et tester les différentes opérations en affichant la valeur située au sommet de la pile après chaque opération (pour vérifier les calculs).
    Que se passe-t-il dans le cas où on tente une opération alors qu'il n'y a qu'un élément dans la pile, ou dans le cas d'une division par 0 ? Comment modifier la classe PileDeReels et les quatre opérations pour que le programme ne plante pas ?

3. Sur le même modèle que la classe CalculatricePile, écrire une classe CalculatriceStack utilisant un attribut de type StackDeReels à la place de PileDeReels.
INDICATION : normalement il vous suffit de remplacer l'attribut et le début du main(), et tout devrait fonctionner... ou presque

4. Ecrire toujours sur le même modèle une classe CalculatriceStack2 dans laquelle l'attribut est maintenant de type Stack et qui n'utilise plus ni PileDeReels ni StackDeReels.