Menu
Coddy logo textTech

Liste de contacts basique

Fait partie de la section Logique & Flux du Journey GO de Coddy. Leçon 66 sur 68.

challenge icon

Défi

Facile

Créez un système de gestion des contacts qui montre comment les structures, les slices et les fonctions fonctionnent ensemble pour organiser et afficher les informations de contact. Ce défi mettra à l’épreuve votre capacité à définir des structures de données personnalisées, à gérer des collections de données et à implémenter des fonctions pour manipuler ces données.

Vous recevrez deux entrées :

  • Une chaîne contenant les informations de contact au format "name1:phone1:email1,name2:phone2:email2,name3:phone3:email3" (par exemple, "Alice Johnson:555-0123:alice@email.com,Bob Smith:555-0456:bob@email.com,Carol Davis:555-0789:carol@email.com")
  • Une chaîne contenant un nouveau contact à ajouter au format "name:phone:email" (par exemple, "David Wilson:555-0321:david@email.com")

Votre tâche consiste à :

  1. Définir une structure Contact avec trois champs de type chaîne : Name, Phone et Email
  2. Créer une fonction appelée addContact qui reçoit une slice de structures Contact et un nouveau Contact, puis renvoie une nouvelle slice contenant le contact ajouté
  3. Créer une fonction appelée displayContacts qui reçoit une slice de structures Contact et affiche les informations de chaque contact
  4. Analyser la première entrée en la divisant sur les virgules afin d’obtenir les entrées de contact individuelles
  5. Pour chaque entrée de contact, la diviser sur les deux-points afin d’extraire le nom, le téléphone et l’adresse e-mail
  6. Créer des structures Contact à partir des données analysées et les stocker dans une slice
  7. Analyser la deuxième entrée en la divisant sur les deux-points afin de créer un nouveau contact
  8. Afficher l’en-tête de l’application : "=== CONTACT MANAGEMENT SYSTEM ==="
  9. Afficher les contacts initiaux à l’aide de votre fonction displayContacts avec l’en-tête : "Initial contact list:"
  10. Afficher le nouveau contact en cours d’ajout : "Adding new contact: [name] ([phone]) - [email]"
  11. Utiliser votre fonction addContact pour ajouter le nouveau contact à la slice
  12. Afficher les contacts mis à jour à l’aide de votre fonction displayContacts avec l’en-tête : "Updated contact list:"
  13. Afficher les statistiques des contacts :
    • "=== CONTACT STATISTICS ==="
    • "Total contacts: [number_of_contacts]"
    • "Contacts added this session: 1"
  14. Afficher le message de fin : "Contact management operations completed successfully"

La fonction displayContacts doit afficher chaque contact au format suivant : "[index]. [name] - Phone: [phone], Email: [email]", où l’index commence à 1.

Utilisez le package strings pour diviser les chaînes d’entrée et le package fmt pour produire une sortie formatée. Ce défi montre comment combiner les structures pour organiser les données, les slices pour les collections et les fonctions pour organiser le code — des modèles fondamentaux utilisés dans toute la programmation Go.

Essayez vous-même

package main

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

// TODO: Définissez votre structure Contact ici

// TODO: Implémentez la fonction addContact ici

// TODO: Implémentez la fonction displayContacts ici

func main() {
	// Lire l'entrée en utilisant bufio.Scanner pour gérer correctement les espaces dans les noms
	scanner := bufio.NewScanner(os.Stdin)
	
	scanner.Scan()
	contactsInput := scanner.Text()
	
	scanner.Scan()
	newContactInput := scanner.Text()
	
	// TODO: Écrivez votre code ci-dessous
	// Analyser l'entrée des contacts et créer des structures Contact
	// N'oubliez pas de vérifier si la tranche (slice) parts a assez d'éléments avant d'y accéder
	// Analyser l'entrée du nouveau contact
	// Afficher l'en-tête de l'application
	// Afficher les contacts initiaux
	// Ajouter le nouveau contact
	// Afficher les contacts mis à jour
	// Afficher les statistiques
	// Afficher le message de fin
}

Toutes les leçons de Logique & Flux

Entraînez-vous par vous-même : Compilateur Go en ligne