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 créer un vérificateur d’inventaire simple qui vous aidera à gérer les niveaux de stock des produits.

Mettez en place les fondations de votre système de gestion des stocks en créant les structures de données principales 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 sur les virgules afin d’obtenir le nom et l’emplacement du magasin
  3. Analyser la deuxième entrée en la séparant sur les virgules afin d’obtenir les différentes entrées de produits
  4. Pour chaque entrée de produit, la séparer sur les deux-points afin d’obtenir le nom, le prix et la quantité du produit
  5. Convertir la chaîne du prix en float64 et la chaîne de la quantité en int
  6. Créer une map appelée inventory dont les clés sont les noms des produits (chaînes) et les valeurs sont des structures Product
  7. Remplir la map d’inventaire avec les données analysées des produits
  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 du nom des 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 l’état du système :
    • "System Status: Ready"
    • "Inventory management system initialized successfully"

Utilisez le package strings pour séparer 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 des 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 fondamentales qui seront étendues dans les leçons suivantes du projet de gestion des stocks.

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

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