Menu
Coddy logo textTech

Removendo Itens do Estoque

Parte da seção Lógica & Fluxo do Journey de C++ da Coddy — lição 33 de 56.

challenge icon

Desafio

Fácil

Complete seu sistema de rastreamento de inventário implementando a funcionalidade de remover estoque de itens existentes. Esta lição demonstra como diminuir as quantidades de inventário com segurança, evitando que os níveis de estoque fiquem abaixo de zero e lidando com itens que não existem no inventário.

Comece com o seguinte inventário inicial:

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

As seguintes entradas serão fornecidas:

  • Um número inteiro n representando o número de operações de remoção de estoque a serem realizadas
  • Em seguida, n pares de entradas:
    • Uma string representando o nome do item
    • Um número inteiro representando a quantidade a ser removida

Seu programa deve:

  1. Começar com o inventário inicial listado acima
  2. Ler o número de operações de remoção de estoque
  3. Para cada operação, ler um nome de item e a quantidade a ser removida
  4. Usar o método .count() para verificar se o item existe no mapa de inventário
  5. Se o item não existir, imprimir uma mensagem de erro
  6. Se o item existir, verificar se a remoção da quantidade tornaria o estoque negativo
  7. Se a remoção resultar em estoque negativo, imprimir uma mensagem de erro
  8. Se a remoção for válida, subtrair a quantidade do estoque atual e imprimir uma mensagem de confirmação
  9. Após todas as operações, imprimir o inventário final mostrando todos os itens e suas quantidades atualizadas

Use o seguinte formato de saída exato:

Para remoção de estoque bem-sucedida:

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

Para itens não encontrados:

Error: [item_name] not found in inventory

Para estoque insuficiente:

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

Inventário final:

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

O inventário final deve ser impresso em ordem alfabética pelo nome do item. Use inventory.count(itemName) para verificar se um item existe antes de tentar remover o estoque. Subtraia do inventário apenas se o item existir e o estoque atual for maior ou igual à quantidade que está sendo removida. Use inventory[itemName] -= quantity para subtrair a quantidade do estoque existente.

Experimente você mesmo

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

Todas as lições de Lógica & Fluxo