DEVOIR
SURVEILLE
PROGRAMMATION
ORIENTEE
OBJET
AVANCEE
Niveau
:
2ème
année
DSI/RSI
Date
:
21
avril
2016
Nombre
de
pages
:
2
Durée
:
1
h
Il
vous
est
demandé
d’apporter
un
soin
particulier
à
la
présentation
de
votre
copie.
Exercice
1
1. Donner
la
sortie
du
programme
suivant
:
package ds2016;
class Test {
public static void main(String[] args) {
try {
System.out .println("Avant a");
a();
System.out .println("Apres a");
} catch (Exception e) {
System.out .println("main : " + e);
}
finally {
System.out .println(" main : finally");
}
}
public static void a() {
try {
System.out .println("Avant b");
b();
System.out .println("Apres b");
} catch (IndexOutOfBoundsException e) {
System.out .println("a : index hors limite");
}
finally {
System.out .println("a : finally");
}
}
public static void b() {
try {
int tab[] = new int[4];
tab[10] = 10 / 3;
}
catch (ArithmeticException e) {
System.out .println("b : Erreur de calcul");
}
finally {
System.out .println("b : finally");
}
}
}
1
2. Soit
la
classe
ListeNombres
comme
suit
:
package
ds2016;
public class ListeNombres {
private int[] tableau;
private static final int MAX_NB = 10;
public void vérifier() {
try{
System.out .println("Debut du bloc try");
int i;
for(i=0;i <= MAX_NB ; i++){
if ((tableau[i]/i) == 2)
break;
}
if(i < MAX_NB )
System.out .println("Ordre incorrect!");
}
catch(……… e) { }
catch(……… e) { }
}
}
a) Compléter
chacun
des
blocs
catch
pour
capturer
les
exceptions
possibles
b) Compléter
le
code
pour
afficher
le
message
«
Fin
de
vérification
»
dans
tous
les
cas
de
figures.
Exercice
2
Soit
une
classe
«
Employe
»
avec
:
• Attributs
matricule
(int),
nom
(String)
et
service
(String).
• Constructeur
paramétré
:
public
Employe(int
matricule,
String
nom,
String
service)
• Accesseurs
et
mutateurs.
• Méthode
toString()
qui
retourne
une
chaine
représentant
l’employé.
Dans
ce
qui
suit
le
code
de
la
classe
Employe
est
supposé
fourni
et
à
ne
pas
coder
dans
votre
réponse.
1. Créer
une
classe
GestionEmployes
permettant
de
manipuler
ces
employés
dans
une
collection
ArrayList
et
offrant
les
méthodes
suivantes
:
a. boolean
ajouterEmploye(Employe
e)
:
ajout
avec
vérification
si
cet
employé
est
déjà
exitstant.
b. void
afficher()
:
afficher
les
employé
à
l’aide
d’un
Iterator.
2. Donner
les
opérations
nécessaires
pour
pouvoir
utiliser
:
a. Une
TreeSet
au
lieu
du
ArrayList
sachant
que
les
employés
seront
triés
suivant
leurs
matricules
et
que
2
employés
sont
égaux
s’ils
ont
le
même
matricule.
b. un
HashMap
au
lieu
du
ArrayList,
sachant
que
la
clé
utilisée
est
le
matricule.
2