在前几章的案例中,主要以项目为中心介绍了相关知识点,通过手机通讯录管理系统和学生信息管理系统案例的学习,应该掌握了Python当中的基础语法,变量语句函数以及常见数据结构列表与字典的基本操作,通过世界杯查询系统与模拟群聊实战介绍了Python对于文件读写的基本操作,同时也用到了Python模块time等内容。在本章中,我们会将之前的内容进行统一综合,完成超市商品销售管理系统。

需求分析:

超市销售管理系统功能
1.欢迎用户使用超市销售管理系统,提示用户登录,如果是用户名为admin,密码为123456,则管理员身份。
如果是其他用户(可以自己设置也可随意接收),则是顾客身份。
2.如果用户是管理员身份,提示用户输入编号,选择对应功能输入编号"1":显示商品的信息  (编号  商品名称 价格)输入编号"2":添加商品信息  (输入编号,商品名称,价格)输入编号"3":删除商品信息    (输入编号,删除对应的名称和价格)输入编号"4":退出系统功能
3.如果用户是顾客身份,只有一个功能:购买商品,展示所有商品信息,用户循环输入商品编号和购买数量,输入n时,退出系统,并提示用户总价格。

涉及到的知识点(目前已学全部内容):

  • 编程语言变量,语句,函数
  • 面向对象思想结合编程语言进行类的封装与方法的调用
  • 常见数据容器列表与字典的使用
  • 程序中对于文件的操作

因为涉及对于文件的读取和写入,建议大家在程序开始前,先确定文件内容的格式,有效合理的表达商品内容,我采取以下格式,在项目工程目录下创建shop.txt文件夹

逻辑分析:

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

功能实现代码:

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

class Goods(object):def __init__(self,id,name,price):self.id = idself.name = nameself.price = pricedef __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 = pathself.shopdic = self.readFileToDic()def readFileToDic(self):# 读取文件,写入到字典中f = open(self.path, 'r', encoding='utf-8')clist = f.readlines()f.close()index = 0shopdic = {}while index < len(clist):# 将每一行的字符串进行分割,存放到新的列表中ctlist = clist[index].replace('\n', "").split("|")# 将每行的内容存放到一个对象中good = Goods(ctlist[0],ctlist[1],int(ctlist[2]))# 将对向存放到集合中shopdic[good.id] = goodindex = index + 1return shopdicdef writeContentFile(self):# 将内存当中的信息写入到文件当中str1 = ''for key in self.shopdic.keys():good = self.shopdic[key]ele = good.id+"|"+good.name+"|"+str(good.price)+"\n"str1 = str1 + elef = open(self.path, 'w', encoding='utf-8')f.write(str1)f.close()def addGoods(self):# 添加商品的方法id = input("请输入添加商品编号:>")if self.shopdic.get(id):print("商品编号已存在,请重新选择!")returnname = input("请输入添加商品名称:>")price = int(input("请输入添加商品价格:>"))good = Goods(id,name,price)self.shopdic[id] = goodprint("添加成功!")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()breakelse:print("输入编号有误,请重新输入!!")def userWork(self):print(" ==============欢迎进入好海哦购物商场==============")print("您可输入编号和购买数量选购商品,输入编号为n则结账")self.showGoods()total = 0while True:id = input("请输入购买商品编号:>")if id == "n":print("本次购买商品共消费%d元,感谢您的光临!"%(total))breakif self.shopdic.get(id):good = self.shopdic[id]num = int(input("请输入购买数量:>"))total = total+good.price*numelse: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()

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

    

以上项目案例将之前学习的内容进行了统一整理和综合,相信同学们顺利理解和敲出这部分代码,前面提到的知识点部分就没有问题了~       感谢您的阅读!

代码下载路径:https://download.csdn.net/download/u012156341/11125722

相关代码下载地址:https://pan.baidu.com/s/15x7hoB4ZkZ7BHSMYTXmzhQ

Python基础项目:超市商品销售管理系统相关推荐

  1. python编写超市销售系统_Python基础项目:超市商品销售管理系统

    Python基础项目:超市商品销售管理系统 发布时间:2020-07-12 09:11:58 来源:51CTO 阅读:991 作者:nineteens 需求分析: 超市销售管理系统功能 1.欢迎用户使 ...

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

    本文实例为大家分享了python超市商品销售管理系统的具体代码,供大家参考,具体内容如下 class Goods(object): def __init__(self, id, name, price ...

  3. 基于 Python 的大型超市商品销售关联度分析系统

    温馨提示:文末有 CSDN 平台官方提供的学长 Wechat / QQ 名片 :) 1. 项目背景 本项目通过对数据挖掘领域中的关联规则经典算法Apriori,运用关联规则对某大型超市超市的部分数据进 ...

  4. JSP基于网络超市商品销售管理系统的设计与实现(源代码+论文)

    随着互联网日益深入我们的生活,网上商品销售的方式也逐渐被人们所接受,因而集成销售管理功能的网上销售系统也显得更加重要而实用.鉴于此,本课题设计了基于网络超市的商品销售管理系统.首先,论文简单介绍了商品 ...

  5. Python基础项目:学生信息管理系统

    经过上一个例子学习,同学们应该已经掌握了我在前面提到的知识点,如语句,函数和列表等内容,本章将在上一章基础上对于Python的基础语法进行操作理解,本章的实际案例为学生信息管理系统,主要输入输出依然通 ...

  6. Python基础项目实践之:学生信息管理系统

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

  7. python基础项目实践之: 学生通讯录管理系统

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

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

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

  9. 超市商品信息管理系统/超市管理系统的设计与实现

    摘  要 随着现在网络的快速发展,网上管理系统也逐渐快速发展起来,网上管理模式很快融入到了许多国家的之中,随之就产生了"超市商品信息管理系统",这样就让超市商品信息管理系统更加方便 ...

最新文章

  1. IOS中CoreLocation框架地理定位
  2. 如何对比两个Jar包
  3. 03:Poor Herobrine 直接插入排序
  4. 【angular5项目积累总结】列表多选样式框(1)
  5. 从玉农业智能蔬菜技术 农业大健康·林裕豪:中国金控斥资打造
  6. Android资源分离,可分离Android操作系统报告:硬件环境检测文件(十)(分析)...
  7. windows subsystem for linux
  8. 一日一技:在Ocelot网关中实现IdentityServer4密码模式(password)
  9. import 别名_Python基础找茬系列09--import和from-import的引用区别
  10. Tomcat 7上具有RESTeasy JAX-RS的RESTful Web服务-Eclipse和Maven项目
  11. SpringBoot中拦截器
  12. 【Android UI设计与开发】9:滑动菜单栏(一)开源项目SlidingMenu的使用和示例-转...
  13. 全网首发:祝贺编译成功loongarch64 jna-5.10.0及难点说明
  14. VB2010新特性之——标识语言版本的新命令行选项/langversion (Visual Basic)
  15. 虚拟机vBox xp系统无法联网
  16. Android Uri的几种使用方法,分享共同学习
  17. 纯CSS实现对话气泡(MD.5)
  18. 记录微信小程序createIntersectionObserver()方法的使用
  19. 工作这么多年,所经历5个骗子上司
  20. Skin Cancer MNIST(皮肤癌患者相关数据集)

热门文章

  1. HTTP返回结果状态码小结
  2. OPJ2.5基本算法之搜索2152:Pots
  3. 基于手机信令数据的数据清洗和出行方式识别
  4. 【沃顿商学院学习笔记】领导力——Leadership:01目标驱动领导力 Purpose-Driven Leadership
  5. 下载USGS的地物光谱数据库的网址
  6. 五一劳动节 甩开压力“嗨”起来
  7. 不背单词,不学语法,过去100天,这10万人原来是这样学英语的......
  8. Android环信即时通信集成全过程(含demo)
  9. Linux设置屏幕分辨率
  10. vim之vim忽略大小写查找字符串