Menu
Coddy logo textTech

Ödünç Alma Sistemi

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

challenge icon

Görev

Kolay

Önceki derste, temel özelliklere sahip Book ve User sınıflarını oluşturdun. Şimdi tüm ödünç alma sürecini yöneten bir Library sınıfıyla düzgün bir ödünç alma sistemi oluşturma zamanı.

Ödünç alma mantığını uygulamak için yeni bir dosya oluşturacak ve mevcut dosyalarını güncelleyeceksin:

  • book.dart: Mevcut Book sınıfını isbn, title, author, isAvailable ve toString() ile koru.
  • user.dart: Mevcut User sınıfını id, name, borrowedBooks ve toString() ile koru.
  • library.dart: Kitapları ve kullanıcıları yöneten yeni bir Library sınıfı oluştur. Bu sınıfın iki listesi olmalı: biri books, diğeri users için. Şu metotları ekle:
    • addBook(Book book) - kütüphanenin koleksiyonuna bir kitap ekler
    • registerUser(User user) - kütüphaneye bir kullanıcı ekler
    • borrowBook(String isbn, String userId) - kitabı ve kullanıcıyı bulur; ardından kitap mevcutsa, kullanılabilir durumdaysa ve kullanıcı mevcutsa kitabı kullanılamaz olarak işaretler, kullanıcının ödünç aldığı kitaplara ekler ve userId borrowed "title" yazdırır. Kitap mevcut değilse Book not found yazdırır. Kitap kullanılabilir değilse Book not available yazdırır. Kullanıcı mevcut değilse User not found yazdırır.
    • returnBook(String isbn, String userId) - kitabı ve kullanıcıyı bular; ardından ikisi de mevcutsa ve kullanıcıda bu kitap varsa kitabı kullanılabilir olarak işaretler, kullanıcının ödünç aldığı kitaplardan çıkarır ve userId returned "title" yazdırır. Kitap mevcut değilse Book not found yazdırır. Kullanıcı mevcut değilse User not found yazdırır.
  • main.dart: Tüm dosyalarını içe aktar ve ödünç alma sistemini göster. Bir Library oluştur, iki kitap (978-0-13-468599-1, The Pragmatic Programmer, David Thomas ve 978-0-596-51774-8, JavaScript: The Good Parts, Douglas Crockford) ekle ve bir kullanıcı (U001, Alice Johnson) kaydet. Ardından:
    1. Alice için ilk kitabı ödünç al
    2. Aynı kitabı tekrar ödünç almayı dene (başarısız olmalı)
    3. Alice için ikinci kitabı ödünç al
    4. Ödünç aldığı kitap sayısını göstermek için Alice'i yazdır
    5. İlk kitabı iade et
    6. Güncellenen sayıyı göstermek için Alice'i tekrar yazdır

Beklenen çıktı:

U001 borrowed "The Pragmatic Programmer"
Book not available
U001 borrowed "JavaScript: The Good Parts"
User U001: Alice Johnson (2 books borrowed)
U001 returned "The Pragmatic Programmer"
User U001: Alice Johnson (1 books borrowed)

Kendin dene

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

void main() {
  // TODO: Bir Library örneği oluşturun
  
  // TODO: İki kitap oluşturun:
  // - Kitap 1: isbn '978-0-13-468599-1', title 'The Pragmatic Programmer', author 'David Thomas'
  // - Kitap 2: isbn '978-0-596-51774-8', title 'JavaScript: The Good Parts', author 'Douglas Crockford'
  
  // TODO: Her iki kitabı da kütüphaneye ekleyin
  
  // TODO: id değeri 'U001' ve name değeri 'Alice Johnson' olan bir kullanıcı oluşturun
  
  // TODO: Kullanıcıyı kütüphaneye kaydedin
  
  // TODO: İlk kitabı Alice için ödünç alın
  
  // TODO: Aynı kitabı tekrar ödünç almayı deneyin ('Book not available' ile başarısız olmalı)
  
  // TODO: İkinci kitabı Alice için ödünç alın
  
  // TODO: Ödünç alınan kitap sayısını göstermek için Alice'i yazdırın
  
  // TODO: İlk kitabı iade edin
  
  // TODO: Güncellenmiş sayıyı göstermek için Alice'i tekrar yazdırın
}

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

Kendi başına pratik yap: Online Dart derleyicisi