画谱 2022-12-23 20:26 采纳率: 100%
浏览 149
已结题

C++面向对象程序设计方法(visual studio 2022)

某商城开发一个商品销售系统,功能如下:
1)用户分三种,普通用户账号中有账号ID,密码和余额。VIP用户除了这三种属性还有折扣比例(0.8指的是所有商品打八折)。管理员只有账号ID和密码。管理员可以对商品进行各种操作,比如添加、删除、修改和查询。所有用户必须登录商城才能进行其它操作。
2)商品有普通商品,有商品名称、编码、价格、数量。
3)用户可以查询所有商品,也可以查询自己的余额。购买商品后,计算总价并在账号余额中进行扣除。
4)请使用面向对象程序设计方法完成以上任务。

  • 写回答

5条回答 默认 最新

  • |__WhoAmI__| 2022-12-23 20:58
    关注

    首先定义一个基类 User 表示用户,包含用户的账号ID和密码:

    class User {
    public:
        User(const std::string& id, const std::string& password)
            : id_(id), password_(password) {}
    
        // 其他公共方法
    
    protected:
        std::string id_;
        std::string password_;
    };
    

    然后定义一个派生类 NormalUser 表示普通用户,继承自 User 类,并增加余额属性:

    class NormalUser : public User {
    public:
        NormalUser(const std::string& id, const std::string& password, double balance)
            : User(id, password), balance_(balance) {}
    
        // 其他公共方法
    
    private:
        double balance_;
    };
    

    再定义一个派生类 VIPUser 表示VIP用户,继承自 NormalUser 类,并增加折扣比例属性:

    class VIPUser : public NormalUser {
    public:
        VIPUser(const std::string& id, const std::string& password, double balance, double discount)
            : NormalUser(id, password, balance), discount_(discount) {}
    
        // 其他公共方法
    
    private:
        double discount_;
    };
    

    然后定义一个派生类 AdminUser 表示管理员用户,继承自 User 类:

    class AdminUser : public User {
    public:
        AdminUser(const std::string& id, const std::string& password)
            : User(id, password) {}
    
        // 其他公共方法
    };
    

    接下来,定义一个类 Product 表示商品,包含商品名称、编号、价格和数量等属性:

    class Product {
    public:
        Product(const std::string& name, const std::string& code, double price, int quantity)
            : name_(name), code_(code), price_(price), quantity_(quantity) {}
    
        // 其他公共方法
    
    private:
        std::string name_;
        std::string code_;
        double price_;
        int quantity_;
    };
    

    然后定义一个类 ShoppingMall 表示商城系统,包含所有用户和商品的信息,以及实现商城中各种功能的方法:

    class ShoppingMall {
    public:
        // 构造函数,初始化所有用户和商品信息
        ShoppingMall() {}
    
        // 登录商城
        bool login(const std::string& id, const std::string& password);
    
        // 注册新用户
        bool registerUser(const std::string& id, const std::string& password);
    
        // 查询所有商品
        std::vector<Product> queryAllProducts();
    
        // 查询用户余额
        double queryBalance(const std::string& userId);
    
        // 购买商品
        bool purchase(const std::string& userId, const std::string& productCode, int quantity);
    
        // 管理员操作:添加新商品
        bool addProduct(const Product& product);
    
        // 管理员操作:删除商品
        bool deleteProduct(const std::string& productCode);
    
        // 管理员操作:修改商品信息
        bool updateProduct(const Product& product);
    
    private:
        // 存储所有用户的信息
        std::vector<User> users_;
        // 存储所有商品的信息
        std::vector<Product> products_;
    };
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 1月2日
  • 已采纳回答 12月25日
  • 创建了问题 12月23日

悬赏问题

  • ¥15 Macbookpro 连接热点正常上网,连接不了Wi-Fi。
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 linux驱动,linux应用,多线程
  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析