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

مراجعة - عنصر المخزون

جزء من قسم البرمجة كائنية التوجه في رحلة Swift على Coddy. الدرس 11 من 57.

challenge icon

التحدي

متوسط

أكمل البنية StockItem بالخاصيتين name وquantity. أضف الطريقتين القابلتين للتغيير receive(_:) (تضيف) وship(_:) (تطرح فقط عند توفر كمية كافية في المخزون، وتُرجع ما إذا كانت العملية قد تمت)، والطريقة غير القابلة للتغيير label() التي تُرجع tea: 12 أو tea: out of stock عندما تكون الكمية 0.

ثم أكمل process(start:commands:): فهي تنشئ العنصر، وتحتفظ بنسخة منه تُسمى opening قبل الأمر الأول، وتطبّق الأوامر، وتُرجع سطرًا واحدًا لكل شحنة مرفوضة (cannot ship 5)، ثم now متبوعًا بتسمية العنصر، وwas متبوعًا بتسمية opening.

يقرأ الكود المزوَّد العنصر بالصيغة name,quantity والأوامر بالصيغة +n أو -n، ويطبع كل سطر مُرجع.

ضع الكود الخاص بك في StockItem.swift وFunctions.swift. يحتوي main.swift على كود الإدخال/الإخراج المزوَّد، ولا يمكن تعديله.

جرّب بنفسك

// كود الإدخال/الإخراج المُزوَّد: أبقِه كما هو
var input: [String] = []
while let line = readLine() { input.append(line) }
let p = input[0].split(separator: ",").map(String.init)
let item = StockItem(name: p[0], quantity: Int(p[1])!)
for line in process(start: item, commands: Array(input.dropFirst())) { print(line) }

جميع دروس البرمجة كائنية التوجه

تدرّب بنفسك: Playground لـ Swift