C#面向对象之模拟实现商城购物功能
短信预约 -IT技能 免费直播动态提醒
本文实例为大家分享了C#实现商城购物功能的具体代码,供大家参考,具体内容如下
商品类
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 + "|";
}
}
}
商品总库
namespace ShoppingSystem
{
class GoodsSql
{
/// <summary>
/// 商品总库
/// </summary>
private Goods[] good = new Goods[20];
public Goods[] Good
{
get
{
return good;
}
set
{
good = value;
}
}
}
}
用户类
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();
}
}
}
卖家类
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("更新商品信息失败!");
}
}
}
服务类
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];
}
}
}
}
}
购物车类
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}");
}
}
}
}
购物车条目类
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;
}
}
}
}
服务台
这里其实应该封装不少东西,我偷懒了,不搞了
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函数:
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;
}
}
}
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341