Sprawdzanie stanu magazynowego
Część sekcji Logika i przepływ programu ścieżki C++ w Coddy. Lekcja 32 z 56.
Wyzwanie
ŁatwyKontynuuj tworzenie systemu śledzenia zapasów, implementując funkcjonalność sprawdzania aktualnego stanu magazynowego wybranych produktów. Ta lekcja pokazuje, jak bezpiecznie wyszukiwać informacje o produktach w mapie i obsługiwać przypadki, w których produkty mogą nie znajdować się w magazynie.
Podane zostaną następujące dane wejściowe:
- Liczba całkowita
noznaczająca liczbę zapytań o stan magazynowy - Następnie
nciągów znaków z nazwami produktów do sprawdzenia
Twój program powinien:
- Rozpocząć od następującego początkowego stanu magazynowego:
inventory["apples"] = 50;
inventory["bananas"] = 30;
inventory["oranges"] = 25;
inventory["grapes"] = 40; - Odczytać liczbę zapytań o stan magazynowy
- Dla każdego zapytania odczytać nazwę produktu
- Użyć metody
.count(), aby sprawdzić, czy produkt istnieje w mapie magazynu - Jeśli produkt istnieje, wypisać jego aktualną ilość w magazynie
- Jeśli produkt nie istnieje, wypisać komunikat informujący, że go nie znaleziono
- Po wszystkich zapytaniach wypisać podsumowanie całkowitej liczby różnych produktów znajdujących się obecnie w magazynie
Użyj następującego dokładnego formatu wyjściowego:
Dla każdego zapytania o stan magazynowy:
[item_name]: [quantity] in stockJeśli produktu nie znaleziono:
[item_name]: Item not foundPodsumowanie na końcu:
Total items in inventory: [number_of_items]Użyj metody .count(), aby bezpiecznie sprawdzić, czy każdy produkt istnieje, zanim uzyskasz dostęp do jego wartości. Jeśli inventory.count(itemName) zwraca 1, produkt istnieje i możesz bezpiecznie użyć inventory[itemName], aby uzyskać jego ilość. Jeśli zwraca 0, produkt nie istnieje. Użyj metody .size() mapy, aby uzyskać całkowitą liczbę różnych produktów w magazynie na potrzeby końcowego podsumowania.
Spróbuj swoich sił
#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;
}Wszystkie lekcje w sekcji Logika i przepływ programu
1Wskaźniki i pamięć
Czym jest wskaźnik?Operator pobrania adresuOperator dereferencjiWskaźniki zeroweWskaźniki i tabliceDynamiczne zarządzanie pamięcią za pomocą „new”Zwalnianie pamięci za pomocą „delete”Podsumowanie — ćwiczenia ze wskaźnikami2Wektory (tablice dynamiczne)
Wprowadzenie do std::vectorTworzenie wektoraDodawanie elementówDostęp do elementówRozmiar wektoraIterowanie za pomocą pętli forPętla for oparta na zakresieUsuwanie elementówPodsumowanie — operacje na wektorach5Projekt: Narzędzie do zarządzania zapasami
Konfiguracja projektuDodawanie i aktualizowanie produktów3Projekt: narzędzie do listy zadań
Przegląd projektuDodawanie zadaniaPoćwicz samodzielnie: Kompilator C++ online