Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

نظرة عامة على المشروع

جزء من قسم Logic & Flow في رحلة 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 لفرز أسماء المنتجات أبجدياً. قم بتنسيق القيمة الإجمالية للمخزون إلى منزلتين عشريتين. يضع هذا التحدي هياكل البيانات الأساسية التي سيتم توسيعها في الدروس اللاحقة لمشروع إدارة المخزون.

جرّب بنفسك

package main

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

// TODO: قم بتعريف هيكل 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. عرض حالة النظام
	
}

جميع دروس Logic & Flow