Menu
Coddy logo textTech

Проверка остатков

Часть раздела Логика и управление потоком путешествия по C++ на Coddy — урок 32 из 56.

challenge icon

Задание

Легко

Продолжайте создавать свою систему отслеживания запасов, реализовав функциональность для проверки текущего уровня запасов определенных товаров. Этот урок демонстрирует, как безопасно запрашивать информацию о товаре в объекте map и обрабатывать случаи, когда товары могут отсутствовать в инвентаре.

Будут предоставлены следующие входные данные:

  • Целое число n, представляющее количество запросов о наличии товара для выполнения
  • Затем n строк, представляющих названия товаров для проверки

Ваша программа должна:

  1. Начать со следующего начального инвентаря:
    inventory["apples"] = 50;
    inventory["bananas"] = 30;
    inventory["oranges"] = 25;
    inventory["grapes"] = 40;
  2. Прочитать количество запросов о наличии
  3. Для каждого запроса прочитать название товара
  4. Использовать метод .count(), чтобы проверить, существует ли товар в объекте map инвентаря
  5. Если товар существует, вывести его текущее количество на складе
  6. Если товар не существует, вывести сообщение о том, что он не найден
  7. После всех запросов вывести сводку об общем количестве различных товаров, находящихся в данный момент в инвентаре

Используйте следующий точный формат вывода:

Для каждого запроса о наличии:

[item_name]: [quantity] in stock

Для товаров, которые не найдены:

[item_name]: Item not found

Сводка в конце:

Total items in inventory: [number_of_items]

Используйте метод .count() для безопасной проверки существования каждого товара перед доступом к его значению. Если inventory.count(itemName) возвращает 1, товар существует, и вы можете безопасно обратиться к inventory[itemName], чтобы получить его количество. Если возвращается 0, товара не существует. Используйте метод .size() для объекта map, чтобы получить общее количество различных товаров в инвентаре для итоговой сводки.

Попробуйте сами

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

int main() {
    // Initialize the inventory with existing items
    map<string, int> inventory;
    inventory["apples"] = 50;
    inventory["bananas"] = 30;
    inventory["oranges"] = 25;
    
    int n;
    cin >> n;
    
    for (int i = 0; i < n; i++) {
        string itemName;
        int quantity;
        cin >> itemName >> quantity;
        
        inventory[itemName] += quantity;
        
        cout << "Added " << quantity << " " << itemName << ". New total: " << inventory[itemName] << endl;
    }
    
    cout << "Final Inventory:" << endl;
    for (const auto& item : inventory) {
        cout << item.first << ": " << item.second << endl;
    }
    
    return 0;
}

Все уроки раздела Логика и управление потоком