Vue d’ensemble du projet
Fait partie de la section Logique et flux du Journey Ruby de Coddy. Leçon 28 sur 56.
Tu vas créer un petit gestionnaire de bibliothèque : un programme piloté par un menu qui suit les livres et permet à l’utilisateur d’en ajouter, d’en rechercher, de les filtrer et de les marquer comme lus.
Chaque livre est un hachage avec les clés suivantes :
{
title: "The Great Gatsby",
author: "F. Scott Fitzgerald",
genre: "Fiction",
read: false
}Tu les conserveras tous dans un tableau appelé library et piloteras l’ensemble avec un loop do qui affiche un menu et lit un choix. Chaque leçon ajoute une option au menu :
- 1. Ajouter un livre
- 2. Rechercher par titre
- 3. Filtrer par genre
- 4. Marquer un livre comme lu
- 5. Quitter
Cette première leçon met en place la bibliothèque vide, la boucle du menu et l’option de sortie. Les autres options commenceront sous forme de branches vides que tu rempliras plus tard.
Défi
DébutantInitialise un tableau library vide, puis démarre une loop do qui :
- Affiche le menu (format exact ci-dessous)
- Lit le choix de l’utilisateur avec
gets.chomp - Si le choix est
"5", afficheGoodbye!et sort de la boucle
Le menu doit ressembler exactement à ceci :
--- Library Manager ---
1. Add Book
2. Search By Title
3. Filter By Genre
4. Mark As Read
5. Exit
Choose an option: Utilise print pour l’invite Choose an option: afin que le curseur reste sur la même ligne.
Pour l’entrée 5, la sortie est :
--- Library Manager ---
1. Add Book
2. Search By Title
3. Filter By Genre
4. Mark As Read
5. Exit
Choose an option: Goodbye!Essayez vous-même
# TODO: initialiser un tableau library vide
# TODO: utiliser une boucle do, afficher le menu, lire le choix et quitter si le choix est "5"
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique et flux
1Les chaînes de caractères en profondeur
Aperçu des méthodes de chaînesInterpolation de chaînesParcourir les chaînesSplit et JoinRécapitulatif - Tisseur de chaînes4Blocs, Procs et Lambdas
Qu'est-ce qu'un bloc ?do..end ou accoladesLe mot-clé yieldParamètres de blocProcs et LambdasRécapitulatif - Itérateur personnalisé7Hashes, 2e partie
Hash.new avec valeurs par défautParcourir les hashesHashes imbriquésFusionner et transformerRécapitulatif - Compteur de fréquences10Projet - Dossiers des étudiants
Présentation du projetAjouter un étudiant2Plages
Qu’est-ce qu’une plage ?Méthodes des plagesPlages dans Case / WhenRécapitulatif - Exercices sur les plages5Puissance des Enumerable
Select et RejectChaînage de MapReduce / Injectcount, all?, any?, none?group_by et partitionsort_by, min_by, max_byRécapitulatif - Pipeline de données3Tableaux 2D
Bases des tableaux 2DAccéder aux éléments 2DParcourir les tableaux 2DMotifs courants en 2DRécapitulatif - Opérations sur les matrices6Projet - Gestionnaire de bibliothèque
Vue d’ensemble du projetAjouter un livreEntraînez-vous par vous-même : Compilateur Ruby en ligne