Gestion de notes de
modules
Objectifs : Définition d’une classe - Utilisation des classes java.util.Vector, java.lang.Float et l’interface Enumeration - Redéfinition de la méthode toString() - Gestion des Exceptions.
A noter : A l’adresse http://java.sun.com/j2se/1.3/docs/api/index.html, consulter la documentation sur les classes des API java.
1. Soit la classe CumulNotes (donnée en annexe) permettant de cumuler des notes et d’en faire la moyenne.
Compléter la classe après avoir consulté la documentation de la classe Vector.
Remarque : Les notes seront stockées dans le vecteur suivant la méthode FIFO. D’où, limiter la découverte de la classe Vector aux méthodes suivantes : constructeur sans argument, addElement(), elements(), size().
2. On souhaite créer la classe Module regroupant un certain nombre de matières. Chaque matière a un coefficient pondérateur et un cumul de notes.
Propriétés
· Un Module a un nom.
· Un Module peut avoir plusieurs matières. On souhaite repérer une matière à partir de son nom (String).
Méthodes
· Construction d’un Module en initialisant son nom (String).
· insererNouvelleMatiere() : Ajout d’une matière (repérée par son nom) accompagnée de son coefficient (float).
· insererNoteMatiere() : Ajout d’une note donnée à une matière donnée.
· calculerMoyenneModule() : Calcul de la moyenne du module – somme des moyennes des matières pondérées par leur coefficient.
· Surcharge de la méthode toString().
a. Quelle classe utilitaire doit-on utiliser pour faciliter les traitements (insertion d’une matière, insertion d’une note à une matière, …) ? Spécifier les propriétés de la classe Module.
b. Développer les méthodes de la classe Module.
3. Ecrire un programme de test qui :
· crée le module "Programmation Java",
· lui ajoute 3 matières "JavaDeBase", "JavaReseau" et "Projet" ayant pour coefficients respectifs : 1/4,1/4, 1/2,
· insère les notes 10 et 15 à la matière "JavaDeBase",
· insère les notes 13.5 et 9 à la matière "JavaReseau",
· insère la note 15 à la matière "Projet",
· affiche le contenu du module et sa moyenne.
4. Développer une solution permettant de lever :
- une exception BadNoteValueException signalant une note en dehors de l’intervalle considérée.
- une exception BadCoeffSumException si la somme des coefficients des matières d’un module est différente de 1..
/**
* CumulNotes.java
* Classe
permettant de cumuler une série de notes et d'en calculer la moyenne
* Created on 9 octobre 2000, 13:29
*/
package
note;
import
java.lang.*;
import
java.util.*;
import
java.io.*;
public class CumulNotes {
private Vector notes; // Vecteur de
notes
public static final int MIN_VALUE = 0; //
Note minimale
public static
final int MAX_VALUE = 20; // Note maximale
/** Creates new CumulNotes */
public CumulNotes() {
notes = new Vector();
}
/** Insertion d'une note */
public void
insererNote(float n) {
// A
COMPLETER
}
/**
Calcul de la moyenne */
public float calculerMoyenne() {
// A
COMPLETER
}
public String
toString() {
// A
COMPLETER
}
}