Vous êtes sur la page 1sur 5

DEVOIR SURVEILLE

Matière: PROGRAMMATION ORIENTEE OBJETS Documents: Non autorisés

Enseignants: Chouchène H., Mhafedhi H, Hedheli J, Sghaeir I, Chelbi S Durée: 1h

Classes : RSI 21, 22, DSI 21, 22, SEM2 Date: 11/2013

Il vous est demandé d’apporter un soin particulier à la présentation de votre copie.

QUESTIONS DE COURS(1,5)

1) définir, brièvement, les concepts orienté objet suivants:


a. Redéfinition
b. Surcharge
c. Héritage
PROBLEME (18,5)
2) Ecrire le code java de la classe Jeu décrit comme suit : (6 pts)
Un jeu est une application ayant un identificateur unique (IdGame), un titre (Assassin's creed,
watch dogs, GTA 5,...), un genre (AdverGame, Serious Game,...), un type (Mono ou multi-
joueurs), un éditeur (Ubisoft, Gameloft,...) de type Editeur [voir indication 1] et une date de
sortie de type GregorianCalendar [voir indication 2]
a. Ecrire un constructeur de la classe Jeu (initialise tous les attributs).
b. Ecrire la méthode Affiche qui permet d’afficher les informations de la classe Jeu.

[Indication 1] : Un éditeur est un objet de type « Editeur » qui est une classe décrite par
les attributs privés suivants: code_éditeur, nom_éditeur, pays_éditeur.
3) Ecrire le code java de la classe Editeur et implémenter les méthodes toString() , les
accesseurs & modificateurs des attributs privés et évidemment un Constructeur (avec 3
paramètres) (5 pts)
4) Créer la classe JeuMulti qui est un Jeu (dérivé de la classe jeu) ayant en plus un champ
NombreJoueur (entier) et son attribut « type » est par défaut multi-joueurs. (2,5 pts)
a. Ecrire un constructeur de la classe JeuMulti (initialise tous les attributs).
b. Redéfinir la méthode Affiche qui permet d’afficher les informations de la classe
JeuMulti.
[Indication 2] GregorianCalendar est une classe prédéfinie qui contient 3 attributs privés :
Year, Month, et Date (jour) et une méthode getTime() permettant d’afficher la date crée, voici
un exemple de création de date de type GregorianCalendar:
GregorianCalendar dt = new GregorianCalendar();
dt.set(GregorianCalendar.YEAR, 2010); //c’est un modificateur
permettant d’affecter l’année à la date dt crée
dt.set(GregorianCalendar.MONTH, 12); //c’est un modificateur
permettant d’affecter le mois à la date dt crée

dt.set(GregorianCalendar.DATE, 1); // Affecter le jour à dt

gc.getTime();// c’est une méthode


permettant d’afficher la date « dt »
crée
Note : Question (5.C) est dédiée à
toutes les classes sauf le RSI22—qui
doivent juste créer les 3 jeux et
5) Ecrire le code de la classe JeuPrincipal (contenant afficher leurs informations 4
la méthode main) qui permet de pts
a. créer les dates ds1 : 28/03/2009 et ds2 : 17/04/2012
b. créer les éditeurs Ed1(Ubi, Ubisoft, Canada) et Ed2 (Viv, Vivendi Universal, France)
c. créer le tableau T de Jeu de longueur 10, et insérer dans les trois premières cases les jeux
suivants :
J1 (Ubi2012, Watch dogs, Aventure, mono-joueur, Ubisoft, 20/05/2014) de type Jeu
J2 (WoW, World of Warcraft, MMORPG,multi-joueur, vivendi, 25/09/2012) de type Jeu
J3(WoW, World of Warcraft, MMORPG,multi-joueur, vivendi, 25/09/2012, 2500 )de type
JeuMulti

Afficher la méthode Affiche () de toutes les cases du tableau

6) Comment faire pour calculer le nombre total des jeux édités. (1 pts)
2 /2
DEVOIR SURVEILLE 2014-2015
Matière: POO Documents: Non autorisés

Enseignants: Chelbi S., Mhafdhi H., Chouchan H., Hedhli J., Sghaier I. Durée: 1h

Classes : DSI.2, RSI 2, SEM 2 Date: 20/11/ 2014

Il vous est demandé d’apporter un soin particulier à la présentation de votre copie.

EXERCICE 1 : 2
PTS

6) Soit le programme suivant :


class StrEqual{
public static void main (String[] args){
String s1= ‘‘hi’’ ;
String s2= new String(‘‘hi’’) ;
String s3= ‘‘hi’’ ;
if (s1==s2){
System.out.println(“s1 and s2 equal”) ;
}else {
System.out.println(“s1 and s2 not equal”) ;
}
if (s1==s3){
System.out.println(“s1 and s3 equal”) ;
}else {
System.out.println(“s1 and s3 not equal”) ;
}
}
}
Quelle est le résultat fourni suite à l’exécution du programme précédent :
a) s1 and s2 equal
s1 and s3 equal
b) s1 and s2 equal
s1 and s3 not equal
c) s1 and s2 not equal
s1 and s3 equal
d) s1 and s2 not equal
s1 and s3 not equal.
EXERCICE 2 18
PTS

Une ville décide de créer une application permettant de représenter l’ensemble de biens
(bâtiment, véhicule, . . .) qu’elle possède.
Un bien est défini par sa valeur et son cout d’entretien mensuel. Et on souhaite connaitre le
nombre d’exemplaires de chaque bien.
Un bien peut être un véhicule ou un bâtiment et chaque type de bien possède des informations
supplémentaires. Ainsi, les véhicules possèdent un numéro d'immatriculation, un nombre de
places maximum et le kilométrage, tandis que les logements sont caractérisés par leur superficie et
le nombre de personnes qu'ils peuvent accueillir.

Bien
Valeur : int
CoutEntretien : int
static nbExemplaires : int

String getType()
Void Affiche()

Véhicule Logement
NumImatriculation : superficie :int
String nbPersonneLoges:
nbPlaces: int int
kilométrage : int String getType()
String getType() Void Affiche()
Void Affiche()
void Set_kilometrage()

Chaque classe possède les méthodes suivantes :


- une méthode Affiche () permettant de décrire les informations concernant le bien.
- Un constructeur paramétré permettant d’initialiser tous les attributs
- Une méthode getType () qui retourne le type du bien.

La classe véhicule possède en plus la méthode Set_kilométrage (int) qui permet de


modifier le kilométrage d’un véhicule tout en faisant la mise à jour du cout d’entretien, c a
d si le nouveau kilométrage dépasse les 50000 Km le cout d’entretien sera majoré par
20 % du cout d’entretien initial, sinon s’il dépasse les 100000 le cout d’entretien sera
majoré par 50 % du cout d’entretien initial

1) Ecrire les différentes classes Bien, Véhicule et Logement.

2) On veut créer une classe ville dans laquelle on va définir un tableau de Bien Tab_bien et
2 autres attributs (de type entier) qui représentent la taille maximale et le nombre de
biens.
Cette classe comporte les méthodes suivantes :
- un constructeur qui prend en paramètre la taille du tableau
- Ajout (Bien) qui permet d’ajouter un bien dans le tableau de bien
- Affiche() qui permet d’Afficher les informations de tous les biens de la ville ,
- Calcul_nbre_personnes() qui permet de calculer le nombre total de personnes logées,
Ecrire le code de la classe Ville

3) Ecrire une classe Test_ville (contenant la méthode main) qui permet de :


- Créer une ville V1 de taille maximale 30 et d’ajouter 4 biens (un bien, un véhicule et 2
logements)
- Afficher l’ensemble de bien de la ville V1
- Afficher le nombre total de personnes logées

Bon travail !

Vous aimerez peut-être aussi