Projeye Genel Bakış
Coddy'nin Ruby Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 28 / 56.
Küçük bir kütüphane yöneticisi oluşturacaksınız: kitapları takip eden ve kullanıcının kitap eklemesine, aramasına, filtrelemesine ve okundu olarak işaretlemesine olanak tanıyan menü tabanlı bir program.
Her kitap şu anahtarlara sahip bir hash'tir:
{
title: "The Great Gatsby",
author: "F. Scott Fitzgerald",
genre: "Fiction",
read: false
}Hepsini library adında bir dizide tutacaksınız ve tüm süreci bir menü yazdıran ve bir seçim okuyan loop do döngüsüyle yöneteceksiniz. Her ders menüye bir seçenek ekler:
- 1. Kitap ekle
- 2. Başlığa göre ara
- 3. Türe göre filtrele
- 4. Bir kitabı okundu olarak işaretle
- 5. Çıkış
Bu ilk ders; boş kütüphaneyi, menü döngüsünü ve çıkış seçeneğini kurar. Diğer seçenekler, daha sonra dolduracağınız boş dallar olarak başlayacaktır.
Görev
BaşlangıçBoş bir library dizisi başlatın, ardından şunları yapan bir loop do başlatın:
- Menüyü yazdırır (aşağıdaki tam formatta)
- Kullanıcının seçimini
gets.chompile okur - Eğer seçim
"5"ise,Goodbye!yazdırır ve döngüden çıkar
Menü tam olarak şöyle görünmelidir:
--- Library Manager ---
1. Add Book
2. Search By Title
3. Filter By Genre
4. Mark As Read
5. Exit
Choose an option: İmlecin aynı satırda kalması için Choose an option: istemi için print kullanın.
5 girişi için çıktı şöyledir:
--- Library Manager ---
1. Add Book
2. Search By Title
3. Filter By Genre
4. Mark As Read
5. Exit
Choose an option: Goodbye!Kopya kağıdı
Her kitap, bir library dizisinde saklanan bir hash'tir:
library = []
book = {
title: "The Great Gatsby",
author: "F. Scott Fitzgerald",
genre: "Fiction",
read: false
}Menü tabanlı bir program oluşturmak için break ile birlikte loop do kullanın. İmleci istemle aynı satırda tutmak için print (puts değil) kullanın:
loop do
puts "--- Library Manager ---"
puts "1. Add Book"
puts "5. Exit"
print "Choose an option: "
choice = gets.chomp
if choice == "5"
puts "Goodbye!"
break
end
endKendin dene
# TODO: boş bir library dizisi başlat
# TODO: loop do, menüyü yazdır, seçimi oku, "5" ile çıkış yap
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık ve Akış bölümündeki tüm dersler
1Derinlemesine Stringler
String Metotlarına Genel BakışString InterpolationStringler Üzerinde GezinmeSplit ve JoinÖzet - String Weaver4Bloklar, Procs ve Lambdalar
Blok Nedir?do..end ve Süslü Parantezleryield Anahtar KelimesiBlok ParametreleriProcs ve LambdalarÖzet - Özel İteratör7Hashes Bölüm 2
Varsayılan Değerlerle Hash.newHash Yapıları Üzerinde Yinelemeİç İçe Hash YapılarıBirleştirme ve DönüştürmeÖzet - Frekans Sayacı10Proje - Öğrenci Kayıtları
Projeye Genel BakışÖğrenci Ekle5Enumerable Gücü
Select ve RejectMap ZincirlemeReduce / Injectcount, all?, any?, none?group_by ve partitionsort_by, min_by, max_byÖzet - Data Pipeline8İleri Seviye Karar Yapıları
Sınıflar ve Regex ile CaseÇok Değerli whenTernary OperatörüSatır İçi if / unlessÖzet - Not Sınıflandırıcı32D Diziler
2D Dizi Temelleri2D Elemanlara Erişim2D Diziler Üzerinde YinelemeYaygın 2D KalıplarÖzet - Matris İşlemleri6Proje - Kütüphane Yöneticisi
Projeye Genel BakışKitap Ekle