[PDF] TP n 4 - Correction On définira une classe





Previous PDF Next PDF



Exercices de Programmation Orientée Objet en Java

Écrire du code objet pour représenter les zones construites et les zones humides. Exercice 3.11 : on veut réaliser un programme de gestion d'une bibliothèque.



Gestion Bibliothèque Résumé Ces travaux seront réalisés dans le

A partir de Java EE 6 cette classe est proposée comme alternative aux paramètres du service dans le fichier de configuration Exercices (à remettre le ...



Exercices et solutions

7 mai 2010 13.2 Construire le schéma des tables correspondant au schéma conceptuel d'une gestion de bibliothèque de la figure 11.26. ... Cet exercice relève ...



Exercices Corrigés Initiation aux Base de données

(A B) est une clé composée de R car les valeurs de (A



Initiation à la programmation objet avec Java

17 avr. 2004 Java et la gestion des fichiers .... ... bibliothèque Math de java : Rappel : log. 2. (n) = x si 2 x. = n. Par exemple : log. 2. (1024) = 10 car 2.



Projet UML Cas Bibliothèque

Tout d'abord une fois que nous avions ciblé le système sur la gestion des livres de la bibliothèque



TD n 6 - Correction

Java. Licence Informatique. Année 2005-2006. TD n◦6 - Correction. Héritage. Exercice 1 On modélise une application devant servir `a l'inventaire d'une biblioth 



BASES DE DONNÉES ET MODÈLES DE CALCUL

gestion des deux types de temps (validité et transaction). 7.4 LA GÉNÉRATION DE ... exercice 18.13 sont à ce point encourageants que l'entreprise décide d ...



Analyse Orientée Objet – ING1 TD 2 : Diagramme de classes

Ce TD a pour but de se familiariser avec la notion d'objet et de classe. Exercice 1. On s'intéresse à un système de gestion de bibliothèque. Il s'agit de ...



Exercice : classe simple Gestion dune bibliothèque

Exercice : classe simple. 1/ Ecrire en Java une classe Vecteur2D qui permet de manipuler les vecteurs 2D du plan comportant 2 coordonnées.



UE Programmation Orientée Objet Devoir Surveillé

May 20 2015 Exercice 2 : Bibliothèque (65mn). On s'intéresse à la gestion d'une bibliothèque et en particulier à la gestion des emprunts des ouvrages.



Exercices de Programmation Orientée Objet en Java

Écrire du code objet pour représenter les zones construites et les zones humides. Exercice 3.11 : on veut réaliser un programme de gestion d'une bibliothèque.



Gestion Bibliothèque Résumé Ces travaux seront réalisés dans le

Nov 28 2014 application de gestion d'une bibliothèque dans laquelle les étudiants ... L'application serveur doit être réalisée en langage Java en ...



Conception et réalisation dun système dinformation sur la formation

D'échange d'informations sur la gestion des bibliothèques. ? De confrontation des expériences documentaires conduites dans les universités 



TD n 10 Collections

Exercice 1 Modéliser Nous voulons programmer un logiciel de gestion de bibliothèque. ... Exercice 3 Itérateurs programmez votre propre collection !



TP n 4 - Correction

On définira une classe Bibliotheque réduite `a la seule méthode main pour tester les différentes classes de ce TP. Exercice 1 Tous les documents poss`edent 



175 exercices corrigés - Couvre Java 8 (Noire) (French Edition)

il n'en va pas de même de ses bibliothèques standards. Très tôt le modèle de gestion des événements a été fortement modifié (version 1.1).



Master bio-info : Java Année 2013-2014 TD4

Important : Dans les deux exercices qui suivent toutes les variables (d'objet Exercice 1 [Gestion d'une bibliotèque] Pour la gestion d'une bibliothèque ...



TD 3 & 4 Java : initiation à la notion de classe héritage

Exercice 1 : Analyse d'un programme Java. Objectifs : hiérarchie de classe héritage. Considérons le programme Java suivant : package exo1; class Livre {.

Qu'est-ce que le livre de Java premier langage?

Le livre de Java premier langage 2© Éditions Eyrolles ?Le chapitre 7, « Les classes et les objets », explique à partir de l’étude de la classe String, ce que sont les classes et les objets dans le langage Java. Il montre ensuite com- ment dé?nir de nouvelles classes et construire des objets propres à l’application développée.

Comment gérer une bibliothèque ?

Pour la gestion d’une bibliothèque on nous demande d’écrire une application traitant des documents de nature diverse : des livres, qui peuvent être des romans ou des manuels, des revues, des dictionnaires, etc. Tous les documents ont un numéro d’enregistrement (un entier) et un titre (une chaîne de caractères).

Comment insérer l’ensemble des instructions dans une structure de programme Java?

Le livre de Java premier langage 16© Éditions Eyrolles Nous verrons pour ?nir comment insérer l’ensemble de ces instructions dans une structure de programme Java. ?L’opération 1 consiste à déclarer les variables utilisées pour le calcul de la circonférence. Cette opération se traduit par l’instruction : double unRayon, lePerimetre ;

Universite Paris Diderot Programmation Orientee Objet

Licence Informatique Annee 2009{2010

TP n

4 - Correction

Revisions, suite et n. Introduction a l'heritage

On modelise une application devant servir a l'inventaire d'une bibliotheque. Elle devra traiter des documents de nature diverse : des livres, des dictionnaires, et autres types de documents qu'on ne conna^t pas encore precisement mais qu'il faudra certainement ajouter un jour (bandes dessinees, dictionnaires bilingues,...). On denira une classeBibliothequereduite a la seule methodemainpour tester les dierentes classes de ce TP. Exercice 1Tous les documents possedent untitre. Quand un document est cree, son titre est donne a la creation et par la suite, il ne change plus.

1. Denir la classeDocumentavec son constructeur public, et la proprietetitreprivee et

son accesseur.

2. On veut attribuer unnumero d'enregistrementunique des que l'on cree un objetDocument.

On veut que le premier document cree ait le numero 0, et que ce numero s'incremente de 1 a chaque creation de document. Quelles proprietes faut-il ajouter a la classeDocument? Les- quelles doivent-^etrestatic? Les ajouter sans leurs accesseurs, et modier le constructeur. Puis ajouter une methodegetNumerorenvoyant le numero d'enregistrement du document.

3. Ajouter un second constructeur public permettant de denir aussi, en plus du titre, le

numero d'enregistrement (suppose positif ou nul) lors de la creation d'un document. Quelles restrictions peut-on prendre an d'eviter que deux documents crees aient le m^eme numero? Dans les cas de restriction, on prendra le numero suivant prevu, a la place du numero indique par l'utilisateur.

4. Redenir la methodetoStringrenvoyant la cha^ne de caracteres constituee du numero

d'enregistrement et du titre du document. Correction :Il faut prendre garde a ce que, si on ajoute un document en indiquant son numero, ce numero soit plus grand que le numero suivant prevu. Il faut de plus mettre a jour le numero suivant. public class Document { static private int numeroSuivant = 0; private int numero; private String titre; public Document(String titre) { this.numero = numeroSuivant; numeroSuivant++; this.titre = titre; public Document(String titre, int numero) { if (numero < numeroSuivant) { numero = numeroSuivant; 1 this.numero = numero; numeroSuivant = numero + 1; this.titre = titre; public int getNumero(){ return numero; public String getTitre(){ return titre; public String toString() { return ("numero: "+numero+" titre: "+titre); Exercice 2On veut implementer une liste de documents dans laquelle on veut pouvoir ajouter des documents petit a petit, et y acceder par leur numero d'enregistrement. Mais plut^ot que d'utiliser les structures de collections Java (ArrayList,Vector, etc. que l'on verra dans une seance ulterieure), on veut programmer soi-m^eme \en dur" une structure de donnees. Pour implementer cette structure, on va creer une classeListeDeDocumentsavec un tableau de documentstableaucontenant les documents de la liste. Cependant, pour eviter d'avoir a augmenter la taille du tableau a chaque ajout, on va xer initialement sa taille a 1 et doubler sa taille des qu'on veut ajouter un document dont le numero d'enregistrement est plus grand que la taille du tableau.

1. Denir la classeListeDeDocumentsavec la propriete priveetableauet la methodeajouter

qui ajoute un document a la place indiquee par son numero d'enregistrement, ainsi qu'une methodegetDocumentqui prend en argument un numero et renvoie le document de la liste ayant ce numero (nulls'il n'est pas dans la liste).

2. Dans cette classe, redenir la methodetoStringpour qu'elle renvoie les descriptions de

tous les documents de la liste, separees par un saut de ligne"\n".

3. Modier la classeDocumentpour faire en sorte que tous les documents crees puissent ^etre

retrouves en utilisant une methode statiqueaccesDocumentdans la classeDocument.

Correction :

public class ListeDeDocuments { private Document[] tableau; public void ajouter(Document doc) { if (tableau.length <= doc.getNumero()) {

Document[] t = new Document[tableau.length * 2];

for (int i = 0; i < tableau.length; ++i) { t[i] = tableau[i]; tableau = t; 2 tableau[doc.getNumero()] = doc; public Document getDocument(int index) { if (index >= tableau.length) { return null; return tableau[index]; public ListeDeDocuments() { tableau = new Document[1]; public String toString() {

String resultat = "";

for (int i = 0; i < tableau.length; ++i) {

Document d = tableau[i];

if (d != null) { resultat += d + "\n"; return resultat; L'inconvenient de cette representation est qu'il est dicile de parcourir la liste des documents. Cela est d^u au fait que cette liste, optimisee pour l'acces direct aux documents par leur numero, peut ainsi comporter des \trous". Exercice 3La bibliotheque est appelee a traiter des documents de nature diverse : des livres,

des dictionnaires, et autres types de documents.A chaque livre est associe, en plus, unauteuret unnombre de pages, les dictionnaires ont,

eux, pour attributs supplementaires unelangueet unnombre de tomes. On veut manipuler tous les articles de la bibliotheque au travers de la m^eme representation : celle de document.

1. Denissez les classesLivreetDictionnaireetendant la classeDocument. Denissez pour

chacune un constructeur permettant d'initialiser toutes ses variables d'instances respec- tives.

2. Redenissez la methodetoString()dans les classesLivreetDictionnairepour qu'elle

renvoie une cha^ne de caracteres decrivant unun livre ou un dictionnaire, en plus de la description normale d'un document.

Correction :

public class Livre extends Document{ private String auteur; private int nbPages; public Livre(String titre, String auteur, int nbPages) { super(titre); this.nbPages = nbPages; this.auteur = auteur; 3 public String getAuteur() { return auteur; } public int getNombreDePages() { return nbPages; } public String toString(){ return (super.toString()+" auteur: "+getAuteur()+" pages: "+getNombreDePages()); public class Dictionnaire extends Document { private int nbTomes; private String langue; public Dictionnaire(String titre, int nbTomes, String langue) { super(titre); this.nbTomes = nbTomes; this.langue = langue; public int getNombreDeTomes() { return nbTomes; } public String getLangue() { return langue; } public String toString() { return (super.toString()+" tomes: "+getNombreDeTomes()+" langue: "+getLangue());

3. Dans la classeListeDeDocuments, denissez une methodetousLesAuteursqui renvoie la

cha^ne des auteurs de tous les livres de la liste.

4. Dans la classeListeDeDocumentsdenissez une methodetousLesDicosqui renvoie une

liste de documents (sous la forme d'une nouvelle instance de la classeListeDeDocuments) contenant tous les dictionnaires de la liste.

Correction :

public ListeDeDocuments tousLesDicos() { ListeDeDocuments resultat = new ListeDeDocuments(); for (int i = 0; i < tableau.length; ++i) {

Document d = tableau[i];

if (d != null) { if (d instanceof Dictionnaire) { resultat.ajouter(d); return resultat; public String tousLesAuteurs() {

String resultat = "";

for (int i = 0; i < tableau.length; ++i) {

Document d = tableau[i];

if (d != null) { if (d instanceof Livre) { resultat += ((Livre) d).getAuteur() + "\n"; 4 return resultat;

5. Denissez ensuite quelques classes supplementaires, par exempleBandeDessinee,Manga,

DictionnaireBilingue, etc. avec des proprietes en plus. Pour chacune de ces nouvelles classes, quelle classe etend-elle? Exercice 4Dans l'exercice suivant nous allons utiliser la classeFileWriterpour generer un chier. Pour l'utiliser il faut l'importerimport java.io.FileWriter;. D'autre part, l'utilisa- tion des constructeurs de cette classe, peuvent generer des exceptions du typeIOException. Il convient donc : { d'importer la classeIOExceptionavecimport java.io.IOException;, { d'ajouterthrows IOExceptiona la declaration des methodes dans lesquelles nous utilisons

FileWriter.

Un cours et un TD seront consacres a la gestion des exceptions. Enn dierents constructeurs existent pourFileWriter. Nous allons utiliser le constructeur prenant en argument une chaine de caracteres. Notez que cette cha^ne de caracteres peut specier le chemin vers le dossier dans lequel nous voulons generer nos chiers. Par exemple : FileWriter w = new FileWriter(``/local/home/monom/file''); genere un chierfile.txtvide dans mon dossier/local/home/monom/. Pour ecrire dans un tel chier, on utilise entre autres les methodes : {write(String s)qui ecrit la cha^ne s dans le chier, {close()pour mettre n a l'ecriture dans ce chier. Si vous utilisezwrite(String s), il est necessaire de terminer l'ecriture du chier en utilisant close(). { Dans la classeListeDeDocuments, denissez une fonctionsauvegardepermettant d'ecrire la liste des documents dans un chier.

Correction :

public void sauvegarde(String filename) throws IOException {

FileWriter w = new FileWriter(filename);

Document unDocument;

for (int i=0; i