You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

305 lines
11 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import sys
from tkinter import *
from SqlClass import sqlclass
class Goods:
def __init__(self, kind, name, band, place, amount, cost, price, ):
self.kind = kind
self.name = name
self.band = band
self.place = place
self.amount = amount
self.cost = cost
self.price = price
sql = sqlclass('localhost',3306,'root','2363305350','python_cs')
def menu1():
print(" ")
print(" ")
print(" ")
print(" ")
print(" ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ 超 市 管 理 系 统 ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆")
print(" ")
print(" ")
print(" ************* 1.增添商品 ************* ")
print(" ")
print(" ************* 2.查看商品大全 ************* ")
print(" ")
print(" ************* 3.查询商品 ************* ")
print(" ")
print(" ************* 4.删除商品 ************* ")
print(" ")
print(" ************* 5.修改商品 ************* ")
print(" ")
print(" ************* 0.退出系统 ************* ")
def menu2():
print(" ")
print(" ")
print(" ")
print(" ")
print(" ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ 超 市 管 理 系 统 ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆")
print(" ")
print(" ")
print(" ************* 1.查看商品大全 ************* ")
print(" ")
print(" ************* 2.查询商品 ************* ")
print(" ")
print(" ************* 3.购买商品 ************* ")
print(" ")
print(" ************* 0.退出系统 ************* ")
def change_menu():
print(" ************* 1.修改种类 ************* ")
print(" ")
print(" ************* 2.修改名字 ************* ")
print(" ")
print(" ************* 3.修改数量 ************* ")
print(" ")
print(" ************* 4.修改品牌 ************* ")
print(" ")
print(" ************* 5.修改产地 ************* ")
print(" ")
print(" ************* 6.修改进价 ************* ")
print(" ")
print(" ************* 7.修改售价 ************* ")
print(" ")
print(" ************* 8.全部信息 ************* ")
print(" ")
def add():
while True:
print('可输入的商品种类有:水果、日用品、饮料')
# with open('supermarket.txt', 'a') as f:
kind = input('请输入商品的种类:')
name = input('请输入商品的名称:')
band = input('请输入商品的品牌: ')
place = input('请输入商品的产地: ')
amount = input('请输入商品的数量:')
cost = input('请输入商品的进价:')
price = input('请输入商品的售价:')
# goods = Goods(kind, name, band, place, amount, cost, price)
ret = sql.sql_insert('t_commode',{'commod_type':kind,'commod_name':name,'commode_brand':band,'commode_pro':place,'commode_num':amount,'commode_jinjia':cost,'commode_shoujia':price})
if ret> 0:
print('插入成功')
a = input('是否继续增加商品?(输入1继续输入2返回菜单)')
if a == '1':
continue
else:
break
def view():
# 查看商品大全
data = sql.sql_query('t_commode')
print(('id','类别','名称','品牌','产地','数量','进价','售价'))
for i in data:
print(i)
# while True:
# with open("supermarket.txt", 'r') as f:
# lines = f.readlines()
# for line in lines:
# print(line)
# a = input('提示输入2返回菜单\n')
# if a == '2':
# break
def delete():
while True:
discard = input("输入你想删除的商品id:")
ret = sql.sql_del('t_commode', f"commod_id='{discard}'")
if ret > 0:
print('删除成功')
a = input('提示输入2返回菜单\n')
if a == '2':
break
# with open('supermarket.txt', 'r+') as f:
# lines = f.readlines()
# f.seek(0)
# for line in lines:
# if discard not in line:
# f.write(line)
# f.truncate()
def revise():
while True:
print('\n')
change_menu()
view()
name = input("请输入你想要修改的商品id: ")
x = int(input('请输入对应功能的数字:'))
match x:
case 1:
new_info = input("请输入修改后的信息: ")
sql.sql_up('t_commode',{'commod_type':new_info},f"commod_id={name}")
case 2:
new_info = input("请输入修改后的信息: ")
sql.sql_up('t_commode',{'commod_name':new_info},f"commod_id={name}")
case 3:
new_info = input("请输入修改后的信息: ")
sql.sql_up('t_commode',{'commode_num':new_info},f"commod_id={name}")
case 4:
new_info = input("请输入修改后的信息: ")
sql.sql_up('t_commode',{'commode_brand':new_info},f"commod_id={name}")
case 5:
new_info = input("请输入修改后的信息: ")
sql.sql_up('t_commode',{'commode_pro':new_info},f"commod_id={name}")
case 6:
new_info = input("请输入修改后的信息: ")
sql.sql_up('t_commode',{'commod_jinjia':new_info},f"commod_id={name}")
case 7:
new_info = input("请输入修改后的信息: ")
sql.sql_up('t_commode',{'commod_shoujia':new_info},f"commod_id={name}")
case 8:
view()
print('修改成功')
a = input('提示输入2返回菜单\n')
if a == '2':
break
def research():
while True:
search = input("请输入你想要查询的商品名称: ")
rest = sql.sql_query('t_commode',f"commod_name='{search}'")
print(rest)
a = input('提示输入2返回菜单\n')
if a == '2':
break
# with open("supermarket.txt", 'r') as f:
# lines = f.readlines()
# for line in lines:
# if search in line:
# print(line)
def purchase():
while True:
view()
name = input('请输入你想购买的商品名称:')
amount = int(input('请输入你想购买的数量:'))
rest = sql.sql_query('t_commode',f"commod_name='{name}'")
shoujia =rest[0][7]
shuliang =rest[0][5]
shuliang -= int(amount)
print('一共花费:', (int(shoujia) * amount))
sql.sql_up('t_commode',{'commode_num':shuliang},f"commod_name='{name}'")
a = input('提示输入2返回菜单\n')
if a == '2':
break
def main1():
while True:
menu1()
print('\n')
x = int(input("请输入功能对应的数字:"))
match x:
case 0:
sys.exit()
case 1:
add()
case 2:
view()
case 3:
research()
case 4:
delete()
case 5:
revise()
case _:
print("输入有错,请重新输入")
def main2():
while True:
menu2()
print('\n')
x = int(input("请输入功能对应的数字:"))
match x:
case 0:
sys.exit()
case 1:
view()
case 2:
research()
case 3:
purchase()
case _:
print("输入有错,请重新输入")
def login(): # 用来区分顾客、管理员和退出操作
print('==========Welcome to Shopping Center==========')
user = input("用户请按1管理员请按2,退出请按0:")
if user == '2':
login_administrator()
if user == '1':
login_view()
else:
return 0
def login_administrator(): # 管理员输入
user_name = input("请输入管理员登录名:")
user_pass = input("请输入管理员登录密码:")
data = sql.sql_query('t_ad', f"ad_acc='{user_name}'")
if len(data)==0:
print('账号输入错误哦!请重新输入')
login()
else:
if data[0][2] == user_pass:
print('登录成功')
main1()
else:
print('密码错误')
login_administrator()
# if user_name == "admin":
# password = input("请输入密码:")
# if password == "5678":
# print("欢迎您,伟大的管理员")
# main1()
# else:
# print("密码错误,请重新输入")
# login_administrator()
# else:
# print("账号输入错误哦!请重新输入")
# login()
def login_view():
# 设置登录窗口
win = Tk()
win.title('登陆')
win.geometry('300x150')
win.resizable(0, 0)
# 设置账号
Label(text='账号:').place(x=50, y=30)
uname = Entry(win)
uname.place(x=100, y=30)
# 设置密码
Label(text='密码:').place(x=50, y=70)
pwd = Entry(win)
pwd.place(x=100, y=70)
# 登陆
def denglu():
username = uname.get()
password = pwd.get()
data = sql.sql_query('t_user',f"user_acc='{username}'")
if len(data)==0:
print('没有该用户')
else:
if data[0][2] == password:
print('登录成功')
main2()
else:
print('密码错误')
Button(text='登陆', command=denglu).place(x=100, y=110)
win.mainloop()
if __name__ == '__main__':
login()