Vous êtes sur la page 1sur 6

TP POO : Fiches de révision a préparer pour la rentrée universitaire 2020/2021

Fiche n°1
1. Créer une classe Student. Cette classe servira à programmer la notion d’étudiant.
Parmi les attributs de la classe Student, on doit avoir :

 un numéro d’identification appelé id de type int ;


 le prénom, firstName, de type String ;
 le nom, lastName, de type String.

Le numéro d’identification ne changera jamais tandis que le nom et le prénom sont


susceptibles de changer si l’état-civil de l’étudiant change. Déclarer ces trois attributs
dans la classe Student.

2. Ecrire un constructeur pour cette classe. Ce constructeur devra initialiser tous les
champs.

3. Ecrire les fonctions d’accès aux attributs (getters), et les fonctions de modification des
attributs (setters).

4. Tester cette classe en créant un objet de type Student(id=1024,


FirstName=“Mohamed”, LastName=“Tahri”) et demander son affichage dans la
Console. Expliquer ce qui est affiché.

5. Générer automatiquement avec Eclipse la méthode toString et refaire le test.

6. Modifier la méthode toString de la classe pour qu’elle renvoie la chaîne de caractères


formée ainsi :Prénom Nom (identifiant)

7. Créer une classe nomméePromotion. Une promotion étant une liste d’étudiants. Définir
son constructeur.

8. On désire écrire une méthode de la classe Promotionayant la signature public


intadd(String firstName, String lastName) dont la fonction est d’ajouter un
étudiant à la promotion. Le résultat retourné par cette méthode est l’identifiant de
l’étudiant. Pour cela, il faut d’abord écrire une méthode de la classePromotionayant la
signaturepublic intnewId()qui calcule un identifiant numérique non utilisé dans la
promotion.La méthode newId()parcourt la liste des étudiants pour trouver l’identifiant
numérique le plus grand parmi ceux utilisés,puis ajoute 1 pour obtenir son résultat. Si
la liste des étudiants est vide, la fonction retourne 0. Implémentez les deux méthodes
newIdetadd.

9. Écrire une méthode de la classePromotionayant la signaturepublic


voidprintToConsole() et qui affiche la liste des étudiants de la promotion dans la
Console.

10. Tester ces méthodes en créant un objet de la classe Promotion et ajouter quelques
étudiants. afficher la liste des étudiants dans la Console.
TP POO : Fiches de révision a préparer pour la rentrée universitaire 2020/2021

Fiche n°2
On souhaite écrire un programme Java pour la gestion des comptes d’une banque.

Question 1.

Une opération bancaire est définie par le montant de l’opération (positif ou négatif), la
date de cette opération et un libellé.

Exemple : 19/06/2020 | cheque n° 123456 | -5233,60 DA

Ecrire une classe Opération permettant de modéliser de telles opérations : définir les
attributs nécessaires, qui seront encapsulés ; écrire un constructeur ; les assesseurs
(méthodes get…), et redéfinir la méthode toString.

Question 2.

On simplifiera les types de comptes bancaires en considérant le diagramme de classes


suivant :

Ecrire chacune de ces classes puis pour chaque classe un ou plusieurs constructeurs
appropriés. Encapsuler chaque attribut, et écrire une méthode get correspondant à
chaque attribut.

Redéfinir la méthode toString de chaque classe permettant de construire une chaîne de


caractères représentant les informations caractérisant un de ces comptes bancaires.

Question 3.

Dans la classe Compte, écrire 2 méthodes verser(float montant, String libelle) et


retirer(float montant, String libelle) permettant de verser et de retirer de
l’argent sur le compte, en créant à chaque fois un objet de la classe Operation qui sera
rangé dans la liste des opérations, afin d’en garder un historique.

NB : la méthode retirer devra être définie au niveau de la classe Compte et redéfinie


au niveau de la classe CompteCourant pour traiter le cas du découvert autorisé.

Question 4.

Ecrire une méthode Historique(intnombreOperations)affichant le solde du compte et


la succession des dernières " nombreOperations " opérations.
TP POO : Fiches de révision a préparer pour la rentrée universitaire 2020/2021

Question 5.

Ecrire un programme Java pour utiliser ces classes.

Ce programme proposera tout d’abord de créer un compte en demandant s’il s’agit d’un
compte courant ou d’un compte épargne.Ensuite il proposera ensuite un système de
choix permettant d’effectuer une succession d’opérations sur ce compte : versement,
retrait, calcul et ajout des intérêts (uniquement pour les comptes épargnes), consultation
du solde et de l’historique.
TP POO : Fiches de révision a préparer pour la rentrée universitaire 2020/2021

Fiche n°3
Une société vend des articles de papeterie. Vous vous limiterez aux articles suivants :

 stylos décrits par une référence, un nom ou descriptif (par exemple "stylo noir
B2"), une marque, un prix unitaire et une couleur,
 ramettes de papier décrites par une référence, un nom, une marque, un prix
unitaire et le grammage du papier (par exemple, 80 g/m²).

De plus cette société peut vendre ces articles par lots. Vous supposerez que les lots sont
composés d'un certain nombre d'un même type d'articles, par exemple un lot de 10
stylos noirs B2 de la marque WaterTruc. Un lot a une référence. Il a une marque qui est
celle de l'article dont il est composé (WaterTruc pour l'exemple précédent). Le nom du lot
est déterminé par le nombre d'articles dont il est composé ; par exemple "Lot de 10 stylo
noir B2" (vous êtes dispensé de mettre les noms au pluriel !). Le prix du lot est
déterminé par le prix unitaire de l'article multiplié par le nombre d'articles, auquel est
enlevé un certain pourcentage qui dépend du lot. Par exemple, si un lot de 10 stylos à
100 DA a un pourcentage de réduction de 20 %, le prix du lot sera de 10 x 100 x (100 -
20) / 100 = 800 DA. Le prix d'un lot sera calculé au moment où on demandera le prix du
lot ; il n'est pas fixé une fois pour toute et il change si le prix de l'article qui compose le
lot est modifié.

Ecrivez des classes pour représenter les différents articles.

On ne s'intéresse qu'aux différents types d'articles. Ainsi, on aura une seule instance qui
représentera le type "stylo noir B2" et pas 250 instances si la société possède 250 "stylo
noir B2".

Vos classes devront permettre de faire du polymorphisme avec la méthode qui donnera
le prix d'un article (application dans l'exercice suivant sur les factures).

Du polymorphisme dans une facture

La société établit des factures numérotées (en partant de 1) et datées, comprenant le


nom du client, le prix total de la commande et, pour chaque article commandé, sa
référence, son prix unitaire, le nombre d'articles commandés et le prix total pour cet
article.
Pour simplifier, un client ne sera qu'un simple nom dans la facture (pas de classe Client).

Ajoutez les classes pour représenter ces factures.

Vous écrirez une classe test qui affiche 1 facture pour

 10 stylos (choisissez ses caractéristiques)


 15 ramettes de papier
 2 lots de 5 stylos (différents des 10 stylos)

et une autre facture pour

 3 stylos
 2 ramettes
TP POO : Fiches de révision a préparer pour la rentrée universitaire 2020/2021

pour 2 clients différents. Le programme créera tous les objets nécessaires à l'affichage
des 2 factures. Une facture s'affichera sur le modèle suivant (on ne demande pas
d'affiner davantage le format d'affichage mais si vous pouvez faire mieux, n'hésitez
pas !):

--------------------------------------------------------------------------------------------------
Facture 125 Client: Toto Date: 10 septembre 2020

Quant. Ref. Nom Marque PU PT


10 s1 Stylo Jade Watertruc 50.0 500.0
15 r1 Ramette haute qualité Clairefont 9.5 142.5
2 l1 Lot de 5 Stylo or Marker 450.0 900.0

Prix total facture : 1542.5 DA


-------------------------------------------------------------------------------------------------

Pour tester vos classes, utilisez une classe semblable à cette classe TestFacture.
Évidemment, il vous faudra adapter ce code aux classes que vous avez écrites
précédemment, en particulier aux constructeurs de ces classes.
TP POO : Fiches de révision a préparer pour la rentrée universitaire 2020/2021

Fiche n°4
Vous allez programmer le calcul des salaires hebdomadaires des employés d'une
entreprise.

Cette entreprise comporte plusieurs types d'employés :

 Des employés qui sont payés suivant le nombre d'heures qu'ils ont travaillé dans
la semaine. Ils sont payés à un certain tarif horaire et leurs heures
supplémentaires (au-delà de 39 heures) sont payées 30 % de plus que les heures
normales.
 D'autres employés, payés de la même façon, mais leurs heures supplémentaires
sont payées 50 % de plus que les heures normales.
 Les commerciaux sont payés avec une somme fixe à laquelle on ajoute 1 % du
chiffre d'affaires qu'ils ont fait dans la semaine.

Modélisez cette situation à l'aide de classes.

 Vous donnerez un nom à chacun des employés. On ne pourra modifier le nom


d'un employé.
 Vous commencerez par écrire une classe Employe dont hériteront les autres
classes.
 Ecrire un seul modificateur setInfosSalaire pour entrer ou modifier les
informations brutes nécessaires au calcul des salaires (nombre d'heures de
travail, chiffre d'affaire,...). N'essayez pas de faire du polymorphisme avec cette
méthode.
 Les classes comporteront au moins 2 constructeurs : un qui ne prend en
paramètre que le nom de l'employé et l'autre qui prend en paramètres le nom et
toutes les informations pour le calcul du salaire.
 Le calcul des salaires se fera dans la méthode getSalaire() qui sera utilisée pour
faire du polymorphisme.

Une classe Paie comportera une unique méthode main() qui entrera les informations sur
des employés des différents types. Les employés seront enregistrés dans un tableau.

Au moins un des employés sera créé avec le constructeur qui n'a que le nom en
paramètre, et vous entrerez ensuite les informations pour son salaire avec la méthode
setInfosSalaire. Pour au moins un autre employé, vous utiliserez le constructeur pour
entrer les informations sur le salaire.

La méthode main affichera le salaire hebdomadaire de chacun des employés dans une
boucle "for" qui parcourra le tableau des employés. Vous utiliserez le polymorphisme
avec un accesseur pour le salaire. L'affichage aura exactement la forme : "Benali gagne
25000 DA". Vérifiez les calculs des salaires.

Vous aimerez peut-être aussi