Menu
Coddy logo textTech

Projektübersicht

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

challenge icon

Aufgabe

Einfach

Sie sind dabei, einen einfachen Bestandsprüfer zu erstellen, der Ihnen hilft, die Lagerbestände von Produkten zu verwalten.

Legen Sie den Grundstein für Ihr Bestandsverwaltungssystem, indem Sie die Kern-Datenstrukturen erstellen und die anfänglichen Bestandsdaten anzeigen. Diese Herausforderung etabliert das Product-Struct und die Bestands-Map (Inventory Map), die im gesamten Projekt verwendet werden.

Sie erhalten zwei Eingaben:

  • Einen String mit Geschäftsinformationen im Format "store_name,location" (z. B. "TechStore,Downtown")
  • Einen String mit anfänglichen Produktdaten im Format "product1:price1:quantity1,product2:price2:quantity2,product3:price3:quantity3" (z. B. "Laptop:999.99:5,Mouse:25.50:15,Keyboard:75.00:8")

Ihre Aufgabe ist es:

  1. Erstellen Sie ein Product-Struct mit zwei Feldern:
    • Price (float64) - der Preis des Produkts
    • Quantity (int) - die aktuelle Lagermenge
  2. Analysieren Sie die erste Eingabe, indem Sie sie an Kommas trennen, um den Geschäftsnamen und den Standort zu erhalten
  3. Analysieren Sie die zweite Eingabe, indem Sie sie an Kommas trennen, um die einzelnen Produkteinträge zu erhalten
  4. Trennen Sie für jeden Produkteintrag an Doppelpunkten, um Produktname, Preis und Menge zu erhalten
  5. Konvertieren Sie den Preis-String in float64 und den Mengen-String in int
  6. Erstellen Sie eine Map namens inventory, wobei die Schlüssel Produktnamen (Strings) und die Werte Product-Structs sind
  7. Füllen Sie die inventory-Map mit den analysierten Produktdaten
  8. Zeigen Sie die Geschäftsinformationen an:
    • "=== [store_name] Inventory System ==="
    • "Location: [location]"
    • "Inventory initialized with [number_of_products] products"
  9. Zeigen Sie den aktuellen Bestand in alphabetischer Reihenfolge nach Produktname an:
    • "Current Inventory:"
    • Für jedes Produkt: "- [product_name]: $[price] (Stock: [quantity])"
  10. Berechnen und zeigen Sie Bestandsstatistiken an:
    • "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. Systemstatus anzeigen:
    • "System Status: Ready"
    • "Inventory management system initialized successfully"

Verwenden Sie das strings-Paket, um die Eingabestrings zu trennen, das strconv-Paket, um Strings in Zahlen umzuwandeln, das fmt-Paket für die formatierte Ausgabe und das sort-Paket, um Produktnamen alphabetisch zu sortieren. Formatieren Sie den Gesamtinventarwert auf 2 Dezimalstellen. Diese Herausforderung legt die grundlegenden Datenstrukturen fest, die in den folgenden Lektionen des Bestandsverwaltungsprojekts erweitert werden.

Probier es selbst

package main

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

// TODO: Definieren Sie hier das Product-Struct

func main() {
	// Eingabe mit bufio.Scanner lesen, um Leerzeichen korrekt zu verarbeiten
	scanner := bufio.NewScanner(os.Stdin)
	
	scanner.Scan()
	storeInfo := scanner.Text()
	
	scanner.Scan()
	productData := scanner.Text()
	
	// TODO: Schreiben Sie Ihren Code unten
	// 1. Shop-Informationen parsen (nach Komma trennen, Länge prüfen)
	// 2. Produktdaten parsen (nach Komma trennen, dann nach Doppelpunkt für jedes Produkt)
	// 3. Inventar-Map erstellen
	// 4. Strings in entsprechende Typen konvertieren und Inventar befüllen
	// 5. Shop-Informationen anzeigen
	// 6. Aktuelles Inventar anzeigen (alphabetisch sortiert)
	// 7. Inventarstatistiken berechnen und anzeigen
	// 8. Systemstatus anzeigen
	
}

Alle Lektionen in Logik & Ablauf