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中isnumeric()方法的使用简介
May 19 Python
python文件操作之目录遍历实例分析
May 20 Python
Python变量作用范围实例分析
Jul 07 Python
Python正则表达式如何进行字符串替换实例
Dec 28 Python
python绘制双柱形图代码实例
Dec 14 Python
python pandas dataframe 按列或者按行合并的方法
Apr 12 Python
Python迭代器协议及for循环工作机制详解
Jul 14 Python
浅谈Python 钉钉报警必备知识系统讲解
Aug 17 Python
Python Django路径配置实现过程解析
Nov 05 Python
利用Python网络爬虫爬取各大音乐评论的代码
Apr 13 Python
python基于tkinter制作下班倒计时工具
Apr 28 Python
pytorch损失反向传播后梯度为none的问题
May 12 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
PHP中调用JAVA
2006/10/09 PHP
php 用checkbox一次性删除多条记录的方法
2010/02/23 PHP
在Win2003(64位)中配置IIS6+PHP5.2.17+MySQL5.5的运行环境
2016/04/04 PHP
NiftyCube——轻松实现圆角边框
2007/02/20 Javascript
表单元素的submit()方法和onsubmit事件应用概述
2013/02/01 Javascript
jquery ajax同步异步的执行最终解决方案
2013/04/26 Javascript
javascript实现页面内关键词高亮显示代码
2014/04/03 Javascript
一张Web前端的思维导图分享
2015/07/03 Javascript
jQuery+HTML5美女瀑布流布局实现方法
2015/09/21 Javascript
fastclick插件导致日期(input[type=&quot;date&quot;])控件无法被触发该如何解决
2015/11/09 Javascript
jQuery实现表格奇偶行显示不同背景色 就这么简单
2017/03/13 Javascript
Bootstrap fileinput文件上传预览插件使用详解
2017/05/16 Javascript
jQuery实现简单的滑动导航代码(移动端)
2017/05/22 jQuery
详解vue服务端渲染(SSR)初探
2017/06/19 Javascript
原生JS封装_new函数实现new关键字的功能
2018/08/12 Javascript
解决vue-cli单页面手机应用input点击手机端虚拟键盘弹出盖住input问题
2018/08/25 Javascript
详解Vue CLI3配置之filenameHashing使用和源码设计使用和源码设计
2018/08/31 Javascript
js中数组对象去重的两种方法
2019/01/18 Javascript
使用Vue-Awesome-Swiper实现旋转叠加轮播效果&amp;平移轮播效果
2019/08/16 Javascript
Element 默认勾选表格 toggleRowSelection的实现
2019/09/04 Javascript
mpvue微信小程序的接口请求fly全局拦截代码实例
2019/11/13 Javascript
jquery传参及获取方式(两种方式)
2020/02/13 jQuery
用vue 实现手机触屏滑动功能
2020/05/28 Javascript
[01:04:14]OG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
[51:52]Liquid vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.24
2019/09/10 DOTA
Python实现列表转换成字典数据结构的方法
2016/03/11 Python
关于ResNeXt网络的pytorch实现
2020/01/14 Python
跑鞋、网球鞋、网球拍、服装及装备:Holabird Sports
2016/09/19 全球购物
美国婴儿用品及配件购买网站:Munchkin
2019/04/03 全球购物
汽车专业毕业生自荐信
2013/11/03 职场文书
物业管理毕业生个人的求职信
2013/11/30 职场文书
园林毕业生自我鉴定范文
2013/12/29 职场文书
电力培训心得体会
2014/09/02 职场文书
Vue.js 带下拉选项的输入框(Textbox with Dropdown)组件
2021/04/17 Vue.js
利用python进行数据加载
2021/06/20 Python
python四种出行路线规划的实现
2021/06/23 Python