Vous êtes sur la page 1sur 4

UVT - N2TR C++&Java

TAF1Ch5 : Classes Java


 Exercice 1   :

On souhaite développer un programme en Java qui permet d’introduire des informations sur un
sportif et évaluer son état de santé. Pour cela, on définit la classe Sportif décrite par :
- Un attribut privé de type entier : taille (qui exprime la taille du sportif en cm)
- Un attribut privé de type double : poids (qui exprime le poids en Kg)
- Les accesseurs et les mutateurs des 2 attributs
- La méthode calculerIMC qui permet de renvoyer l’Indice de Masse Corporelle qui se
calcule selon la formule suivante :
IMC = poids / (taille)2 avec la taille exprimée en mètres
- La méthode interpretation qui renvoie une chaîne définissant l’interprétation de L’IMC
calculé conformément au tableau suivant :

IMC (kg·m−2) Interprétation


Moins de 16,5 Anorexie
16,5 à 18,5 Maigreur
18,5 à 25 Poids idéal
25 à 30 Surpoids
30 à 35 Obésité modérée
35 à 40 Obésité sévère
plus de 40 Obésité massive

- La méthode afficher qui affiche les caractéristiques d’un sportif sous le format suivant :
«Poids = …. Taille = …. IMC =…. »
- La méthode comparerSportifs qui renvoie un booléen indiquant si 2 sportifs ont la même
interprétation de leur IMC.
Travail demandé :
- Implémenter la classe Sportif telle que décrite
- Implémenter une classe Application contenant un programme principal permettant de :
- Créer 2 sportifs
- Initialiser les 2 instances avec des valeurs de votre choix
- Afficher les caractéristiques des 2 sportifs
- Afficher l’interprétation de l’IMC de chaque sportif
- Afficher si les 2 sportifs ont la même interprétation ou non.
UVT - N2TR C++&Java

- Modifier le programme principal pour que l’utilisateur puisse introduire les valeurs du poids
et de la taille

 Exercice 2   :

L’objectif de cet exercice est d’écrire un programme Java qui permet d’effectuer un ensemble
d’opérations sur des nombres rationnels.
Soit la classe Rationnel possédant :
- Deux attributs privés num et denum pour désigner respectivement le numérateur et le
dénominateur.
- Les accesseurs et les mutateurs des différents attributs
- Un constructeur sans argument
- Un constructeur paramétré par deux valeurs.
- Un constructeur de copie
- La méthode convertir qui renvoie le nombre réel associé au rationnel
- La méthode inverser qui permet d’inverser un rationnel (L’inverse de 2/3 est 3/2)
- La méthode somme qui renvoie le rationnel qui résulte de la somme de deux rationnels
- La méthode afficher qui affiche le rationnel sous forme x/y

Travail demandé :
1. Implémenter la classe Rationnel
2. Implémenter une classe de Application contenant un programme principal permettant de :
- Créer un rationnel r1 correspondant à 1/3
- Créer un deuxième rationnel r2 puis l’initialiser à 3/4
- Afficher le résultat de la conversion de r1
- Inverser r2 et l’afficher
- Afficher la somme des 2 rationnels créés
- Créer un rationnel r3 équivalent à r1 et afficher son inverse.

 Exercice 3   : 

L’objectif de l’exercice est d’écrire un programme JAVA qui effectue un ensemble d’opérations sur
des comptes bancaires.
Partie 1 :
Soit la classe Compte décrite par :
- Un numéro de compte : numCompte
- Un attribut statique nommé nbComptes qui indique le nombre de comptes créés
UVT - N2TR C++&Java

- Un solde : solde
- Les accesseurs des différents attributs
- Un constructeur paramétré (qui prend le solde en paramètre). A noter que le numéro du
compte est incrémental, le premier compte a pour numéro 1000.
- Une méthode verser permettant d’alimenter le compte bancaire d’un montant donné
- Une méthode retirer qui permet de mettre à jour le solde après une opération de retrait d’un
montant donné. Cette méthode renvoie un booléen pour indiquer si l’opération peut être
effectuée ou non (solde insuffisant)
- Une méthode afficher qui affiche les détails d’un compte sous format « Compte num = ….
Solde =…. »

Travail demandé :
1. Implémenter la classe Compte telle que décrite
2. Implémenter une classe Application qui comprend un programme principal permettant de :
- Créer 2 comptes c1 et c2 ayant pour solde respectivement 120.5 et 1850.5
- Afficher les caractéristiques de chaque compte
- Verser 200 dinars au compte c2 et l’afficher
- Tester l’opération de retrait pour différentes valeurs sachant que le programme:
 affiche les propriétés du compte si le retrait réussit
 affiche un message d’erreur en indiquant le montant maximum pouvant être retiré

Partie 2 :
Soit la classe OperationsBancaires décrite par :
- Un attribut statique tabComptes qui est un tableau de 100 Comptes
- Un attribut statique nb qui définit le nombre de comptes dans le tableau
- Une constante SOLDE_MIN qui définit le solde minimum à partir duquel il est possible de
créer un compte.
Ainsi que les méthodes statiques suivantes :
- L’accesseur de l’attribut nb
- creerCompte qui prend en argument le montant et qui renvoie un compte créé sachant que
pour créer un compte, il faut qu’il soit alimenté par un montant minimum supérieur à
SOLDE_MIN
- ajouterCompte qui ajoute un compte, passé en paramètre, au tableau des comptes et renvoie
si l’opération est réussie ou non
UVT - N2TR C++&Java

- positionCompte qui prend en argument un numéro de compte et renvoie sa position dans le


tableau s’il existe, -1 sinon
- verserCompte qui permet de verser un montant dans un compte dont le numéro est
également passé en argument
- retirerCompte qui permet de retirer un montant à partir d’un compte dont le numéro est
également passé en argument. La méthode renvoie si l’opération est réussie ou non.
- supprimerCompte qui supprime du tableau un compte passé en paramètre.
- supprimerCompte qui supprime du tableau un compte dont le numéro est passé en
paramètre.
- afficherComptes qui affiche le numéro et le solde de tous les comptes.
- afficherComptes qui affiche les caractéristiques des comptes dont le solde dépasse une
valeur passée en paramètre

Travail demandé :
1. Implémenter la classe OperationsBancaires telle que décrite

2. Tester, dans la classe Application, les différentes méthodes de la classe


OperationsBancaires.

3. On suppose que 2 banques différentes souhaitent bénéficier des opérations bancaires


offertes par la classe OperationsBancaires pour gérer leurs portefeuilles de comptes
clients. Est-ce que c’est possible avec l’implémentation actuelle de la classe ? Expliquer.
S’il y a des modifications à apporter, les détailler.

Vous aimerez peut-être aussi