14/12/2004 Examen de Java / Travaux Pratiques GTR 2.1

publicité
14/12/2004
Examen de Java / Travaux Pratiques
GTR 2.1
Consignes :
Documents écrits autorisés, discussions, mail et chat interdits...
Web autorisé uniquement sur le serveur SUN pour la documentation API.
Tarif : Mail envoyé = -20 points
Chat = -20 points.
(Vous pouvez donc envoyer 1 mail immédiatement et sortir...)
Tout le code fourni se trouve sous l'espace disque commun GTR (cf le tableau).
Lisez correctement le sujet et le code, la commande javadoc peut vous faciliter la lecture...
Commentez et testez votre code.
Sujet :
On désire réaliser la gestion d'une agence bancaire :
• Une agence bancaire est définie par un nom, une liste de comptes et une trésorerie égale à la somme des comptes
gérés. Il y a possibilité d'ajouter un compte et d'imprimer la liste des comptes de l'agence. Le code permettant
cette implémentation a déjà été écrit, compilé et testé (cf Agence.java).
•
Un compte est défini par un solde, un client, un numéro (unique) une liste d'opérations. Le code permettant cette
implémentation est écrit, compilé et testé (cf Compte.java).
•
Un client est défini par un nom et un prénom. Le code permettant cette implémentation est écrit, compilé et testé
(cf Client.java).
•
Une opération est définie par une date (stockée sous forme de chaine de caractères) et un montant. On distingue
trois types d'opèrations : Dépot, Retrait, Virement interne entre 2 comptes de l'agence. La classe abstraite
Operation, regroupant les propriétès communes à ces trois opérations est implémentée, compilée et testée (cf
Operation.java).
•
Convention : les morceaux de codes à écrire sont signalés par des %%% tant que la commande UNIX grep "%%
%" *.java retourne quelque chose, c'est qu'il vous reste du code à taper...
Questions :
1. Implémenter la fonction clone dans la classe Client. (1 point)
2. Dans la classe Compte, implémenter la variable nombreDeComptes qui va vous permettre de compter le nombre
de comptes et d'attibuer un numéro unique à chaque compte. (2 points)
3. Ecrire une classe OperationDepot qui implémente une opération spécifique au dépot. (2 points)
4. Ecrire une classe OperationRetrait qui implémente une opération spécifique au retrait. (2 points) /* 1/3 temps free */
5. Ecrire une classe OperationVirement qui implémente une opération spécifique au virement. (2 points)
6. Dans la classe Compte, ajouter une méthode permettant les dépots. (1 point)
7. Dans la classe Compte, ajouter une méthode permettant les retraits. (1 point) /* 1/3 temps free */
8. Dans la classe Compte, ajouter une méthode permettant les virements. (1 point)
9. Dans la classe Compte, ajouter une méthode permettant d'afficher un relevé détaillant les opérations. (1 point)
10. Ajouter la possibilité d'afficher des relevés de toutes les opérations de tous les comptes d'une agence. (1 point)
11. Réaliser une sauvegarde de l'état des comptes d'une agence sur un fichier. (2 points)
12. Réaliser une restauration de l'état des comptes d'une agence à partir d'un fichier. (2 points) /* 1/3 temps free */
13. Générer une exception quand un solde est à zero. (2 points)
Téléchargement