Vous êtes sur la page 1sur 2

 

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  

Vous aimerez peut-être aussi