C# 面向对象实战:从零模拟实现简易商城购物系统

落日邮差
落日邮差
发布时间:2026-10-16| 5人浏览过
原创

利用 C# 的面向对象特性(OOP),构建一个完整的简易电商系统。本示例涵盖商品定义、卖家库存管理、用户账户体系、购物车逻辑以及基于控制台的交互主程序,演示了如何通过类与对象的协作处理实际业务需求。

核心领域模型设计

要实现商城功能,首先需要对现实世界的实体进行抽象建模。本系统定义了四个关键角色:代表具体商品的 Goods、维护库存总表的 GoodsSql、作为购买主体的 User 以及提供货源的 Seller。

第1步:定义商品信息实体

目的:标准化数据结构,确保每个商品具备名称、价格、型号数组、类别及关联卖家等信息。

  • 字段定义:使用私有字段存储数据,通过公共属性暴露读写接口,实现数据封装。
  • 构造函数:在实例化时初始化基本信息,并自动生成描述字符串(格式:名称|型号1|型号2|价格|)。
  • 关系绑定:通过 Seller 属性将商品与其所属卖家建立引用关联。
class Goods
{
    private string goodName;
    private float goodPrice;
    private string[] goodModel = new string[2];
    private string goodType;
    private string goodDescribe;
    private Seller seller;

    // 构造函数...
    public Goods(string goodName, float goodPrice, string[] goodModel, string goodType)
    {
        this.goodName = goodName;
        this.goodPrice = goodPrice;
        this.goodModel = goodModel;
        this.goodType = goodType;
        goodDescribe = goodName + goodModel[0] + "|" + goodModel[1] + "|" + goodPrice + "|";
    }

    // Property Getters/Setters (GoodName, GoodPrice, etc.)
}

第2步:构建商品总库与卖家管理

目的:区分全局库存池与卖家个人货架,支持商品上架流程。

  • GoodsSql 类:充当全局单例或上下文容器,内部维护 Goods[] 数组,用于集中检索所有已上架商品。
  • Seller 类:持有卖家姓名、余额及个人商品池 sellerGoods。提供 AddGood 方法,实现商品从卖家个人库向全局总库的同步操作。

第3步:用户与购物车逻辑

目的:模拟用户购买行为,包括资金管理与事务性结算。

  • User 类:记录用户名与 userBalance,持有唯一的 ShoppingCart 实例。
  • ShoppingCart 类:核心交易单元。
    1. AddGoods:动态创建 ShoppingItems 条目,累加总金额 totalPrice。
    2. CheckoutCart:执行结算逻辑。遍历商品条目,更新对应卖家的收款金额,扣除用户余额,清空购物车状态。

业务服务层实现

为了让各模块解耦,引入 Service 类处理查询逻辑,并提供独立的入口控制类 SoftwareUsage。

第4步:商品检索服务

通过 Service.Search 方法,依据类型标签遍历 GoodsSql 中的全量库存,筛选匹配项并存入临时结果集,便于前端展示。

第5步:控制台交互主控

程序入口 Main 函数负责组装对象图:

  1. 初始化环境:创建若干 Seller 实例,预设初始余额;创建若干典型 Goods(如图书、手机、电脑)。
  2. 上架操作:调用不同卖家 AddGood 方法,将商品加入系统。
  3. 主循环:监听用户指令(1-搜索,2-购买,3-结算,4-查看购物车)。

运行流程演示

以下是在控制台交互场景下的典型操作路径:

// 1. 用户“岳翔”登录,初始余额 10,000,000
User user = new User("岳翔", 10000000.00f);

// 2. 搜索“手机”类型商品
service.Search("手机", goodsSql);
// 控制台输出匹配的 iPhone 和 Nokia 列表

// 3. 购买第一件商品(iPhone 64GB),数量 1
user.BuyGoods(service.Goods[0], 1);

// 4. 查看购物车
user.Cart.selectCart();

// 5. 结算并清空
user.CheckoutCart();
// 此时 user.UserBalance 减少,Seller1.SellerBalance 增加

该架构清晰展示了 C# 中类之间的依赖关系:User 依赖 ShoppingCart,ShoppingCart 依赖 ShoppingItems,而 ShoppingItems 引用 Goods,Goods 引用 Seller。这种层层包装的设计是构建复杂企业级应用的基础。

以上就是 C# 面向对象编程之模拟实现商城购物系统的详细内容,更多关于 C# 面向对象开发的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。