Menu
Coddy logo textTech

Alle Aufgaben anzeigen

Teil des Abschnitts Logik & Ablauf der GO-Journey von Coddy. Lektion 22 von 68.

challenge icon

Aufgabe

Einfach

Du setzt dein Aufgabenverwaltungssystem fort und implementierst nun die Funktionalität, um alle Aufgaben in einem benutzerfreundlichen Format anzuzeigen. Diese Herausforderung konzentriert sich darauf, deine Aufgabensammlung zu durchlaufen und jede Aufgabe mit ihrem Erledigungsstatus mithilfe klarer visueller Indikatoren darzustellen.

Du erhältst zwei Eingaben:

  • Eine Zeichenkette, die die Anzahl der Aufgaben darstellt (z. B. "4")
  • Eine Zeichenkette mit Aufgabedaten im Format: "name1:status1,name2:status2,name3:status3", wobei der Status entweder "true" oder "false" ist (z. B. "Buy groceries:false,Call dentist:true,Finish project:false,Review code:true")

Deine Aufgabe ist es:

  1. Dieselbe Task-Struktur wie in den vorherigen Herausforderungen zu definieren, mit den Feldern Name (string) und Completed (bool)
  2. Eine Funktion namens viewAllTasks zu erstellen, die als Parameter ein Slice aus Task-Strukturen entgegennimmt
  3. Innerhalb der Funktion viewAllTasks das Slice zu durchlaufen und jede Aufgabe im folgenden Format auszugeben:
    • Für erledigte Aufgaben: "[x] [task_name]"
    • Für unerledigte Aufgaben: "[ ] [task_name]"
  4. Die Aufgabedaten aus der zweiten Eingabe zu verarbeiten, um dein Aufgaben-Slice zu erstellen:
    • Die Eingabe an den Kommas zu teilen, um einzelne Aufgabeneinträge zu erhalten
    • Jeden Eintrag am Doppelpunkt zu teilen, um Name und Status voneinander zu trennen
    • Die Status-Zeichenkette in einen booleschen Wert umzuwandeln ("true" wird zu true, "false" wird zu false)
  5. Deine Funktion viewAllTasks mit dem erstellten Slice aufzurufen
  6. Nach der Anzeige aller Aufgaben eine Zusammenfassung im folgenden Format auszugeben: "Total: [total_count] tasks ([completed_count] completed, [incomplete_count] remaining)"

Wenn du beispielsweise die Aufgaben "Buy groceries:false,Call dentist:true,Finish project:false" hast, sollte deine Ausgabe jede Aufgabe mit den entsprechenden Kontrollkästchen anzeigen und anschließend die Zusammenfassung mit der Gesamtanzahl sowie den Erledigungsstatistiken darstellen. Diese Herausforderung übt das Durchlaufen von Slices und die bedingte Formatierung mit if-Anweisungen und bietet den Benutzern eine klare Übersicht über den Fortschritt ihrer Aufgaben.

Probier es selbst

package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
	"strings"
)

type Task struct {
	Name      string
	Completed bool
}

func viewAllTasks(tasks []Task) {
	// TODO: Implementiere die Funktion, um alle Aufgaben anzuzeigen
	// Für abgeschlossene Aufgaben: "[x] [task_name]"
	// Für unvollständige Aufgaben: "[ ] [task_name]"
}

func main() {
	var numTasksStr string
	fmt.Scanln(&numTasksStr)
	numTasks, _ := strconv.Atoi(numTasksStr)

	scanner := bufio.NewScanner(os.Stdin)
	scanner.Scan()
	taskData := scanner.Text()

	var tasks []Task

	// TODO: Analysiere die Aufgabendaten aus dem taskData-String
	// Nach Kommas trennen, um einzelne Aufgabeneinträge zu erhalten
	taskEntries := strings.Split(taskData, ",")
	_ = taskEntries

	// Für jeden Eintrag nach Doppelpunkt trennen, um Name und Status zu unterscheiden
	// Status-String in Boolean umwandeln und Task-Structs erstellen

	// TODO: Rufe die Funktion viewAllTasks mit dem erstellten Slice auf

	// TODO: Zusammenfassung berechnen und ausgeben
	// Format: "Total: [total_count] tasks ([completed_count] completed, [incomplete_count] remaining)"
	_ = tasks
	_ = numTasks
}

Alle Lektionen in Logik & Ablauf

Übe selbstständig: Online-Go-Compiler