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

إزالة المخزون

جزء من قسم Logic & Flow في رحلة C++ على Coddy — الدرس 33 من 56.

challenge icon

التحدي

سهل

أكمل نظام تتبع المخزون الخاص بك عن طريق تنفيذ وظيفة إزالة المخزون من العناصر الموجودة. يوضح هذا الدرس كيفية تقليل كميات المخزون بأمان مع منع مستويات المخزون من الانخفاض إلى ما دون الصفر والتعامل مع العناصر غير الموجودة في المخزون.

ابدأ بالمخزون الأولي التالي:

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

سيتم توفير المدخلات التالية:

  • عدد صحيح n يمثل عدد عمليات إزالة المخزون المطلوب تنفيذها
  • ثم n من أزواج المدخلات:
    • سلسلة نصية (string) تمثل اسم العنصر
    • عدد صحيح يمثل الكمية المراد إزالتها

يجب على برنامجك:

  1. البدء بالمخزون الأولي المذكور أعلاه
  2. قراءة عدد عمليات إزالة المخزون
  3. لكل عملية، قراءة اسم العنصر والكمية المراد إزالتها
  4. استخدام طريقة .count() للتحقق مما إذا كان العنصر موجوداً في خريطة (map) المخزون
  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:\n[item1]: [quantity1]\n[item2]: [quantity2]\n[item3]: [quantity3]\n...

يجب طباعة المخزون النهائي بترتيب أبجدي حسب اسم العنصر. استخدم 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;
}

جميع دروس Logic & Flow