Menu
Coddy logo textTech

Einfache Kontaktliste

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

challenge icon

Aufgabe

Einfach

Erstelle ein Kontaktverwaltungssystem, das zeigt, wie Strukturen, Slices und Funktionen zusammenarbeiten, um Kontaktinformationen zu organisieren und anzuzeigen. Diese Herausforderung testet deine Fähigkeit, benutzerdefinierte Datenstrukturen zu definieren, Datensammlungen zu verwalten und Funktionen zu implementieren, um diese Daten zu bearbeiten.

Du erhältst zwei Eingaben:

  • Eine Zeichenkette mit Kontaktinformationen im Format "name1:phone1:email1,name2:phone2:email2,name3:phone3:email3" (z. B. "Alice Johnson:555-0123:alice@email.com,Bob Smith:555-0456:bob@email.com,Carol Davis:555-0789:carol@email.com")
  • Eine Zeichenkette mit einem neuen Kontakt, der im Format "name:phone:email" hinzugefügt werden soll (z. B. "David Wilson:555-0321:david@email.com")

Deine Aufgabe ist:

  1. Definiere eine Contact-Struktur mit drei Zeichenkettenfeldern: Name, Phone und Email
  2. Erstelle eine Funktion namens addContact, die einen Slice von Contact-Strukturen und einen neuen Contact übernimmt und anschließend einen neuen Slice mit dem hinzugefügten Kontakt zurückgibt
  3. Erstelle eine Funktion namens displayContacts, die einen Slice von Contact-Strukturen übernimmt und die Informationen zu jedem Kontakt ausgibt
  4. Verarbeite die erste Eingabe, indem du sie an Kommas trennst, um einzelne Kontakteinträge zu erhalten
  5. Trenne jeden Kontakteintrag an den Doppelpunkten, um Name, Telefonnummer und E-Mail-Adresse zu extrahieren
  6. Erstelle aus den verarbeiteten Daten Contact-Strukturen und speichere sie in einem Slice
  7. Verarbeite die zweite Eingabe, indem du sie an den Doppelpunkten trennst, um einen neuen Kontakt zu erstellen
  8. Gib die Kopfzeile der Anwendung aus: "=== CONTACT MANAGEMENT SYSTEM ==="
  9. Gib die anfänglichen Kontakte mithilfe deiner Funktion displayContacts mit der Kopfzeile "Initial contact list:" aus
  10. Gib den hinzuzufügenden neuen Kontakt aus: "Adding new contact: [name] ([phone]) - [email]"
  11. Verwende deine Funktion addContact, um den neuen Kontakt zum Slice hinzuzufügen
  12. Gib die aktualisierten Kontakte mithilfe deiner Funktion displayContacts mit der Kopfzeile "Updated contact list:" aus
  13. Gib die Kontaktstatistiken aus:
    • "=== CONTACT STATISTICS ==="
    • "Total contacts: [number_of_contacts]"
    • "Contacts added this session: 1"
  14. Gib die Abschlussmeldung aus: "Contact management operations completed successfully"

Die Funktion displayContacts soll jeden Kontakt im Format "[index]. [name] - Phone: [phone], Email: [email]" ausgeben, wobei der Index bei 1 beginnt.

Verwende das Paket strings, um Eingabezeichenketten zu trennen, und das Paket fmt für formatierte Ausgaben. Diese Herausforderung zeigt, wie man Strukturen zur Organisation von Daten, Slices für Sammlungen und Funktionen zur Strukturierung des Codes kombiniert – grundlegende Muster, die in der gesamten Go-Programmierung verwendet werden.

Probier es selbst

package main

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

// TODO: Definieren Sie hier Ihre Contact-Struktur

// TODO: Implementieren Sie hier die Funktion addContact

// TODO: Implementieren Sie hier die Funktion displayContacts

func main() {
	// Eingabe mit bufio.Scanner lesen, um Leerzeichen in Namen korrekt zu verarbeiten
	scanner := bufio.NewScanner(os.Stdin)
	
	scanner.Scan()
	contactsInput := scanner.Text()
	
	scanner.Scan()
	newContactInput := scanner.Text()
	
	// TODO: Schreiben Sie Ihren Code unten
	// Verarbeiten Sie die Kontakteingabe und erstellen Sie Contact-Strukturen
	// Denken Sie daran zu prüfen, ob der Parts-Slice genügend Elemente hat, bevor Sie darauf zugreifen
	// Verarbeiten Sie die Eingabe des neuen Kontakts
	// Anwendungskopf anzeigen
	// Anfängliche Kontakte anzeigen
	// Den neuen Kontakt hinzufügen
	// Aktualisierte Kontakte anzeigen
	// Statistiken anzeigen
	// Abschlussmeldung anzeigen
}

Alle Lektionen in Logik & Ablauf

Übe selbstständig: Online-Go-Compiler