Menu
Coddy logo textTech

Обзор проекта

Часть раздела Логика и управление потоком путешествия по Ruby на Coddy — урок 28 из 56.

Вы создадите небольшой менеджер библиотеки: программу с управлением через меню, которая отслеживает книги и позволяет пользователю добавлять, искать, фильтровать и отмечать их как прочитанные.

Каждая книга представляет собой хэш со следующими ключами:

{
  title:  "The Great Gatsby",
  author: "F. Scott Fitzgerald",
  genre:  "Fiction",
  read:   false
}

Вы будете хранить их все в массиве под названием library и управлять всем процессом из loop do, который выводит меню и считывает выбор. Каждый урок добавляет один пункт в меню:

  • 1. Добавить книгу
  • 2. Поиск по названию
  • 3. Фильтрация по жанру
  • 4. Отметить книгу как прочитанную
  • 5. Выход

Этот первый урок настраивает пустую библиотеку, цикл меню и опцию выхода. Остальные опции вначале будут пустыми ветками, которые вы заполните позже.

challenge icon

Задание

Новичок

Инициализируйте пустой массив library, затем запустите цикл loop do, который:

  1. Выводит меню (точный формат ниже)
  2. Считывает выбор пользователя с помощью gets.chomp
  3. Если выбор равен "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"
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и управление потоком