Menu
Coddy logo textTech

Eliminar existencias

Parte de la sección Lógica y Flujo del Journey de C++ de Coddy — lección 33 de 56.

challenge icon

Desafío

Fácil

Complete su sistema de seguimiento de inventario implementando la funcionalidad para retirar existencias de los artículos existentes. Esta lección demuestra cómo disminuir de forma segura las cantidades de inventario, evitando al mismo tiempo que los niveles de existencias caigan por debajo de cero y gestionando los artículos que no existen en el inventario.

Comience con el siguiente inventario inicial:

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

Se proporcionarán las siguientes entradas:

  • Un entero n que representa el número de operaciones de retiro de existencias a realizar
  • Luego n pares de entradas:
    • Una cadena que representa el nombre del artículo
    • Un entero que representa la cantidad a retirar

Su programa debe:

  1. Comenzar con el inventario inicial enumerado anteriormente
  2. Leer el número de operaciones de retiro de existencias
  3. Para cada operación, leer un nombre de artículo y la cantidad a retirar
  4. Usar el método .count() para verificar si el artículo existe en el mapa de inventario
  5. Si el artículo no existe, imprimir un mensaje de error
  6. Si el artículo existe, verificar si retirar la cantidad haría que las existencias fueran negativas
  7. Si el retiro resultara en existencias negativas, imprimir un mensaje de error
  8. Si el retiro es válido, restar la cantidad de las existencias actuales e imprimir un mensaje de confirmación
  9. Después de todas las operaciones, imprimir el inventario final mostrando todos los artículos y sus cantidades actualizadas

Use el siguiente formato de salida exacto:

Para un retiro de existencias exitoso:

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

Para artículos no encontrados:

Error: [item_name] not found in inventory

Para existencias insuficientes:

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

Inventario final:

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

El inventario final debe imprimirse en orden alfabético por nombre de artículo. Use inventory.count(itemName) para verificar si un artículo existe antes de intentar retirar existencias. Solo reste del inventario si el artículo existe y las existencias actuales son mayores o iguales a la cantidad que se retira. Use inventory[itemName] -= quantity para restar la cantidad de las existencias existentes.

Pruébalo tú mismo

#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 las lecciones de Lógica y Flujo