Menu
CoddyTech

Loại bỏ 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 33 trên 56.

challenge icon

Thử thách

Dễ

Hoàn thiện hệ thống theo dõi hàng tồn kho bằng cách triển khai chức năng xóa hàng khỏi các mặt hàng hiện có. Bài học này hướng dẫn cách giảm số lượng hàng tồn kho an toàn, ngăn mức tồn kho giảm xuống dưới 0 và xử lý các mặt hàng không có trong kho.

Bắt đầu với hàng tồn kho ban đầu sau:

  • apples: 50
  • bananas: 30
  • oranges: 25

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

  • Một số nguyên n biểu thị số thao tác xóa hàng cần thực hiện
  • Sau đó là n cặp đầu vào:
    • Một chuỗi biểu thị tên mặt hàng
    • Một số nguyên biểu thị số lượng cần xóa

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

  1. Bắt đầu với hàng tồn kho ban đầu được liệt kê ở trên
  2. Đọc số thao tác xóa hàng
  3. Với mỗi thao tác, đọc tên mặt hàng và số lượng cần xóa
  4. Dùng phương thức .count() để kiểm tra xem mặt hàng có trong map hàng tồn kho hay không
  5. Nếu mặt hàng không tồn tại, in thông báo lỗi
  6. Nếu mặt hàng tồn tại, kiểm tra xem việc xóa số lượng đó có khiến lượng hàng tồn kho âm hay không
  7. Nếu việc xóa khiến lượng hàng tồn kho âm, in thông báo lỗi
  8. Nếu có thể xóa, trừ số lượng đó khỏi lượng hàng tồn kho hiện tại và in thông báo xác nhận
  9. Sau khi thực hiện tất cả thao tác, in hàng tồn kho cuối cùng, gồm tất cả mặt hàng và số lượng đã cập nhật

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

Khi xóa hàng thành công:

Removed [quantity] [item_name]. New total: [new_total]

Khi không tìm thấy mặt hàng:

Error: [item_name] not found in inventory

Khi không đủ hàng tồn kho:

Error: Cannot remove [quantity] [item_name]. Only [current_stock] in stock

Hàng tồn kho cuối cùng:

Final Inventory:
[item1]: [quantity1]
[item2]: [quantity2]
[item3]: [quantity3]
...

In hàng tồn kho cuối cùng theo thứ tự bảng chữ cái dựa trên tên mặt hàng. Dùng inventory.count(itemName) để kiểm tra mặt hàng có tồn tại hay không trước khi xóa hàng. Chỉ trừ hàng khỏi kho nếu mặt hàng tồn tại và lượng hàng tồn kho hiện tại lớn hơn hoặc bằng số lượng cần xóa. Dùng inventory[itemName] -= quantity để trừ số lượng khỏi lượng hàng tồn kho hiện có.

Tự làm thử

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

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