Обзор проекта
Часть раздела Логика и управление потоком путешествия по Ruby на Coddy — урок 28 из 56.
Вы создадите небольшой менеджер библиотеки: программу с управлением через меню, которая отслеживает книги и позволяет пользователю добавлять, искать, фильтровать и отмечать их как прочитанные.
Каждая книга представляет собой хэш со следующими ключами:
{
title: "The Great Gatsby",
author: "F. Scott Fitzgerald",
genre: "Fiction",
read: false
}Вы будете хранить их все в массиве под названием library и управлять всем процессом из loop do, который выводит меню и считывает выбор. Каждый урок добавляет один пункт в меню:
- 1. Добавить книгу
- 2. Поиск по названию
- 3. Фильтрация по жанру
- 4. Отметить книгу как прочитанную
- 5. Выход
Этот первый урок настраивает пустую библиотеку, цикл меню и опцию выхода. Остальные опции вначале будут пустыми ветками, которые вы заполните позже.
Задание
НовичокИнициализируйте пустой массив library, затем запустите цикл loop do, который:
- Выводит меню (точный формат ниже)
- Считывает выбор пользователя с помощью
gets.chomp - Если выбор равен
"5", выводитGoodbye!и прерывает цикл
Меню должно выглядеть именно так:
--- Library Manager ---
1. Add Book
2. Search By Title
3. Filter By Genre
4. Mark As Read
5. Exit
Choose an option: Используйте print для приглашения Choose an option: , чтобы курсор оставался на той же строке.
Для ввода 5 вывод будет следующим:
--- Library Manager ---
1. Add Book
2. Search By Title
3. Filter By Genre
4. Mark As Read
5. Exit
Choose an option: Goodbye!Шпаргалка
Каждая книга — это хеш, хранящийся в массиве library:
library = []
book = {
title: "The Great Gatsby",
author: "F. Scott Fitzgerald",
genre: "Fiction",
read: false
}Используйте loop do с break для создания программы с меню. Используйте print (не puts), чтобы курсор оставался на той же строке, что и приглашение к вводу:
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
endПопробуйте сами
# TODO: инициализируйте пустой массив library
# TODO: цикл do, выведите меню, считайте выбор, выход при "5"
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Строки в деталях
Обзор методов строкИнтерполяция строкИтерация по строкамSplit и JoinИтоги — String Weaver4Блоки, Proc и лямбды
Что такое блок?do..end против фигурных скобокКлючевое слово yieldПараметры блокаProc и лямбдыИтоги: пользовательский итератор7Хеши. Часть 2
Hash.new со значениями по умолчаниюИтерация по хешамВложенные хешиСлияние и преобразованиеИтоги — счетчик частоты10Проект — Учёт студентов
Обзор проектаДобавить студента2Диапазоны
Что такое диапазон?Методы диапазоновДиапазоны в Case / WhenПовторение — практика по диапазонам5Мощь Enumerable
Select и RejectЦепочки MapReduce / Injectcount, all?, any?, none?group_by и partitionsort_by, min_by, max_byИтоги — Data Pipeline8Продвинутые условные конструкции
Case с классами и RegexМножественные значения в whenТернарный операторОднострочные if / unlessПовторение: Классификатор оценок3Двумерные массивы
Основы двумерных массивовДоступ к элементам двумерного массиваИтерация по двумерным массивамРаспространенные 2D-паттерныИтоги: Операции с матрицами6Проект — Менеджер библиотеки
Обзор проектаДобавление книги