Menu
Coddy logo textTech

Özet - Kullanıcı Yöneticisi

Coddy'nin Lua Journey'sinin Object Oriented Programming bölümünün bir parçası — ders 68 / 70.

challenge icon

Görev

Kolay

Gerçek dünyadaki pek çok programda bulabileceğiniz pratik bir uygulama olan bir kullanıcı yönetim sistemi kuralım! Birlikte çalışan iki sınıf oluşturacaksınız: biri bireysel kullanıcıları temsil eden, diğeri ise bunların bir koleksiyonunu verimli bir şekilde yöneten bir sınıf.

Kodunuzu üç dosya halinde düzenleyeceksiniz:

  • User.lua: Sistemdeki tek bir kullanıcıyı temsil eden bir User sınıfı oluşturun. Her kullanıcının bir id ve bir name değeri vardır. "ID: {id}, Name: {name}" formatında bir dize döndüren bir :getInfo() metodu ekleyin.
  • UserManager.lua: Bir kullanıcı koleksiyonunu yöneten bir yönetici sınıfı oluşturun. Kullanıcıları verimli bir şekilde aramak için nasıl saklayacağınızı düşünün; kullanıcı kimliğini (ID) tablo anahtarı olarak kullanmak, kullanıcıları bulmayı ve kaldırmayı bir liste içinde aramaktan çok daha basit hale getirir. Yöneticinizin şunlara ihtiyacı vardır:
    • :addUser(user) — koleksiyona bir User nesnesi ekler
    • :removeUser(id) — bir kullanıcıyı ID'sine göre kaldırır
    • :findUser(id) — eşleşen ID'ye sahip User nesnesini döndürür veya bulunamazsa nil döndürür
    • :listUsers() — tüm kullanıcıların bilgilerini her satıra bir tane gelecek şekilde yazdırır
  • main.lua: Her şeyi bir araya getirin! Bir UserManager oluşturun, aldığınız girdilere göre bazı kullanıcılar ekleyin, işlemleri gerçekleştirin ve sonuçları görüntüleyin.

Beş girdi alacaksınız:

  1. İlk kullanıcının ID'si (bir sayı)
  2. İlk kullanıcının adı
  3. İkinci kullanıcının ID'si (bir sayı)
  4. İkinci kullanıcının adı
  5. Aranacak kullanıcının ID'si (bir sayı)

Ana dosyanızda:

  1. Bir UserManager oluşturun ve her iki kullanıcıyı da ekleyin
  2. Tüm kullanıcıları yazdırmak için :listUsers() metodunu çağırın
  3. İlk kullanıcıyı kaldırın (ilk ID'yi kullanarak)
  4. "After removal:" yazdırın
  5. :listUsers() metodunu tekrar çağırın
  6. Beşinci girdi olan ID'ye sahip kullanıcıyı arayın; bulunursa bilgilerini yazdırın, bulunamazsa "User not found" yazdırın

Örneğin, girdiler 101, Alice, 102, Bob ve 102 ise çıktı şu şekilde olmalıdır:

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

Girdiler 201, Charlie, 202, Diana ve 201 ise çıktı şu şekilde olmalıdır:

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

İkinci örnekte, 201 (Charlie) kullanıcısını kaldırdıktan sonra, bu ID'yi aramanın artık sistemde olmadığı için "User not found" döndürdüğüne dikkat edin!

Kendin dene

-- main.lua: Her şeyi bir araya getir

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

-- Girdileri oku
local id1 = tonumber(io.read())
local name1 = io.read()
local id2 = tonumber(io.read())
local name2 = io.read()
local searchId = tonumber(io.read())

-- TODO: Bir UserManager örneği oluşturun

-- TODO: Giriş verileriyle iki User nesnesi oluşturun

-- TODO: Her iki kullanıcıyı da yöneticiye ekleyin

-- TODO: Tüm kullanıcıları yazdırmak için listUsers() fonksiyonunu çağırın

-- TODO: İlk kullanıcıyı kaldırın (id1 kullanarak)

-- TODO: "After removal:" yazdırın

-- TODO: listUsers() fonksiyonunu tekrar çağırın

-- TODO: searchId ile kullanıcıyı arayın
-- Bulunursa bilgilerini yazdırın; bulunamazsa "User not found" yazdırın

Object Oriented Programming bölümündeki tüm dersler