Menu
Coddy logo textTech

Finaler Code

Teil des Abschnitts Logic & Flow der Rust-Journey von Coddy — Lektion 19 von 66.

challenge icon

Aufgabe

Einfach

Sie erhalten vier Eingaben, die einen vollständigen To-Do-Listen-Workflow darstellen: erstens eine durch Kommas getrennte Liste von Anfangsaufgaben; zweitens eine neue Aufgabe, die hinzugefügt werden soll; drittens eine Aufgabennummer zum Anzeigen (1-basierte Indizierung); und viertens eine Aufgabennummer zum Entfernen (1-basierte Indizierung). Erstellen Sie einen vollständigen To-Do-Listen-Manager, der all diese Operationen verarbeitet und den Endzustand anzeigt.

Anforderungen:

  • Lesen Sie die erste Eingabe ein, die durch Kommas getrennte Aufgabenbeschreibungen enthält (z. B. Buy groceries,Call dentist,Finish homework)
  • Teilen Sie die Zeichenfolge nach Kommas auf und erstellen Sie einen veränderbaren Vektor (mutable vector) mit diesen Anfangsaufgaben
  • Lesen Sie die zweite Eingabe ein und fügen Sie diese neue Aufgabe mit .push() zum Vektor hinzu
  • Lesen Sie die dritte Eingabe ein und konvertieren Sie sie in eine Ganzzahl (1-basierte Aufgabennummer zum Anzeigen)
  • Lesen Sie die vierte Eingabe ein und konvertieren Sie sie in eine Ganzzahl (1-basierte Aufgabennummer zum Entfernen)
  • Entfernen Sie die angegebene Aufgabe, indem Sie den 1-basierten Index in einen 0-basierten Index umwandeln und .remove() verwenden
  • Geben Sie Total tasks: X aus, wobei X die endgültige Anzahl der Aufgaben ist
  • Geben Sie Viewing task: Y aus, wobei Y die Aufgabennummer ist, die zur Anzeige angefordert wurde
  • Iterieren Sie durch die endgültige Aufgabenliste und geben Sie jede Aufgabe mit ihrer Nummer (1-basiert) aus
  • Für die Aufgabe, die mit der Anzeigenummer übereinstimmt (nach den Anpassungen durch das Entfernen), geben Sie Folgendes aus: [X] [task description] (selected)
  • Für alle anderen Aufgaben geben Sie Folgendes aus: [X] [task description]

Eingabe:

  • Erste Zeile: Durch Kommas getrennte Aufgabenbeschreibungen (z. B. Buy groceries,Call dentist,Finish homework)
  • Zweite Zeile: Eine neue Aufgabe, die hinzugefügt werden soll (z. B. Study for exam)
  • Dritte Zeile: Eine Ganzzahl, die die anzuzeigende Aufgabennummer darstellt (1-basierte Indizierung)
  • Vierte Zeile: Eine Ganzzahl, die die zu entfernende Aufgabennummer darstellt (1-basierte Indizierung)

Ausgabe:

  • Erste Zeile: Total tasks: X wobei X die endgültige Anzahl der Aufgaben ist
  • Zweite Zeile: Viewing task: Y wobei Y die angeforderte Anzeigenummer ist
  • Folgende Zeilen: Jede Aufgabe mit ihrer Nummer im Format [X] [task description]
  • Die ausgewählte Aufgabe (die mit der Anzeigenummer übereinstimmt) sollte den Anhang (selected) haben

Probier es selbst

use std::io::{self, BufRead};

fn main() {
    let stdin = io::stdin();
    let mut lines = stdin.lock().lines();
    
    // Lies die anfänglichen, durch Kommas getrennten Aufgaben
    let initial_tasks = lines.next().unwrap().unwrap();
    
    // Lies die neue Aufgabe, die hinzugefügt werden soll
    let new_task = lines.next().unwrap().unwrap();
    
    // Lies die Nummer der anzuzeigenden Aufgabe (1-basiert)
    let view_number: usize = lines.next().unwrap().unwrap().trim().parse().unwrap();
    
    // Lies die Nummer der zu entfernenden Aufgabe (1-basiert)
    let remove_number: usize = lines.next().unwrap().unwrap().trim().parse().unwrap();
    
    // TODO: Schreibe deinen Code unten
    // 1. Teile initial_tasks nach Kommas auf und erstelle einen veränderbaren Vektor
    // 2. Füge new_task zum Vektor hinzu
    // 3. Entferne die Aufgabe bei remove_number (konvertiere in 0-basierten Index)
    // 4. Gib die Gesamtzahl der Aufgaben und die Informationen zur anzuzeigenden Aufgabe aus
    // 5. Iteriere durch die endgültige Liste und gib jede Aufgabe aus
    
}

Alle Lektionen in Logic & Flow