Verificar existencias
Parte de la sección Lógica y Flujo del Journey de C++ de Coddy — lección 32 de 56.
Desafío
FácilContinúa construyendo tu sistema de seguimiento de inventario implementando la funcionalidad para verificar el nivel de stock actual de artículos específicos. Esta lección demuestra cómo consultar de forma segura un mapa para obtener información de artículos y manejar casos en los que los artículos pueden no existir en el inventario.
Se proporcionarán las siguientes entradas:
- Un entero
nque representa el número de consultas de stock a realizar - Luego
ncadenas que representan los nombres de los artículos a verificar
Tu programa debe:
- Comenzar con el siguiente inventario inicial:
inventory["apples"] = 50;
inventory["bananas"] = 30;
inventory["oranges"] = 25;
inventory["grapes"] = 40; - Leer el número de consultas de stock
- Para cada consulta, leer el nombre de un artículo
- Usar el método
.count()para verificar si el artículo existe en el mapa de inventario - Si el artículo existe, imprimir su cantidad de stock actual
- Si el artículo no existe, imprimir un mensaje indicando que no fue encontrado
- Después de todas las consultas, imprimir un resumen del número total de artículos diferentes actualmente en el inventario
Utiliza el siguiente formato de salida exacto:
Para cada consulta de stock:
[item_name]: [quantity] in stockPara artículos no encontrados:
[item_name]: Item not foundResumen al final:
Total items in inventory: [number_of_items]Utiliza el método .count() para verificar de forma segura si cada artículo existe antes de acceder a su valor. Si inventory.count(itemName) devuelve 1, el artículo existe y puedes acceder de forma segura a inventory[itemName] para obtener su cantidad. Si devuelve 0, el artículo no existe. Utiliza el método .size() en el mapa para obtener el número total de artículos diferentes en el inventario para el resumen final.
Pruébalo tú mismo
#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;
}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