python实现超市商品销售管理系统


Posted in Python onOctober 25, 2019

本文实例为大家分享了python超市商品销售管理系统的具体代码,供大家参考,具体内容如下

需求分析:超市销售管理系统功能

1.欢迎用户使用超市销售管理系统,提示用户登录,如果是用户名为admin,密码为123456,则管理员身份。 如果是其他用户(可以自己设置也可随意接收),则是顾客身份。

2.如果用户是管理员身份,提示用户输入编号,选择对应功能

输入编号"1":显示商品的信息 (编号 商品名称 价格)
输入编号"2":添加商品信息 (输入编号,商品名称,价格)
输入编号"3":删除商品信息 (输入编号,删除对应的名称和价格)
输入编号"4":退出系统功能

3.如果用户是顾客身份,只有一个功能:购买商品,
展示所有商品信息,用户循环输入商品编号和购买数量,输入n时,退出系统,并提示用户总价格。

涉及到的知识点

编程语言变量,语句,函数
面向对象思想结合编程语言进行类的封装与方法的调用
常见数据容器列表与字典的使用
程序中对于文件的操作
因为涉及对于文件的读取和写入,建议大家在程序开始前,先确定文件内容的格式,有效合理的表达商品内容,我采取以下格式,在项目工程目录下创建shop.txt文件夹

python实现超市商品销售管理系统

逻辑分析:

增删查买都是对于商品的操作,商品信息包括编号名称和价格,可以将信息封装到对象当中,可创建对象所属的类Goods。然后对于增删等操作应该属于管理系统的功能,所以将相关功能封装到ShopManager类当中。在进入系统时,应该首先查看之前是否有存储信息,所以要读取文件写入到内存中,增删操作都是通过编号作为索引,所以可以选择字典dict数据结构作为内存存储容器,然后增删都是对于字典的操作,当系统退出时,在将数据更新写入到文件中,避免恶意修改文件,恶意提交。

功能实现代码:

首先创建表达商品对象的Goods类

class Goods(object):
 def __init__(self,id,name,price):
 self.id = id
 self.name = name
 self.price = price
 
 def __str__(self):
 info = "编号:%s\t商品名称:%s\t\t价格:%d"%(self.id,self.name,self.price)
 return info

将对于商品操作的函数放到ShopManager类当中,功能包括管理员以及普通用户的,在登录后进行分流选择。

class ShopManager(object):


def __init__(self,path):
 # path:表示读取文件的路径 shopdic:表示存放内存的容器
 self.path = path
 self.shopdic = self.readFileToDic()

def readFileToDic(self):
 # 读取文件,写入到字典中
 f = open(self.path, 'r', encoding='utf-8')
 clist = f.readlines()
 f.close()
 index = 0
 shopdic = {}
 while index < len(clist):
 # 将每一行的字符串进行分割,存放到新的列表中
 ctlist = clist[index].replace('\n', "").split("|")
 # 将每行的内容存放到一个对象中
 good = Goods(ctlist[0],ctlist[1],int(ctlist[2]))
 # 将对向存放到集合中
 shopdic[good.id] = good
 index = index + 1
 return shopdic

def writeContentFile(self):
 # 将内存当中的信息写入到文件当中
 str1 = ''
 for key in self.shopdic.keys():
 good = self.shopdic[key]
 ele = good.id+"|"+good.name+"|"+str(good.price)+"\n"
 str1 = str1 + ele
 f = open(self.path, 'w', encoding='utf-8')
 f.write(str1)
 f.close()

def addGoods(self):
 # 添加商品的方法
 id = input("请输入添加商品编号:>")
 if self.shopdic.get(id):
 print("商品编号已存在,请重新选择!")
 return
 name = input("请输入添加商品名称:>")
 price = int(input("请输入添加商品价格:>"))
 good = Goods(id,name,price)
 self.shopdic[id] = good
 print("添加成功!")

def deleteGoods(self):
 # 删除商品的方法
 id = input("请输入删除商品编号:>")
 if self.shopdic.get(id):
 del self.shopdic[id]
 print("删除成功!")
 else:
 print("商品编号不存在!")

def showGoods(self):
 # 展示所有商品信息
 print("="*40)
 for key in self.shopdic.keys():
 good = self.shopdic[key]
 print(good)
 print("="*40)

def adminWork(self):
 info = """
 ==========欢迎进入好海哦购物商场==========
 输入功能编号,您可以选择以下功能:
 输入“1”:显示商品的信息
 输入“2”:添加商品的信息
 输入“3”:删除商品的信息
 输入“4”:退出系统功能
 ==========================================
 """
 print(info)
 while True:
 code = input("请输入功能编号:>")
 if code == "1":
  self.showGoods()
 elif code == "2":
  self.addGoods()
 elif code == "3":
  self.deleteGoods()
 elif code == "4":
  print("感谢您的使用,正在退出系统!!")
  self.writeContentFile()
  break
 else:
  print("输入编号有误,请重新输入!!")

def userWork(self):
 print(" ==============欢迎进入好海哦购物商场==============")
 print("您可输入编号和购买数量选购商品,输入编号为n则结账")
 self.showGoods()
 total = 0
 while True:
 id = input("请输入购买商品编号:>")
 if id == "n":
  print("本次购买商品共消费%d元,感谢您的光临!"%(total))
  break
 if self.shopdic.get(id):
  good = self.shopdic[id]
  num = int(input("请输入购买数量:>"))
  total = total+good.price*num
 else:
  print("输入商品编号有误,请核对后重新输入!")



def login(self):
 # 登录功能
 print("==========欢迎登录好海哦购物商场==========")
 uname = input("请输入用户名:>")
 password = input("请输入密码:>")
 if uname == "admin":
 if password == "123456":
  print("欢迎您,admin管理员")
  self.adminWork()
 else:
  print("管理员密码错误,登录失败!")
 else:
 print("欢迎你,%s用户"%(uname))
 #执行用户的购买功能
 self.userWork()

最后我们可在main语句中,调用登录方法,会自动选择相关功能。

if __name__ == '__main__':
 shopManage = ShopManager("shop.txt")
 shopManage.login()

上述代码运行后,会实现的效果为:

python实现超市商品销售管理系统

以上项目案例将学习内容进行了统一整理和综合,相信同学们顺利理解和敲出这部分代码。

更多学习资料请关注专题《管理系统开发》。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
巧用python和libnmapd,提取Nmap扫描结果
Aug 23 Python
Python用zip函数同时遍历多个迭代器示例详解
Nov 14 Python
python实现手机通讯录搜索功能
Feb 22 Python
Python爬虫框架scrapy实现downloader_middleware设置proxy代理功能示例
Aug 04 Python
Python3爬虫学习之应对网站反爬虫机制的方法分析
Dec 12 Python
浅谈django2.0 ForeignKey参数的变化
Aug 06 Python
Python类如何定义私有变量
Feb 03 Python
keras 自定义loss model.add_loss的使用详解
Jun 22 Python
openCV提取图像中的矩形区域
Jul 21 Python
常用的10个Python实用小技巧
Aug 10 Python
解决Ubuntu18中的pycharm不能调用tensorflow-gpu的问题
Sep 17 Python
Python实现视频中添加音频工具详解
Dec 06 Python
Python列表元素常见操作简单示例
Oct 25 #Python
python实现超市管理系统(后台管理)
Oct 25 #Python
Python操作列表常用方法实例小结【创建、遍历、统计、切片等】
Oct 25 #Python
python+mysql实现个人论文管理系统
Oct 25 #Python
浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法
Oct 25 #Python
Python二元赋值实用技巧解析
Oct 25 #Python
Python字典常见操作实例小结【定义、添加、删除、遍历】
Oct 25 #Python
You might like
修改Zend引擎实现PHP源码加密的原理及实践
2008/04/14 PHP
php下批量挂马和批量清马代码
2011/02/27 PHP
PHP数据类型的总结分析
2013/06/13 PHP
基于simple_html_dom的使用小结
2013/07/01 PHP
php的$_FILES的临时储存文件与回收机制实测过程
2013/07/12 PHP
简单介绍PHP的责任链编程模式
2015/08/11 PHP
PHP-FPM运行状态的实时查看及监控详解
2016/11/18 PHP
PHP使用preg_split()分割特殊字符(元字符等)的方法分析
2017/02/04 PHP
Yii2使用$this-&gt;context获取当前的Module、Controller(控制器)、Action等
2017/03/29 PHP
js模拟弹出效果代码修正版
2008/08/07 Javascript
Jquery 插件开发笔记整理
2011/01/17 Javascript
来自国外的30个基于jquery的Web下拉菜单
2012/06/22 Javascript
详解JS中遍历语法的比较
2017/04/07 Javascript
简述jQuery Easyui一些用法
2017/08/01 jQuery
Layui实现带查询条件的分页
2019/07/27 Javascript
微信小程序HTTP接口请求封装代码实例
2019/09/05 Javascript
python控制台英汉汉英电子词典
2020/04/23 Python
Python中map和列表推导效率比较实例分析
2015/06/17 Python
python hbase读取数据发送kafka的方法
2018/12/27 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
2019/11/15 Python
python模拟点击网页按钮实现方法
2020/02/25 Python
Python对excel的基本操作方法
2021/02/18 Python
在IE6系列等老式浏览器中使用HTML5的新标签实现方案
2012/12/25 HTML / CSS
CSS3 画基本图形,圆形、椭圆形、三角形等
2016/09/20 HTML / CSS
HTML5 body设置自适应全屏
2020/05/07 HTML / CSS
去加拿大的旅行和假期:Canadian Affair
2016/10/25 全球购物
Saucony澳大利亚官网:美国跑鞋品牌,运动鞋中的劳斯莱斯
2018/05/05 全球购物
英国女性时尚鞋类的潮流制造者:Koi Footwear
2018/10/19 全球购物
家庭教育先进个人事迹材料
2014/01/24 职场文书
工商管理专业大学生职业生涯规划范文
2014/03/09 职场文书
销售主管竞聘书
2014/03/31 职场文书
团委竞选演讲稿
2014/04/24 职场文书
竞选卫生委员演讲稿
2014/04/28 职场文书
抗洪抢险事迹材料
2014/05/06 职场文书
项目委托协议书(最新)
2014/09/13 职场文书
2015年入党积极分子培养考察意见
2015/08/12 职场文书