购物系统

商品类

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;}}}}
}

有疑问的可以私信博主。
点个关注,给个赞呗!

C#面向对象练习之模拟商城购物相关推荐

  1. python模拟ATM + 购物商城

    模拟实现一个ATM + 购物商城程序 额度 15000或自定义 实现购物商城,买东西加入 购物车,调用信用卡接口结账 可以提现,手续费5% 每月22号出账单,每月10号为还款日,过期未还,按欠款总额 ...

  2. 模拟商城的购物过程Java_编写Java程序,模拟网上商城购物,当用户选好物品提交订单时,每笔订单会自动生成一个唯一的订单编号。...

    需求说明: 模拟网上商城购物,当用户选好物品提交订单时,每笔订单会自动生成一个唯一的订单编号.而部分电子商务网站在数据高峰期时,一毫秒可能需要处理近千笔的订单 现在简单模拟 5 个订单同时提交,生成唯 ...

  3. 【计算机毕业设计】512网上商城购物系统

    一.系统截图(需要演示视频可以私聊) 摘  要 随着科学技术的飞速发展,社会的方方面面.各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,网上商城购物系统当然也不能排除在外.网上商城 ...

  4. 【计算机毕业设计】23.网上商城购物系统+vue

    一.系统截图(需要演示视频可以私聊) 摘  要 随着科学技术的飞速发展,社会的方方面面.各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,网上商城购物系统当然也不能排除在外.网上商城 ...

  5. Python基础项目实践之:面向对象方法实现模拟银行管理系统

    Python课堂基础实践系列: Python基础项目实践之:学生信息管理系统 python基础项目实践之: 学生通讯录管理系统 Python基础项目实践之:面向对象方法模拟简单计算器 Python基础 ...

  6. 学生PHP校园超市网站制作 学生PHP网页毕设源码 学生动态数据库网站作品 PHP电子商务商城购物网站

    学生PHP校园超市商城购物网站作品源码 PHP网站作品介绍 作品介绍 前端介绍 后台介绍 PHP网站作品截图 前端截图 后台截图 作品源地址 PHP网站作品介绍 作品介绍 本大学生动态网站毕业设计网页 ...

  7. 商城购物系统【用户登录注册,购物页面,购物车页面,订单页面】

    商城购物系统 文章目录 商城购物系统 前言 一.使用Mysql数据库建立需要用的商品表,用户表 二.利用html+cs+js对前台进行设计 效果如下 2.对商品页与购物车页进行设计 总结 前言 这学期 ...

  8. 基于Java的商城购物系统

    源码编号:F-A14 项目类型:Java SE项目(GUI图形界面) 项目名称:商城购物系统,开源免费 用户类型:双角色(会员.管理员) 主要技术:java.awt.swing.等技术 开发工具:Ec ...

  9. 编写一个模拟超市购物程序。

    编写一个模拟超市购物程序.购物时,如果购物者要购买的商品在超市中有,则提示"购物者买到了某商品":如果没有所需的商品,则提示"购物者所需某商品无货". impo ...

最新文章

  1. Openoffice 安装与配置
  2. hdu1466 计算直线的交点数
  3. 对象空指针_可选和对象:空指针救星!
  4. 64位 linux 中 oracle 11g dbca 报 out of memory 错误
  5. 2013蓝桥杯C++A:排它平方数(递归,枚举,暴力解法)
  6. angularjs 循环完之后执行的事件
  7. 如何用一句话证明你搞 IT(挨踢)的?
  8. java计算机毕业设计网上书店管理系统源码+系统+数据库+lw文档+mybatis+运行部署
  9. Groovy 教程系列(一)-- Groovy 入门
  10. Qt--探讨.exe程序加密
  11. Newkirk effect and Morton effect
  12. LocalDateTime查找最近的五分钟点
  13. 一对多GRE隧道配置
  14. htc系统Android 7.1,HTC太强大,被誉为刷机之王,一路升到安卓7
  15. python request.get
  16. jQuery选择器代码详解(一)——Sizzle方法
  17. 我研究我自己!苏炳添博士重磅论文:我怎么跑这么快?
  18. ELF文件格式, ELF文件是什么,里面包含什么内容
  19. #芯片# LTC2990
  20. 数美科技成为《人工智能从业人员能力要求》等五项人才培养行业标准起草组全权成员单位

热门文章

  1. 如何锁定计算机的打印功能,打印机设置固定IP的详细图形教程
  2. 微小说,藏在花语中的爱。感动到心疼!
  3. 区块链必修课:网络安全技术
  4. 低学历并不是阻碍职业发展的绊脚石
  5. 艺赛旗rpa项目分享
  6. Ajax的原理以及优缺点
  7. 学历造假,被辞了。。。
  8. 【JAVA】保龄球记分游戏
  9. Windows Socket 网络编程(二)
  10. 我劝你千万不要去做CSGO游戏搬砖项目