TP3 JAVA 1A/AS 1998/99
IUTA LYON 1
Informatique Bourg
Introduction
L’objectif de ce TP est de reprendre les notions de la programmation JAVA abordées en TD. Il s’agit aussi de montrer les spécificités de JAVA par rapport aux autres langages.
Principales notions abordées :
Le but de ce TP est de créer un programme permettant de gérer les notes des élèves.
On reprend les classes Eleves et Notes définies lors du TP1.
La classe Eleves contient le nom et le prénom d’un élève. Elle est aussi composée d’une référence sur un objet Notes.
La classe Notes contient une suite de notes (Class Vector).
Exercice 1 : Implémenter ces classes ainsi que les méthodes permettant d’accéder aux différents attributs.
Java.util.Vector
Vector est une classe “ collection ”.
Tout objet de cette classe contient une collection ordonnée d’éléments. Il s’agit essentiellement d’un tableau dynamique.
C’est une des particularités les plus puissantes de JAVA. La classe Vector simplifie grandement la manipulation des tableaux dynamiques par rapport aux langages C et C++.
On peut ajouter ou enlever des éléments à n’importe quelle position. La taille du vecteur est automatiquement mise à jour.
Un vecteur se déclare et s’instancie tout simplement : Vector vecteur = new Vector();
Les principales méthodes de cette classe sont :
-
addElement(element) pour ajouter à la fin
-
insertElement(elment,i) pour insérer en position i.
-
removeElement(i) enlève l’élément I et décale les suivants.
-
size() fournit le nombre d’éléments
-
firstElement(), lastElement() et elementAt(i) accèdent aux éléments
-
contains(Object) vaut Vrai si l’objet est contenu dans le vecteur, faux sinon.
Remarque : la classe Vector ne contient que des éléments de type Objet. On peut donc mettre côte à côte des éléments de types différents.
Conséquence : il faudra “ caster ” les éléments dans le bon type avant de pouvoir les utiliser.
Exercice 2: compléter la classe Notes et créer une méthode permettant de calculer la moyenne des notes. Gérer les exceptions !
Définir un ou plusieurs constructeurs de la classe Notes qui permet de créer une nouvelle instance (utiliser le plus possible de méthodes spécifiques à la classe Vector)
java.util.Hashtable
On veut maintenant différencier les notes selon les matières, on va donc créer un objet de type Hashtable.
Il s’agit d’une collection d’objets auxquels on accède grâce à une clé qui est un objet devant implémenter la méthode hashCode et la méthode equals.
Son utilisation est assez semblable à celle de la classe Vector.
Les principales méthodes de cette classe sont :
-
put(clé, new Constructeur()) pour ajouter un élément
-
get(clé) pour accéder à un élément
-
remove(clé) pour l’enlever
Exercice 3 : modifier la classe Eleve pour qu’elle soit composée d’une instance de Hashtable qui contienne les notes dans chaque matière.
Remplir la table et créer les méthodes nécessaires pour calculer la moyenne d’un élève dans une matière.
Java.util.Enumeration
L’énumération permet d’accéder au différents éléments d’une collection (Vector ou Hashtable par exemple).
Exercice 4 : soit les instructions suivantes :
For (Enumeration e= table.keys() ; e.hasMoreElements() ; ) {
String key = (String) e.nextElement() ;
……
}
Modifier les lignes précédentes pour calculer automatiquement la moyenne générale d’un élève.
Lecture dans un fichier (java.io.File)
Les classes File et RandomAccessFile permettent de définir des fichiers.
Pour ouvrir un fichier en lecture :
RandomAccessFile file = new RandomAccessFile(toto,r) ;
La méthode readLine() lit une ligne entière dans un fichier et retourne une chaîne si elle s’est déroulée correctement et null sinon.
StringTokenizer st = new StringTokenizer(s) transforme la chaîne s en une suite de mots.
Les méthodes hasMoreTokens() et nextToken() permettent d’accéder au différents mots de st.
La classe StringTokenizer se trouve dans le package java.util.
Exercice 5 : Créer une classe Groupe composée d’un tableau d’Eleves.
Ecrire une méthode qui permet de lire la liste des noms et des prénoms stockés dans un fichier et qui remplit le tableau au fur et à mesure.
- -
Dostları ilə paylaş: |