Programmation Objet et langage Java 2013-2014 POO et Java
Daniel Tschirhart - TD6 POO et Java Calculette complexe en mode graphique 1/7
TD6 APPLETTE JAVA: CALCULETTE COMPLEXE EN MODE GRAPHIQUE
Buts poursuivis par ce TD
Mettre en œuvre l'api graphique AWT de Java à l'aide du plugin Window Buider d'eclipse
Mettre en œuvre les exceptions
Publier des applications Java sur le Web
Description du TP
La calculette précédente est réalisée sous forme graphique.
La zone de saisie et la pile opérationnelle contiennent uniquement des représentations textuelles de nombres
complexes.
Les nombres complexes sont saisis dans un champ de type TextField.
Opérateurs à implémenter
Les quatre opérateurs de base : +, -, *, /.
L’opérateur de conversion rectangulaire -> polaire : p.
Cette opération affiche le nombre situé au sommet de pile dans la zone de saisie dans le format
module[argument°].
Exemple pour le nombre (1 ; 1), la valeur affichée est 1,414[45°]
Les opérateurs de manipulation de la pile s et d
o s : permute le sommet de pile,
o d : duplique le sommet de pile.
La fin de la saisie est provoquée par :
Une parenthèse fermante ")" dans le cas la saisie d’un nombre complexe,
Un opérateur parmi les opérateurs "+, -, *, /, p, s, d" dans tous les autres cas.
On implémentera les opérateurs p, s , et d en tout dernier.
a. Lorsque la saisie est terminée par la frappe de ")", le nombre complexe est placé dans la boite à liste faisant
office de pile après avoir été au préalable formaté à l'aide de la méthode toString de la classe Complex.
Ce formatage permet de s'assurer que la pile ne contient que des représentations textuelles valides.
Nota : pour formater le nombre complexe on pourra instancier celui-ci à l'aide du constructeur
Complex(String) afin de s’assurer que le nombre complexe possède un format valide. puis on le mettra
de nouveau sous sa forme textuelle à l'aide de la méthode toString(). C’est ce nombre qui sera placé dans
la pile.
b. Lorsque la saisie comporte ne comporte pas un nombre complexe, l’algorithme de la calculette effectue
l'opération précisé par l’opérateur fourni dans la zone de saisie en utilisant les opérandes situés au sommet de
pile et au sommet de pile -1 (la pile est implémentée à l'aide de la boite à listes). Le résultat de cette opération
est placé sous forme textuelle au sommet de pile (position 0 de la boite à listes). Si le résultat du calcul n’est
pas un nombre complexe (cas de l'opérateur p), celui-ci est affiché dans la zone de saisie.
Pour assimiler le fonctionnement de la calculette, celle-ci est accessible sous la forme d'une applet Java sur le
site : http://daniel.tschirhart.free.fr/java/TP/calcgraph.htm
c. Toute erreur de saisie provoque une exception dans le constructeur Complex(String). Celui-ci esquive
l'exception et la fait remonter vers l'appelant. Ce dernier doit effacer la zone de saisie pour indiquer que la
saisie est invalide.
Pile Opérationnelle : boite à listes de type List
Zone de saisie (TextField)