Przegląd projektu
Część sekcji Logika i przepływ programu ścieżki Ruby w Coddy. Lekcja 28 z 56.
Zbudujesz mały menedżer biblioteki: program z menu, który śledzi książki i pozwala użytkownikowi dodawać je, wyszukiwać, filtrować i oznaczać jako przeczytane.
Każda książka jest haszem z następującymi kluczami:
{
title: "The Great Gatsby",
author: "F. Scott Fitzgerald",
genre: "Fiction",
read: false
}Przechowasz je wszystkie w tablicy o nazwie library i uruchomisz całość w pętli loop do, która wyświetla menu i odczytuje wybór. Każda lekcja dodaje jedną opcję do menu:
- 1. Dodaj książkę
- 2. Wyszukaj według tytułu
- 3. Filtruj według gatunku
- 4. Oznacz książkę jako przeczytaną
- 5. Zakończ
Ta pierwsza lekcja przygotowuje pustą bibliotekę, pętlę menu i opcję wyjścia. Pozostałe opcje zaczną jako puste gałęzie, które uzupełnisz później.
Wyzwanie
PoczątkującyZainicjalizuj pustą tablicę library, a następnie rozpocznij loop do, który:
- Wyświetla menu (dokładny format poniżej)
- Odczytuje wybór użytkownika za pomocą
gets.chomp - Jeśli wybór to
"5", wyświetlaGoodbye!i przerywa pętlę
Menu musi wyglądać dokładnie tak:
--- Library Manager ---
1. Add Book
2. Search By Title
3. Filter By Genre
4. Mark As Read
5. Exit
Choose an option: Użyj print dla zachęty Choose an option: , aby kursor pozostał w tym samym wierszu.
Dla wejścia 5 wynik to:
--- Library Manager ---
1. Add Book
2. Search By Title
3. Filter By Genre
4. Mark As Read
5. Exit
Choose an option: Goodbye!Spróbuj swoich sił
# TODO: zainicjalizuj pustą tablicę library
# TODO: wykonuj pętlę do, wyświetl menu, odczytaj wybór, zakończ po wybraniu "5"
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