Code final
Fait partie de la section Logic & Flow du Journey Rust de Coddy — leçon 19 sur 66.
Défi
FacileVous recevrez quatre entrées représentant un flux de travail complet de liste de tâches : premièrement, une liste de tâches initiales séparées par des virgules ; deuxièmement, une nouvelle tâche à ajouter ; troisièmement, un numéro de tâche à consulter (indexation basée sur 1) ; et quatrièmement, un numéro de tâche à supprimer (indexation basée sur 1). Créez un gestionnaire de liste de tâches complet qui traite toutes ces opérations et affiche l'état final.
Exigences :
- Lire la première entrée contenant les descriptions des tâches séparées par des virgules (par exemple,
Buy groceries,Call dentist,Finish homework) - Diviser la chaîne par les virgules et créer un vecteur mutable avec ces tâches initiales
- Lire la deuxième entrée et ajouter cette nouvelle tâche au vecteur en utilisant
.push() - Lire la troisième entrée, la convertir en un entier (numéro de tâche à consulter, basé sur 1)
- Lire la quatrième entrée, la convertir en un entier (numéro de tâche à supprimer, basé sur 1)
- Supprimer la tâche spécifiée en convertissant l'index basé sur 1 en index basé sur 0 et en utilisant
.remove() - Afficher
Total tasks: Xoù X est le nombre final de tâches - Afficher
Viewing task: Yoù Y est le numéro de tâche qui a été demandé pour consultation - Parcourir la liste finale des tâches et afficher chaque tâche avec son numéro (basé sur 1)
- Pour la tâche correspondant au numéro de consultation (après les ajustements de suppression), afficher :
[X] [task description] (selected) - Pour toutes les autres tâches, afficher :
[X] [task description]
Entrée :
- Première ligne : Descriptions des tâches séparées par des virgules (par exemple,
Buy groceries,Call dentist,Finish homework) - Deuxième ligne : Une nouvelle tâche à ajouter (par exemple,
Study for exam) - Troisième ligne : Un entier représentant le numéro de la tâche à consulter (indexation basée sur 1)
- Quatrième ligne : Un entier représentant le numéro de la tâche à supprimer (indexation basée sur 1)
Sortie :
- Première ligne :
Total tasks: Xoù X est le nombre final de tâches - Deuxième ligne :
Viewing task: Yoù Y est le numéro de consultation demandé - Lignes suivantes : Chaque tâche avec son numéro au format
[X] [task description] - La tâche sélectionnée (correspondant au numéro de consultation) doit avoir
(selected)ajouté à la fin
Essayez vous-même
use std::io::{self, BufRead};
fn main() {
let stdin = io::stdin();
let mut lines = stdin.lock().lines();
// Lire les tâches initiales séparées par des virgules
let initial_tasks = lines.next().unwrap().unwrap();
// Lire la nouvelle tâche à ajouter
let new_task = lines.next().unwrap().unwrap();
// Lire le numéro de la tâche à afficher (basé sur 1)
let view_number: usize = lines.next().unwrap().unwrap().trim().parse().unwrap();
// Lire le numéro de la tâche à supprimer (basé sur 1)
let remove_number: usize = lines.next().unwrap().unwrap().trim().parse().unwrap();
// TODO: Écrivez votre code ci-dessous
// 1. Diviser initial_tasks par les virgules et créer un vecteur mutable
// 2. Ajouter new_task au vecteur
// 3. Supprimer la tâche à remove_number (convertir en index basé sur 0)
// 4. Afficher le nombre total de tâches et les informations de la tâche consultée
// 5. Parcourir la liste finale et afficher chaque tâche
}Toutes les leçons de Logic & Flow
1Structures de contrôle avancées
L'expression 'match'Filtrage de plusieurs valeursFiltrage d'intervallesL'expression 'if let'Les boucles en tant qu'expressionsRécapitulatif - Analyseur de commandes simple4Regrouper des données avec les structures
Qu'est-ce qu'une structure ?Aperçu des structuresAccéder aux champs d'une structureStructures mutablesLes structures comme paramètres de fonctionStructures tupleRécapitulatif - Créer une structure Book2Introduction aux vecteurs
Qu'est-ce qu'un vecteur ?Créer un vecteurAjouter des éléments avec pushAccéder aux éléments d'un vecteurItérer sur un vecteurItération mutableSupprimer des élémentsRécapitulatif - Suivi de score basique5Paires clé-valeur avec les Hash Maps
Qu'est-ce qu'une Hash Map ?Créer une Hash MapInsérer des paires clé-valeurAccéder aux valeursParcourir une Hash MapMettre à jour une valeurSupprimer une paireRécapitulatif - Compteur de mots8Projet : Inventaire d'articles simple
Configuration du projetAjouter un articleVérifier le stockVendre un articleAssembler le tout3Liste de tâches en ligne de commande
Configuration du projetAjouter une tâcheAfficher toutes les tâchesSupprimer une tâcheCode final