Durée 2h
Mars 2007
Epreuve de programmation par objets
Année 2006-2007 2ième année
Polycopiés de Cours Autorisé. Autres Documents interdits. Calculatrices interdites.
Remarques :
Lorqu’une question vous semble pouvoir être interprétée de plusieurs manières, indiquez de
quelle manière vous l’avez comprise.
Si une fonction a été écrite lors d’une question précédente, vous pouvez l’utiliser par la suite sans
la réécrire.
1/2
Exercice : classe simple
1/ Ecrire en Java une classe Vecteur2D qui permet de manipuler les vecteurs 2D du plan comportant 2
coordonnées. Elle comportera les méthodes et constructeurs suivants :
Un constructeur avec deux doubles indiquant l’abscisse et ordonnée
Un constructeur pour initialiser à l’aide d’un autre vecteur
Un constructeur par défaut (0 dans les deux champs)
Les accesseurs aux champs x et y
L’addition de deux vecteurs. Attention ; ne pas modifier les vecteurs que l’on additionne.
Cette méthode sera utilisée sous la forme v3.add(v1,v2) où v1,v2 et v3 sont des vecteurs.
Une méthode retournant la norme (racine carrée de la somme x*x+y*y) d’un vecteur
L’affichage du vecteur
Une méthode retournant la multiplication du vecteur par une constante. Le vecteur initial ne
doit pas changer de valeur.
2/ Ecrire un programme principal qui effectue les actions suivantes.
Création d’un vecteur vide v1, du vecteur v2 de coordonnées (1,0), du vecteur v3 identique à v2
et du vecteur v4 de coordonnées 1,1.
Ajout de v2 à v4 dans v1 et affichage de v1
Définition du vecteur v5 qui contiendra la multiplication de v3 par 2.
Création d’un tableau de 10 vecteurs : les 5 premiers vecteurs seront initialisés en fonction de leur
position dans i dans le tableau avec i pour abscisse et 3*i pour ordonnée
Affichage des 10 vecteurs. Indiquer quel sera le résultat affiché par votre programme ici.
Gestion d’une bibliothèque
On veut créer une application permettant la gestion d’une bibliothèque municipale. Cette
bibliothèque contient des romans, des BD, des revues. Tous les documents gérés par la bibliothèque ont
un titre (une chaîne de caractère) et un prix d’achat (un double). Les livres ont de plus un nombre de
pages (un entier) et un auteur (une chaîne de caractère). Les romans sont des livres. Les BD sont des
livres qui ont de plus un dessinateur (une chaîne de caractère). Une revue est un document qui a une date
de sortie, représentée par 1 entier pour le mois et un entier pour l’année.
Les fonctionnalités indispensables sont l’affichage du document et le calcul de coût "d’entretien"
des documents. Ce coût dépend du prix d’achat "p" et de la nature du document. Ce coût est p*1,186+6
pour un roman, p*p+5 pour une revue, p+2 pour une BD.
2/2
1/ Représenter graphiquement par un diagramme de classes (le diagramme d’héritage) les différentes
classes utiles pour représenter ces éléments. Précisez les champs et les méthodes.
2/ Ecrire en Java ces différentes classes, en respectant les notions d’encapsulation (privé ou public) et la
notion de réutilisabilité. Ces classes comporteront au moins :
Un constructeur adéquat permettant de construire un objet avec les paramètres nécessaires
Les accesseurs aux différents champs.
Une méthode permettant l’affichage du contenu de l’objet
Une méthode permettant de tester l’égalité de l’objet avec un document passé en paramètre
Le calcul du coût d’entretien lorsque c’est utile
La bibliothèque est définie par une liste de documents qu’elle possède. Il faut pouvoir créer la
bibliothèque, ajouter un document à la bibliothèque, supprimer un document à la bibliothèque, afficher
l’ensemble des documents de la bibliothèque.
3/ Ecrire en Java une classe Bibliothèque comportant les méthodes :
Un constructeur adéquat:
Ajout d’un document
Suppression d’un document
Affichage de tous les documents de la bibliothèque
Affichage de tous les auteurs des documents de la bibliothèque. S’il y a plusieurs documents
du même auteur, il pourra apparaître plusieurs fois.
Nombre de documents présents dans la bibliothèque.
4/ Ecrire la fonction main qui effectue les actions suivantes :
Création d’une Bibliothèque
Ajout du roman "Les raisins de la colère", de J. Steinbeck, de 650 pages
Ajout de la Bd "Trolls de Troy, Histoire trolles : tome 1" de S. Arleston (Scenario) et Jean-
Louis Mourier (Dessins), 48 pages
Ajout du roman "La fée carabine" de D. Pennac, 306 pages
Ajout de la revue "L’enserg en folie", de mars 2007".
Affichage de tous les documents de bibliothèque
Suppression de la revue "L’enserg en folie", de mars 2007".
5/ On ajoute une fonctionnalité de sauvegarde de la bibliothèque dans un fichier. Comment faites-vous,
que modifiez vous (Ne pas réécrire toutes les classes)? Ecrivez cette méthode
6/ On veut ajouter la gestion des CD, définis par un titre, un auteur et une durée. Le coût est défini par
p+3,8. Quelles sont les modifications à faire dans les classes déjà réalisées ? Ecrivez en Java la ou les
classes utiles ?
7/ La notion d’auteur représenté par une chaîne de caractère est un peu limité : un auteur est un individu
qui a un nom (une chaîne de caractère) et un age (un entier). De même pour un dessinateur. Ecrivez en
Java les classes utiles pour représenter les auteurs et dessinateurs. Que devrez-vous modifier dans les
classes précédentes (ne réécrivez pas toutes les classes) ? En particulier, expliquez comment
fonctionnera la méthode d’affichage de tous les auteurs (question 3) et écrivez les classes et les méthodes
utiles pour représenter et manipuler les auteurs.
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !