C#面向对象之模拟实现商城购物功能
程序员文章站
2022-06-04 07:55:18
本文实例为大家分享了c#实现商城购物功能的具体代码,供大家参考,具体内容如下商品类namespace shoppingsystem{ /* * 商品信息包括:商品名称、商品价格、商品型号...
本文实例为大家分享了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; } } } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。