Menu
Coddy logo textTech

סיכום – עדכון מלאי

חלק מהיחידה לוגיקה וזרימת התוכנית במסלול ה-Dart של Coddy. שיעור 32 מתוך 65.

challenge icon

אתגר

קל

צרו תוכנית שמנהלת מערכת מלאי של מחסן באמצעות מעקב אחר רמות המלאי של מוצרים, בדיקה אם פריטים כבר קיימים, הוספה בטוחה של מוצרים חדשים ועדכון כמויות. התוכנית שלכם צריכה:

  1. לקרוא קלט מסוג מחרוזת שמייצג את שם המחסן
  2. לקרוא כמה זוגות של קלטים שמייצגים שמות מוצרים וכמויות המלאי הנוכחיות שלהם (הקלט יסתיים כשתקבלו "inventory_done")
  3. לקרוא קלט מסוג מחרוזת שמייצג מוצר שאותו יש לבדוק אם הוא קיים
  4. לקרוא קלט מסוג מחרוזת שמייצג מוצר חדש להוספה עם מלאי ברירת מחדל
  5. לקרוא קלט מסוג מחרוזת שמייצג מוצר שיש לחדש את מלאיו
  6. לקרוא קלט מסוג מחרוזת שמייצג את הכמות הנוספת שיש להוסיף למלאי המוצר
  7. ליצור Map לאחסון שמות המוצרים כמפתחות וכמויות המלאי שלהם כערכים
  8. להשתמש ב-containsKey() כדי לבדוק אם המוצר שצוין קיים במלאי
  9. להשתמש ב-putIfAbsent() כדי להוסיף את המוצר החדש עם מלאי ברירת מחדל של 50 יחידות
  10. לעדכן את כמות המלאי של המוצר שמחדשים את מלאיו על ידי הוספת הכמות הנוספת
  11. להדפיס את דוח ניהול המלאי בדיוק בפורמט שמוצג להלן

לדוגמה, אם שם המחסן הוא "Central Warehouse", המלאי כולל "Laptops" עם 25 יחידות, "Mice" עם 150 יחידות, "Keyboards" עם 75 יחידות, המוצר שיש לבדוק הוא "Laptops", המוצר החדש שיש להוסיף הוא "Monitors", המוצר שיש לחדש את מלאיו הוא "Mice", והכמות הנוספת היא 30, התוכנית שלכם צריכה להציג:

Warehouse: Central Warehouse
Initial Inventory: {Laptops: 25, Mice: 150, Keyboards: 75}
Inventory Operations:
Checking for 'Laptops': Product found in inventory
Adding 'Monitors': New product added with default stock 50
Restocking 'Mice': Updated quantity from 150 to 180
Final Inventory: {Laptops: 25, Mice: 180, Keyboards: 75, Monitors: 50}
Inventory Summary:
Total products: 4
Total stock units: 330
Low stock items (below 30): 1
Products restocked: 1
Status: Inventory management completed

אם שם המחסן הוא "North Storage", המלאי כולל "Tablets" עם 40 יחידות, "Headphones" עם 80 יחידות, המוצר שיש לבדוק הוא "Smartphones", המוצר החדש שיש להוסיף הוא "Tablets", המוצר שיש לחדש את מלאיו הוא "Headphones", והכמות הנוספת היא 20, התוכנית שלכם צריכה להציג:

Warehouse: North Storage
Initial Inventory: {Tablets: 40, Headphones: 80}
Inventory Operations:
Checking for 'Smartphones': Product not found in inventory
Adding 'Tablets': Product already exists, keeping stock 40
Restocking 'Headphones': Updated quantity from 80 to 100
Final Inventory: {Tablets: 40, Headphones: 100}
Inventory Summary:
Total products: 2
Total stock units: 140
Low stock items (below 30): 0
Products restocked: 1
Status: Inventory management completed

אם שם המחסן הוא "South Depot", המלאי כולל "Printers" עם 15 יחידות, "Scanners" עם 35 יחידות, "Cables" עם 200 יחידות, המוצר שיש לבדוק הוא "Scanners", המוצר החדש שיש להוסיף הוא "Webcams", המוצר שיש לחדש את מלאיו הוא "Printers", והכמות הנוספת היא 45, התוכנית שלכם צריכה להציג:

Warehouse: South Depot
Initial Inventory: {Printers: 15, Scanners: 35, Cables: 200}
Inventory Operations:
Checking for 'Scanners': Product found in inventory
Adding 'Webcams': New product added with default stock 50
Restocking 'Printers': Updated quantity from 15 to 60
Final Inventory: {Printers: 60, Scanners: 35, Cables: 200, Webcams: 50}
Inventory Summary:
Total products: 4
Total stock units: 345
Low stock items (below 30): 0
Products restocked: 1
Status: Inventory management completed

התוכנית שלכם חייבת להשתמש ב-containsKey() כדי לוודא שהמוצר קיים במלאי, ב-putIfAbsent() כדי להוסיף בבטחה מוצרים חדשים עם מלאי ברירת מחדל של 50 יחידות, ובעדכון ישיר של ערכי המפה כדי להגדיל את כמויות המלאי. ספרו פריטים בעלי מלאי נמוך אם הכמות שלהם קטנה מ-30 יחידות. חשבו את סך יחידות המלאי על ידי סכימת כל הכמויות במלאי הסופי. פורמט הקלט יהיה: שם המחסן, לאחר מכן שמות מוצרים וכמויות מלאי לסירוגין (כמחרוזות שיש להמיר למספרים שלמים), עד "inventory_done", ולאחר מכן המוצר לבדיקה, המוצר החדש להוספה, המוצר שיש לחדש את מלאיו והכמות הנוספת.

נסו בעצמכם

import 'dart:io';

void main() {
  // קרא את שם המחסן
  String? warehouseName = stdin.readLineSync();
  
  // קרא פריטים במלאי עד "inventory_done"
  Map<String, int> inventory = {};
  while (true) {
    String? input = stdin.readLineSync();
    if (input == "inventory_done") break;
    
    String productName = input!;
    String? quantityStr = stdin.readLineSync();
    int quantity = int.parse(quantityStr!);
    inventory[productName] = quantity;
  }
  
  // קרא את המוצר שיש לבדוק
  String? productToCheck = stdin.readLineSync();
  
  // קרא את המוצר החדש שיש להוסיף
  String? newProduct = stdin.readLineSync();
  
  // קרא את המוצר שיש לחדש את המלאי שלו
  String? productToRestock = stdin.readLineSync();
  
  // קרא את הכמות הנוספת
  String? additionalQuantityStr = stdin.readLineSync();
  int additionalQuantity = int.parse(additionalQuantityStr!);
  
  // TODO: כתוב את הקוד שלך למטה
  // השתמש ב-containsKey() כדי לבדוק אם המוצרים קיימים
  // השתמש ב-putIfAbsent() כדי להוסיף מוצרים חדשים עם מלאי התחלתי של 50
  // עדכן את הכמויות במלאי וחשב נתונים סטטיסטיים על המלאי
  
  // הדפס את דוח ניהול המלאי
  print("Warehouse: $warehouseName");
  // הוסף כאן את פקודות הפלט שלך
}

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

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