Menu
Coddy logo textTech

Özet - Kullanıcı Yöneticisi

Coddy'nin Lua Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 68 / 70.

challenge icon

Görev

Kolay

Bir kullanıcı yönetim sistemi oluşturalım: birçok gerçek dünya programında bulabileceğin pratik bir uygulama! Birlikte çalışan iki sınıf oluşturacaksın: biri bireysel kullanıcıları temsil edecek, diğeri ise bir kullanıcı koleksiyonunu verimli bir şekilde yönetecek.

Kodunu üç dosyaya ayıracaksın:

  • User.lua: Sistemdeki tek bir kullanıcıyı temsil eden bir User sınıfı oluştur. Her kullanıcının bir id ve bir name değeri vardır. :getInfo() metodunu ekle; bu metot "ID: {id}, Name: {name}" biçiminde bir dize döndürmelidir.
  • UserManager.lua: Bir kullanıcı koleksiyonunu yöneten bir yönetici sınıfı oluştur. Kullanıcıları verimli bir şekilde bulmak için nasıl saklayabileceğini düşün: kullanıcının ID'sini tablo anahtarı olarak kullanmak, kullanıcıları bir listede aramaktan çok daha kolay bir şekilde bulmayı ve kaldırmayı sağlar. Yöneticinin ş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; bulunamazsa nil döndürür
    • :listUsers(): tüm kullanıcıların bilgilerini satır başına bir kullanıcı olacak şekilde yazdırır
  • main.lua: Her şeyi bir araya getir! Bir UserManager oluştur, aldığın girdilere göre bazı kullanıcılar ekle, işlemleri gerçekleştir ve sonuçları göster.

Beş girdi alacaksın:

  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ı)

main dosyanda:

  1. Bir UserManager oluştur ve her iki kullanıcıyı ekle
  2. Tüm kullanıcıları yazdırmak için :listUsers() çağrısını yap
  3. İlk kullanıcıyı kaldır (ilk ID'yi kullanarak)
  4. "After removal:" yazdır
  5. Tekrar :listUsers() çağrısını yap
  6. Beşinci girdideki ID'ye sahip kullanıcıyı ara; bulunursa bilgilerini yazdır, bulunamazsa "User not found" yazdır

Ö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 kullanıcı 201 (Charlie) kaldırıldıktan sonra bu ID aranırsa, artık sistemde bulunmadığı için "User not found" döndüğüne dikkat et!

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ştur

-- TODO: Girdi verileriyle iki User nesnesi oluştur

-- TODO: Her iki kullanıcıyı da manager'a ekle

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

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

-- TODO: Print "After removal:"

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

-- TODO: searchId ile kullanıcıyı ara
-- If found, print their info; if not found, print "User not found"

Nesne Yönelimli Programlama bölümündeki tüm dersler

Kendi başına pratik yap: Online Lua derleyicisi