Menu
Coddy logo textTech

סקירת הפרויקט

חלק מהיחידה לוגיקה וזרימת התוכנית במסלול ה-GO של Coddy. שיעור 45 מתוך 68.

challenge icon

אתגר

קל

אתה עומד לבנות בודק מלאי פשוט שיעזור לך לנהל את רמות המלאי של המוצרים.

הכן את הבסיס למערכת ניהול המלאי שלך על ידי יצירת מבני הנתונים המרכזיים והצגת נתוני המלאי הראשוניים. האתגר הזה מגדיר את המבנה Product ואת מפת המלאי שישמשו לאורך כל הפרויקט.

תקבל שני קלטים:

  • מחרוזת המכילה מידע על החנות בפורמט "store_name,location" (למשל, "TechStore,Downtown")
  • מחרוזת המכילה נתוני מוצרים ראשוניים בפורמט "product1:price1:quantity1,product2:price2:quantity2,product3:price3:quantity3" (למשל, "Laptop:999.99:5,Mouse:25.50:15,Keyboard:75.00:8")

המשימה שלך היא:

  1. ליצור מבנה Product עם שני שדות:
    • Price (float64) - מחיר המוצר
    • Quantity (int) - כמות המלאי הנוכחית
  2. לנתח את הקלט הראשון באמצעות פיצול לפי פסיקים כדי לקבל את שם החנות והמיקום
  3. לנתח את הקלט השני באמצעות פיצול לפי פסיקים כדי לקבל את רשומות המוצרים הבודדות
  4. עבור כל רשומת מוצר, לפצל לפי נקודתיים כדי לקבל את שם המוצר, המחיר והכמות
  5. להמיר את מחרוזת המחיר ל-float64 ואת מחרוזת הכמות ל-int
  6. ליצור מפה בשם inventory שבה המפתחות הם שמות המוצרים (מחרוזות) והערכים הם מבני Product
  7. לאכלס את מפת המלאי בנתוני המוצרים שפוענחו
  8. להציג את פרטי החנות:
    • "=== [store_name] Inventory System ==="
    • "Location: [location]"
    • "Inventory initialized with [number_of_products] products"
  9. להציג את המלאי הנוכחי בסדר אלפביתי לפי שם המוצר:
    • "Current Inventory:"
    • עבור כל מוצר: "- [product_name]: $[price] (Stock: [quantity])"
  10. לחשב ולהציג סטטיסטיקות מלאי:
    • "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. להציג את מצב המערכת:
    • "System Status: Ready"
    • "Inventory management system initialized successfully"

השתמש בחבילה strings כדי לפצל את מחרוזות הקלט, בחבילה strconv כדי להמיר מחרוזות למספרים, בחבילה fmt לפלט מעוצב, ובחבילה sort כדי למיין את שמות המוצרים בסדר אלפביתי. עצב את הערך הכולל של המלאי עם 2 ספרות אחרי הנקודה העשרונית. האתגר הזה מניח את היסודות של מבני הנתונים שיורחבו בשיעורים הבאים בפרויקט ניהול המלאי.

נסו בעצמכם

package main

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

// TODO: הגדירו כאן את ה-struct ‏Product

func main() {
	// קראו את הקלט באמצעות bufio.Scanner כדי לטפל ברווחים כראוי
	scanner := bufio.NewScanner(os.Stdin)
	
	scanner.Scan()
	storeInfo := scanner.Text()
	
	scanner.Scan()
	productData := scanner.Text()
	
	// TODO: כתבו את הקוד שלכם למטה
	// 1. נתחו את פרטי החנות (פצלו לפי פסיק ובדקו את האורך)
	// 2. נתחו את נתוני המוצרים (פצלו לפי פסיק, ואז לפי נקודתיים עבור כל מוצר)
	// 3. צרו מפת מלאי
	// 4. המירו מחרוזות לטיפוסים המתאימים ומלאו את המלאי
	// 5. הציגו את פרטי החנות
	// 6. הציגו את המלאי הנוכחי (ממוין לפי סדר אלפביתי)
	// 7. חשבו והציגו נתונים סטטיסטיים של המלאי
	// 8. הציגו את מצב המערכת
	
}

כל השיעורים ביחידה לוגיקה וזרימת התוכנית

תרגלו בעצמכם: קומפיילר Go אונליין