服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - C#面向对象之模拟实现商城购物功能

C#面向对象之模拟实现商城购物功能

2022-12-25 15:24第五枫咏 C#

这篇文章主要为大家详细介绍了C#面向对象之模拟实现商城购物功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了C#实现商城购物功能的具体代码,供大家参考,具体内容如下

商品类

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
namespace ShoppingSystem
{
    /*
     * 商品信息包括:商品名称、商品价格、商品型号、商品描述等
     */
 
    /// <summary>
    /// 商品类
    /// </summary>
    class Goods
    {
        /// <summary>
        /// 商品名称
        /// </summary>
        private string goodName;
 
        /// <summary>
        /// 商品价格
        /// </summary>
        private float goodPrice;
 
        /// <summary>
        /// 商品型号
        /// </summary>
        private string[] goodModel = new string[2];
 
        /// <summary>
        /// 商品类别
        /// </summary>
        private string goodType;
 
        /// <summary>
        /// 商品描述
        /// </summary>
        private string goodDescribe;
 
 
        /// <summary>
        /// 卖家
        /// </summary>
        private Seller seller;
 
        public Seller Seller
        {
            get
            {
                return seller;
            }
            set
            {
                seller = value;
            }
        }
 
 
        public string GoodName
        {
            get
            {
                return goodName;
            }
            set
            {
                goodName = value;
            }
        }
 
        public float GoodPrice
        {
            get
            {
                return goodPrice;
            }
            set
            {
                goodPrice = value;
            }
        }
 
        public string[] GoodModel
        {
            get
            {
                return goodModel;
            }
            set
            {
                goodModel = value;
            }
        }
 
        public string GoodType
        {
            get
            {
                return goodType;
            }
            set
            {
                goodType = value;
            }
        }
 
        public string GoodDescribe
        {
            get
            {
                return goodDescribe;
            }
            set
            {
                goodDescribe = value;
            }
        }
 
        /// <summary>
        /// 构造函数,对各个变量赋值并添加商品描述
        /// </summary>
        /// <param name="goodName">商品名</param>
        /// <param name="goodPrice">商品价格</param>
        /// <param name="goodId">商品编号</param>
        /// <param name="goodModel">商品型号</param>
        /// <param name="goodType">商品类别</param>
        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 + "|";
 
        }
    }
}

商品总库

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
namespace ShoppingSystem
{
    class GoodsSql
    {
        /// <summary>
        /// 商品总库
        /// </summary>
        private Goods[] good = new Goods[20];
 
        public Goods[] Good
        {
            get
            {
                return good;
            }
            set
            {
                good = value;
            }
        }
    }
}

用户类

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ShoppingSystem
{
    /// <summary>
    /// 用户类
    /// </summary>
    class User
    {
        /// <summary>
        /// 用户名
        /// </summary>
        private string username;
 
        /// <summary>
        /// 用户余额
        /// </summary>
        private float userBalance;
 
        /// <summary>
        /// 购物车
        /// </summary>
        private ShoppingCart cart = new ShoppingCart();
 
        public User(string username, float userBalance)
        {
            this.username = username;
            this.userBalance = userBalance;
            cart.User = this;
        }
 
        public string Username
        {
            get
            {
                return username;
            }
            set
            {
                username = value;
            }
        }
 
        public float UserBalance
        {
            get
            {
                return userBalance;
            }
            set
            {
                userBalance = value;
            }
        }
 
        public ShoppingCart Cart
        {
            get
            {
                return cart;
            }
            set
            {
                cart = value;
            }
        }
 
 
        /// <summary>
        /// 加入购物车
        /// </summary>
        /// <param name="good">要加入的商品</param>
        /// <param name="goodsNum">要买的数量</param>
        public void BuyGoods(Goods good, int goodsNum)
        {
            
            cart.AddGoods(good, goodsNum);
 
            //TODO
 
        }
 
        /// <summary>
        /// 结算并清空购物车
        /// </summary>
        public void CheckoutCart()
        {
            cart.CheckoutCart();
        }
 
 
    }
}

卖家类

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
using System;
 
namespace ShoppingSystem
{
    /// <summary>
    /// 卖家类
    /// </summary>
    class Seller
    {
        /// <summary>
        /// 卖家姓名
        /// </summary>
        private string sellerName;
 
        /// <summary>
        /// 卖家余额
        /// </summary>
        private float sellerBalance;
 
        /// <summary>
        /// 卖家商品数组
        /// </summary>
        private Goods[] sellerGoods = new Goods[5]; 
 
        public Seller(string sellerName, float sellerBalance)
        {
            this.sellerName = sellerName;
            this.sellerBalance = sellerBalance;
        }
        public string SellerName
        {
            get
            {
                return sellerName;
            }
            set
            {
                sellerName = value;
            }
        }
 
        public float SellerBalance
        {
            get
            {
                return sellerBalance;
            }
            set
            {
                sellerBalance = value;
            }
        }
 
        public Goods[] SellerGoods
        {
            get
            {
                return sellerGoods;
            }
            set
            {
                sellerGoods = value;
            }
        }
 
        /// <summary>
        /// 上架新商品
        /// </summary>
        /// <param name="good"></param>
        public void AddGood(Goods good,GoodsSql goods)
        {
            for (int i = 0; i < sellerGoods.Length; i++)
            {
                if (sellerGoods[i] == null)
                {
                    sellerGoods[i] = good;
                    good.Seller = this;
                    for (int j = 0; j < goods.Good.Length; j++)
                    {
                        if (goods.Good[j] == null)
                        {
                            goods.Good[j] = good;
                            break;
                        }
                    }
                    Console.WriteLine("添加商品成功!");
                    break;
                }
                if (i == sellerGoods.Length - 1)
                {
                    Console.WriteLine("添加商品失败!已达到可上架商品的上限!");
                    return;
                }
            }
        }
 
        /// <summary>
        /// 更新商品信息
        /// </summary>
        /// <param name="good">要更新的商品</param>
        /// <param name="goodName">商品名称</param>
        /// <param name="goodPrice">商品价格</param>
        /// <param name="goodId">商品编号</param>
        /// <param name="goodModel">商品型号</param>
        /// <param name="goodType">商品种类</param>
        public void UpdateGoodInfo(Goods good, string goodName, float goodPrice, string[] goodModel, string goodType)
        {
            if (good != null)
            {
                good.GoodName = goodName;
                good.GoodModel = goodModel;
                good.GoodType = goodType;
                good.GoodDescribe = goodName + goodModel[0] + "|" + goodModel[1] + "|" + goodPrice + "|";
                Console.WriteLine("更新商品信息成功!");
                return;
            }
            Console.WriteLine("更新商品信息失败!");
 
        }
    }
}

服务类

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
namespace ShoppingSystem
{
    class Service
    {
 
        private Goods[] goods = new Goods[20];
 
        public Goods[] Goods
        {
            get
            {
                return goods;
            }
            set
            {
                goods = value;
            }
        }
 
        /// <summary>
        /// 按类型搜索商品
        /// </summary>
        /// <param name="goodType"></param>
        /// <param name="goods"></param>
        public void Search(string goodType, GoodsSql goods)
        {
            this.goods = new Goods[20];
            int count = 0;
 
            for (int i = 0; i < goods.Good.Length; i++)
            {
 
                if (goods.Good[i] != null && goods.Good[i].GoodType.Equals(goodType))
                {
                    this.goods[count++] = goods.Good[i];
                }
            }
 
        }
    }
}

购物车类

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ShoppingSystem
{
    /// <summary>
    /// 购物车类
    /// </summary>
    class ShoppingCart
    {
        /// <summary>
        /// 购物条目数组
        /// </summary>
        private ShoppingItems[] items;
 
        /// <summary>
        /// 购物费用总计
        /// </summary>
        private float totalPrice = 0.00f;
 
        /// <summary>
        /// 购物车所属用户
        /// </summary>
        private User user;
 
        public ShoppingItems[] Items
        {
            get
            {
                return items;
            }
            set
            {
                items = value;
            }
        }
 
        public float TotalPrice
        {
            get
            {
                return totalPrice;
            }
            set
            {
                totalPrice = value;
            }
        }
 
        public User User
        {
            get
            {
                return user;
            }
            set
            {
                user = value;
            }
        }
 
        /// <summary>
        /// 添加商品到购物车
        /// </summary>
        /// <param name="good">要加入的商品</param>
        /// <param name="goodsNum">要买的数量</param>
        public void AddGoods(Goods good, int goodsNum)
        {
            //若购物车条目为空,实例化购物车条目数组
            if (items == null)
            {
                items = new ShoppingItems[10];
            }
 
            //加入商品条目到购物条目数组
            for (int i = 0; i < items.Length; i++)
            {
                if (items[i] == null)
                {
                    items[i] = new ShoppingItems();
                    items[i].Good = good;
                    items[i].GoodsNum = goodsNum;
                    totalPrice += good.GoodPrice * goodsNum;
                    Console.WriteLine($"已将{good.GoodDescribe}数量:{goodsNum},加入购物车");
                    break;
                }
 
                if (i == items.Length - 1)
                {
                    Console.WriteLine("购物车已满!");
                }
            }
        }
        
        /// <summary>
        /// 结算并清空购物车
        /// </summary>
        public void CheckoutCart()
        {
            //判断购物车是否为空
            if (items == null)
            {
                Console.WriteLine("您的购物车中没有商品!");
                return;
            }
 
            foreach (var item in items)
            {
                if (item != null)
                {
                    item.Good.Seller.SellerBalance += item.Good.GoodPrice * item.GoodsNum;
                    Console.WriteLine($"商品名称:{item.Good.GoodName}");
                }
            }
 
            Console.WriteLine($"{user.Username}已经清空了购物车,共计花费{totalPrice}元");
            user.UserBalance -= totalPrice;
            items = null;
 
            //TODO
 
        }
 
 
        public void selectCart()
        {
            if (items == null)
            {
                Console.WriteLine("您的购物车是空的!");
                return;
            }
 
            foreach (var item in items)
            {
                Console.WriteLine($"{item.Good.GoodDescribe}数量:{item.GoodsNum}");
            }
        }
    }
}

购物车条目类

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ShoppingSystem
{
    /// <summary>
    /// 购物车中的商品条目类
    /// </summary>
    class ShoppingItems
    {
        /// <summary>
        /// 商品
        /// </summary>
        private Goods good;
 
        /// <summary>
        /// 要买的数量
        /// </summary>
        private int goodsNum;
 
 
        public Goods Good
        {
            get
            {
                return good;
            }
            set
            {
                good = value;
            }
        }
 
        public int GoodsNum
        {
            get
            {
                return goodsNum;
            }
            set
            {
                goodsNum = value;
            }
        }
 
    }
}

服务台

这里其实应该封装不少东西,我偷懒了,不搞了

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System;
 
namespace ShoppingSystem
{
    /// <summary>
    /// 软件使用类
    /// </summary>
    class SoftwareUsage
    {
        /// <summary>
        /// 获取用户指令
        /// </summary>
        /// <returns></returns>
        public string Order()
        {
            Console.WriteLine("请先输入指令:");
            Console.WriteLine("0-退出,1-搜索,2-购买,3-清空并结算购物车,4-查询购物车");
            return Console.ReadLine();
        }
    }
}

程序入口main函数:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
using System;
 
namespace ShoppingSystem
{
    class Program
    {
        static void Main(string[] args)
        {
            GoodsSql goodsSql = new GoodsSql();
 
            Service service = new Service();
 
            User user = new User("岳翔", 10000000.00f);
 
            SoftwareUsage use = new SoftwareUsage();
 
            Seller seller01 = new Seller("卖家1", 10000.00f);
            Seller seller02 = new Seller("卖家2", 10000.00f);
            Seller seller03 = new Seller("卖家3", 10000.00f);
 
            Goods good01 = new Goods("编程之美(图书)", 120.00f, new string[]{ "质量", "普通版" }, "图书");
            Goods good02 = new Goods("编程之美(图书)", 145.00f, new string[]{ "质量", "精装版" }, "图书");
            Goods good03 = new Goods("三毛流浪记(图书)", 20.00f, new string[]{ "质量", "普通版" }, "图书");
            Goods good04 = new Goods("三毛流浪记(图书)", 25.00f, new string[]{ "质量", "精装版" }, "图书");
 
            Goods good05 = new Goods("iPhone 100(手机)", 6000.00f, new string[]{ "RAM", "64GB" }, "手机");
            Goods good06 = new Goods("iPhone 100(手机)", 7000.00f, new string[]{ "RAM", "128GB" }, "手机");
            Goods good07 = new Goods("iPhone 100(手机)", 9000.00f, new string[]{ "RAM", "512GB" }, "手机");
            Goods good08 = new Goods("Nokia(手机)", 1000.00f, new string[]{ "型号", "E63" }, "手机");
            Goods good09 = new Goods("Nokia(手机)", 2000.00f, new string[]{ "型号", "N95" }, "手机");
            Goods good10 = new Goods("Nokia(手机)", 2300.00f, new string[]{ "型号", "N97" }, "手机");
 
            Goods good11 = new Goods("Mac Book Pro(电脑)", 18000.00f, new string[]{ "配置", "低配版" }, "电脑");
            Goods good12 = new Goods("Mac Book Pro(电脑)", 20000.00f, new string[]{ "配置", "中配版" }, "电脑");
            Goods good13 = new Goods("Mac Book Pro(电脑)", 22000.00f, new string[]{ "配置", "⾼配版" }, "电脑");
 
            seller01.AddGood(good01, goodsSql);
            seller01.AddGood(good02, goodsSql);
            seller01.AddGood(good03, goodsSql);
            seller01.AddGood(good04, goodsSql);
            seller01.AddGood(good05, goodsSql);
 
            seller02.AddGood(good06, goodsSql);
            seller02.AddGood(good07, goodsSql);
            seller02.AddGood(good08, goodsSql);
            seller02.AddGood(good09, goodsSql);
            seller02.AddGood(good10, goodsSql);
 
            seller03.AddGood(good11, goodsSql);
            seller03.AddGood(good12, goodsSql);
            seller03.AddGood(good13, goodsSql);
 
            Console.Clear();
 
            while (true)
            {
                string order = use.Order();
 
                switch (order)
                {
                    case "0":
                        Console.WriteLine("购物结束!");
                        return;
 
                    case "1":
                        Console.WriteLine("请输入搜索关键词:");
                        string goodType = Console.ReadLine();
                        service.Search(goodType, goodsSql);
                        Goods[] goods = service.Goods;
                        Console.WriteLine($"当前买家{user.Username}正在搜索商品:{goodType}");
                        Console.WriteLine("-----------------------");
                        foreach (var item in goods)
                        {
                            if (item != null)
                            {
                                Console.WriteLine($"商品名:{item.GoodName},商品类型({item.GoodModel[0]})" +
                                    $"{item.GoodModel[1]},{item.GoodPrice}元");
                            }
                        }
                        Console.WriteLine("-----------------------");
 
                        break;
 
                    case "2":
 
                        if (service.Goods[0] == null)
                        {
                            Console.WriteLine("请先搜索选购!");
                            break;
                        }
 
                        Console.WriteLine("请先输入商品编号:");
                        int goodId = Int32.Parse(Console.ReadLine());
                        Console.WriteLine("请先输入商品数量:");
                        int goodsNum = Int32.Parse(Console.ReadLine());
 
                        user.BuyGoods(service.Goods[goodId - 1], goodsNum);
                        Console.WriteLine("-----------------------");
                        break;
 
                    case "3":
                        user.CheckoutCart();
                        Console.WriteLine($"账户余额:{user.UserBalance}");
                        break;
 
                    case "4":
                        user.Cart.selectCart();
                        break;
 
                    default:
                        Console.WriteLine("您输入的指令不正确!");
                        break;
                }
 
            }
 
        }
    }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/maybe_ice/article/details/104446546

延伸 · 阅读

精彩推荐
  • C#C# WPF 父控件通过使用可视化树找到子控件的示例代码

    C# WPF 父控件通过使用可视化树找到子控件的示例代码

    这篇文章主要介绍了C# WPF 父控件通过使用可视化树找到子控件的示例代码,需要的朋友可以参考下...

    hello黄先森4482022-02-28
  • C#C#判断字符编码的方法总结(六种方法)

    C#判断字符编码的方法总结(六种方法)

    这篇文章主要介绍了C#判断字符编码的方法,结合实例形式总结分析了六种C#判断字符编码的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...

    郑文亮5692021-11-25
  • C#C#简单读写txt文件的方法

    C#简单读写txt文件的方法

    这篇文章主要介绍了C#简单读写txt文件的方法,涉及C#针对文件的基本打开、写入、保存与读取等操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下...

    smartsmile20124292021-11-26
  • C#C#变量命名规则小结

    C#变量命名规则小结

    本文主要介绍了C#变量命名规则小结,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    zx9202022-12-02
  • C#使用C#给PDF文档添加注释的实现代码

    使用C#给PDF文档添加注释的实现代码

    本文将实例讲述C#中如何使用免费组件给PDF文档添加文本注释,包括自由文本注释。自由文本注释能允许我们自定义它的风格和外观,非常具有实用价值...

    C#教程网8672021-12-21
  • C#c# 实现KMP算法的示例代码

    c# 实现KMP算法的示例代码

    这篇文章主要介绍了c# 实现KMP算法的示例代码,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...

    温暖如太阳5092022-10-18
  • C#C#实现单链表(线性表)完整实例

    C#实现单链表(线性表)完整实例

    这篇文章主要介绍了C#实现单链表(线性表)的方法,结合完整实例形式分析了单链表的原理、实现方法与相关注意事项,需要的朋友可以参考下...

    丛晓男4202021-11-29
  • C#C# websocket及时通信协议的实现方法示例

    C# websocket及时通信协议的实现方法示例

    说到websocket大家一定不会陌生,WebSocket是HTML5一种新的协议。下面这篇文章主要给大家介绍了关于C# websocket及时通信协议的实现方法,文中通过示例代码介...

    C#教程网7582022-02-12