面向对象程序设计

python实现超市进销存管理系统

系统包括7种操作,分别是:1.查询所有商品;2.添加商品;3.修改商品;4.删除商品;5.卖出商品;6.汇总;0.退出系统。

定义一个商品类

#定义一个商品类
class Goods:def __init__(self,name,num,cin,cout):self.name = nameself.num = numself.cin  = cinself.cout = coutdef __str__(self):state = "已售罄"if self.num == 0:return '名称:%s , 数量:%d %s, 进货价格:%.2f ,售出价格:%.2f '%(self.name,self.num,state,self.cin,self.cout)else:return '名称:%s , 数量:%d , 进货价格:%.2f ,售出价格:%.2f '%(self.name,self.num,self.cin,self.cout)

定义一个汇总类

#定义一个汇总类
class gGoods:def __init__(self,name,gnum,gcin,gcout):self.name = nameself.gnum = gnumself.gcin = gcinself.gcout = gcoutdef __str__(self):return '名称:%s , 卖出数量:%d , 进货价格:%.2f ,卖出价格:%.2f '%(self.name,self.gnum,self.gcin,self.gcout)

定义管理商品类

#定义管理商品类
class GoodsManager:go=[]js=[]#构造方法def init(self):self.go.append(Goods('牛奶',5,40,60))self.go.append(Goods('盒饭',5,10,60))self.js.append(gGoods('菇娘',1,30,60))#菜单def Menu(self):self.init()print('\"超市进销存管理系统\"菜单:')print("1.显示所有商品")print("2.添加新的商品")print("3.修改商品信息")print("4.删除商品")print("5.卖出商品")print("6.汇总")print("0.退出")print("***********************************")while True:SN=int(input("===请输入操作序号:"))            if SN in [0,1,2,3,4,5,6]:if SN == 0:print("已经退出")break;if SN == 1:self.Show_all()elif SN  == 2:self.Add()elif SN == 3:self.Modify()elif SN == 4:self.Delete()elif SN == 5:self.Shop()elif SN == 6:self.Summary()else:print("输入有误!")#显示def Show_all(self):for goods in self.go:print (str(goods))#添加def Add(self):goods_name = input("请输入商品名称:")ret = self.check(goods_name)if ret != None:print('商品已经存在')print('是否增加商品数量:(y/n)')while True:pd = input()if pd == 'y':goods_num = int(input("请输入商品的数量:"))old_goods = Goods(goods_name,goods_num+ret.num,ret.cin,ret.cout)self.go.remove(ret)self.go.append(old_goods)print("增加成功")breakelif pd == 'n':print("已经返回")breakelse:print("输入有误,重新输入:")else:goods_num = int(input("请输入商品的数量:"))goods_cin = float(input("请输入商品进货价格:"))goods_cout = float(input("请输入商品出货价格:"))if goods_num>0 and goods_cin>0 and goods_cout>0:new_goods= Goods(goods_name,goods_num,goods_cin,goods_cout)self.go.append(new_goods)print("添加成功")else:print("小可爱,输入错误!")#修改def Modify(self):goods_name = input("请输入需要修改的商品名称:")ret = self.check(goods_name)if ret != None:print(ret)goods_name1 = input("请输入修改后商品的名称:")goods_num = int(input("请输入修改后商品的数量:"))goods_cin = float(input("请输入修改后商品进货价格:"))goods_cout = float(input("请输入修改后商品出货价格:"))old_goods= Goods(goods_name1,goods_num,goods_cin,goods_cout)self.go.remove(ret)self.go.append(old_goods)    print("修改成功")else:print("小可爱,没有此商品!")#检查def check(self,goods_name):for goods in self.go:if goods.name == goods_name:return goodselse:return None#检查jsdef checkjs(self,goods_name):for goods in self.js:if goods.name ==goods_name:return goodselse:return None#删除def Delete(self):goods_name = input("请输入需要删除的商品名称:")ret = self.check(goods_name)if ret != None:print(ret)print('是否删除商品:(y/n)')while True:pd = input()if pd == 'y':self.go.remove(ret)print("删除成功")breakelif pd == 'n':print("已经返回")breakelse:print("输入有误,重新输入:")else:print("小可爱,没有此商品!")#卖出def Shop(self):goods_name = input("请输入需要卖出的商品名称:")ret = self.check(goods_name)if ret != None:g_num=int(input("卖出个数:"))if ret.num-g_num<0:print("该商品数量不足!请补充")else:old_goods= Goods(ret.name,ret.num-g_num,ret.cin,ret.cout)self.go.remove(ret)self.go.append(old_goods)gret = self.checkjs(goods_name)if gret == None:shop_goods = gGoods(ret.name,g_num,ret.cin*g_num,ret.cout*g_num)self.js.append(shop_goods)else:shop_goods = gGoods(gret.name,g_num+gret.gnum,gret.gcin+ret.cin*g_num,gret.gcout+ret.cout*g_num)self.js.remove(gret)self.js.append(shop_goods)print("卖出后:",end=' ')old_goods= Goods(ret.name,ret.num-g_num,ret.cin*g_num,ret.cout*g_num)print(old_goods)else:print("小可爱,没有此商品!")#汇总当天卖出商品,包括每种销售商品名称、数量、进货总价、销售总价等。def Summary(self):for goods in self.js:print (str(goods))print("售出的物品进货总价:",end="")x=0for goods in self.js:x+=float(goods.gcin)print(x)print("售出的物品销售总价:",end="")y=0for goods in self.js:y+=float(goods.gcout)print(y)print("利润:",y-x);```

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

python免费学习资料以及群交流解答点击即可加入

Python超市进销存管理系统!老妈开超市有系统了!相关推荐

  1. 基于javaweb的超市进销存管理系统(java+ssm+jsp+bootstrap+jquery+mysql)

    基于javaweb的超市进销存管理系统(java+ssm+jsp+bootstrap+jquery+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse ...

  2. Java项目:ssm超市进销存管理系统

    作者主页:夜未央5788 简介:Java领域优质创作者.Java项目.学习资料.技术互助 文末获取源码 ssm超市进销存管理系统 项目介绍 超市进销存管理系统,主要分为管理员与员工两种角色: 管理员主 ...

  3. (附源码)springboot福佳生活超市进销存管理系统 毕业设计261620

    福佳生活超市进销存管理系统 摘 要 随着超市规模的发展不断扩大,商品数量急剧增加,有关商品的各种信息量也成倍增长.超市时时刻刻都需要对商品各种进销存信息进行统计分析.超市进销存管理系统开发的主要目是使 ...

  4. springboot福佳生活超市进销存管理系统毕业设计源码261620

    福佳生活超市进销存管理系统 摘 要 随着超市规模的发展不断扩大,商品数量急剧增加,有关商品的各种信息量也成倍增长.超市时时刻刻都需要对商品各种进销存信息进行统计分析.超市进销存管理系统开发的主要目是使 ...

  5. Springboot福佳生活超市进销存管理系统 毕业设计-附源码261620

    福佳生活超市进销存管理系统 摘 要 随着超市规模的发展不断扩大,商品数量急剧增加,有关商品的各种信息量也成倍增长.超市时时刻刻都需要对商品各种进销存信息进行统计分析.超市进销存管理系统开发的主要目是使 ...

  6. (附源码)springboot福佳生活超市进销存管理系统 附源码261620

    福佳生活超市进销存管理系统 摘 要 随着超市规模的发展不断扩大,商品数量急剧增加,有关商品的各种信息量也成倍增长.超市时时刻刻都需要对商品各种进销存信息进行统计分析.超市进销存管理系统开发的主要目是使 ...

  7. [附源码]计算机毕业设计JAVA校园超市进销存管理系统

    [附源码]计算机毕业设计JAVA校园超市进销存管理系统 项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(I ...

  8. 计算机毕业设计之java+ssm生鲜超市进销存管理系统

    项目介绍 目前超市越来越多,越来越普及,如何高效的管理经营超市才是成功的关键,其中对于中小型超市来说,在降低成本的前提下使用最有效的管理方式是非常重要的,所以开发中小型超市管理系统既考虑了成本相对较低 ...

  9. [附源码]java毕业设计校园超市进销存管理系统

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  10. 基于Spring+SpringMVC+MyBatis超市进销存管理系统

    基于SSM超市进销存管理系统 一.系统介绍 二.功能展示 1.进货信息 2.退货信息 3.商品信息 4.商品类别 5.库存信息 6.库存预警 7.临期商品 8.销售信息 9.客户退货信息 10.客户信 ...

最新文章

  1. ubuntu package XXX needs to be reinstalled,but I can't find an archive 问题修复
  2. VOIP业务仿真建模,使用间歇泊松过程模型,能够图形显示业务的突发特性
  3. 一段从TXT导入excel的py脚本
  4. WPF-003 popup实现下拉列表的问题
  5. [vue] 怎么解决vue打包后静态资源图片失效的问题?
  6. 2.MongoDB基本操作
  7. 华为正准备发布属于自己的手机操作系统;腾讯已经交出了首张产业互联网成绩单……...
  8. MIUI10迎来最后一波开发版推送 用户体验再升级
  9. 在Linux中使用matplotlib进行科学画图
  10. 火星人谚语系列之三:正确的答案一定简单
  11. 一张纸厚度大约是什么_折叠103次,纸厚度就能超过宇宙直径?科学家解释让人如坠冰窖!...
  12. 用MATLAB计算光的等厚干涉实验中的不确定度
  13. 同一局域网入侵_如何入侵同一局域网的电脑
  14. access查询出生年月大于,access选择题题库
  15. python re sub模块字符串提取非字母非数字_7.python之正则表达式re模块
  16. html如何设置滚动动画,滚动条触发CSS3动画
  17. 宏文件下载_用一个宏文件,就一个轻松把SolidWorks的英文特征翻译成中文
  18. 动态规划算法 | 最长递增子序列
  19. 解决导出Excel报COM类工厂错误的办法--修改版
  20. iPhone4/4s 5.1.1版本越狱后无法连接iTunes,出现0xE8000012错误的解决方法

热门文章

  1. Iphone版同步推闪退问题
  2. WebRTC源码分析四:视频模块结构
  3. 2020家用千兆路由器哪款好_2020年500元以内23款无线路由器推荐,贵就好吗?
  4. 一般家用路由器买多大的合适_家用路由器选多少M(兆)的合适
  5. 数组公式和普通公式,差别在于思维方式的不同! 要用看数组的方式看待数据
  6. 网络编程——Java Email
  7. 项目计划表格甘特图_甘特图VARCHART XGantt功能模块详细解析!
  8. Linux 任务计划的三种实现方式(at、batch、cron)
  9. vendor分区的库无法调用system分区的库
  10. struggle in webservices