Académique Documents
Professionnel Documents
Culture Documents
Il vous est demandé de remplir intégralement l’entête de votre copie et de soigner la présentation
Pour cela, on commence par définir les deux classes Etudiant et Projet comme suit :
package examenPOA2022;
1
public String getClasse() {
return classe;
}
@Override
public String toString() {
return nom+" "+prenom+" "+classe;
}
}
package examenPOA2022;
@Override
public String toString() {
return titre + " " + encadrant;
}
}
1. Compléter le code de la classe Etudiant pour qu’on puisse créer une collection d’étudiants trié par le nom.
2. Complétez le code suivant, en écrivant le constructeur PfeView() et les méthodes ajouter(), chercher(), afficher() et
actionPerformed().
• Le constructeur PfeView() sert à ajouter les layouts adéquats, placer tous les composants et ajouter les écouteurs.
• La méthode ajouter() doit lancer une NullPointerException, qui sera traitée dans le programme principal, si un
des arguments est null. Cette méthode ne peut ajouter que les étudiants qui n’appartiennent pas à la liste des clés
de la Map.
• La méthode chercher() sert à retourner une collection des projets pour un encadrant donné.
• La méthode afficher() sert à afficher les projets des étudiants par classes comme suit :
2
package examenPOA2022;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
public PfeView(){
// A compléter
}
@Override
public void actionPerformed(ActionEvent ev) {
// A compléter
}
}
3
Exercice 2 : Dictionnaire de mots croisés 06 Pts
Un dictionnaire pour mots croisés est un dictionnaire conçu pour faciliter la résolution de mots croisés. Un exemple simple d’un
tel dictionnaire en est un dans lequel les mots sont triés d’abord par longueur, puis par ordre alphabétique.
Le but de cet exercice est d’écrire une classe nommée MotsCroisesDict représentant un tel dictionnaire sous forme d’une
HashMap<Integer, Set<String>>, offrant trois méthodes :
1. void add(String word), qui prend un mot de type String en argument et l’ajoute au dictionnaire s’il ne s’y trouve pas
déjà,̀ ou lève IllegalArgumentException si le mot est vide,
2. void addAll(Collection<String> words), qui prend une collection de mots de type Collection<String> en argument et
ajoute au dictionnaire la totalité des mots qu’elle contient et qui ne s’y trouvent pas déjà, ou lève
IllegalArgumentException si l’un des mots est vide ; notez que la collection elle-même a le droit d’être vide,
3. void print(), qui imprime à l’écran le contenu du dictionnaire, selon le format donné plus bas.
mcd.add("arbre");
mcd.add("maison");
List<String> liste = Arrays.asList("chaise", "table", "bois", "bureau", "arbre", "crayon");
mcd.addAll(liste);
mcd.print();
• La méthode Arrays.asList() est utilisée pour renvoyer une liste de taille fixe contenant les valeurs passées en paramètre.
Mots de 4 lettres :
bois
Mots de 5 lettres :
arbre
table
Mots de 6 lettres :
bureau
chaise
crayon
maison
dans laquelle les mots apparaissent groupés par longueur, les groupes sont triés par longueur croissante, et les mots de chaque
groupe sont triés dans l’ordre alphabétique.