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.
Desafio
InicianteInicialize um array library vazio e, em seguida, inicie um loop do que:
- Exibe o menu (formato exato abaixo)
- Lê a escolha do usuário com
gets.chomp - Se a escolha for
"5", exibeGoodbye!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
endExperimente você mesmo
# TODO: inicialize um array library vazio
# TODO: loop do, imprima o menu, leia a escolha, saia no "5"
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
1Strings a Fundo
Visão Geral de Métodos de StringInterpolação de StringsIterando sobre StringsSplit e JoinRecapitulação - String Weaver4Blocos, Procs e Lambdas
O que é um Bloco?do..end vs ChavesA palavra-chave yieldParâmetros de BlocoProcs e LambdasRecapitulação - Iterador Customizado7Hashes Parte 2
Hash.new com Valores PadrãoIterando em HashesHashes AninhadosMesclando e TransformandoRecapitulação - Contador de Frequência10Projeto - Registros de Alunos
Visão Geral do ProjetoAdicionar Aluno2Intervalos
O que é um Intervalo?Métodos de IntervaloIntervalos em Case / WhenRecapitulação - Prática com Intervalos5O Poder do Enumerable
Select e RejectEncadeando o MapReduce / Injectcount, all?, any?, none?group_by e partitionsort_by, min_by, max_byRecapitulação - Data Pipeline3Arrays 2D
Fundamentos de Arrays 2DAcessando Elementos 2DIterando sobre Arrays 2DPadrões 2D ComunsRecapitulação - Operações com Matrizes6Projeto - Gerenciador de Biblioteca
Visão Geral do ProjetoAdicionar Livro