D

Prolégomènes Java - M1 et M2 d'informatique de l'Université de Montpellier II

J. Ferber

TP 2 : distributeur bancaire

1 Saisie clavier en Java

Il faut tout d'abord noter que java est un langage sécurisé, et qu'il existe un mécanisme d'exception qui permet de gérer d'éventuelles erreurs lors de l'exécution du programme. La méthode que nous allons utiliser pour capturer une chaîne entrée au clavier exploite ce mécanisme.

Aussi nous allons devoir effectuer une déclaration particulière (et obligatoire) qui nous permettra de ne pas tenir compte des exceptions.

Il faut désormais déclarer la fonction main() de la façon suivante:

public static void main(String[] args) throws Exception {

       //votre code...

}

D'autre part, Java n'est pas un langage très adapté à l'entrée d'informations directement à la console de commande, mais cela est tout à fait possible. En effet, Java préfère les interactions avec l'utilisateur au travers d'interfaces graphiques que nous verrons en cours.

Néanmoins, pour ce TP, les interactions avec l'utilisateur du programme s'effectueront au travers de la console. Pour lire une chaîne entrée au clavier, on va utiliser la classe BufferReader. En tout début de fichier, avant 'public class...' il faut écrire la ligne :

     import java.io.*;  

et dans la fonction main() on déclare :

BufferedReader clavier = new BufferedReader(new  InputStreamReader(System.in));

Maintenant la ligne de code suivante :

   chaine = clavier.readLine();

stoppe l'exécution du programme jusqu'à ce que une chaîne soit saisie au clavier terminée par ENTER), puis retourne cette chaîne (ici récupérée par la variable chaine, de type String) et reprend l'exécution du code.

Pour transformer une chaîne de caractère en nombre on utilisera la méthode: Integer.parseInt(String s) qui retourne un entier, et Double.parseDouble(String s) qui retourne un double.

Pour obtenir de l'information sur les API de Java, vous pouvez aller sur le site de Sun (version 1.5 ici): http://java.sun.com/j2se/1.5.0/docs/api/ (package 'java.lang' pour les nombres et les chaînes de caractères).

2 La manipulation de la banque

L'objectif est de faire un programme qui simule un DAB, et permet de manipuler les comptes en banque réalisés au cours du TP précédent. Le menu est le suivant:

        0-Selectionner compte courant
        1- Retrait  
        2- Dépôt  
        3- Solde  
        4- Quit  

Dans la classe Banque, ajouter la méthode activer() qui servira à faire des interactions avec l'utilisateur. Cette méthode affiche le menu décrit ci-dessus, et permet à l'utilisateur de saisir l'un des choix (0, 1,2,3 ou 4).

La commande demande une valeur et affiche ensuite le résultat si le choix est valide. Elle affiche :

          "Vous devez entrer un choix valide ! (ex: 1)"

si l'utilisateur a entré un choix autre que 0, 1,2,3 et 4.

Après chaque choix et l'affichage de la phrase correspondante, le menu doit être réaffiché, et l'utilisateur peut saisir un nouveau choix, et ce jusqu'à ce que l'utilisateur saisisse le choix 4, lequel conduit à mettre fin au programme.

Si le compte n'existe pas, le programme doit renvoyer un message d'erreur à l'utilisateur.

3 Modification de structures de données

On modifie la structure de la classe Banque de manière à ce qu'elle manipule des classes de Compte. On pourra utiliser la classe Vector ou ArrayList pour gérer cette liste de comptes. Vérifiez que vous n'avez pas besoin de modifier les méthodes générales, et que seule la méthode getCompte et creerCompte doivent être modifiées.