Vous êtes sur la page 1sur 6

REPUBLIQUE DU CAMEROUN REPUBLIC OF CAMEROON

Paix-Travail-Patrie Peace-Work-Fatherland
-------------- --------------
ECOLE NATIONALE SUPERIEURE DES POSTES, NATIONAL ADVANCED SCHOOL OF POSTS,
DES TELECOMMUNICATIONS ET DES TIC TELECOMMUNICATIONS AND ICT
------------- ----------------

ANNEE ACADEMIQUE 2018 -2019


SEMESTRE 3
EVALUATION DE PROGRAMMATION ORIENTEE OBJET
CONTROLE CONTINU
CLASSE : ITT 2 A & B DUREE :2 h

ELEMENTS DE CORRECTION

EXERCICE 1. QUESTIONS DE COURS (1pt x 3 = 3 points)


1. Encapsulation
2. Héritage
3. Vrai

EXERCICE 2. MEDIATHEQUE (6 points)

Remarques : Une bonne modélisation devrait préciser les attributs des classes en fonction de
la nature du média caractérisé par un auteur, un titre et une date de création communs et
accessibles aux sous-classes. Toutefois, en cas d’absence d’attribut, il faudrait au minimum un
constructeur est précisé par classe, en plus des autres méthodes.

SUP’PTIC 2019-2020 1/6


EXERCICE 3. ELEVAGE DE VOLAILLE (11 points)

a) Classe Volaille avec deux sous-classes Poulet et Canard. 2 pts x 3 = 6 pts

public abstract classe Volaille {


//Attributs
prive id : entier // Numéro d’identification
prive poids : reel // en kg
prive age : entier //Age exprimé en semaines
//Methodes
public Volaille(id : entier, poids : reel){
this.id ← id
this.poids ← poids
this.age ← 3 // 3 semaines d’âge à l’arrivée à l’élevage
}
public setPoids(p : reel) {
poids ← p
}
public getPoids() : entier {
retourner poids
}
public getId() : entier {
retourner id
}
public getAge() : entier {
retourner age
}
public abstract abattreVolaille(): booleen
public toString() : chaine {
retourner ("Id volaille = ", id ," poids = ", poids, "kg")
}
}

SUP’PTIC 2019-2020 2/6


public classe Canard extends Volaille {
//Attributs
prive static prixDuJour : reel // en FCFA par kilo et identique pour
//tous les canards, d’où le static
prive static poidsAbbatage : reel // en kg et identique pour tous les canards
//Methodes
public Canard(id : entier, poids : reel){
super(id, poids)
}
public static setPrixDuJour(p : reel) {
prixDuJour ← p
}
public static getPrixDuJour() : reel {
retourner prixDuJour
}
public static setPoidsAbbatage(p : reel) {
poidsAbbatage ← p
}
public static getPoidsAbbatage() : reel {
retourner poidsAbbatage
}
public abattreVolaille(): booleen { //Si la taille de commercialisation atteinte
retourner (getPoids() >= poidsAbbatage)
}
public getPrix() : reel { //Si taille (poids) de commercialisation atteinte
Si abattreVolaille() Alors
retourner (prixDuJour x poidsAbbatage)
Sinon
retourner 0
FinSi
}
public toString() : chaine {
retourner (super.toString(), "Canard poidsAbbatage = ", poidsAbbatage,
" prix = ", getPrix() )
}
}

SUP’PTIC 2019-2020 3/6


public classe Poulet extends Volaille {
//Attributs
prive static prixDuJour : reel // en FCFA par kilo et identique pour
//tous les poulets, d’où le static
prive static poidsAbbatage : reel // en kg et identique pour tous les poulets
//Methodes
public Poulet(id : entier, poids : reel){
super(id, poids)
}
public static setPrixDuJour(p : reel) {
prixDuJour ← p
}
public static getPrixDuJour() : reel {
retourner prixDuJour
}
public static setPoidsAbbatage(p : reel) {
poidsAbbatage ← p
}
public static getPoidsAbbatage() : reel {
retourner poidsAbbatage
}
public abattreVolaille(): booleen { //Si la taille de commercialisation atteinte
retourner (getPoids() >= poidsAbbatage)
}
public getPrix() : reel { //Si taille (poids) de commercialisation atteinte
Si abattreVolaille() Alors
retourner (prixDuJour x poidsAbbatage)
Sinon
retourner 0
FinSi
}
public toString() : chaine {
retourner (super.toString(), "Poulet poidsAbbatage = ", poidsAbbatage,
" prix = ", getPrix() )
}
}

SUP’PTIC 2019-2020 4/6


b) Diagramme de classes UML. 2 pts

c) Classe « gestVolaille » permettant de représenter l’ensemble des animaux de l’élevage


au moyen d’un tableau. 3 pts

Const max = 100


Type tabVolailles = tableau [1..max] de Volaille

public classe gestVolaille {


//Attributs
prive ferme : tabVolailles //tableau de volailles
prive n : entier //nombre de volailles
//Methodes
public gestVolaille() { //initialisation du tableau à vide
n←0
}
SUP’PTIC 2019-2020 5/6
//pour enregistrer les jeunes animaux dans la ferme en faisant usage du
//paramètre v qui peut désigner un canard ou poulets par polymorphisme

public enregistrer (v : volaille) {


Si (n +1 <= max) alors
ferme[n + 1] ← v
n←n+1
Sinon
Ecrire("Ferme en dépassement de capacité")
Fsi
}

//pour trier (selon la valeur de poids) les animaux à abattre c’est-à-dire à


//envoyer à l’abattoir. En sortie, on aura un autre tableau de volailles.

public trier(var abattoir : tabVolailles, var nb : entier) {


nb ← 0 //nombre de volailles à abattre
Pour i=1 à n faire
//on vérifie si la volaille a atteint le poids requis
Si (ferme[i].abattreVolaille()) Alors
nb ← nb + 1
abattoir[n]← ferme[i] //volaille placée dans l’abbatoir

ferme[i] ← ferme[n] // on retire la volaille de la ferme


n←n-1
Fsi
FinPour
}

// pour évaluer le prix des animaux à abattre

public evaluerPrix() : reel {


var montant : reel
montant ← 0
Pour i=1 à n faire
montant ← montant + ferme[i].getPrix() //getPrix() vérifie le
poids
FinPour
retourner (montant)
}
}

SUP’PTIC 2019-2020 6/6

Vous aimerez peut-être aussi