以下是用 C++ 实现的代码示例: ```cpp #include <iostream> #include <vector> struct Milk { int brand; int quantity; int expirationDay; }; class CoffeeShop { private: std::vector<Milk> stocks; void updateExpiration() { for (auto& milk : stocks) { if (milk.expirationDay > 0) { milk.expirationDay--; } } } void consume(int quantity) { int totalConsumed = 0; for (auto it = stocks.begin(); it!= stocks.end();) { if (it->expirationDay > 0 && totalConsumed < quantity) { if (it->quantity <= quantity - totalConsumed) { totalConsumed += it->quantity; it = stocks.erase(it); } else { it->quantity -= quantity - totalConsumed; totalConsumed = quantity; } } else { it++; } } } public: void purchase(int brandAQuantity, int brandBQuantity) { Milk brandA = {1, brandAQuantity, 7}; Milk brandB = {2, brandBQuantity, 15}; stocks.push_back(brandA); stocks.push_back(brandB); } void check() { int brandAStock = 0; for (const auto& milk : stocks) { if (milk.brand == 1) { brandAStock += milk.quantity; } } std::cout << "A 品牌牛奶的库存量: " << brandAStock << std::endl; } void handleOperations() { int n; std::cin >> n; for (int i = 0; i < n; i++) { int operation; std::cin >> operation; if (operation == 1) { int brandAQuantity, brandBQuantity; std::cin >> brandAQuantity >> brandBQuantity; purchase(brandAQuantity, brandBQuantity); } else if (operation == 2) { int consumption; std::cin >> consumption; consume(consumption); } else if (operation == 3) { check(); } updateExpiration(); } } }; int main() { CoffeeShop shop; shop.handleOperations(); return 0; } ``` 以下是 3 个改进建议: 1. 可以添加错误处理机制,比如输入不符合格式时的处理。 2. 可以将一些功能封装成单独的函数,以提高代码的可读性和可维护性。 3. 考虑使用更高效的数据结构来存储库存信息,例如优先队列。 [2024-12-29 17:06:34 | AI写代码神器 | 663点数解答]