Menu
Coddy logo textTech

הסרת פריטים מהמלאי

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-C++ של Coddy. שיעור 33 מתוך 56.

challenge icon

אתגר

קל

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

התחל עם המלאי ההתחלתי הבא:

  • apples: 50
  • bananas: 30
  • oranges: 25

הקלטים הבאים יסופקו:

  • מספר שלם n המייצג את מספר פעולות הסרת המלאי שיש לבצע
  • לאחר מכן n זוגות של קלטים:
    • מחרוזת המייצגת את שם הפריט
    • מספר שלם המייצג את הכמות להסרה

התוכנית שלך צריכה:

  1. להתחיל עם המלאי ההתחלתי שמופיע למעלה
  2. לקרוא את מספר פעולות הסרת המלאי
  3. עבור כל פעולה, לקרוא שם פריט וכמות להסרה
  4. להשתמש בשיטה .count() כדי לבדוק אם הפריט קיים במפת המלאי
  5. אם הפריט אינו קיים, להדפיס הודעת שגיאה
  6. אם הפריט קיים, לבדוק אם הסרת הכמות תגרום למלאי להיות שלילי
  7. אם ההסרה תגרום למלאי שלילי, להדפיס הודעת שגיאה
  8. אם ההסרה תקינה, להפחית את הכמות מהמלאי הנוכחי ולהדפיס הודעת אישור
  9. לאחר כל הפעולות, להדפיס את המלאי הסופי ובו כל הפריטים והכמויות המעודכנות שלהם

יש להשתמש בפורמט הפלט המדויק הבא:

להסרת מלאי מוצלחת:

Removed [quantity] [item_name]. New total: [new_total]

עבור פריטים שלא נמצאו:

Error: [item_name] not found in inventory

עבור מלאי שאינו מספיק:

Error: Cannot remove [quantity] [item_name]. Only [current_stock] in stock

מלאי סופי:

Final Inventory:
[item1]: [quantity1]
[item2]: [quantity2]
[item3]: [quantity3]
...

יש להדפיס את המלאי הסופי בסדר אלפביתי לפי שם הפריט. יש להשתמש ב-inventory.count(itemName) כדי לבדוק אם פריט קיים לפני שמנסים להסיר ממנו מלאי. יש להפחית מהמלאי רק אם הפריט קיים והמלאי הנוכחי גדול או שווה לכמות שמסירים. יש להשתמש ב-inventory[itemName] -= quantity כדי להפחית את הכמות מהמלאי הקיים.

נסו בעצמכם

#include <iostream>
#include <map>
#include <string>
using namespace std;

int main() {
    // Initialize inventory with existing items
    map<string, int> inventory;
    inventory["apples"] = 50;
    inventory["bananas"] = 30;
    inventory["oranges"] = 25;
    inventory["grapes"] = 40;
    
    int n;
    cin >> n;
    
    for (int i = 0; i < n; i++) {
        string itemName;
        cin >> itemName;
        
        if (inventory.count(itemName)) {
            cout << itemName << ": " << inventory[itemName] << " in stock" << endl;
        } else {
            cout << itemName << ": Item not found" << endl;
        }
    }
    
    cout << "Total items in inventory: " << inventory.size() << endl;
    
    return 0;
}

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

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