Menu
Coddy logo textTech

Einfache Kontaktliste

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

challenge icon

Aufgabe

Einfach

Erstellen Sie ein Kontaktverwaltungssystem, das zeigt, wie Structs, Slices und Funktionen zusammenarbeiten, um Kontaktinformationen zu organisieren und anzuzeigen. Diese Herausforderung testet Ihre Fähigkeit, benutzerdefinierte Datenstrukturen zu definieren, Datensammlungen zu verwalten und Funktionen zur Manipulation dieser Daten zu implementieren.

Sie erhalten zwei Eingaben:

  • Einen String, der Kontaktinformationen im Format "name1:phone1:email1,name2:phone2:email2,name3:phone3:email3" enthält (z. B. "Alice Johnson:555-0123:alice@email.com,Bob Smith:555-0456:bob@email.com,Carol Davis:555-0789:carol@email.com")
  • Einen String, der einen neuen hinzuzufügenden Kontakt im Format "name:phone:email" enthält (z. B. "David Wilson:555-0321:david@email.com")

Ihre Aufgabe ist es:

  1. Definieren Sie ein Contact Struct mit drei String-Feldern: Name, Phone und Email
  2. Erstellen Sie eine Funktion namens addContact, die ein Slice von Contact Structs und einen neuen Contact entgegennimmt und dann ein neues Slice mit dem hinzugefügten Kontakt zurückgibt
  3. Erstellen Sie eine Funktion namens displayContacts, die ein Slice von Contact Structs entgegennimmt und die Informationen jedes Kontakts ausgibt
  4. Verarbeiten Sie die erste Eingabe, indem Sie sie an den Kommas aufteilen, um einzelne Kontakteinträge zu erhalten
  5. Teilen Sie jeden Kontakteintrag an den Doppelpunkten auf, um Name, Telefon und E-Mail zu extrahieren
  6. Erstellen Sie Contact Structs aus den verarbeiteten Daten und speichern Sie diese in einem Slice
  7. Verarbeiten Sie die zweite Eingabe, indem Sie sie an den Doppelpunkten aufteilen, um einen neuen Kontakt zu erstellen
  8. Geben Sie den Anwendungs-Header aus: "=== CONTACT MANAGEMENT SYSTEM ==="
  9. Geben Sie die ursprünglichen Kontakte mit Ihrer displayContacts-Funktion und dem Header "Initial contact list:" aus
  10. Geben Sie den neu hinzugefügten Kontakt aus: "Adding new contact: [name] ([phone]) - [email]"
  11. Verwenden Sie Ihre addContact-Funktion, um den neuen Kontakt zum Slice hinzuzufügen
  12. Geben Sie die aktualisierten Kontakte mit Ihrer displayContacts-Funktion und dem Header "Updated contact list:" aus
  13. Geben Sie Kontaktstatistiken aus:
    • "=== CONTACT STATISTICS ==="
    • "Total contacts: [number_of_contacts]"
    • "Contacts added this session: 1"
  14. Geben Sie die Abschlussmeldung aus: "Contact management operations completed successfully"

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

Verwenden Sie das strings-Paket, um Eingabestrings aufzuteilen, und das fmt-Paket für die formatierte Ausgabe. Diese Herausforderung zeigt, wie man Structs zur Datenorganisation, Slices für Sammlungen und Funktionen zur Codeorganisation 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