目录
用途
现在很多小超市使用人工收款,人多了肯定会忙不过来,但是可以使用超市管理系统进行自助付款,可以节省许多人力,现在我们就来做一个吧!
回顾老版本
老版本2.1.0出现错误时提供错误代码,但是用户关闭窗口则无法提供给技术人员,这个是一个漏洞。
制作2.5.1版本
请先安装my sql数据库!!!
然后新建csglxt这个数据库(可以使用navicat12)
在csglxt中创建pm表
2.5.1版本还新增了协议同意模块,同意后才能运行,不过需要在cmd中输入
pip insstall PySimpleGUI
首先,在你的任意一个英文名文件夹中新建txt文件,命名为 csglxt2-5错误.txt
其次,在原来的文件夹中新建csglxt2.5.py文件,使用LIDE或任意一个python编辑器打开(不要使用cmd)
输入以下代码:
import pymysql
import time
import random
import PySimpleGUI as sg
#引入各种模块
随后初始化:
cscscs=0
if 1==1:#复制方便,这样不需要缩进
#协议同意部分,不同意关闭
aaaaaaaaaaaa=['超市管理系统为恰到好处a出品,','未经许可,不得转载,','仅供个人使用!','欢迎大家寻找漏洞!','如果需要商用,请邮箱至xxx@xxx.com']
layout=[
[sg.Text("欢迎来到超市管理系统,请问是否同意以下协议",font=('宋体',15),relief='raised',border_width=4)],
[sg.LB(aaaaaaaaaaaa,
size=(40,2)
)],
[sg.B('同意',bind_return_key=True),sg.B("不同意")],
]
window=sg.Window('请同意协议',layout)
while True:
event,values=window.read()
if event==None:
cscscs=1
break
if event=='不同意':
cscscs=1
break
if event=='同意':
break
window.close()
if cscscs==1:
exit()
#协议同意部分结束
print('欢迎来到超市管理系统')
#广告部分-------------------------------------------------------------------------------------------
cscs=random.randint(1,3)
if cscs==1:
print("恭喜你,可以为我们做测试了,测试内容是调查系统Bata 1.2,调查系统Bata 1.0是恰到好处a第一款图形化软件,这次测试是难得的机会,请好好珍惜!按取消继续运行超市管理系统2.5")
layout=[
[sg.Text("请输入基本信息",font=('宋体',15),relief='raised',border_width=4,right_click_menu=["1",["示例",["姓名示例","性别示例","国藉示例"],["为什么要输入个人信息"]]])],
[sg.Text('姓名',relief='raised',border_width=4,right_click_menu=["1",["姓名示例"]]),sg.In(None,key='a')],
[sg.Text('性别',relief='raised',border_width=4,right_click_menu=["1",["性别示例"]]),sg.In(None,key='b')],
[sg.Text('国藉',relief='raised',border_width=4,right_click_menu=["1",["国藉示例"]]),sg.In(None,key='c')],
[sg.B('确认',bind_return_key=True),sg.B("取消")],
]
window=sg.Window('基本信息调查',layout)
while True:
event,values=window.read()
if event==None:
break
if event=='确认':
cscsa=1
if values['b']=="女":
cscsa=0
sg.Popup("------信息提交成功!,姓名:"+values['a']+",性别:"+values['b']+",国藉:"+values['c']+"------")
elif values['b']=="男":
cscsa=0
sg.Popup("------信息提交成功!,姓名:"+values['a']+",性别:"+values['b']+",国藉:"+values['c']+"------")
else:
sg.Popup("个人信息不符合要求")
if cscsa==0:
window['a'].update(value='')
window['b'].update(value='')
window['c'].update(value='')
window['a'].SetFocus()
else:
window['b'].update(value='')
window['b'].SetFocus()
if event=='取消':
break
if event=='姓名示例':
sg.Popup("张XX")
if event=='性别示例':
sg.Popup("男")
if event=='国藉示例':
sg.Popup("中国")
if event=="为什么要输入个人信息":
sg.Popup("这个调查仅仅是在在测试,不会保存你的任何信息")
window.close()
print("谢谢参与!")
#----------------------------------------------------------------------
def ld():
qq=input("请输入密码")
if qq=="你的收银员密码":
return "y"
else:
print("密码错误,登录失败")
return "n"
print("正在启动…………")
host = 'localhost'
port = 3306
db = 'csglxt'
user = '你的数据库账号'
password = '你的数据库密码'
def sjk(host,port,db,user,password):
try:
conn = pymysql.connect(host=host, port=port, db=db, user=user, password=password)
return conn
except Exception as cw:
print("出现错误,错误码",cw,",请联系工作人员,并将错误码告知工作人员")#打印错误码
cwe=cw
file=open(r"csglxt2-5错误.txt","a")#append追加写入,写入错误码
file.write(str(cwe))
file.close()
input("按回车退出")
exit()
b=sjk(host,port,db,user,password)
b.close()
超市管理系统核心部分
while 1==1:
print("--序号--------名称--")
print("--1.----查看商品信息-")
print("--2.--------增加商品-")
print("--3.--------下架商品-")
print("--4.--------增加库存-")
print("--5.--------购买商品-")
print("--6.--------退换商品-")
print("--7.--------修改价格-")
print("--8.--------退出系统-")
try:
a=int(input("请输入项目编号"))
if a==1:
b=sjk(host,port,db,user,password)
cursor=b.cursor()
sql="select * from pm;"
cursor.execute(sql)
c=cursor.fetchall()
f=0
for d in c:
f=0
print("----------------------")
for e in d:
f+=1
if f==1:
print("品名",e)
elif f==2:
print("价格",e)
else:
print("库存",e)
print("----------------------")
a=list(c[0])
b.close()
elif a==2:
z=ld()
if z=="y":
b=sjk(host,port,db,user,password)
g=input("请输入品名")
try:
h=float(input("请输入价格"))
except Exception as e:
print("请输入数字!")
try:
j=float(input("新商品目前库存"))
except Exception as e:
print("请输入数字!")
sql='insert into pm(品名,价格,库存) values (%s,%s,%s)'
cursor=b.cursor()
cursor.execute(sql,(g,h,j))
b.commit()
b.close()
elif a==3:
z=ld()
if z=="y":
b=sjk(host,port,db,user,password)
k=input("请输入品名")
sql="delete from pm where 品名=%s;"
cursor=b.cursor()
cursor.execute(sql,k)
b.commit()
b.close()
elif a==4:
z=ld()
if z=="y":
b=sjk(host,port,db,user,password)
t=input("请输入品名")
r=int(input("请输入进了多少货"))
sql="select * from pm;"
cursor=b.cursor()
cursor.execute(sql)
l=cursor.fetchall()
for m in l:
n=0
p=0
for o in m:
if o==t:
q=m[2]
break
n+=1
sql="update pm set 库存=%s where 品名=%s"
cursor=b.cursor()
u=r+q
cursor.execute(sql,(u,t))
b.commit()
b.close()
elif a==5:
b=sjk(host,port,db,user,password)
t=input("请输入品名")
r=int(input("请输入购买多少"))
sql="select * from pm;"
cursor=b.cursor()
cursor.execute(sql)
l=cursor.fetchall()
for m in l:
n=0
p=0
for o in m:
if o==t:
q=m[2]
z=m[1]
break
n+=1
sql="update pm set 库存=%s where 品名=%s"
u=q-r
cursor=b.cursor()
if r<=q:
cursor.execute(sql,(u,t))
print("请扫描机器上的二维码,并支付",z*r,"元")
else:
print("库存不足")
b.commit()
b.close()
elif a==6:
print("请联系工作人员处理")#没有完全做好,需要专业人员完成,大家可以自行完善
elif a==7:
z=ld()
if z=="y":
b=sjk(host,port,db,user,password)
t=input("请输入品名")
r=int(input("请输入新的价格"))
sql="select * from pm;"
cursor=b.cursor()
cursor.execute(sql)
l=cursor.fetchall()
for m in l:
n=0
p=0
for o in m:
if o==t:
q=m[2]
break
n+=1
sql="update pm set 价格=%s where 品名=%s"
cursor=b.cursor()
cursor.execute(sql,(r,t))
b.commit()
b.close()
elif a==8:
zzz=input("你是否要退出(1:是,2:否)")
if zzz=="1":
print("正在退出…………")
time.sleep(2)
exit()
else:
print("编号不存在")
except Exception as e:
print("请输入数字!")
sql语句稍稍难一些,大家可以自行学习一下
全部代码下载
全部代码下载(阿里云盘):
阿里云盘分享https://www.aliyundrive.com/s/KHRFuvKvFSx
这些是python超市管理系统2.5.1的全部内容,希望对你有帮助!