A) LinkedList, Interface Comparable … Données : Fichier de type texte Personne.txt 0123456789012345678901234567890123456789012345678901234567890123456789 ROY CHANTAL F 1.63 54.9 2754 MOLAISON CLAUDE M 1.57 62.2 1848 ROBITAILLE SUZANNE F 1.79 72.3 2007 etc . . . Écrire le code permettant de : - concevoir la classe Personne pour répondre aux questions ci-dessous; - lire le fichier texte, de créer une liste (LinkedList) des personnes; - faire une démonstration de Collections.min, Collections.max, Collections.sort, recherche séquentielle, recherche dichotomique - etc . . . Déjà expliqué en classe : Voir Liste2.java disponible sur le site du cours. B) Programmation des notions de base Pour les questions de 1.1) à 1.5) (total de 5 x 4 points) dans cette section, le mot terme désigne un mot ou quelques mots et liste désigne une liste (LinkedList) des personnes ( exemple Liste2.java expliqué en classe et disponible sur le site du cours ). 1.1) Écrivez les trois termes les plus appropriés associés à l’instruction : System.out.println("Contenu de la liste de personnes : \n" + liste); Réponse : 1) toString() de l’hiérarchie LinkedList redéfinition 2) toString() de Personne 3) 1.2) Écrivez les trois termes les plus appropriés associés à liste.getFirst() : Réponse : 1) liste.get(0) 2) liste.element() 3) liste.peek() IFT 1170 A, modèle d’un examen final ( 40 % ) 1 1.3) Écrivez les trois termes les plus appropriés associés à la méthode indexOf … : Personne aChercher = new Personne("Dube Francoise", ' ', 0.0, 0.0, 0) ; int k = liste.indexOf(aChercher); Réponse : 1) redéfinition de equals 2) vs lastIndexOf 3) recherche séquentielle 1.4) Écrivez les trois termes les plus appropriés associés à la méthode equals de Personne : Réponse : 1) indexOf() 2) lastIndexOf 3) contains(…) 1.5) Écrivez les trois termes les plus appropriés associés à l’instruction : Collections.sort(liste); Réponse : 1) Interface Comparable 2) implémenter compareTo 3) binarySearch fonctionnelle 2) Récursivité ( 15 points ) static void afficher(int n) { if (n == 1) System.out.printf("Go\n"); else { System.out.print("Saute "); afficher(n-1); } } static void afficher2(int n) { for (int i = 1; i < n ; i++) System.out.print("Saute "); System.out.printf("Go\n"); } etc . . . IFT 1170 A, modèle d’un examen final ( 40 % ) 2 3) Classe abstraite, Interface , . . . : Revoir l’exemple Abstraite.java 4) Fichier Binaire, LinkedList, Pile . . . Dans Binaire2.java, vous travaillez avec deux fichiers binaires Femme.Bin et Homme.Bin Écrivez le code permettant de 3.1) créer deux «LinkedList» listeFem : liste des femmes et listeHom : liste des hommes ; 3.2) trier listeFem selon les numéros ; 3.3) ajouter 4 cm à la taille de la dernière personne de listeHom. 4.1) Appels : LinkedList<Personne> listeFem = relire("Femmes.Bin"), listeHom = relire("Hommes.Bin"); Méthode : static LinkedList<Personne> relire(String nomALire) throws IOException{ System.out.println("On lit le fichier binaire du nom " + nomALire); LinkedList<Personne> uneListe = new LinkedList<Personne> (); DataInputStream aLire = new DataInputStream ( new FileInputStream(nomALire)); boolean finFichier = false ; char sexe = ' '; while ( ! finFichier ) { try { sexe = aLire.readChar(); } catch ( EOFException e ) { finFichier = true; } if (!finFichier) { double taille = aLire.readDouble(), poids = aLire.readDouble(); int numero = aLire.readInt(); IFT 1170 A, modèle d’un examen final ( 40 % ) 3 String nomPre = ""; for (int i = 0; i < 30; i++) nomPre += aLire.readChar(); Personne pers = new Personne(nomPre, sexe, taille, poids, numero); uneListe.add(pers); } } aLire.close(); return uneListe; } 4.2) trier listeFem selon les numéros : class Personne implements Comparable<Personne> { . . . etc . . . public int compareTo(Personne autre) { return numero - autre.numero; } } Dans main(…) : Collections.sort(listeFem); 4.3) ajouter 4 cm à la taille de la dernière personne de listeHom. Personne lastHom = listeHom.getLast(); lastHom.setTaille( lastHom.getTaille() + 0.04); Dans Personne, on écrit des méthodes d’accès et de modifications nécessaires. etc . . . IFT 1170 A, modèle d’un examen final ( 40 % ) 4