Menu
Coddy logo textTech

Yönetici Arayüzü

Coddy'nin Dart Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası — ders 105 / 110.

challenge icon

Görev

Kolay

Önceki derste, Library sınıfınıza arama işlevselliği eklediniz. Şimdi, yetkili kullanıcıların kütüphane envanterini yönetmesine (yeni kitaplar eklemesine ve mevcut olanları kaldırmasına) olanak tanıyan bir yönetici arayüzü oluşturalım.

Yeni bir Admin sınıfı tanıtacak ve Library sınıfınızı yönetim yetenekleriyle geliştireceksiniz:

  • book.dart: Mevcut Book sınıfınızı değiştirmeden koruyun.
  • user.dart: Mevcut User sınıfınızı değiştirmeden koruyun.
  • admin.dart: Kütüphane yöneticilerini temsil eden yeni bir Admin sınıfı oluşturun. Bir yöneticinin id (String) ve name (String) özellikleri vardır. toString() metodunu Admin [id]: name döndürecek şekilde geçersiz kılın (override).
  • library.dart: Library sınıfınıza yönetim işlevselliği ekleyin:
    • Kayıtlı yöneticileri saklamak için bir liste ekleyin
    • registerAdmin(Admin admin) - kütüphaneye bir yönetici ekler
    • addBookAsAdmin(String adminId, Book book) - eğer yönetici mevcutsa, kitabı ekler ve adminId added "title" yazdırır. Eğer yönetici mevcut değilse, Unauthorized yazdırır.
    • removeBook(String adminId, String isbn) - eğer yönetici mevcutsa ve kitap mevcutsa, kitabı kütüphaneden kaldırır ve adminId removed "title" yazdırır. Eğer yönetici mevcut değilse, Unauthorized yazdırır. Eğer kitap mevcut değilse, Book not found yazdırır.
    • getBookCount() - kütüphanedeki toplam kitap sayısını döndürür
  • main.dart: Yönetici arayüzünü gösterin. Bir Library oluşturun ve bir yönetici (A001, Sarah Admin) kaydedin. Üç kitap eklemek için yöneticiyi kullanın:
    • 978-0-13-468599-1, The Pragmatic Programmer, David Thomas
    • 978-0-596-51774-8, JavaScript: The Good Parts, Douglas Crockford
    • 978-0-13-235088-4, Clean Code, Robert Martin
    Kitap sayısını Total books: X şeklinde yazdırın. Ardından, kayıtlı olmayan bir yönetici kimliği A999 ile bir kitap eklemeyi deneyin. Kayıtlı yöneticiyi kullanarak ikinci kitabı kaldırın. Son kitap sayısını yazdırın.

Beklenen çıktı:

A001 added "The Pragmatic Programmer"
A001 added "JavaScript: The Good Parts"
A001 added "Clean Code"
Total books: 3
Unauthorized
A001 removed "JavaScript: The Good Parts"
Total books: 2

Kendin dene

import 'book.dart';
import 'user.dart';
import 'library.dart';
import 'admin.dart';

void main() {
  // TODO: Bir Kütüphane oluşturun
  
  // TODO: Bir yönetici oluşturun ve kaydedin (A001, Sarah Admin)
  
  // TODO: Yöneticiyi kullanarak üç kitap ekleyin:
  // - 978-0-13-468599-1, The Pragmatic Programmer, David Thomas
  // - 978-0-596-51774-8, JavaScript: The Good Parts, Douglas Crockford
  // - 978-0-13-235088-4, Clean Code, Robert Martin
  
  // TODO: Kitap sayısını "Total books: X" şeklinde yazdırın
  
  // TODO: Kayıtlı olmayan bir yönetici kimliği (A999) ile kitap eklemeyi deneyin
  
  // TODO: Kayıtlı yöneticiyi kullanarak ikinci kitabı (978-0-596-51774-8) silin
  
  // TODO: Nihai kitap sayısını yazdırın
}

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