Projektübersicht
Teil des Abschnitts Logik & Ablauf der GO-Journey von Coddy. Lektion 45 von 68.
Aufgabe
EinfachDu 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:
- Eine
Product-Struktur mit zwei Feldern zu erstellen:Price(float64) – der Preis des ProduktsQuantity(int) – der aktuelle Lagerbestand
- Die erste Eingabe durch Aufteilen an Kommas zu analysieren, um Filialnamen und Standort zu erhalten
- Die zweite Eingabe durch Aufteilen an Kommas zu analysieren, um einzelne Produkteinträge zu erhalten
- Jeden Produkteintrag an Doppelpunkten aufzuteilen, um Produktname, Preis und Menge zu erhalten
- Die Preiszeichenfolge in float64 und die Mengenzeichenfolge in int umzuwandeln
- Eine Map namens
inventoryzu erstellen, deren Schlüssel Produktnamen (Zeichenfolgen) und deren WerteProduct-Strukturen sind - Die Bestandsmap mit den analysierten Produktdaten zu füllen
- Die Filialinformationen anzuzeigen:
"=== [store_name] Inventory System ===""Location: [location]""Inventory initialized with [number_of_products] products"
- Den aktuellen Bestand in alphabetischer Reihenfolge nach Produktnamen anzuzeigen:
"Current Inventory:"- Für jedes Produkt:
"- [product_name]: $[price] (Stock: [quantity])"
- 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]"
- 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
1Fortgeschrittener Kontrollfluss
Switch mit `fallthrough`Abbrechen von verschachtelten SchleifenFortsetzen einer bestimmten SchleifeDie `goto`-AnweisungZusammenfassung – Fortgeschrittene Schleifensteuerung4Projekt: Einfache Aufgabenliste
Projekt-SetupEine Aufgabe hinzufügen2Structs und Methoden
Methoden für Structs definierenValue ReceiverPointer ReceiverReceiver auswählenMethoden vs. FunktionenZusammenfassung – Struct-Verhalten5Maps im Detail
Maps von StructsPointer als Map-WertePrüfen auf Nil-MapsMaps vergleichenZusammenfassung – Wortfrequenz-Zähler8Projekt: Einfache Bestandsverwaltung
ProjektübersichtLagerbestand prüfen11Abschlussherausforderungen
Einfache KontaktlisteEinfacher Zahlen-ValidatorSammler für eindeutige Elemente3Interfaces (Die Grundlagen)
Was ist ein Interface?Ein Interface definierenEin Interface implementierenInterface-Typen verwendenLeeres InterfaceType AssertionsType SwitchZusammenfassung – Formen und VerhaltenÜbe selbstständig: Online-Go-Compiler