Examen 1ére session

Il s'agit essentiellement d'un cours d'initiation au langage Java et aux ... lors du
développement de nos différents programmes en documentant nos tests et en ....
pour une bonne compréhension des notions et pour la réussite des examens.

Part of the document


Examen 1ére session
juin 2006
Licence Informatique 3éme année
Module Complément JAVA Durée 2 heures
Documents autorisés : les polycopiés et notes personnelles de cours, TDs et
TPs du module Ne recopiez pas tout le code ! Indiquez quelles lignes sont à modifier,
ainsi que les modifications, ou indiquez à quelle ligne s'insère du code en
plus. Problème 1 (environ 7 points) En vous appuyant sur la javadoc donnée page suivante, compléter le
programme principal suivant pour permettre la mise à jour des notes des
étudiants : 001 public static void main(String[] args){
002 ExamResultModel erm = new ExamResultModel();
003 erm.addResult("Toto",5.0f);
004 erm.addResult("Titi",7.0f);
005 erm.addResult("Tutu",12.0f);
006 erm.addResult("Tata",15.0f);
007 erm.addResult("Tete",8.0f);
008 erm.addResult("Tyty",17.0f);
009 erm.addResult("Toutou",2.0f);
010 NamedResultList list1 = new NamedResultList(erm);
011 NoteResultList list2 = new NoteResultList(erm);
012 ResultControler rc = new ResultControler();
013 JFrame frame = new JFrame("Test");
014 Box b1 = new Box(BoxLayout.Y_AXIS);
015 Box b2 = new Box(BoxLayout.X_AXIS);
016 b2.add(list1); b2.add(list2); b1.add(b2); b1.add(rc);
017 frame.getContentPane().add(b1);
018 frame.pack();
019 frame.setVisible(true);
020 } | | |
|public class ExamResultModel |public class NoteResultList |
|extends java.util.Observable |extends javax.swing.JList |
|implements java.util.Observer |implements java.util.Observer |
|Cette classe encapsule les résultats d'un |Cette classe représente une liste de |
|examen sous forme d'une liste d'objets |résultats d'examen. Elle affiche les |
|ExamResult qui eux-mêmes encapsulent le nom|résultats triés par note. |
|de l'étudiant et sa note. |Constructor Summary |
|Constructor Summary | |
| |NoteResultList() |
|ExamResultModel() | |
| | |
| | |
| | Method Summary |
|Method Summary | |
| | void |
| void |update(java.util.Observable oable, |
|addResult(java.lang.String name, |java.lang.Object o) |
|float note) | Si l'objet passé en paramètre |
| Cette méthode ajoute un étudiant |est un ExamResultModel, la |
|et sa note dans la liste et provoque la |NamedResultList affiche les résultats |
|notification du changement aux observateurs|encapsulés dans cet ExamResultModel, |
|attachés à cet objet. |triés par note. |
| | |
| java.util.Iterator |[pic] |
|iterator() |public class NamedResultList |
| Cette méthode retourne un |extends javax.swing.JList |
|itérateur sur la liste de résultats (liste |implements java.util.Observer |
|de ExamResult). |Cette classe représente une liste de |
| |résultats d'examen. Elle affiche les |
| void |résultats triés par nom. |
|removeResult(java.lang.String name) |Constructor Summary |
| Cette méthode retire un étudiant | |
|et sa note dans la liste et provoque la |NamedResultList() |
|notification du changement aux observateurs| |
|attachés à cet objet. | |
| | |
| void | Method Summary |
|setNote(java.lang.String name, float note) | |
| | void |
| Cette méthode modifie la note |update(java.util.Observable oable, |
|d'un étudiant et provoque la notification |java.lang.Object o) |
|du changement aux observateurs attachés à | Si l'objet passé en paramètre |
|cet objet. |est un ExamResultModel, la |
| |NamedResultList affiche les résultats |
| void |encapsulés dans cet ExamResultModel, |
|sortByName() |triés par nom. |
| | |
| |[pic] |
| void |public class ResultControler |
|sortByNote() |extends javax.swing.JPanel |
| |implements java.awt.event.ActionListener|
| | |
| java.lang.String |Ce composant graphique permet de |
|toString() |modifier la note d'un étudiant. Il |
| |contient deux JTextField éditables pour |
| |le nom et la note et un bouton. L'appui |
| void |sur le bouton entraine la notification |
|update(java.util.Observable ovable, |aux observateurs attachés au |
|java.lang.Object o) |ResultControler de la modification de la|
| Cette méthode permet de mettre à |note (l'objet passé en paramètre de la |
|jour une note. |méthode notify est un ExamResult |
| |encapsulant le nom et la nouvelle note. |
| Methods inherited from class | |
|java.util.Observable |Constructor Summary |
| | |
|addObserver, clearChanged, countObservers, |ResultControler() |
|deleteObserver, deleteObservers, | |
|hasChanged, notifyObservers, | |
|notifyObservers, setChanged | |
| | Method Summary |
| Methods inherited from class | |
|java.lang.Object | void |
| |actionPerformed(java.awt.event.ActionEve|
|clone, equals, finalize, getClass, |nt e) |
|hashCode, notify, notifyAll, wait, wait, | |
|wait | |
| | void |
| |addObserver(java.util.Observer o) |
| | |
| | |
| | void |
| |removeObserver(java.util.Observer o) |
| | |
| | |
| | | Problème 2 (environ 6 pts) 001 import java.awt.*;
002 import java.awt.event.*;
003 import javax.swing.*;
004
005 public class MachineASous extends JPanel
006 {
007 private DisqueAChiffre disques[];
008 private String resultat;
009 private volatile boolean enJeu;
010
011 public MachineASous() {
012 super(new GridLayout(1,3,5,5));
013 disques = new DisqueAChiffre[3];
014 for (int i=0; i