Vous êtes sur la page 1sur 4

ENSAF- 2ISD Année : 2021/2022

TP2 Java

Problème :
Première partie :

On considère la classe Livre suivante:


public class Livre {
private String titre, auteur;
private int nbPages
public Livre (String unAuteur, String unTitre) {
auteur = unAuteur;
titre = unTitre;
}
public String getAuteur () {
return auteur;
}
public void setNbPages (int n) {
nbPages = nb;
}
1) Corriger les erreurs commises dans la classe précédente.
2) Ajouter des accesseurs (les getters) pour les variables titre et nbPages.
3) Ajouter des modificateurs (les setters) pour les deux variables auteur et titre.
4) Changer la méthode setNbPages (int) : il faut tester sur la valeur de n, si n > 0 alors changer le
nombre de pages. Si non, ne rien faire et afficher un message d'erreur.
5) Ecrire un programme de test permettant de :
a. Créer deux livres.
b. Afficher les auteurs de ces deux livres.
c. Donner et afficher le nombre de pages de chacun de ces deux livres.
d. Déterminer et afficher le nombre de pages total de ces deux livres.
6) Ajouter une méthode afficheToi () à la classe « Livre » pour afficher une description du livre
« auteur, titre et nombre de pages ». Faire un test de cette méthode dans le « main » de votre
programme.
ENSAF- 2ISD Année : 2021/2022

7) Insérer et exécuter dans votre fonction main l'instruction System.out.println (livre), avec livre
représente un des livres créés.
8) Redéfinir la méthode toString (), de la classe java.lang.Object, afin d’avoir une représentation
d’un objet de la classe « Livre » de cette façon : « C’est un livre de titre : Notre Dame de Paris
écrit par l’auteur Victor Hugo et contenant 150 pages ». Exécuter à nouveau votre programme
et vérifier ce qui est affiché par l'instruction System.out.println (livre). Quelle est votre
conclusion ?
9) Modifier la méthode afficheToi () de la classe « Livre » pour utiliser la méthode toString ().
10) Exécuter à nouveau votre programme pour vérifier le bon fonctionnement de la méthode
toString().
11) Supprimer, provisoirement, le seul constructeur « Livre (String unAuteur, String unTitre) »
de la classe Livre. Est-ce qu’il est possible de créer un nouveau livre dans la méthode main sans
insérer un nouveau constructeur dans la classe « Livre »? Si oui, créer un nouveau livre écrit par
Victor Hugo et afficher son titre et son auteur.
12) Remettre dans la classe « Livre » le constructeur que vous avez supprimé. Que remarquez vous
au niveau de la méthode main, expliquer pourquoi ?
13) Ajouter à la classe « Livre » deux autres constructeurs:
a. Un constructeur sans paramètre,
b. Un constructeur a 3 paramètres : l’auteur, le titre et le nombre de pages,
14) Utiliser les différents constructeurs ainsi que d'autres méthodes de votre classe pour créer deux
livres de plusieurs pages dans votre méthode main.
15) Exécuter à nouveau votre programme.

Deuxième partie :

On considère la classe « Livre » créée dans la partie précédente. Afin de gérer des livres dans une
étagère, on vous demande de créer en premier temps une autre classe, nommée « Etagere».
Remarque : utiliser un tableau pour gérer les livres, avec le nombre de livres est fixé pour chaque
étagère.
Ensuite, ajouter à la classe « Etagere » :
- Etagere (int) : un constructeur représentant le nombre de livres que peut contenir l'étagère.
- int getNbLivres () : une méthode retournant le nombre de livres que contient l’étagère.
- int getNbLivresMax () : une méthode fournissant le nombre maximal de livres que peut contenir
l'étagère.
ENSAF- 2ISD Année : 2021/2022

- void ajouter (Livre) : une méthode ajoutant un livre après le dernier livre déjà ajouté à l’étagère.
Le premier livre ajouté doit être mis au début de l'étagère, c.-à-d. à la première position du tableau.
Il est impossible de mettre des livres dans une étagère pleine.
- Redéfinir la méthode toString (), afin d’avoir une représentation d’un objet de la classe
« Etagere ».
- Livre getLivre (int) : une méthode retournant la référence sur un livre (instance de Livre) dont on
fournit la position sur l'étagère. La première position d'une étagère est désignée par l’indice 1 alors
que la première position du tableau désignée par l’indice 0.
- int chercher (String, String) : une méthode cherchant un livre et retournant sa position dans
l'étagère. Chaque livre est identifié par son titre et son auteur. Si le livre n’est pas dans l’étagère la
méthode retourne 0 et s'il existe plus d’un livre contenant le même titre et le même auteur cette
méthode retourne celui qui a le plus petit indice.
- chercherLivres (String, String) : Une méthode ayant une fonctionnalité semblable à la précédente
et retournant un tableau de positions s'il existe plus d’un livre contenant le même titre et le même
auteur. Appeler, si possible, la méthode « chercher (String, String) ». La taille du tableau est le
nombre de livres trouvés dans l’étagère.
- chercherAuteurs ( String) : Une méthode cherchant tous les livres d'un auteur et retournant un
tableau de ces livres.
- chercherTitres ( String) : Une méthode cherchant tous les livres qui ont un certain titre et
retournant un tableau de ces livres.
- Livre enleverLivre (int) : une méthode permettant de supprimer un livre dont on fournit sa
position sur l'étagère.
- Livre enleverLivre (String, String) : une méthode permettant de supprimer un livre dont on
fournit son auteur et son titre et invoquant la méthode « chercherLivres (String, String)».
Noté bien : les deux précédentes méthodes retournent le livre enlevé, ou null s’il n’y a aucun
livre trouvé dans l’étagère. Et en cas de suppression d’un livre arranger à nouveau l’étagère (décaler
les livres vers le début).
- Dans le cas ou l’étagère contient de nombreux livres, son arrangement à nouveau nécessite plusieurs
décalages de ces livres vers le début. Pour éviter toutes ces opérations, réécrire les deux méthodes
précédentes afin de placer le dernier livre à la place du livre enlevé. Donner « enlever » comme
nom des nouvelles versions.
Pour tester le travail que vous avez réalisé, écrire un programme d’essai permettant de :
a. Créer des livres et deux étagères.
b. Ajouter quelques livres dans les étagères.
ENSAF- 2ISD Année : 2021/2022

c. Rechercher un livre dans une étagère.


d. Rechercher et afficher tous les livres d'un auteur.
e. Supprimer un livre d’une étagère.
f. Afficher à chaque fois si nécessaire les étagères modifiées

Remarque : commencer par écrire le constructeur, la méthode pour ajouter un livre et la méthode
toString() et teste. N'écrire les autres méthodes que lorsque l'ajout de livre fonctionne correctement.

Vous aimerez peut-être aussi