Обзор проекта
Часть раздела Логика и управление потоком путешествия по 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!Попробуйте сами
# TODO: инициализируйте пустой массив library
# TODO: цикл do, выведите меню, считайте выбор, выход при "5"
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Строки: подробный разбор
Обзор методов строкИнтерполяция строкПеребор строкРазделение и объединениеПовторение — String Weaver4Блоки, Proc и Lambda
Что такое блок?do..end и фигурные скобкиКлючевое слово yieldПараметры блокаProc и LambdaПовторение — пользовательский итератор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Повторение — конвейер данных3Двумерные массивы
Основы двумерных массивовДоступ к элементам двумерного массиваПеребор двумерных массивовРаспространённые шаблоны для двумерных массивовПовторение — операции с матрицами6Проект — Менеджер библиотеки
Обзор проектаДобавление книгиПотренируйтесь самостоятельно: Онлайн-компилятор Ruby