Menu
Coddy logo textTech

Récapitulatif - Gestionnaire d'utilisateurs

Fait partie de la section Programmation orientée objet du Journey Lua de Coddy. Leçon 68 sur 70.

challenge icon

Défi

Facile

Construisons un système de gestion des utilisateurs : une application pratique que l'on trouve dans de nombreux programmes du monde réel ! Vous allez créer deux classes qui fonctionnent ensemble : l'une représentant des utilisateurs individuels, et l'autre gérant efficacement une collection de ces utilisateurs.

Vous organiserez votre code dans trois fichiers :

  • User.lua : créez une classe User qui représente un seul utilisateur du système. Chaque utilisateur possède un id et un name. Incluez une méthode :getInfo() qui renvoie une chaîne au format "ID: {id}, Name: {name}".
  • UserManager.lua : construisez une classe de gestionnaire qui gère une collection d'utilisateurs. Réfléchissez à la manière de stocker les utilisateurs pour permettre une recherche efficace : utiliser l'ID de l'utilisateur comme clé de table rend la recherche et la suppression des utilisateurs beaucoup plus simples que de parcourir une liste. Votre gestionnaire doit inclure :
    • :addUser(user) : ajoute un objet User à la collection
    • :removeUser(id) : supprime un utilisateur à l'aide de son ID
    • :findUser(id) : renvoie l'utilisateur dont l'ID correspond, 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 des utilisateurs à partir des entrées reçues, effectuez des opérations et affichez les résultats.

Vous recevrez cinq entrées :

  1. ID du premier utilisateur (un nombre)
  2. Nom du premier utilisateur
  3. ID du deuxième utilisateur (un nombre)
  4. Nom du deuxième utilisateur
  5. ID de l'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 (à l'aide du premier ID)
  4. Affichez "After removal:"
  5. Appelez à nouveau :listUsers()
  6. Recherchez l'utilisateur correspondant à l'ID de la cinquième entrée ; s'il est trouvé, affichez ses informations ; sinon, 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 que dans le deuxième exemple, après la suppression de l'utilisateur 201 (Charlie), la recherche de cet ID renvoie "User not found", puisqu'il ne fait plus partie du système !

REQUIRED OUTPUT FORMAT: [Your translated content here]

Essayez vous-même

-- main.lua : Rassembler le tout

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 manager

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

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

-- TODO: Print "After removal:"

-- TODO: Appeler listUsers() à nouveau

-- TODO: Rechercher l'utilisateur avec searchId
-- If found, print their info; if not found, print "User not found"

Toutes les leçons de Programmation orientée objet

Entraînez-vous par vous-même : Compilateur Lua en ligne