Menu
Coddy logo textTech

Projektübersicht

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

challenge icon

Aufgabe

Einfach

Du wirst gleich einen einfachen Bestandsprüfer erstellen, der dir dabei hilft, die Lagerbestände von Produkten zu verwalten.

Richte die Grundlage für dein Bestandsverwaltungssystem ein, indem du die zentralen Datenstrukturen erstellst und die anfänglichen Bestandsdaten anzeigst. Diese Herausforderung legt die Product-Struktur und die Bestandszuordnung fest, die im gesamten Projekt verwendet werden.

Du erhältst zwei Eingaben:

  • Eine Zeichenfolge mit Filialinformationen im Format "store_name,location" (z. B. "TechStore,Downtown")
  • Eine Zeichenfolge mit den 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")

Deine Aufgabe ist es:

  1. Eine Product-Struktur mit zwei Feldern zu erstellen:
    • Price (float64) – der Preis des Produkts
    • Quantity (int) – der aktuelle Lagerbestand
  2. Die erste Eingabe durch Aufteilen an Kommas zu analysieren, um Filialnamen und Standort zu erhalten
  3. Die zweite Eingabe durch Aufteilen an Kommas zu analysieren, um einzelne Produkteinträge zu erhalten
  4. Jeden Produkteintrag an Doppelpunkten aufzuteilen, um Produktname, Preis und Menge zu erhalten
  5. Die Preiszeichenfolge in float64 und die Mengenzeichenfolge in int umzuwandeln
  6. Eine Map namens inventory zu erstellen, deren Schlüssel Produktnamen (Zeichenfolgen) und deren Werte Product-Strukturen sind
  7. Die Bestandsmap mit den analysierten Produktdaten zu füllen
  8. Die Filialinformationen anzuzeigen:
    • "=== [store_name] Inventory System ==="
    • "Location: [location]"
    • "Inventory initialized with [number_of_products] products"
  9. Den aktuellen Bestand in alphabetischer Reihenfolge nach Produktnamen anzuzeigen:
    • "Current Inventory:"
    • Für jedes Produkt: "- [product_name]: $[price] (Stock: [quantity])"
  10. Bestandsstatistiken zu berechnen und anzuzeigen:
    • "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. Den Systemstatus anzuzeigen:
    • "System Status: Ready"
    • "Inventory management system initialized successfully"

Verwende das Paket strings, um die Eingabezeichenfolgen aufzuteilen, das Paket strconv, um Zeichenfolgen in Zahlen umzuwandeln, das Paket fmt für formatierte Ausgaben und das Paket sort, um die Produktnamen alphabetisch zu sortieren. Formatiere den Gesamtwert des Bestands mit 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

Übe selbstständig: Online-Go-Compiler