酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

description 汤汤开了一家咖啡店,在研发新品的时候,她发现不同品牌的牛奶味道不一样,拿铁的味道也会有微妙的区别,而且鲜牛奶的口感会比常温奶更好。经过精心的筛选,她最终选定了两家巴氏杀菌鲜牛奶供应商。每隔一段时间。小汤都会去市场购买当天最新鲜的牛奶,但由于供应商的库存和价格会有波动,每次进货的数量并不固定。 品牌a的鲜牛奶是塑料瓶包装,保质期只有7天;品牌b的鲜牛奶是专用纸盒包装,保质期有15天;为了减少浪费,汤汤会优先使用临近保质期的鲜牛奶,而过了保质期的牛奶,就只能处理掉了。 汤汤会记下每次进货的时间和数量以及每天的消耗量,以方便盘点库存。不用考虑每日消耗量超过剩余量的情况哦,汤汤会提前采购的~input 第一行输入整数 n,表示有n条操作记录; 之后n行,每行是一个操作,操作格式如下: 1 purchas 10 20 // 开店第1天,购买了a品牌鲜奶10l,b品牌鲜奶20l 2 cost 10 // 开店第2天,消耗鲜奶10l 3 check // 开店第3天,盘点 output 第一行,输出a品牌牛奶的盘点结果,包括库存量、累计消耗

以下是用 C++ 实现的代码示例: ```cpp #include <iostream> #include <vector> struct Milk { int brand; int quantity; int purchaseDay; int expirationDay; }; std::vector<Milk> stocks; void purchase(int brand, int quantity) { Milk newMilk; newMilk.brand = brand; newMilk.quantity = quantity; newMilk.purchaseDay = stocks.size() + 1; if (brand == 1) { newMilk.expirationDay = newMilk.purchaseDay + 7; } else { newMilk.expirationDay = newMilk.purchaseDay + 15; } stocks.push_back(newMilk); } void consume(int quantity) { int remaining = quantity; for (int i = 0; i < stocks.size(); ++i) { if (stocks[i].quantity > 0 && stocks[i].purchaseDay <= stocks.size() && stocks[i].expirationDay >= stocks.size() + 1) { if (stocks[i].quantity <= remaining) { remaining -= stocks[i].quantity; stocks[i].quantity = 0; } else { stocks[i].quantity -= remaining; remaining = 0; break; } } } } void check() { int aStock = 0, aCost = 0, aWaste = 0; int bStock = 0, bCost = 0, bWaste = 0; for (const auto& milk : stocks) { if (milk.brand == 1) { if (milk.purchaseDay + 7 < stocks.size() + 1) { aWaste += milk.quantity; } else { aStock += milk.quantity; } aCost += milk.quantity; } else { if (milk.purchaseDay + 15 < stocks.size() + 1) { bWaste += milk.quantity; } else { bStock += milk.quantity; } bCost += milk.quantity; } } std::cout << "a stock:" << aStock << " cost:" << aCost << " waste:" << aWaste << std::endl; std::cout << "b stock:" << bStock << " cost:" << bCost << " waste:" << bWaste << std::endl; } int main() { int n; std::cin >> n; for (int i = 0; i < n; ++i) { std::string op; std::cin >> op; if (op == "purchase") { int brand, quantity; std::cin >> brand >> quantity; purchase(brand, quantity); } else if (op == "cost") { int quantity; std::cin >> quantity; consume(quantity); } else if (op == "check") { check(); } } return 0; } ``` 以下是三个可行的改进建议: 1. 可以添加错误处理机制,例如输入不合法时给出提示。 2. 对代码进行模块化,将不同的功能封装成单独的函数,提高代码的可读性和可维护性。 3. 考虑使用更高效的数据结构,如优先队列来处理牛奶的使用顺序。 [2024-12-29 17:09:47 | AI写代码神器 | 811点数解答]

相关提问