网络编程
位置:首页>> 网络编程>> Python编程>> python实现超市管理系统(后台管理)

python实现超市管理系统(后台管理)

作者:哼嘿哈嘿  发布时间:2022-08-17 06:50:22 

标签:python,超市,管理系统

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

这个相比上个程序简单很多,首先他没有太过复杂的逻辑关系,它的逻辑线条很清晰,你能很清楚的知道要做什么,只要往自己想的方面实现就行,代码如下


# coding: utf-8
# 定义仓库
repository = dict()
# 定义购物清单对象
shop_list = []
# 定义仓库里商品数量
shangpin = [["1000001", "你好世界", 88.0, 10], \
["1000002", "疯狂python讲义", 69.0, 12],\
["1000003", "康复手册", 59.0, 188],\
["1000004", "疯狂Java讲义", 109.0, 56],\
["1000005", "疯狂Android讲义", 108.0, 100],\
["1000006", "世界起源", 77.0, 122]]
# 定义一个函数来初始化商品
def init_repository():
# 遍历商品生成仓库dict字典
for i in range(len(shangpin)) :
repository[shangpin[i][0]] = shangpin[i]
#显示超市的商品清单,就是遍历代表仓库的dict字典
def show_goods():
print("欢迎来到 哼嘿哈嘿乐园")
print('哈嘿乐园的商品清单:')
print("%13s%40s%10s%10s" % ("条码", "商品名称", "单价","数量"))
# 遍历repository的所有value来显示商品清单
for s in repository.values():
s = tuple(s)
print("%15s%40s%12s%12s" % s)
# 显示购物清单,就是遍历代表购物清单的list列表
def show_list():
print("=" * 100)
# 如果清单不为空的时候,输出清单的内容
if not shop_list:
print("还未购买商品")
else:
title = "%-5s|%15s|%40s|%10s|%4s|%10s" % \
 ("ID", "条码", "商品名称", "单价", "数量", "小计")
print(title)
print("-" * 100)
# 记录总计的价钱
sum = 0
# 遍历代表购物清单的list列表
for i, item in enumerate(shop_list,start=1):
 # 转换id为索引加1
 id = i
 # 获取该购物项的第1个元素:商品条码
 code = item[0]
 # 获取商品条码读取商品,再获取商品的名称
 name = repository[code][1]
 # 获取商品条码读取商品,再获取商品的单价
 price = repository[code][2]
 # 获取该购物项的第2个元素:商品数量
 number = item[1]
 # 小计
 amount = price * number
 # 计算总计
 sum = sum + amount
 line = "%-5s|%17s|%40s|%12s|%6s|%12s" % \
 (id, code, name, price, number, amount)
 print( line )
print("-" * 100)
print("    总计: " , sum)
print("=" * 100)
# 添加购买商品,就是向代表用户购物清单的list列表中添加一项。
def add():
# 等待输入条码
code = input("请输入商品的条码:\n")
# 没有找到对应的商品,条码错误
if code not in repository:
print("条码错误,请重新输入")
return
# 根据条码找商品
goods = repository[code]
# 等待输入数量
number = input("请输入购买数量:\n")
# 把商品和购买数量封装成list后加入购物清单
shop_list.append([code, int(number)])
# 修改购买商品的数量,就是修改代表用户购物清单的list列表的元素
def edit():
id = input("请输入要修改的购物明细项的ID:\n")
# id减1得到购物明细项的索引
index = int(id) - 1
# 根据索引获取某个购物明细项
item = shop_list[index]
# 提示输入新的购买数量
number = input("请输入新的购买数量:\n")
# 修改item里面的number
item[1] = int(number)
# 删除购买的商品明细项,就是删除代表用户购物清单的list列表的一个元素。
def delete():
id = input("请输入要删除的购物明细项的ID: ")
index = int(id) - 1
# 直接根据索引从清单里面删除掉购物明细项
del shop_list[index]
def payment():
# 先打印清单
show_list()
print('\n' * 3)
print("欢迎下次光临")
# 退出程序
import os
os._exit(0)
# 后台添加商品函数
def adds():
# 获取要添加的商品信息
a = input("请输入商品条码:")
b = input('请输入商品名称:')
c = input('请输入商品单价:')
d = input('请输入商品数量:')
# 添加到商品列表
shangpin.append([a,b,c,d])
# 重新打印商品清单
init_repository()
show_goods()
# 后天修改商品属性函数
def edits():
a = input("请输入商品条码:")
# 获取此商品条码的新的值
if a in repository.keys():
e = input("请输入修改后商品名字:")
f = input("请输入修改后商品单价:")
g = input("请输入修改后商品数量:")
repository.update({a:[a,e,f,g]})
print(repository[a])
show_goods()
else:
print('输入条码有误')
def deletes():
h = input('请输入您要下架商品条码:')
# 直接根据条码从仓库里面删除掉此商品
repository.pop(h)
show_goods()
# 重新打印商品清单
def show_good():
show_goods()
# 后台支持的操作
cmd_dicts = {'a': adds, 'e': edits, 'd': deletes, 's': show_good, 'q': quit}
def root():
# 先打印清单
show_goods()
print("欢迎进入超市货品管理平台")
print("=" * 100)
while True:
cmds = input("后台操作指令: \n" +
 " 添加商品(a) 修改商品(e) 删除商品(d) 全部商品(s) 退出(q)\n")
if cmds == 'q' :
 return
elif cmds not in cmd_dicts:
 print("好好玩,行吗!")
else:
 cmd_dicts[cmds]()
# 用户所支持的操作
cmd_dict = {'a': add, 'e': edit, 'd': delete, 'p': payment, 's': show_goods, 'r': root }
# 初始仓库并展示
init_repository()
show_goods()
# 显示命令提示
def show_command():
# 等待命令
cmd = input("用户操作指令: \n" +
" 添加(a) 修改(e) 删除(d) 结算(p) 超市商品(s) 后台管理(r)\n")
# 如果用户输入的字符没有对应的命令
if cmd not in cmd_dict:
print("不要玩,好不好!")
else:
cmd_dict[cmd]()
# 显示清单和操作命令提示
while True:
show_list()
show_command()

结语:

新增了后台处理,但是代码还是很不完善,还有很多问题存在,这只是大概的思路,希望能给小伙伴们点启发
小伙伴们如果有不清楚的地方请留言,我们共同进步

感谢:

本文源码参考疯狂python讲义

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

来源:https://blog.csdn.net/weixin_44208042/article/details/93048878

0
投稿

猜你喜欢

  • 是在CSDN论坛看到的一个问题,平常我也没有注意,或者说没有这样用吧。看代码  <body id="ww
  • 最近JETBRAINS发布了目前最受欢迎的python-web开发框架,可以看到最受欢迎的还是Django和Flask,那么本文就对上榜的1
  • 内容摘要:一般情况下,如果我们想了解股市行情,必须登录专业股票网站,输入公司代码才能看到具体股价。其实,利用XMLHTTP协议,我们每个人都
  • INI是微软Windows操作系统中的文件扩展名。这些字母表示初始化。正如该术语所表示的,INI文件被用来对操作系统或特定程序初始化或进行参
  • 因为写js经常需要用到访问样式,我们常用的做法是通过 DOM.style.XXX来读写样式信息的。可是DOM.style这种写法只能访问&l
  • 元素浮动导致的问题及解决办法大家都应该很熟悉了,举个简单的例子:<style type="text/css">
  • 这周心血来潮,翻看了现在比较流行的几个JS脚本框架的底层代码,虽然是走马观花,但也受益良多,感叹先人们的伟大……感叹是为了缓解严肃的气氛并引
  • Dreamweaver一直是不少网友钟情的网页设计工具,除了它强大的动态效果制作能力外,方便简洁的操作界面更是独具特色,下面我们将以最新版本
  • 昨天用ucweb看到了goos发的一篇帖子:谁说Float菜单不可以水平居中,进去看了看,觉得方法有点繁琐了,用到了负边距,position
  • centos7之Python3.74安装安装版本:Python3.74系统版本:centos7系统默认安装Python2.7,保留。安装/u
  • //获取元素的样式值。 function getStyle(elem,name){ if(elem.style[name]){ return
  • 一个JavaScript代码编写的图片展示特效,效果很棒。效果图:演示:<!DOCTYPE HTML PUBLIC "-//
  • 做一个将本地图片上传到mysql数据库的小实例,顺便也下载下来到桌面检测是否上传成功。在写代码之前得先在数据库中建立image表,用来存储图
  • 本文主要介绍了一个获得当前数据库对象依赖关系的实用算法,具体示例请大家参考下文:create   function&nb
  • 随着对Dreamweaver cs3中集成Spry功能的深入学习,了解并掌握到Spry框架的一些功能模块,其中就有通过Dreamweaver
  • 文件操作此为本人学习python过程中的笔记,将持续更新,欢迎提问指正。1.txt文件1.文本文件 txt2.二进制文件 图片视频操作流程打
  • 负责为网页编程语言提供标准化服务的W3C组织(World Wide Web Consortium)近日开始修改超文本标记语言的定义,计划为该
  • 当今越来越多的应用程序迁移到web平台上。由于没有平台的限制和安装的要求,SAAS的模式看起来非常有吸引力。Web应用程序的界面设计,其核心
  • 本文实例讲述了Linux下安装Memcached服务器和客户端与php使用。分享给大家供大家参考,具体如下:Memcached是高性能的分布
  • 最近做网站期间遇到个问题,就是用到比较流行的lightbox效果,就是点击链接后会弹出个固定大小窗口,弹出后窗口下面的内容是被遮罩掉的,最近
手机版 网络编程 asp之家 www.aspxhome.com