TP Programmation par objets - Java, Licence3 - Module ULIN504, Université de Montpellier II
Enseignant
resp : Jacques Ferber,
TP 2 : Le distributeur de billets
1 La classe Compte
Rappel:
En java, chaque classe est codée dans un fichier différent. La classe Compte
sera donc écrite dans le fichier Compte.java et un
programme de test sera écrit par exemple dans le fichier Test.java. Les deux
fichiers doivent être compilés et situés dans le même répertoire lors de
l'exécution.
Exercice
1:
Créer une classe Compte qui modélise un compte en banque. Dans
cette classe on doit avoir au moins les deux informations suivantes : numéro du
compte et le solde du compte.
Cette
classe doit posséder les méthodes :
- void deposer(int s) :
pour déposer une somme sur le compte.
- void retirer(int s) :
pour retirer une somme sur le compte.
- int avoirSolde()
: qui retourne le solde du compte.
Exercice
2:
Ecrire un programme pour tester la classe Compte. Ce programme doit effectuer
successivement les opérations suivantes : déposer 5000 Frs, afficher le solde,
retirer 200 Frs, afficher un RIB (methode infos()).
2 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, même si 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 :
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.
3 Le programme DAB (Distributeur Automatique de Billets)
L'objectif
est de faire un programme qui simule un DAB, et permet de manipuler un compte en
banque. Les opérations possibles sont les suivantes :
1- Retrait
2- Dépôt
3- Solde
4- Quit
Exercice
3:
Créez une classe DAB qui comprenne notamment une méthode void activer() qui
sert à 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 (1,2,3 ou 4). Quand un choix est fait le programme
affiche par exemple:
"Vous avez fait le choix
3"
si
il s'agit d'un choix valide,(3 dans l'exemple), et affiche :
"Vous devez entrer un choix
valide ! (ex: 1)"
si
l'utilisateur a entré un choix autre que 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
Exercice
4:
Reprenez le programme
précédent en y ajoutant une instance de la classe Compte, et placez le traitement
correspondant à chaque choix du menu pour que le programme fonctionne réellement
comme un DAB et permet à l'utilisateur de manipuler l'instance de Compte.(Pour
les choix 1 et 2 le programme doit demander à l'utilisateur la valeur à retirer
ou à déposer.)
Modifiez le programme de manière à ce qu'on puisse sélectionnez un compte pour pouvoir travailler dessus. Le menu est maintenant:
0-Selectionner
compte courant
1- Retrait
2-
Dépôt
3-
Solde
4-
Quit
Site des infos concernant le module de programmation par objets en licence:
http://www.lirmm.fr/~ferber/Licence