Menu
Coddy logo textTech

Aperçu du projet

Fait partie de la section Logique & Flux du Journey GO de Coddy — leçon 45 sur 68.

challenge icon

Défi

Facile

Vous êtes sur le point de construire un vérificateur d'inventaire simple qui vous aidera à gérer les niveaux de stock des produits.

Mettez en place les bases de votre système de gestion d'inventaire en créant les structures de données de base et en affichant les données d'inventaire initiales. Ce défi établit la structure Product et la map d'inventaire qui seront utilisées tout au long du projet.

Vous recevrez deux entrées :

  • Une chaîne contenant les informations du magasin au format "store_name,location" (par exemple, "TechStore,Downtown")
  • Une chaîne contenant les données initiales des produits au format "product1:price1:quantity1,product2:price2:quantity2,product3:price3:quantity3" (par exemple, "Laptop:999.99:5,Mouse:25.50:15,Keyboard:75.00:8")

Votre tâche consiste à :

  1. Créer une structure Product avec deux champs :
    • Price (float64) - le prix du produit
    • Quantity (int) - la quantité actuelle en stock
  2. Analyser la première entrée en la séparant par des virgules pour obtenir le nom du magasin et son emplacement
  3. Analyser la deuxième entrée en la séparant par des virgules pour obtenir les entrées de produits individuelles
  4. Pour chaque entrée de produit, séparer par des deux-points pour obtenir le nom du produit, le prix et la quantité
  5. Convertir la chaîne de prix en float64 et la chaîne de quantité en int
  6. Créer une map appelée inventory où les clés sont les noms des produits (chaînes de caractères) et les valeurs sont des structures Product
  7. Remplir la map d'inventaire avec les données de produits analysées
  8. Afficher les informations du magasin :
    • "=== [store_name] Inventory System ==="
    • "Location: [location]"
    • "Inventory initialized with [number_of_products] products"
  9. Afficher l'inventaire actuel par ordre alphabétique des noms de produits :
    • "Current Inventory:"
    • Pour chaque produit : "- [product_name]: $[price] (Stock: [quantity])"
  10. Calculer et afficher les statistiques de l'inventaire :
    • "Inventory Statistics:"
    • "Total Products: [total_number_of_products]"
    • "Total Items in Stock: [sum_of_all_quantities]"
    • "Total Inventory Value: $[sum_of_price_times_quantity_for_all_products]"
  11. Afficher le statut du système :
    • "System Status: Ready"
    • "Inventory management system initialized successfully"

Utilisez le package strings pour diviser les chaînes d'entrée, le package strconv pour convertir les chaînes en nombres, le package fmt pour la sortie formatée, et le package sort pour trier les noms de produits par ordre alphabétique. Formatez la valeur totale de l'inventaire avec 2 décimales. Ce défi établit les structures de données de base qui seront étendues dans les leçons suivantes du projet de gestion d'inventaire.

Essayez vous-même

package main

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

// TODO: Définir la structure Product ici

func main() {
	// Lire l'entrée en utilisant bufio.Scanner pour gérer correctement les espaces
	scanner := bufio.NewScanner(os.Stdin)
	
	scanner.Scan()
	storeInfo := scanner.Text()
	
	scanner.Scan()
	productData := scanner.Text()
	
	// TODO: Écrivez votre code ci-dessous
	// 1. Analyser les informations du magasin (séparer par virgule, vérifier la longueur)
	// 2. Analyser les données des produits (séparer par virgule, puis par deux-points pour chaque produit)
	// 3. Créer la carte d'inventaire
	// 4. Convertir les chaînes de caractères en types appropriés et remplir l'inventaire
	// 5. Afficher les informations du magasin
	// 6. Afficher l'inventaire actuel (trié par ordre alphabétique)
	// 7. Calculer et afficher les statistiques de l'inventaire
	// 8. Afficher l'état du système
	
}

Toutes les leçons de Logique & Flux