Dodaj książkę
Część sekcji Logika i przepływ programu ścieżki Ruby w Coddy. Lekcja 29 z 56.
Dodaj opcję 1. Add Book do pętli menu. Gdy użytkownik ją wybierze, poproś o tytuł, autora i gatunek książki, a następnie dodaj nowy hash do tablicy library.
Każda książka na początku jest nieprzeczytana (read: false).
Wyzwanie
ŁatwyRozszerz pętlę menu. Gdy wybór to "1":
- wyświetl za pomocą
printzachętęTitle:i wczytaj tytuł - wyświetl za pomocą
printAuthor:i wczytaj autora - wyświetl za pomocą
printGenre:i wczytaj gatunek - Dodaj hash
{ title:, author:, genre:, read: false }dolibrary - Wyświetl
Book added!
Zachowaj działanie 5. Exit z poprzedniej lekcji (wyświetla Goodbye! i przerywa pętlę).
Dla danych wejściowych 1, The Hobbit, Tolkien, Fantasy, a następnie 5, dane wyjściowe kończą się tak:
Choose an option: Title: Author: Genre: Book added!
--- Library Manager ---
...
Choose an option: Goodbye!Spróbuj swoich sił
library = []
loop do
puts "--- Library Manager ---"
puts "1. Add Book"
puts "2. Search By Title"
puts "3. Filter By Genre"
puts "4. Mark As Read"
puts "5. Exit"
print "Choose an option: "
choice = gets.chomp
if choice == "5"
puts "Goodbye!"
break
end
# TODO: obsłuż choice == "1", poproś o tytuł/autora/gatunek,
# dodaj hash do library, wypisz "Book added!"
end
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Logika i przepływ programu
1Łańcuchy znaków w szczegółach
Przegląd metod łańcuchów znakówInterpolacja łańcuchów znakówIterowanie po łańcuchach znakówDzielenie i łączeniePowtórka – Tkacz łańcuchów znaków4Bloki, procki i lambdy
Czym jest blok?do..end a nawiasy klamroweSłowo kluczowe yieldParametry blokuProcki i lambdyPodsumowanie — własny iterator7Hashe, część 2
Hash.new z wartościami domyślnymiIterowanie po haszachZagnieżdżone haszeŁączenie i przekształcaniePowtórka — licznik częstotliwości10Projekt – ewidencja uczniów
Przegląd projektuDodawanie ucznia5Potęga Enumerable
Select i RejectŁączenie wywołań mapReduce / Injectcount, all?, any?, none?group_by i partitionsort_by, min_by, max_byPodsumowanie — potok danych8Zaawansowane podejmowanie decyzji
case z klasami i wyrażeniami regularnymiwhen z wieloma wartościamiOperator trójargumentowyInline if / unlessPowtórka – klasyfikator ocen3Tablice 2D
Podstawy tablic 2DDostęp do elementów tablic 2DIterowanie po tablicach 2DTypowe wzorce 2DPowtórzenie – operacje na macierzach6Projekt – Menedżer biblioteki
Przegląd projektuDodaj książkęPoćwicz samodzielnie: Kompilator Ruby online