-
Exercice débutant JAVA
Bonjour,
Je me rapproche de ce forum, car je suis débutant en java, et j'ai un exercice a réaliser qui est le suivant :
Ecrire un programme qui comporte 2 processus ProcessusDebit et ProcessusCredit qui accèdent a un même compte initialise a 100. On considère que les processus exécutent, un certain nombre de fois, les transactions suivantes :
• ProcessusDebit : Transaction { Affiche le solde courant; Débit de 100; Affiche le nouveau solde; Sommeille pendant un temps aléatoire TempsSommeilDebit; R ́e-affiche le solde }
1
• ProcessusCredit : Transaction { Affiche le solde courant; Credit de 300; Affiche le nouveau solde; Sommeille pendant un temps aléatoire TempsSommeilCredit = TempsSommeilDebit/100; R ́e-affiche le solde }
Indications : dans la classe principale, créer un objet ”compte” (instance de la classe LeCompte par exemple) qui sera partagé entre les deux processus (”compte” sera passé en parametre aux 2 processus). On définira les méthodes créditer et débiter dans la classe LeCompte.
Je ne sais pas du tout ou commencer et dans quoi mettre le constructeur, sachant que j'ai appris a utiliser les threads et les semaphores.
Merci de vos réponse.
Cordialement
-
Salut,
Bon je vais pas te donner la réponse ça serait trop facile :aie::aie: mais je vais essayer de te mettre sur la voie.
Ici je ne fais que reprendre l’énoncé de ton exo.
Tu as ici deux objets à représenter, donc deux classes à créer.
- Un Compte
- Un Utilisateur
Tu sais que tu dois travailler sur le solde d'un compte, donc il te faut créer un attribut solde dans la classe Compte que tu souhaiteras peut être initialiser à une certaine valeur lors de sa création.
Pour le compte tu dois définir ses opérations, donc les méthodes qui vont manipuler le solde.
- Afficher
- Créditer
- Débiter
Il n'est pas bien difficile de voir comment ces méthodes font s'écrire, je te laisse donc le soin de le faire ;)
Maintenant l'utilisateur.
Lui on sait qu'il ne fait que manipuler un compte, il lui faut la référence de se compte pour pouvoir travailler dessus. Il est donc logique de penser qu'il faut lui donner cette information à sa création (même si on peut envisager aussi de lui passer plus tard). On va donc lui créer un attribut compte qu'il faudra renseigner.
On veut pouvoir faire travailler plusieurs utilisateurs en même temps sur le compte, donc on peut dire qu'il faut créer plusieurs Threads qui vont chacun représenter un utilisateur et les actions qu'ils souhaitent réaliser.
Maintenant il ne faut pas que les utilisateurs puissent manipuler le solde du compte en même temps, car on ne veut pas que l'un débite le compte en pensant avoir de l'argent dessus, alors que le 2eme à déjà pris cet argent (passant ainsi le solde du compte en négatif). Il faut donc pouvoir synchroniser l'accès aux opérations qui servent à manipuler le solde. Et on doit pouvoir faire ça avec des semaphores ;)
Voila je pense que tu as toutes les cartes en main pour écrire ton programme. J'ai volontairement laissé la partie technique de coté car il n'y a vraiment rien de sorcier à faire, et puis parce qu'on est pas là pour faire les exos à ta place ;)
N'hésite pas à poster du code si tu bloques sur un point en particuler.
cdt.