某商城开发一个商品销售系统,功能如下:
1)用户分三种,普通用户账号中有账号ID,密码和余额。VIP用户除了这三种属性还有折扣比例(0.8指的是所有商品打八折)。管理员只有账号ID和密码。管理员可以对商品进行各种操作,比如添加、删除、修改和查询。所有用户必须登录商城才能进行其它操作。
2)商品有普通商品,有商品名称、编码、价格、数量。
3)用户可以查询所有商品,也可以查询自己的余额。购买商品后,计算总价并在账号余额中进行扣除。
4)请使用面向对象程序设计方法完成以上任务。
C++面向对象程序设计方法(visual studio 2022)
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
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_; };
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥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如何进行差异分析