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(/*…*/).