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!Experimente 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 em Profundidade
Visão Geral dos Métodos de StringInterpolação de StringsPercorrendo StringsDividir e UnirRecapitulação - String Weaver4Blocos, Procs e Lambdas
O que é um Bloco?do..end vs ChavesA Palavra-chave yieldParâmetros de BlocoProcs e LambdasRevisão - Iterador Personalizado7Hashes - Parte 2
Hash.new com Valores PadrãoIterando sobre 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 / WhenRevisão - Prática com intervalos5Potência do Enumerable
Select e RejectEncadeando MapReduce / Injectcount, all?, any?, none?group_by e partitionsort_by, min_by, max_byRecapitulação - Pipeline de Dados3Arrays 2D
Fundamentos de Arrays 2DAcessando elementos 2DPercorrendo Arrays 2DPadrões comuns em 2DRecapitulação - Operações com matrizes6Projeto - Gerenciador de Biblioteca
Visão Geral do ProjetoAdicionar LivroPratique por conta própria: Compilador de Ruby online