Menu
Coddy logo textTech

Visão Geral do Projeto

Parte da seção Lógica e Fluxo do Journey de Ruby da Coddy — lição 28 de 56.

Você vai construir um pequeno gerenciador de biblioteca: um programa baseado em menus que faz o acompanhamento de livros e permite que o usuário adicione, pesquise, filtre e os marque como lidos.

Cada livro é um hash com estas chaves:

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

Você manterá todos eles em um array chamado library e controlará tudo a partir de um loop do que imprime um menu e lê uma escolha. Cada lição adiciona uma opção ao menu:

  • 1. Adicionar um livro
  • 2. Pesquisar por título
  • 3. Filtrar por gênero
  • 4. Marcar um livro como lido
  • 5. Sair

Esta primeira lição configura a biblioteca vazia, o loop do menu e a opção de sair. As outras opções começarão como ramificações vazias que você preencherá mais tarde.

challenge icon

Desafio

Iniciante

Inicialize um array library vazio e, em seguida, inicie um loop do que:

  1. Exibe o menu (formato exato abaixo)
  2. Lê a escolha do usuário com gets.chomp
  3. Se a escolha for "5", exibe Goodbye! e sai do loop

O menu deve ser exatamente assim:

--- Library Manager ---
1. Add Book
2. Search By Title
3. Filter By Genre
4. Mark As Read
5. Exit
Choose an option: 

Use print para o prompt Choose an option: para que o cursor permaneça na mesma linha.

Para a entrada 5, a saída é:

--- Library Manager ---
1. Add Book
2. Search By Title
3. Filter By Genre
4. Mark As Read
5. Exit
Choose an option: Goodbye!

Folha de consulta

Cada livro é um hash armazenado em um array library:

library = []

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

Use loop do com break para construir um programa baseado em menu. Use print (não puts) para manter o cursor na mesma linha que o prompt:

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

Experimente você mesmo

# TODO: inicialize um array library vazio

# TODO: loop do, imprima o menu, leia a escolha, saia no "5"
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica e Fluxo