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şturdunuz. Şimdi, tüm ödünç alma sürecini yöneten bir Library sınıfı ile düzgün bir ödünç alma sistemi kurma zamanı.

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

  • book.dart: isbn, title, author, isAvailable ve toString() özelliklerine sahip mevcut Book sınıfınızı koruyun.
  • user.dart: id, name, borrowedBooks ve toString() özelliklerine sahip mevcut User sınıfınızı koruyun.
  • library.dart: Kitapları ve kullanıcıları yöneten yeni bir Library sınıfı oluşturun. Bu sınıfın iki listesi olmalıdır: biri books için, diğeri users için. Şu metotları ekleyin:
    • addBook(Book book) - kütüphane koleksiyonuna bir kitap ekler
    • registerUser(User user) - kütüphaneye bir kullanıcı kaydeder
    • borrowBook(String isbn, String userId) - kitabı ve kullanıcıyı bulur, eğer kitap mevcutsa, müsaitse ve kullanıcı mevcutsa, kitabı müsait değil olarak işaretler, kullanıcının ödünç aldığı kitaplar listesine ekler ve userId borrowed "title" yazdırır. Kitap bulunamazsa Book not found yazdırın. Kitap müsait değilse Book not available yazdırın. Kullanıcı bulunamazsa User not found yazdırın.
    • returnBook(String isbn, String userId) - kitabı ve kullanıcıyı bulur, eğer her ikisi de mevcutsa ve kullanıcı o kitaba sahipse, kitabı müsait olarak işaretler, kullanıcının ödünç aldığı kitaplar listesinden çıkarır ve userId returned "title" yazdırır. Kitap bulunamazsa Book not found yazdırın. Kullanıcı bulunamazsa User not found yazdırın.
  • main.dart: Tüm dosyalarınızı içe aktarın ve ödünç alma sistemini gösterin. Bir Library oluşturun, iki kitap ekleyin (978-0-13-468599-1, The Pragmatic Programmer, David Thomas ve 978-0-596-51774-8, JavaScript: The Good Parts, Douglas Crockford) ve bir kullanıcı kaydedin (U001, Alice Johnson). Ardından:
    1. İlk kitabı Alice için ödünç alın
    2. Aynı kitabı tekrar ödünç almayı deneyin (başarısız olmalı)
    3. İkinci kitabı Alice için ödünç alın
    4. Alice'i yazdırarak ödünç aldığı kitap sayısını gösterin
    5. İlk kitabı iade edin
    6. Güncellenmiş sayıyı göstermek için Alice'i tekrar yazdırın

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