• Aucun résultat trouvé

Un média possède un titre, un support (exemple : livre, dvd, etc), ainsi qu’un nombre d’exemplaires

N/A
N/A
Protected

Academic year: 2022

Partager "Un média possède un titre, un support (exemple : livre, dvd, etc), ainsi qu’un nombre d’exemplaires"

Copied!
2
0
0

Texte intégral

(1)

INITIATION A LA PROGAMMATION 2(IP2) TP3

université PARIS . DIDEROT

PARIS 7

Dans ce TP, on utilise la classe java ArrayList qui permet de construire des tableaux de taille variable. Pour pouvoir l’utiliser, il faut importer le package correspondant grâce à la commande import java.util.ArrayList;.

Un tableau de taille variable de nomtabet contenant des String se déclarera par :ArrayList<String>

tab; et s’initialisera avec la commandetab = new ArrayList<String>(); .

Le but de ce TP est de manipuler une médiathèque contenant un certain nombre de médias. Un média possède un titre, un support (exemple : livre, dvd, etc), ainsi qu’un nombre d’exemplaires.

Exercice 1 [Media & Mediatheque]

1. Créer une classeMediacontenant (a) Trois attributs :

private final String titre;

private final String support;

private int nbExemplaires;.

(b) Les trois «getteurs» appropriés.

(c) Un «setteur» pournbExemplaires.

(d) Un constructeur Media(String titre, String support) dont les arguments corres- pondent aux deux premiers attributs et qui met nbExemplaires=1.

(e) Une méthodevoid affiche() qui affiche Poly de TO2 (Livre) x2

sisupport="Livre",titre="Poly de TO2"etnbExemplaires=2.

(f) Une méthode boolean estEgalA(Media el) qui renvoie true si this et el ont des supportettitre identiques.

2. Dans une classe Principal créer une méthode main pour tester tout ceci. On fera tout particulièrement attention au test de estEgalA.

3. Créer une classeMediathequecontenant (a) Un attributArrayList<Media> contenu.

(b) Un constructeur Mediatheque()qui initialise l’attribut à un tableau vide.

(c) Une méthode void ajoute(Media el)qui ajouteeldanscontenus’il n’y est pas déjà ; s’il y est déjà, la méthode doit augmenter la valeur de son attribut nbExemplaires.

(d) Une méthode void affiche()qui affiche tous les Media de la collection, un par ligne.

4. Tester dans lemainde Principalavec le code suivante Mediatheque mesMedias = new Mediatheque();

mesMedias.ajoute(new Media("Poly de IP2","Poly"));

mesMedias.ajoute(new Media("Poly de IP2","Poly"));

mesMedias.ajoute(new Media("Poly de IP2","Poly"));

mesMedias.ajoute(new Media("Poly de IF1","Poly"));

mesMedias.ajoute(new Media("Les Miserables", "Livre"));

mesMedias.ajoute(new Media("Les Miserables", "Dvd"));

mesMedias.ajoute(new Media("Les Miserables", "Livre"));

mesMedias.affiche();

1

(2)

qui doit donner l’affichage :

Poly de IP2 (Poly) x3 Poly de IF1 (Poly) x1 Les Miserables (Livre) x2 Les Miserables (Dvd) x1

Exercice 2 [Copie]

1. Ajouter dans la classe Media un constructeur Media(Media el) qui produit une copie de l’argument.

2. En utilisant le constructeur précédent, écrire dans la classe Mediatheque le constructeur Mediatheque(Mediatheque collec) qui produit une copie de collec.

Dans la suite du TP on supposera qu’un média de titreet desupportfixés n’apparaît qu’une fois dans la Mediatheque.

Exercice 3 [Inclusion & Égalité] Ajouter dans la classeMediathequeles deux méthodes suivantes.

1. boolean estContenuDans(Mediatheque collec), qui renvoietruesithisest contenu dans collec.

Attention, pour un Media qui est dans les deux, il faut vérifier que la quantité dans this est inférieure ou égale à la quantité dans collec.

2. boolean estEgalA(Mediatheque collec), qui renvoie true sicollecetthisont les même médias en même quantité.

Indice : utiliser la méthode précédente.

Exercice 4 [Filtre]

1. Ajouter dans la classe Mediatheque une méthode Mediatheque filtreParTitre(String titre)qui crée une nouvelle Mediathequecontenant uniquement les Mediade thisdont le titre est identique à celui donné en argument.

Attention à copier lesMediaet à ne pas seulement copier leur référence.

Tester cette méthode, par exemple en filtrant laMediatheque mesMedias(définie précédem- ment) par le titre "Les Miserables".

Exercice 5 [Somme](facultatif )

Ajouter dans la classe Mediathequela méthode et le constructeur suivants :

1. void ajouteMediatheque(Mediatheque c), qui ajoute tous les Media dec dansthis.

Tester par exemple en ajoutant mesMedias à elle-même.

2. Mediatheque(ArrayList<Mediatheque> tabDeCollec), qui construit uneMediathequeconte- nant la réunion des Mediathequedonnées en argument.

Exercice 6 [Doublon] (facultatif )

1. Ajouter dans la classe Mediatheque une méthode Mediatheque retireDoublon() qui ne laisse dans this qu’un seul exemplaire de chaqueMedia, et met tous les doublons dans une nouvelle Mediathequequi est renvoyée.

Tester cette méthode avec mesMediasdoit donner les affichages suivants : [mesMedias.retireDoublons().affiche()]

Poly de TO2 (Poly) x2 Les Miserables (Livre) x1

[mesMedias.affiche()]

Poly de TO2 (Poly) x1 Poly de IF1 (Poly) x1 Les Miserables (Livre) x1 Les Miserables (Dvd) x1

2

Références

Documents relatifs

Pour un objet en rotation, la vitesse moyenne se calcule avec la formule v = π×D×n , ou π×D représente la distance parcourue en 1 tour et n la fréquence de rotation..

Les élèves ne disposant pour l’instant que d’informations qualitatives sur l’énergie potentielle et l’énergie cinétique d’un système, le but de

Le soumissionnaire remet, comme pièce constitutive de son offre, un document par lequel il marque son engagement à mettre en œuvre

[r]

Une partie de l'énergie électromagnétique (somme de l'énergie magnétique stockée par la bobine et de l'énergie électrique stockée dans le condensateur) échangée dans le circuit

C’est donc dans ou de cet espace qu’est née une littérature dont « Robben Island » est devenue le symbole?. Il est important de noter que cette littérature revêt une

C ’est ce que nous avons constaté d’une manière flagrante, chez des élèves réintégrés, après une année dans la classe de l’enseignement adapté, dans la classe normale de

Clapier-valladon (1980) (2) propose, de manière pratique, trois prin- cipales étapes d'analyse de contenu thématique: des lectures répétées nous familiarisent avec le