Menu
Coddy logo textTech

Récapitulatif - Gestionnaire d'utilisateurs

Fait partie de la section Object Oriented Programming du Journey Lua de Coddy — leçon 68 sur 70.

challenge icon

Défi

Facile

Construisons un système de gestion d'utilisateurs — une application pratique que vous trouveriez dans de nombreux programmes du monde réel ! Vous allez créer deux classes qui travaillent ensemble : l'une représentant les utilisateurs individuels, et l'autre qui gère une collection de ceux-ci de manière efficace.

Vous organiserez votre code sur trois fichiers :

  • User.lua : Créez une classe User qui représente un seul utilisateur dans le système. Chaque utilisateur a un id et un name. Incluez une méthode :getInfo() qui retourne une chaîne de caractères au format "ID: {id}, Name: {name}".
  • UserManager.lua : Construisez une classe de gestionnaire qui manipule une collection d'utilisateurs. Réfléchissez à la manière de stocker les utilisateurs pour une recherche efficace — utiliser l'ID de l'utilisateur comme clé de table rend la recherche et la suppression d'utilisateurs beaucoup plus simples que de chercher dans une liste. Votre gestionnaire a besoin de :
    • :addUser(user) — ajoute un objet User à la collection
    • :removeUser(id) — supprime un utilisateur par son ID
    • :findUser(id) — retourne l'User avec l'ID correspondant, ou nil s'il n'est pas trouvé
    • :listUsers() — affiche les informations de tous les utilisateurs, une par ligne
  • main.lua : Rassemblez tout ! Créez un UserManager, ajoutez quelques utilisateurs basés sur les entrées que vous recevez, effectuez des opérations et affichez les résultats.

Vous recevrez cinq entrées :

  1. L'ID du premier utilisateur (un nombre)
  2. Le nom du premier utilisateur
  3. L'ID du deuxième utilisateur (un nombre)
  4. Le nom du deuxième utilisateur
  5. L'ID d'un utilisateur à rechercher (un nombre)

Dans votre fichier principal :

  1. Créez un UserManager et ajoutez les deux utilisateurs
  2. Appelez :listUsers() pour afficher tous les utilisateurs
  3. Supprimez le premier utilisateur (en utilisant le premier ID)
  4. Affichez "After removal:"
  5. Appelez :listUsers() à nouveau
  6. Recherchez l'utilisateur avec le cinquième ID d'entrée — s'il est trouvé, affichez ses informations ; s'il n'est pas trouvé, affichez "User not found"

Par exemple, si les entrées sont 101, Alice, 102, Bob, et 102, la sortie devrait être :

ID: 101, Name: Alice
ID: 102, Name: Bob
After removal:
ID: 102, Name: Bob
ID: 102, Name: Bob

Si les entrées sont 201, Charlie, 202, Diana, et 201, la sortie devrait être :

ID: 201, Name: Charlie
ID: 202, Name: Diana
After removal:
ID: 202, Name: Diana
User not found

Remarquez dans le deuxième exemple, après avoir supprimé l'utilisateur 201 (Charlie), la recherche de cet ID retourne "User not found" puisqu'il n'est plus dans le système !

Essayez vous-même

-- main.lua: Rassembler tout le contenu

local User = require('User')
local UserManager = require('UserManager')

-- Lire les entrées
local id1 = tonumber(io.read())
local name1 = io.read()
local id2 = tonumber(io.read())
local name2 = io.read()
local searchId = tonumber(io.read())

-- TODO: Créer une instance de UserManager

-- TODO: Créer deux objets User avec les données d'entrée

-- TODO: Ajouter les deux utilisateurs au gestionnaire

-- TODO: Appeler listUsers() pour afficher tous les utilisateurs

-- TODO: Supprimer le premier utilisateur (en utilisant id1)

-- TODO: Afficher "After removal:"

-- TODO: Appeler listUsers() à nouveau

-- TODO: Rechercher l'utilisateur avec searchId
-- Si trouvé, afficher ses informations ; sinon, afficher "User not found"

Toutes les leçons de Object Oriented Programming