إضافة وتحديث العناصر
جزء من قسم Logic & Flow في رحلة C++ على Coddy — الدرس 31 من 56.
التحدي
سهلقم بتوسيع نظام تتبع المخزون الخاص بك من خلال تنفيذ وظيفة إضافة عناصر جديدة أو تحديث كميات العناصر الموجودة. يوضح هذا الدرس كيف تتعامل الـ maps تلقائياً مع كل من الإدخالات الجديدة والتحديثات على الإدخالات الموجودة.
سيتم توفير المدخلات التالية:
- عدد صحيح
nيمثل عدد عمليات المخزون التي سيتم إجراؤها - ثم
nمن أزواج المدخلات:- سلسلة نصية (string) تمثل اسم العنصر
- عدد صحيح يمثل الكمية المراد إضافتها
يجب على برنامجك:
- البدء بالمخزون الأولي التالي:
inventory["apples"] = 50;
inventory["bananas"] = 30;
inventory["oranges"] = 25; - قراءة عدد عمليات المخزون
- لكل عملية، قراءة اسم العنصر والكمية
- إضافة الكمية إلى المخزون الحالي للعنصر في الـ inventory map باستخدام عامل القوس المربع (square bracket operator)
- طباعة رسالة تأكيد لكل عملية توضح اسم العنصر وإجمالي كميته الجديدة
- بعد كل العمليات، طباعة المخزون النهائي الذي يوضح جميع العناصر وكمياتها المحدثة
استخدم تنسيق المخرجات الدقيق التالي:
لكل عملية مخزون:
Added [quantity] [item_name]. New total: [new_total]المخزون النهائي:
Final Inventory:
[item1]: [quantity1]
[item2]: [quantity2]
[item3]: [quantity3]
...يجب طباعة المخزون النهائي بترتيب أبجدي حسب اسم العنصر. استخدم عامل القوس المربع لإضافة الكميات - إذا كان العنصر موجوداً بالفعل، فسيتم إضافته إلى الكمية الحالية؛ وإذا كان عنصراً جديداً، فسيتم إنشاؤه بالكمية المحددة. تذكر أن inventory[itemName] += quantity ستعمل مع كل من العناصر الجديدة والموجودة لأن الـ map تقوم تلقائياً بتهيئة الإدخالات الجديدة بالقيمة 0.
جرّب بنفسك
#include <iostream>
#include <map>
#include <string>
using namespace std;
int main() {
// TODO: Write your code below
map<string, int> inventory;
inventory["Laptops"] = 15;
inventory["Mice"] = 42;
inventory["Keyboards"] = 28;
inventory["Monitors"] = 12;
cout << "Initial Inventory Setup:" << endl;
for (const auto& pair : inventory) {
cout << pair.first << ": " << pair.second << endl;
}
cout << "Inventory system is ready!" << endl;
return 0;
}جميع دروس Logic & Flow
1المؤشرات والذاكرة
ما هو المؤشر؟معامل العنوان (Address-Of)معامل الوصول للقيمة (Dereference)المؤشرات الفارغة (Null Pointers)المؤشرات والمصفوفاتالذاكرة الديناميكية باستخدام 'new'تحرير الذاكرة باستخدام 'delete'مراجعة - تمارين على المؤشرات2المتجهات (المصفوفات الديناميكية)
مقدمة إلى std::vectorإنشاء Vectorإضافة العناصرالوصول إلى العناصرحجم الـ Vectorالتكرار باستخدام For Loopالـ Range-Based For Loopإزالة العناصرملخص - عمليات الـ Vector5مشروع: أداة المخزون
إعداد المشروعإضافة وتحديث العناصر