写一个c++酒水订单统计管理系统并维护库存
时间: 2023-07-30 13:07:26 浏览: 174
好的,我可以为您编写一个简单的酒水订单统计管理系统,具体如下:
首先,我们需要定义一个酒水类,包含以下属性:
- 名称
- 单价
- 库存
```c++
class Drink {
public:
std::string name;
double price;
int inventory;
};
```
接下来,我们可以定义一个订单类,包含以下属性:
- 酒水名称
- 数量
- 总价
```c++
class Order {
public:
std::string drinkName;
int quantity;
double totalPrice;
};
```
接着,我们可以定义一个酒水仓库类,用于管理所有酒水的库存:
```c++
class DrinkRepository {
public:
std::vector<Drink> drinks;
// 添加酒水
void addDrink(const Drink& drink) {
drinks.push_back(drink);
}
// 根据名称获取酒水
Drink* getDrinkByName(const std::string& name) {
for (auto& drink : drinks) {
if (drink.name == name) {
return &drink;
}
}
return nullptr;
}
// 展示所有酒水信息
void displayAllDrinks() {
std::cout << "酒水名称\t单价\t库存" << std::endl;
for (auto& drink : drinks) {
std::cout << drink.name << "\t" << drink.price << "\t" << drink.inventory << std::endl;
}
}
};
```
最后,我们可以定义一个订单管理类,用于处理订单和更新库存:
```c++
class OrderManager {
public:
std::vector<Order> orders;
DrinkRepository& drinkRepo;
OrderManager(DrinkRepository& repo) : drinkRepo(repo) {}
// 下订单
void placeOrder(const std::string& drinkName, int quantity) {
Drink* drink = drinkRepo.getDrinkByName(drinkName);
if (drink == nullptr) {
std::cout << "酒水不存在!" << std::endl;
return;
}
if (drink->inventory < quantity) {
std::cout << "库存不足!" << std::endl;
return;
}
double totalPrice = drink->price * quantity;
Order order = {drinkName, quantity, totalPrice};
orders.push_back(order);
drink->inventory -= quantity;
std::cout << "下单成功!" << std::endl;
}
// 展示所有订单信息
void displayAllOrders() {
std::cout << "酒水名称\t数量\t总价" << std::endl;
for (auto& order : orders) {
std::cout << order.drinkName << "\t" << order.quantity << "\t" << order.totalPrice << std::endl;
}
}
};
```
使用示例:
```c++
DrinkRepository repo;
repo.addDrink({"啤酒", 3.5, 100});
repo.addDrink({"白酒", 50, 10});
OrderManager manager(repo);
manager.placeOrder("啤酒", 20);
manager.placeOrder("白酒", 5);
repo.displayAllDrinks();
manager.displayAllOrders();
```
以上就是一个简单的酒水订单统计管理系统,带有库存管理功能。当然,这只是一个示例,实际应用中可能需要更多的功能和优化。
阅读全文