Descripción general del proyecto
Parte de la sección Lógica y flujo del Journey de Ruby de Coddy. Lección 28 de 56.
Vas a crear un pequeño gestor de biblioteca: un programa con menú que lleva el control de los libros y permite al usuario añadirlos, buscarlos, filtrarlos y marcarlos como leídos.
Cada libro es un hash con estas claves:
{
title: "The Great Gatsby",
author: "F. Scott Fitzgerald",
genre: "Fiction",
read: false
}Los guardarás todos en un arreglo llamado library y controlarás todo el programa con un loop do que muestra un menú y lee una opción. Cada lección añade una opción al menú:
- 1. Añadir un libro
- 2. Buscar por título
- 3. Filtrar por género
- 4. Marcar un libro como leído
- 5. Salir
Esta primera lección prepara la biblioteca vacía, el bucle del menú y la opción para salir. Las demás opciones empezarán como ramas vacías que completarás más adelante.
Desafío
PrincipianteInicializa una matriz library vacía y luego inicia un loop do que:
- Muestra el menú (con el formato exacto de abajo)
- Lee la opción del usuario con
gets.chomp - Si la opción es
"5", muestraGoodbye!y sale del bucle
El menú debe verse exactamente así:
--- Library Manager ---
1. Add Book
2. Search By Title
3. Filter By Genre
4. Mark As Read
5. Exit
Choose an option: Usa print para la indicación Choose an option: para que el cursor permanezca en la misma línea.
Para la entrada 5, la salida es:
--- Library Manager ---
1. Add Book
2. Search By Title
3. Filter By Genre
4. Mark As Read
5. Exit
Choose an option: Goodbye!Pruébalo tú mismo
# TODO: inicializa un arreglo vacío para la biblioteca
# TODO: usa un bucle do, muestra el menú, lee la opción elegida y sal al elegir "5"
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y flujo
1Cadenas en profundidad
Descripción general de los métodos de cadenasInterpolación de cadenasIteración sobre cadenasSeparar y unirRepaso: Tejedor de cadenas4Bloques, Procs y Lambdas
¿Qué es un bloque?do..end frente a llavesLa palabra clave yieldParámetros de bloqueProcs y LambdasRepaso: iterador personalizado7Hashes Parte 2
Hash.new con valores predeterminadosIteración de hashesHashes anidadosCombinación y transformaciónRepaso: contador de frecuencias10Proyecto - Registros de estudiantes
Descripción general del proyectoAgregar estudiante5Potencia Enumerable
Select y RejectEncadenamiento de MapReduce / Injectcount, all?, any?, none?group_by y partitionsort_by, min_by, max_byRepaso: canalización de datos3Matrices 2D
Fundamentos de matrices 2DAcceso a elementos 2DRecorrido de matrices 2DPatrones comunes en 2DRepaso - Operaciones con matrices6Proyecto - Gestor de biblioteca
Descripción general del proyectoAñadir libroPractica por tu cuenta: Compilador de Ruby online