Menu
CoddyTech

Kiểm tra hàng tồn kho

Thuộc phần Logic và luồng chương trình trong hành trình C++ của Coddy. Bài học 32 trên 56.

challenge icon

Thử thách

Dễ

Tiếp tục xây dựng hệ thống theo dõi hàng tồn kho bằng cách triển khai chức năng kiểm tra mức tồn kho hiện tại của từng mặt hàng. Bài học này hướng dẫn cách truy vấn an toàn thông tin mặt hàng trong map và xử lý trường hợp mặt hàng không có trong kho.

Chương trình sẽ nhận các đầu vào sau:

  • Một số nguyên n biểu thị số truy vấn tồn kho cần thực hiện
  • Sau đó là n chuỗi biểu thị tên các mặt hàng cần kiểm tra

Chương trình của bạn cần:

  1. Bắt đầu với hàng tồn kho ban đầu sau:
    inventory["apples"] = 50;
    inventory["bananas"] = 30;
    inventory["oranges"] = 25;
    inventory["grapes"] = 40;
  2. Đọc số lượng truy vấn tồn kho
  3. Đọc tên một mặt hàng cho mỗi truy vấn
  4. Dùng phương thức .count() để kiểm tra mặt hàng có tồn tại trong map hàng tồn kho hay không
  5. Nếu mặt hàng tồn tại, in ra số lượng hàng hiện có
  6. Nếu mặt hàng không tồn tại, in ra thông báo cho biết không tìm thấy mặt hàng đó
  7. Sau khi xử lý tất cả truy vấn, in ra tổng số mặt hàng khác nhau hiện có trong kho

Dùng định dạng đầu ra chính xác sau:

Với mỗi truy vấn tồn kho:

[item_name]: [quantity] in stock

Với mặt hàng không tìm thấy:

[item_name]: Item not found

Bản tóm tắt ở cuối:

Total items in inventory: [number_of_items]

Dùng phương thức .count() để kiểm tra an toàn xem từng mặt hàng có tồn tại hay không trước khi truy cập giá trị của nó. Nếu inventory.count(itemName) trả về 1, mặt hàng tồn tại và bạn có thể truy cập an toàn inventory[itemName] để lấy số lượng. Nếu phương thức trả về 0, mặt hàng không tồn tại. Dùng phương thức .size() trên map để lấy tổng số mặt hàng khác nhau trong kho cho phần tóm tắt cuối cùng.

Tự làm thử

#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;
}

Tất cả bài học trong Logic và luồng chương trình

Tự luyện tập: Trình biên dịch C++ online