Обзор проекта
Часть раздела Логика и потоки выполнения путешествия по 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