FicheExercices-2 File - Université Paris 1 Panthéon

publicité
UniversitéParis1–PanthéonSorbonne
ISI5–ArchitectureOO-L3MIAGE
1
Fiched’exercicesN°2
Pourchaqueexerciceci-dessous,fournirlecodeJava,ainsiquelamodélisationUML.Vouspouvezutiliser
pourcelaVisualParadigm1.
1) Analyseretcritiquerlecodeci-dessous.Justifiervospositionsetcorrigerlecodesinécessaire.
1
2
3
public class CoordonneesGPS {
double[] coord; //latitude et longitude
String nom; //nom de la ville/localité
4
5
public double[] getCoord() {
return coord;
}
public void setCoord(double[] coord) {
this.coord = coord;
6
7
public String getNom() { return nom; }
public void setNom(String nom) { this.nom = nom; }
8
9
10
11
12
13
14
15
16
17
18
19
20
public void show() {
//on affiche les coordonnées en format dd ° mm ' ss "
System.out.println("Lat : " + transforme(coord[0])
+ "Lon : " + transforme(coord[1]));
}
public void saisie() {
Scanner sc = new Scanner(System.in);
coord = new double[2];
System.out.println("Latitude :");
coord[0] = sc.nextDouble();
System.out.println("Longitude :");
coord[1] = sc.nextDouble();
}
21
22
23
24
25
26
27
28
29
protected String transforme(double value) {
StringBuilder coord = new StringBuilder();
double totalSec;
long l;
//on transforme une coordonnée de degrés en dd ° mm ' ss "
totalSec = value * 3600;
l = (long) totalSec / 3600;
coord.append(l);
coord.append("° ");
30
31
32
l = (long) (totalSec % 3600) / 60;
coord.append(l);
coord.append("' ");
33
34
35
36
37
38
l = (long) (totalSec % 3600) % 60;
coord.append(l);
coord.append("'' ");
return coord.toString();
}
}
}
UniversitéParis1–PanthéonSorbonne
ISI5–ArchitectureOO-L3MIAGE
2
2) Etendre la classe Etudiant (proposée dans la fiche d’exercice précédente) de manière à ce qu’on
puisseenregistrerunnombrequelconquedenotes(lenombredoitêtrerenseignéparl’utilisateur).
Ecrireuneapplicationàl’aidedelaclasseEtudiantpermettantàunenseignantderenseignerles
notespourungrouped’étudiantsetpermettantlarestitutiondesinformationssuivantes:
• lerésultatparélève;
• lamoyennedugroupe;
• lanotemaximaledugroupe;
• lanoteminimaledugroupe.
Apartirdelaclasseproposée,répondreauxquestionssuivantes:
a)
b)
c)
d)
Commentavez-vousséparélanotiond’élèveetcelledegroupe?
Commentavez-vousséparélasaisiedesnotesetlecalculdesmoyennes?
Avez-vouspuréutiliserlaclasseprécédemmentdéfiniesanslamodifier?
Quellesontétélesdifficultésmajeurespourlaréutilisation?
Exercicesàrendre:
3) EtendrelaclasseTableauObjets(proposéelorsdelafiched’exerciceprécédente)demanièreàce
que l’utilisateur puisse remplir le tableau séquentiellement et non plus de manière «aléatoire».
Désormais, l’utilisateur n’a plus besoin d’indiquer la position qu’il souhaite remplir, car les cases
doivent être remplies les unes après les autres. Par contre, l’utilisateur doit pouvoir supprimer
n’importe quelle case du tableau, juste en indiquant sa position. Utiliser les mécanismes de
surchargeetderedéfinitionsinécessaire.
1
Observations:
•
•
•
•
LemodèleUMLfournidoitcorrespondreaucodeJavaprésenté.
Lorsqu’il vous sera demander de rendre l’exercice, vous devez compacter la totalité du projet
NetBeans(ycomprisleprojetVisualParadigm)dansunfichierzipportantvotrenometlenuméro
del’exercice.Exemple:Nom-Fiche1-Exercice1.zip.
Lorsque des questions sont proposées avec les exercices, répondez à chaque question tout au
débutducodeJavaproposéàl’aidedescommentaires(/*…*/).
Si vous avez dû modifier un code précédent pour pouvoir réaliser un exercice, indiquer les
modificationsapportéesdanslecodeàl’aidedescommentaires(/*…*/).
Téléchargement