Ödünç verme
- Kotlin kursu
- Orta seviye
- Ders 61/116
- 6 dk
checkout ve return fonksiyonlarıyla ödünç akışını yazarsın.
Ödünç verme
Ödünç verme için kütüphane hangi kitabın hangi üyede olduğunu takip etmelidir. Bunun için val borrowed = mutableMapOf<String, String>() kullanılır: anahtar kitap numarası isbn, değer ise üye numarası memberId.
fun checkout(memberId: String, isbn: String) metodu borrowed[isbn] = memberId ile kayıt ekler. fun returnBook(isbn: String) metodu borrowed.remove(isbn) ile kaydı siler. Böylece bir kitap aynı anda yalnızca bir üyede olabilir; iade edildiğinde kayıt temizlenir ve kitap tekrar uygun hale gelir.
checkout ve returnBook
checkout metodu kitabı üyeye verir: fun checkout(memberId: String, isbn: String) { borrowed[isbn] = memberId; println("Ödünç: $memberId -> $isbn") }.
returnBook metodu kitabı geri alır: fun returnBook(isbn: String) { borrowed.remove(isbn); println("İade: $isbn") }. Çıktı, işlemin yapıldığını konsola bildirir. Bu iki metot Library sınıfının yanına eklenir ve main içinde lib.checkout("M1", "978-1") biçiminde çağrılır.
Uygulama checkout ve returnBook ekle
Library sınıfına val borrowed = mutableMapOf<String, String>() ekle. fun checkout(memberId: String, isbn: String) metodu yaz: borrowed[isbn] = memberId ve println("Ödünç: $memberId -> $isbn"). fun returnBook(isbn: String) metodu yaz: borrowed.remove(isbn) ve println("İade: $isbn"). main içinde önce checkout("M1", "978-1") sonra returnBook("978-1") çağır.
Başlangıç kodu
data class Book(val title: String, val author: String, val isbn: String)
data class Member(val name: String, val id: String)
class Library {
val books = mutableListOf<Book>()
val members = mutableListOf<Member>()
val borrowed = mutableMapOf<String, String>()
fun addBook(book: Book) { books.add(book) }
fun addMember(member: Member) { members.add(member) }
// checkout ve returnBook metotlarını ekle
}
fun main() {
val lib = Library()
lib.addBook(Book("Suç ve Ceza", "Dostoyevski", "978-1"))
lib.addMember(Member("Ayşe", "M1"))
// önce checkout sonra returnBook çağır
}Örnek çözüm
data class Book(val title: String, val author: String, val isbn: String)
data class Member(val name: String, val id: String)
class Library {
val books = mutableListOf<Book>()
val members = mutableListOf<Member>()
val borrowed = mutableMapOf<String, String>()
fun addBook(book: Book) { books.add(book) }
fun addMember(member: Member) { members.add(member) }
fun checkout(memberId: String, isbn: String) {
borrowed[isbn] = memberId
println("Ödünç: $memberId -> $isbn")
}
fun returnBook(isbn: String) {
borrowed.remove(isbn)
println("İade: $isbn")
}
}
fun main() {
val lib = Library()
lib.addBook(Book("Suç ve Ceza", "Dostoyevski", "978-1"))
lib.addMember(Member("Ayşe", "M1"))
lib.checkout("M1", "978-1")
lib.returnBook("978-1")
}Beklenen çıktı
Ödünç: M1 -> 978-1 İade: 978-1
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 borrowed.remove(isbn) ne yapar?
- Ödünç kaydını siler Doğru cevap
- Kitabı ödünç verir
- Yeni üye ekler
- Listeyi yazdırır
Açıklama: remove metodu anahtarı haritadan kaldırır, yani kitabı iade eder.
2 Ödünç kavramlarını eşle
| Kavram | Anlamı |
|---|---|
borrowed[isbn] |
Ödünç kaydı |
borrowed.remove(isbn) |
İade |
memberId |
Üye |
isbn |
Kitap |
3 returnBook metodunu tamamla
fun returnBook(isbn: String) {
borrowed.____(isbn)
}
fun returnBook(isbn: String) {
borrowed.remove(isbn)
}
Açıklama: remove(isbn) ödünç kaydını haritadan siler.