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.
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: 50bananas: 30oranges: 25
Chương trình sẽ nhận các đầu vào sau:
- Một số nguyên
nbiểu thị số thao tác xóa hàng cần thực hiện - Sau đó là
ncặ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:
- Bắt đầu với hàng tồn kho ban đầu được liệt kê ở trên
- Đọc số thao tác xóa hàng
- Với mỗi thao tác, đọc tên mặt hàng và số lượng cần xóa
- 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 - Nếu mặt hàng không tồn tại, in thông báo lỗi
- 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
- Nếu việc xóa khiến lượng hàng tồn kho âm, in thông báo lỗi
- 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
- 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 inventoryKhi không đủ hàng tồn kho:
Error: Cannot remove [quantity] [item_name]. Only [current_stock] in stockHà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
1Con trỏ và bộ nhớ
Con trỏ là gì?Toán tử lấy địa chỉToán tử giải tham chiếuCon trỏ nullCon trỏ và mảngBộ nhớ động với newGiải phóng bộ nhớ với deleteÔn tập: luyện tập về con trỏ2Vector (mảng động)
Giới thiệu std::vectorTạo vectorThêm phần tửTruy cập phần tửKích thước vectorDuyệt bằng vòng lặp forVòng lặp for dựa trên phạm viXóa phần tửÔn tập: các thao tác với vector5Dự án: Công cụ quản lý hàng tồn kho
Thiết lập dự ánThêm và cập nhật mặt hàng3Dự án: Công cụ danh sách công việc
Tổng quan dự ánThêm công việc6Tập hợp (các phần tử duy nhất)
Giới thiệu std::setTạo tập hợp và thêm phần tửKiểm tra phần tửXóa phần tửDuyệt qua tập hợpÔn tập: các số duy nhấtTự luyện tập: Trình biên dịch C++ online