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ácilComplete 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: 50bananas: 30oranges: 25
Se proporcionarán las siguientes entradas:
- Un entero
nque representa el número de operaciones de retiro de existencias a realizar - Luego
npares de entradas:- Una cadena que representa el nombre del artículo
- Un entero que representa la cantidad a retirar
Su programa debe:
- Comenzar con el inventario inicial enumerado anteriormente
- Leer el número de operaciones de retiro de existencias
- 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 las existencias fueran negativas
- Si el retiro resultara en existencias negativas, imprimir un mensaje de error
- Si el retiro es válido, restar la cantidad de las existencias actuales 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
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 inventoryPara existencias insuficientes:
Error: Cannot remove [quantity] [item_name]. Only [current_stock] in stockInventario 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
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