Menu
Coddy logo textTech

Stoktan Çıkarma

Coddy'nin C++ Journey'sinin Mantık & Akış bölümünün bir parçası — ders 33 / 56.

challenge icon

Görev

Kolay

Mevcut öğelerden stok çıkarma işlevini uygulayarak envanter takip sisteminizi tamamlayın. Bu ders, stok seviyelerinin sıfırın altına düşmesini önleyerek ve envanterde bulunmayan öğeleri yöneterek envanter miktarlarının nasıl güvenli bir şekilde azaltılacağını göstermektedir.

Aşağıdaki başlangıç envanteri ile başlayın:

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

Aşağıdaki girdiler sağlanacaktır:

  • Gerçekleştirilecek stok çıkarma işlemi sayısını temsil eden bir tam sayı n
  • Ardından n çift girdi:
    • Öğe adını temsil eden bir dize (string)
    • Çıkarılacak miktarı temsil eden bir tam sayı

Programınız şunları yapmalıdır:

  1. Yukarıda listelenen başlangıç envanteri ile başlayın
  2. Stok çıkarma işlemi sayısını okuyun
  3. Her işlem için bir öğe adı ve çıkarılacak miktarı okuyun
  4. Öğenin envanter haritasında (map) var olup olmadığını kontrol etmek için .count() metodunu kullanın
  5. Öğe mevcut değilse, bir hata mesajı yazdırın
  6. Öğe mevcutsa, miktarı çıkarmanın stoğu negatife düşürüp düşürmeyeceğini kontrol edin
  7. Çıkarma işlemi negatif stokla sonuçlanacaksa, bir hata mesajı yazdırın
  8. Çıkarma işlemi geçerliyse, miktarı mevcut stoktan çıkarın ve bir onay mesajı yazdırın
  9. Tüm işlemlerden sonra, tüm öğeleri ve güncellenmiş miktarlarını gösteren nihai envanteri yazdırın

Aşağıdaki tam çıktı formatını kullanın:

Başarılı stok çıkarma için:

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

Bulunamayan öğeler için:

Error: [item_name] not found in inventory

Yetersiz stok için:

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

Nihai envanter:

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

Nihai envanter, öğe adına göre alfabetik sırayla yazdırılmalıdır. Stok çıkarmaya çalışmadan önce bir öğenin var olup olmadığını kontrol etmek için inventory.count(itemName) kullanın. Yalnızca öğe mevcutsa ve mevcut stok çıkarılacak miktardan büyük veya ona eşitse envanterden çıkarma yapın. Mevcut stoktan miktarı çıkarmak için inventory[itemName] -= quantity kullanın.

Kendin dene

#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;
}

Mantık & Akış bölümündeki tüm dersler