Eliminar existencias
Parte de la sección Lógica y Flujo del Journey de C++ de Coddy — lección 33 de 56.
Desafío
FácilCompleta tu sistema de seguimiento de inventario implementando la funcionalidad para retirar stock de artículos existentes. Esta lección demuestra cómo disminuir de forma segura las cantidades de inventario mientras se evita que los niveles de stock bajen de cero y se gestionan los artículos que no existen en el inventario.
Comienza con el siguiente inventario inicial:
apples: 50bananas: 30oranges: 25
Se proporcionarán las siguientes entradas:
- Un entero
nque representa el número de operaciones de retiro de stock a realizar - Luego
npares de entradas:- Una cadena que representa el nombre del artículo
- Un entero que representa la cantidad a retirar
Tu programa debe:
- Comenzar con el inventario inicial listado arriba
- Leer el número de operaciones de retiro de stock
- Para cada operación, leer un nombre de artículo y la cantidad a retirar
- Usar el método
.count()para verificar si el artículo existe en el mapa de inventario - Si el artículo no existe, imprimir un mensaje de error
- Si el artículo existe, verificar si retirar la cantidad haría que el stock fuera negativo
- Si el retiro resultara en un stock negativo, imprimir un mensaje de error
- Si el retiro es válido, restar la cantidad del stock actual e imprimir un mensaje de confirmación
- Después de todas las operaciones, imprimir el inventario final mostrando todos los artículos y sus cantidades actualizadas
Usa el siguiente formato de salida exacto:
Para un retiro de stock exitoso:
Removed [quantity] [item_name]. New total: [new_total]Para artículos no encontrados:
Error: [item_name] not found in inventoryPara stock insuficiente:
Error: Cannot remove [quantity] [item_name]. Only [current_stock] in stockInventario final:
Final Inventory:\n[item1]: [quantity1]\n[item2]: [quantity2]\n[item3]: [quantity3]\n...El inventario final debe imprimirse en orden alfabético por nombre de artículo. Usa inventory.count(itemName) para verificar si un artículo existe antes de intentar retirar stock. Solo resta del inventario si el artículo existe y el stock actual es mayor o igual a la cantidad que se retira. Usa inventory[itemName] -= quantity para restar la cantidad del stock existente.
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
1Punteros y memoria
¿Qué es un puntero?Operador de direcciónOperador de desreferenciaPunteros nulosPunteros y arraysMemoria dinámica con 'new'Liberar memoria con 'delete'Resumen: Práctica de punteros2Vectores (Arrays dinámicos)
Introducción a std::vectorCreación de un VectorAgregar elementosAcceder a los elementosTamaño del VectorIterar con un bucle ForBucle For basado en rangosEliminar elementosResumen - Operaciones con Vectores5Proyecto: Herramienta de inventario
Configuración del proyectoAgregar y actualizar artículos3Proyecto: Herramienta de lista de tareas
Descripción general del proyectoAñadir una tarea