shangcheng/include/app.hpp

63 lines
1.3 KiB
C++

#ifndef MALL_APP_HPP
#define MALL_APP_HPP
#include "product.hpp"
#include "shopping_cart.hpp"
#include "order.hpp"
#include <vector>
#include <memory>
/**
* @brief 商城应用类,协调商品、购物车、订单的管理与交互。
*/
class App {
public:
/**
* @brief 构造函数,初始化预置商品。
*/
App();
/**
* @brief 启动商城控制台交互。
*/
void run();
private:
std::vector<Product> products_; ///< 商品库
ShoppingCart cart_; ///< 当前购物车
std::vector<std::unique_ptr<Order>> orders_; ///< 历史订单列表
/**
* @brief 初始化预置商品数据。
*/
void initProducts();
// ---- 菜单功能 ----
/** @brief 显示商品列表 */
void showProducts() const;
/** @brief 添加商品到购物车 */
void addToCart();
/** @brief 查看购物车 */
void showCart() const;
/** @brief 生成订单 */
void checkout();
/** @brief 查看历史订单 */
void showOrders() const;
/**
* @brief 获取有效商品输入。
* @return 指向选中商品的迭代器,未找到则返回 end()
*/
std::vector<Product>::const_iterator selectProduct() const;
/** @brief 打印菜单选项 */
static void printMenu();
};
#endif // MALL_APP_HPP