Menu
Coddy logo textTech

Panoramica del progetto

Fa parte della sezione Logica e flusso del percorso GO di Coddy. Lezione 45 di 68.

challenge icon

Sfida

Facile

Stai per creare un semplice sistema di controllo dell'inventario che ti aiuterà a gestire le scorte dei prodotti.

Imposta le basi del tuo sistema di gestione dell'inventario creando le strutture dati principali e visualizzando i dati iniziali dell'inventario. Questa sfida introduce la struct Product e la mappa dell'inventario che verranno utilizzate per tutto il progetto.

Riceverai due input:

  • Una stringa contenente le informazioni del negozio nel formato "store_name,location" (ad es., "TechStore,Downtown")
  • Una stringa contenente i dati iniziali dei prodotti nel formato "product1:price1:quantity1,product2:price2:quantity2,product3:price3:quantity3" (ad es., "Laptop:999.99:5,Mouse:25.50:15,Keyboard:75.00:8")

Il tuo compito è:

  1. Creare una struct Product con due campi:
    • Price (float64) - il prezzo del prodotto
    • Quantity (int) - la quantità attuale in magazzino
  2. Analizzare il primo input dividendolo in corrispondenza delle virgole per ottenere il nome del negozio e la località
  3. Analizzare il secondo input dividendolo in corrispondenza delle virgole per ottenere le singole voci dei prodotti
  4. Per ogni voce di prodotto, dividerla in corrispondenza dei due punti per ottenere il nome del prodotto, il prezzo e la quantità
  5. Convertire la stringa del prezzo in float64 e la stringa della quantità in int
  6. Creare una mappa chiamata inventory in cui le chiavi sono i nomi dei prodotti (stringhe) e i valori sono struct Product
  7. Popolare la mappa dell'inventario con i dati analizzati dei prodotti
  8. Visualizzare le informazioni del negozio:
    • "=== [store_name] Inventory System ==="
    • "Location: [location]"
    • "Inventory initialized with [number_of_products] products"
  9. Visualizzare l'inventario attuale in ordine alfabetico per nome del prodotto:
    • "Current Inventory:"
    • Per ogni prodotto: "- [product_name]: $[price] (Stock: [quantity])"
  10. Calcolare e visualizzare le statistiche dell'inventario:
    • "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. Visualizzare lo stato del sistema:
    • "System Status: Ready"
    • "Inventory management system initialized successfully"

Usa il pacchetto strings per suddividere le stringhe di input, il pacchetto strconv per convertire le stringhe in numeri, il pacchetto fmt per l'output formattato e il pacchetto sort per ordinare alfabeticamente i nomi dei prodotti. Formatta il valore totale dell'inventario con 2 cifre decimali. Questa sfida definisce le strutture dati di base che verranno estese nelle lezioni successive del progetto di gestione dell'inventario.

Provalo tu

package main

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

// TODO: Definisci qui la struct Product

func main() {
	// Leggi l'input usando bufio.Scanner per gestire correttamente gli spazi
	scanner := bufio.NewScanner(os.Stdin)
	
	scanner.Scan()
	storeInfo := scanner.Text()
	
	scanner.Scan()
	productData := scanner.Text()
	
	// TODO: Scrivi il tuo codice qui sotto
	// 1. Analizza le informazioni del negozio (separa in base alla virgola, controlla la lunghezza)
	// 2. Analizza i dati dei prodotti (separa in base alla virgola, poi ai due punti per ciascun prodotto)
	// 3. Crea una mappa dell'inventario
	// 4. Converti le stringhe nei tipi appropriati e popola l'inventario
	// 5. Mostra le informazioni del negozio
	// 6. Mostra l'inventario attuale (in ordine alfabetico)
	// 7. Calcola e mostra le statistiche dell'inventario
	// 8. Mostra lo stato del sistema
	
}

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Go online