Version sans JavaScript, en lecture seule : les ateliers, les quiz et l’exécution du code n’y sont pas. Version complète · Catalogue · Se connecter

Séquence

Mini agenda

Socle

Un carnet de prénoms stockés dans une ArrayList<String>, avec un menu : 1) Ajouter 2) Lister 3) Rechercher 4) Supprimer 0) Quitter.

Objectifs : Collections (ArrayList), boucles, sous-menus, recherche.

Fonctionnalités

  • rechercherPrenom(List<String> noms, String recherche) renvoie l’indice trouvé, ou -1. La recherche ignore la casse.
  • supprimerPrenom(List<String> noms, String aSupprimer) renvoie true si la suppression a eu lieu.
  • listerPrenoms(List<String> noms) affiche la liste, et un message clair si elle est vide.

Étapes

  1. afficherMenuAgenda().
  2. ajouterPrenom(List<String> noms, Scanner sc).
  3. listerPrenoms(List<String> noms).
  4. rechercherPrenom(List<String> noms, String recherche).
  5. supprimerPrenom(List<String> noms, String aSupprimer).
  6. boucleAgenda(Scanner sc) → la boucle principale.

Critères : Pas de plantage si la liste est vide, suppression sécurisée, messages clairs.

Ici, un atelier : on y écrit et on y exécute du code. Il demande JavaScript.

Code de départ

Agenda.java

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Agenda {

    public static void afficherMenuAgenda() {
        // TODO : 1) Ajouter 2) Lister 3) Rechercher 4) Supprimer 0) Quitter
    }

    public static void ajouterPrenom(List<String> noms, Scanner sc) {
        // TODO : lire un prenom et l'ajouter a la liste
    }

    public static void listerPrenoms(List<String> noms) {
        // TODO : afficher chaque prenom, ou un message si la liste est vide
    }

    public static int rechercherPrenom(List<String> noms, String recherche) {
        // TODO : renvoyer l'indice trouve (sans tenir compte de la casse), sinon -1
        return -1;
    }

    public static boolean supprimerPrenom(List<String> noms, String aSupprimer) {
        // TODO : supprimer si present, renvoyer true en cas de succes
        return false;
    }

    public static void boucleAgenda(Scanner sc) {
        List<String> noms = new ArrayList<String>();
        // TODO : do { menu, choix, action } while (choix != 0);
    }
}

Exercices.java

import java.util.Scanner;

public class Exercices {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Agenda.boucleAgenda(sc);
        sc.close();
    }
}

Le socle se valide dans l’atelier, qui demande JavaScript.

Indice 1

Une ArrayList se parcourt comme un tableau, mais sa taille s’obtient avec size() et un élément avec get(i). Pour ignorer la casse, comparez avec equalsIgnoreCase.

Extensions

  • Tri alphabétique (avec Collections.sort).
  • Export / import simple en CSV, si vous avez vu les fichiers.