课程设计:商品零售信息管理系统(Python+MySQL+Tinker实现)

这篇具有很好参考价值的文章主要介绍了课程设计:商品零售信息管理系统(Python+MySQL+Tinker实现)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文为基于Python的商品零售管理系统,数据库采用MySQL,前端UI界面采用Tinker。
文内包含了从数据库到业务逻辑相关的所有的可运行代码。

1.设计目的

商品销售信息管理系统主要用于对商品信息的管理,包括客户端和管理端两部分,分别涉及商品购买和各类信息的处理。
学生根据所学的数据库系统原理与程序设计的知识,能够针对一个数据库管理信息系统,进行系统的需求分析,系统设计,数据库设计,编码,测试等,完成题目要求的功能,从而达到掌握开发一个小型数据库管理信息系统的目的。

2.需求分析

2.1系统业务分析

该商品零售管理信息系统旨在为超市的会员管理工作提供一个比较系统的零售管理平台。
它帮助超市存储及管理进货、销售、库存以及人员信息,是一套管理工具、极大提高超市管理的效率。很大程度上帮助了超市管理者对超市的掌握与管理。

2.2系统功能分析

  1. 进货管理
    根据销售情况及库存情况,自动制定进货计划(亦可手工制定修改),可以避免盲目进货造成商品积压。 按计划单有选择性地进行自动入库登记。 综合查询打印计划进货与入库记录及金额。
  2. 销售管理
    商品正常销售、促销与限量、限期及禁止销售控制。 综合查询各种销售明细记录、各地收银员收银记录以及交结帐情况等。 按多种方式统计生成销售排行榜,灵活察看和打印商品销售日、月、年报表。
  3. 库存管理
    综合查询库存明细记录。 库存状态自动告警提示。如库存过剩、少货、缺货等。软件为您预警,避免库存商品积压损失和缺货。
    4.用户管理
    员工、会员、供货商、厂商等基本信息登记管理。 员工操作权限管理。 客户销售权限管理。
    image.png

2.数据库结构设计

2.1 ER图

根据功能需求分析,可得系统关系模型图(ER图)。
image.png
image.png
image.png

2.2 逻辑结构

根据上面的ER图进行逻辑结构设计:

1.员工(员工编号,员工姓名,员工性别,员工年龄,员工工龄,员工电话,身份证号,工资,核酸情况);
2.商品(商品编号,商品名称,商品类别,商品单价,商品成本,供货商);
3.会员(会员卡卡号,会员姓名,电话,注册日期,累计金额,余额);
4.供货商(供货商编号,供货商名称,供货商电话,供货商地址);
5.仓库(仓库编号,仓库管理员编号,仓库名称,仓库地址);
6.退货信息(交易流水号,商品编号,退货数量,退款金额,退货日期);
7.销售(员工编号,商品编号,销售日期,销售数量,销售金额);
8.购买(会员卡卡号,商品编号,购买日期,购买数量);
9.供货(供货商编号,商品编号,供货日期,供货数量);
10.库存(仓库编号,商品编号,库存量);

2.3 数据库表

员工表Staff

属性名 含义 类型 说明
Snum 员工编号 varchar 主键
Sname 员工姓名 varchar
Ssex 员工性别 varchar ‘男’或‘女’
Sage 员工年龄 int >=18
Sseniority 员工工龄 int >=0
Sphone 员工电话 varchar
Sid 身份证号 varchar
Ssalary 工资 int >=0
Syard 健康码 varchar ‘红码’‘绿码’‘黄码’

商品表Goods

属性名 含义 类型 说明
Gnum 商品编号 varchar 主键
Gname 商品名称 varchar
Gtype 商品类别 varchar
Gprice 商品售价 int >=0
Gbid 商品进价 int >=0
Gstock 库存量 int >=0
Galarm 告警量 int >=0
Gplan 计划库存量 int >=0
Vnum 供货商编号 varchar 是表Vecdor的外键

会员表Member

属性名 含义 类型 说明
Mnum 会员卡号 varchar 主键
Mname 会员姓名 varchar
Mphone 会员电话 varchar
Mdate 注册日期 datetime
Mtotal 累计金额 int >=0
Mbalance 卡内余额 int >=0
Mpassword 会员密码 varchar

供货商Vendor

属性名 含义 类型 说明
Vnum 供货商编号 varchar 主键
Vname 供货商名称 varchar
Vphone 供货商电话 varchar
Vplace 供货商地址 varchar

仓库Ware

属性名 含义 类型 说明
Wnum 仓库编号 varchar 主键
Wname 仓库名称 varchar
Wplace 仓库地址 varchar
Snum 仓库管理员编号 varchar 是表Staff的外键

退货信息Infer

属性名 含义 类型 说明
Tnum 交易流水号 varchar 是表Trade的外键
Gnum 商品编号 varchar 是表Goods的外键
Iamount 退货数量 int >=0
Imoney 退款金额 int >=0
Idate 退货日期 datetime

商品交易表Trade

属性名 含义 类型 说明
Tnum 交易流水号 varchar 主键
Tdate 交易日期 datetime
Snum 员工编号 varchar 是表Staff的外键
Gnum 商品编号 varchar 是表Goods的外键
Tamount 交易数量 int >=0
Tmoney 交易金额 int >=0
Mnum 会员卡号 varchar 是表Member的外键

入库信息表Entry

属性名 含义 类型 说明
Enum 入库单编号 varchar 主键
Gnum 商品编号 varchar 是表Goods的外键
Eamount 入库量 int >=0
Emoney 总金额 int >=0
Vnum 供货商编号 varchar 是表Ventor的外键
Edate 入库日期 datetime
Snum 入库员编号 varchar 是表Staff的外键

出库信息表Exits

属性名 含义 类型 说明
Xnum 出库单编号 varchar 主键
Gnum 商品编号 varchar 是表Goods的外键
Xamount 出库量 int >=0
Xmoney 总金额 int >=0
Xdate 出库日期 datetime
Snum 出库员编号 varchar 是表Staff的外键

安全问题Check1

属性名 含义 类型 说明
Cdate 检查日期 date 主键
Cyard 顾客健康码 varchar ‘红码’‘绿码’‘黄码’
Cfire 灭火器 varchar ‘是’‘否’
Cspary 自动灭火喷洒装置 varchar ‘是’‘否’

3 系统实现

系统文件结构包含两个代码文件
image.png
init.py:用于数据库初始化
main.py:用于实现具体的业务功能

3.1 数据库初始化

数据库初始化主要包含创建数据库,初始化数据表等动作,核心是创建一个数据库以便存储实际业务数据。
在初始化数据之前,我们需要手工先在MySQL中创建一个自己的数据库,比如:pygoods。
image.png
连接MySQL数据库:

import pymysql

# 数据库初始化
# 创建表
connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
if connect:
    print("连接成功!")

cursor = connect.cursor()  # 创建一个游标对象,python里的sql语句都要通过cursor来执行

创建数据库表

# 创建表及其约束
cursor.execute(
    "create table Staff(Snum  varchar(10) primary key,Sname varchar(20) not null,Ssex varchar(5) check(Ssex in('男','女')),Sage int not null check(Sage>=18),Sseniority int not null check(Sseniority>=0),Sphone varchar(20) not null,Sid varchar(25) not null,Ssalary int check(Ssalary>=0),Syard varchar(20) check(Syard in('红码','黄码','绿码')) )")
cursor.execute(
    "create table Vendor(Vnum varchar(10) primary key,Vname varchar(10) not null,Vphone varchar(20) not null,Vpalce varchar(10) not null)")
#  on delete cascade
cursor.execute(
    "create table Goods(Gnum varchar(10) primary key,Gname varchar(10) not null,Gtype varchar(10) not null,Gprice int check(Gprice>=0),Gbid int check(Gbid>=0),Gstock int check(Gstock>=0),Galarm int check(Galarm>=0), Gplan int check(Gplan>=0),Vnum varchar(10) not null)")
cursor.execute(
    "create table Member(Mnum varchar(10) primary key,Mname varchar(10) not null,Mphone varchar(20) not null,Mdate datetime,Mtotal int check(Mtotal>=0),Mbalance int check(Mbalance>=0),Mpassword varchar(25) not null)")
# on delete set null
cursor.execute(
    "create table Ware(Wnum varchar(10) primary key,Wname varchar(10) not null,Wplace varchar(10) not null,Snum varchar(10) not null)")
cursor.execute(
    "create table Trade(Tnum varchar(10) primary key,Tdate datetime  not null,Snum varchar(10) not null,Gnum varchar(10) not null,Tamount int check(Tamount>=0),Tmoney int check(Tmoney>=0),Mnum varchar(10) not null)")
cursor.execute(
    "create table Infer(Tnum varchar(10) not null,Gnum varchar(10) not null,Iamount int check(Iamount>=0),Imoney int check(Imoney>=0),Idate datetime not null)")
# on delete cascade
cursor.execute(
    "create table Entry(Enum varchar(10) primary key,Gnum varchar(10) not null,Eamount int check(Eamount>=0),Emoney int check(Emoney>=0),Vnum varchar(10) not null,Edate datetime not null,Snum varchar(10) not null)")
cursor.execute(
    "create table Exits(Xnum varchar(10) primary key,Gnum varchar(10) not null,Xamount int check(Xamount>=0),Xmoney int check(Xmoney>=0),Xdate datetime not null,Snum varchar(10) not null)")
cursor.execute(
    "create table Check1(Cdate date primary key,Cyard varchar(10) check(Cyard in('红码','黄码','绿码')),Cfire varchar(10) check(Cfire in('是','否')),Cspary varchar(10) check(Cspary in('是','否')))")
connect.commit()  # 提交
cursor.close()  # 关闭游标
connect.close()

初始化数据

# 初始化数据(两条数据或一条数据,为了后续增加约束)
connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
cursor = connect.cursor()  # 创建一个游标对象,python里的sql语句都要通过cursor来执行
cursor.execute("insert into Goods values ('200001','薯片','零食',8,5,500,100,600,'100002')")
cursor.execute("insert into Goods values ('200002','可乐','饮料',3,2,1000,100,1200,'100001')")
cursor.execute("insert into Vendor values ('100001','可口','123456','杭州')")
cursor.execute("insert into Vendor values ('100002','乐事','135790','西安')")
cursor.execute("insert into Vendor values ('100003','牧场','246800','武汉')")
cursor.execute("insert into Staff values ('0001','张三','男',30,5,'139820117','411481320301',5000,'绿码')")
cursor.execute("insert into Staff values ('0002','熊大','女',32,3,'178883132','411481310302',3000,'绿码')")
cursor.execute("insert into Member values ('300001','迪迦','179320118',20220830194422,1050,300,'321336')")
cursor.execute("insert into Ware values('400001','一号','上海','0001')")
cursor.execute("insert into Check1 values(20220620,'绿码','是','是')")

connect.commit()  # 提交
cursor.close()
connect.close()

创建一些触发器

# 创建触发器 满足顾客买商品的一个场景
connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
# 创建光标
cursor = connect.cursor()
# 购买的商品数量要在库存里减去
cursor.execute(
    "create trigger update_Goods before insert on Trade for each row update Goods set Gstock=Gstock-new.Tamount where Gnum=new.Gnum;")
# 要在会员卡的总消费和余额里改变相应的数值
cursor.execute(
    "create trigger update_Member before insert on Trade for each row update Member set Mtotal=Mtotal+new.Tmoney,Mbalance=Mbalance-new.Tmoney where Mnum=new.Mnum;")
connect.commit()
cursor.close()
connect.close()

connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
cursor = connect.cursor()

cursor.execute("alter table Goods add foreign key(Vnum) references Vendor(Vnum) on delete cascade")
cursor.execute("alter table Ware add foreign key(Snum) references Staff(Snum)")
cursor.execute("alter table Trade add foreign key(Snum) references Staff(Snum)")
cursor.execute("alter table Trade add foreign key(Gnum) references Goods(Gnum)")
cursor.execute("alter table Trade add foreign key(Mnum) references Member(Mnum)")
cursor.execute("alter table Infer add foreign key(Tnum) references Trade(Tnum)")
cursor.execute("alter table Infer add foreign key(Gnum) references Goods(Gnum)")
cursor.execute("alter table Entry add foreign key(Snum) references Staff(Snum)")
cursor.execute("alter table Entry add foreign key(Gnum) references Goods(Gnum)")
cursor.execute("alter table Entry add foreign key(Vnum) references Vendor(Vnum)")
cursor.execute("alter table Exits add foreign key(Snum) references Staff(Snum)")
cursor.execute("alter table Exits add foreign key(Gnum) references Goods(Gnum)")

connect.commit()
# 关闭数据库连接,防止泄露
connect.close()

3.2 系统功能模块设计与开发

主体业务模块部分我们引入Tinker实现用户的交互界面,
所以我们在实现代码部分需要两个部分:
第一块是Tkinter库是用来实现ui界面。
第二块是连接MySQL数据库,实现数据的更新。
引入tinker,pymysql,pillow包:

import tkinter as tk
import tkinter.messagebox
from tkinter import *
import pymysql
from PIL import Image, ImageTk

具体的业务模块部分,根据之前的功能需求分析,我们可以将系统按模块分为登录管理,进货管理,销售管理等。
用户登录模块实现:
image.png

####################################################################################
def change_login():
    login1.destroy()
    mainpage()

# 登录界面
def login():
    global login1, username, password
    login1 = tk.Tk()
    login1.title("登录界面")
    login1.geometry('300x200')
    tk.Label(login1, text="请输入账号:").grid(row=1, column=0, padx=20, pady=20)
    tk.Label(login1, text="请输入密码:").grid(row=2, column=0, padx=20, pady=20)

    # 定义变量记录输入信息
    username = tk.StringVar()
    password = tk.StringVar()
    # 生成输入框
    entry1 = tk.Entry(login1, show=None, textvariable=username).grid(row=1, column=1)
    entry2 = tk.Entry(login1, show='*', textvariable=password).grid(row=2, column=1)

    # 生成按钮

    button = tk.Button(login1, text="login", command=login_l).place(relx=0.3, rely=0.8)
    # else:
    #  tkinter.messagebox.showinfo(title='提示', message='账号或密码错误')
    login1.mainloop()


def login_l():
    name = username.get()
    pwd = password.get()
    if name == 'mysql' and pwd == '123456':
        change_login()
    else:
        tkinter.messagebox.showinfo(title='提示', message='账号或密码错误')


# 调用登录界面
if __name__ == '__main__':
    login()

登录完成后进入到商品信息管理主界面mainpage()
image.png

###################################################################################################

# 主界面
def mainpage():
    global window
    window = tk.Tk()
    window.title("商城信息管理系统")
    # window.geometry('500x400')
    # 生成画布,销毁后生成新的画布实现跳转
    # page = tk.Frame(window)
    # page.pack()

    tk.Label(window, text="欢迎使用商城信息管理系统", font=("黑体", 20)).pack(pady=10)
    button1 = tk.Button(window, text="添加信息", command=change1_add).pack(pady=10)
    button2 = tk.Button(window, text="删除信息", command=change1_delete).pack(pady=10)
    button3 = tk.Button(window, text="修改信息", command=change1_update).pack(pady=10)
    button4 = tk.Button(window, text="信息查询", command=change1_select).pack(pady=10)
    # 信息查询 员工信息 商品信息 安全信息 仓库信息 供货信息 退货信息 会员信息
    # 插入图片背景
    image = Image.open("BACK.jpg").resize((400, 400))
    pyt = ImageTk.PhotoImage(image)
    canvas_window = tkinter.Canvas(window, width=500, height=400)
    canvas_window.create_image(250, 200, image=pyt)
    canvas_window.pack()

    window.mainloop()

详细各个功能模块的实现

数据库操作相关代码:

# 数据库添加操作
def add_Goods():
    # 连接数据库
    connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
    # 创建光标
    cursor = connect.cursor()
    # 编写SQL语句
    sql = "insert into Goods(Gnum,Gname,Gtype,Gprice,Gbid,Gstock,Galarm,Gplan,Vnum) values(%s,%s,%s,%s,%s,%s,%s,%s,%s)"
    # 执行SQL语句,并且输出完成提示信息,否则回滚
    try:
        cursor.execute(sql, (g1.get(), g2.get(), g3.get(), g4.get(), g5.get(), g6.get(), g7.get(), g8.get(), g9.get()))
        connect.commit()
        tkinter.messagebox.showinfo("提示", "数据添加成功")
    except:
        connect.rollback()
    # 关闭数据库连接,防止泄露
    connect.close()


def add_Staff():
    # 连接数据库
    connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
    # 创建光标
    cursor = connect.cursor()
    # 编写SQL语句
    sql = "insert into Staff(Snum,Sname,Ssex,Sage,Sseniority,Sphone,Sid,Ssalary,Syard) values(%s,%s,%s,%s,%s,%s,%s,%s,%s)"
    # 执行SQL语句,并且输出完成提示信息,否则回滚
    try:
        cursor.execute(sql, (s1.get(), s2.get(), s3.get(), s4.get(), s5.get(), s6.get(), s7.get(), s8.get(), s9.get()))
        connect.commit()
        tkinter.messagebox.showinfo("提示", "数据添加成功")
    except:
        connect.rollback()
    # 关闭数据库连接,防止泄露
    connect.close()


def add_Check1():
    # 连接数据库
    connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
    # 创建光标
    cursor = connect.cursor()
    # 编写SQL语句
    sql = "insert into Check(Cdate,Cyard,Cfire,Cspary) values(%s,%s,%s,%s)"
    # 执行SQL语句,并且输出完成提示信息,否则回滚
    try:
        cursor.execute(sql, (c1.get(), c2.get(), c3.get(), c4.get()))
        connect.commit()
        tkinter.messagebox.showinfo("提示", "数据添加成功")
    except:
        connect.rollback()
    # 关闭数据库连接,防止泄露
    connect.close()


def add_Ware():
    # 连接数据库
    connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
    # 创建光标
    cursor = connect.cursor()
    # 编写SQL语句
    sql = "insert into Ware(Wnum,Wname,Wplace,Snum) values(%s,%s,%s,%s)"
    # 执行SQL语句,并且输出完成提示信息,否则回滚
    try:
        cursor.execute(sql, (w1.get(), w2.get(), w3.get(), w4.get()))
        connect.commit()
        tkinter.messagebox.showinfo("提示", "数据添加成功")
    except:
        connect.rollback()
    # 关闭数据库连接,防止泄露
    connect.close()


def add_Vendor():
    # 连接数据库
    connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
    # 创建光标
    cursor = connect.cursor()
    # 编写SQL语句
    sql = "insert into Vendor(Vnum,Vname,Vphone,Vplace) values(%s,%s,%s,%s)"
    # 执行SQL语句,并且输出完成提示信息,否则回滚
    try:
        cursor.execute(sql, (v1.get(), v2.get(), v3.get(), v4.get()))
        connect.commit()
        tkinter.messagebox.showinfo("提示", "数据添加成功")
    except:
        connect.rollback()
    # 关闭数据库连接,防止泄露
    connect.close()


def add_Infer():
    # 连接数据库
    connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
    # 创建光标
    cursor = connect.cursor()
    # 编写SQL语句
    sql = "insert into Infer(Tnum,Gnum,Iamount,Imoney,Idate) values(%s,%s,%s,%s,%s)"
    # 执行SQL语句,并且输出完成提示信息,否则回滚
    try:
        cursor.execute(sql, (i1.get(), i2.get(), i3.get(), i4.get(), i5.get()))
        connect.commit()
        tkinter.messagebox.showinfo("提示", "数据添加成功")
    except:
        connect.rollback()
    # 关闭数据库连接,防止泄露
    connect.close()


def add_Member():
    # 连接数据库
    connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
    # 创建光标
    cursor = connect.cursor()
    # 编写SQL语句
    sql = "insert into Member(Mnum,Mname,Mphone,Mdate,Mtotal,Mbalance,Mpassword) values(%s,%s,%s,%s,%s,%s,%s)"
    # 执行SQL语句,并且输出完成提示信息,否则回滚
    try:
        cursor.execute(sql, (m1.get(), m2.get(), m3.get(), m4.get(), m5.get(), m6.get(), m7.get()))
        connect.commit()
        tkinter.messagebox.showinfo("提示", "数据添加成功")
    except:
        connect.rollback()
    # 关闭数据库连接,防止泄露
    connect.close()


def add_Trade():
    # 连接数据库
    connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
    # 创建光标
    cursor = connect.cursor()
    # 编写SQL语句
    sql = "insert into Trade(Tnum,Tdate,Snum,Gnum,Tamount,Tmoney,Mnum) values(%s,%s,%s,%s,%s,%s,%s)"
    # 执行SQL语句,并且输出完成提示信息,否则回滚
    try:
        cursor.execute(sql, (t1.get(), t2.get(), t3.get(), t4.get(), t5.get(), t6.get(), t7.get()))
        connect.commit()
        tkinter.messagebox.showinfo("提示", "数据添加成功")
        sql = "select Gstock from Goods where Gnum=%s"
        cursor.execute(sql, (t4.get()))
        result1 = cursor.fetchall()
        sql = "select Galarm from Goods where Gnum=%s"
        cursor.execute(sql, (t4.get()))
        result2 = cursor.fetchall()
        if (result1 < result2):
            tkinter.messagebox.showinfo(title='提示', message='该商品较少,需要补货')
    except:
        connect.rollback()
    # 关闭数据库连接,防止泄露
    connect.close()


def add_Entry():
    # 连接数据库
    connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
    # 创建光标
    cursor = connect.cursor()
    # 编写SQL语句
    sql = "insert into Entry(Enum,Gnum,Eamount,Emoney,Vnum,Edate,Snum) values(%s,%s,%s,%s,%s,%s,%s)"
    # 执行SQL语句,并且输出完成提示信息,否则回滚
    try:
        cursor.execute(sql, (e1.get(), e2.get(), e3.get(), e4.get(), e5.get(), e6.get(), e7.get()))
        connect.commit()
        tkinter.messagebox.showinfo("提示", "数据添加成功")
    except:
        connect.rollback()
    # 关闭数据库连接,防止泄露
    connect.close()


def add_Exits():
    # 连接数据库
    connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
    # 创建光标
    cursor = connect.cursor()
    # 编写SQL语句
    sql = "insert into Exits(Xnum,Gnum,Xamount,Xmoney,Xdate,Snum) values(%s,%s,%s,%s,%s,%s)"
    # 执行SQL语句,并且输出完成提示信息,否则回滚
    try:
        cursor.execute(sql, (x1.get(), x2.get(), x3.get(), x4.get(), x5.get(), x6.get()))
        connect.commit()
        tkinter.messagebox.showinfo("提示", "数据添加成功")
    except:
        connect.rollback()
    # 关闭数据库连接,防止泄露
    connect.close()


########################################################################################################################
# 数据库删除操作
def delete_Goods():
    connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
    cursor = connect.cursor()
    sql = "delete from Goods where Gnum=%s"
    try:
        cursor.execute(sql, (g10.get()))
        connect.commit()
        tkinter.messagebox.showinfo("提示", "数据删除成功")
    except:
        connect.rollback()
    connect.close()


def delete_Staff():
    connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
    cursor = connect.cursor()
    sql = "delete from Staff where Snum=%s"
    try:
        cursor.execute(sql, (s10.get()))
        connect.commit()
        tkinter.messagebox.showinfo("提示", "数据删除成功")
    except:
        connect.rollback()
    connect.close()


def delete_Check1():
    connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
    cursor = connect.cursor()
    sql = "delete from Check where Cdate=%s"
    try:
        cursor.execute(sql, (c6.get()))
        connect.commit()
        tkinter.messagebox.showinfo("提示", "数据删除成功")
    except:
        connect.rollback()
    connect.close()


def delete_Ware():
    connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
    cursor = connect.cursor()
    sql = "delete from Ware where Wnum=%s"
    try:
        cursor.execute(sql, (w5.get()))
        connect.commit()
        tkinter.messagebox.showinfo("提示", "数据删除成功")
    except:
        connect.rollback()
    connect.close()


def delete_Vendor():
    connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
    cursor = connect.cursor()
    sql = "delete from Vendor where Vnum=%s"
    try:
        cursor.execute(sql, (v5.get()))
        connect.commit()
        tkinter.messagebox.showinfo("提示", "数据删除成功")
    except:
        connect.rollback()
    connect.close()


def delete_Infer():
    connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
    cursor = connect.cursor()
    sql = "delete from Infer where Tnum=%s"
    try:
        cursor.execute(sql, (i6.get()))
        connect.commit()
        tkinter.messagebox.showinfo("提示", "数据删除成功")
    except:
        connect.rollback()
    connect.close()


def delete_Member():
    connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
    cursor = connect.cursor()
    sql = "delete from Member where Mnum=%s"
    try:
        cursor.execute(sql, (m8.get()))
        connect.commit()
        tkinter.messagebox.showinfo("提示", "数据删除成功")
    except:
        connect.rollback()
    connect.close()


def delete_Trade():
    connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
    cursor = connect.cursor()
    sql = "delete from Trade where Tnum=%s"
    try:
        cursor.execute(sql, (t8.get()))
        connect.commit()
        tkinter.messagebox.showinfo("提示", "数据删除成功")
    except:
        connect.rollback()
    connect.close()


def delete_Entry():
    connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
    cursor = connect.cursor()
    sql = "delete from Entry where Enum=%s"
    try:
        cursor.execute(sql, (e8.get()))
        connect.commit()
        tkinter.messagebox.showinfo("提示", "数据删除成功")
    except:
        connect.rollback()
    connect.close()


def delete_Exits():
    connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
    cursor = connect.cursor()
    sql = "delete from Exits where Xnum=%s"
    try:
        cursor.execute(sql, (x7.get()))
        connect.commit()
        tkinter.messagebox.showinfo("提示", "数据删除成功")
    except:
        connect.rollback()
    connect.close()


#################################################################################################################################
# 数据库更新操作
def update_Goods():
    connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
    cursor = connect.cursor()
    sql = "update Goods set Gbid=%s,Gprice=%s where Gnum=%s"
    try:
        cursor.execute(sql, (g11.get(), g12.get(), g13.get()))
        connect.commit()
        tkinter.messagebox.showinfo("提示", "数据更新成功!")
    except:
        connect.rollback()
    connect.close()


def update_Staff():
    connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
    cursor = connect.cursor()
    sql = "update Staff set Sphone=%s,Ssalary=%s where Snum=%s"
    try:
        cursor.execute(sql, (s11.get(), s12.get(), s13.get()))
        connect.commit()
        tkinter.messagebox.showinfo("提示", "数据更新成功!")
    except:
        connect.rollback()
    connect.close()


def update_Ware():
    connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
    cursor = connect.cursor()
    sql = "update Ware set Wname=%s,Snum=%s where Wnum=%s"
    try:
        cursor.execute(sql, (w6.get(), w7.get(), w8.get()))
        connect.commit()
        tkinter.messagebox.showinfo("提示", "数据更新成功!")
    except:
        connect.rollback()
    connect.close()


def update_Vendor():
    connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
    cursor = connect.cursor()
    sql = "update Vendor set Vphone=%s,Vplace=%s where Vnum=%s"
    try:
        cursor.execute(sql, (v6.get(), v7.get(), v8.get()))
        connect.commit()
        tkinter.messagebox.showinfo("提示", "数据更新成功!")
    except:
        connect.rollback()
    connect.close()


def update_Infer():
    connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
    cursor = connect.cursor()
    sql = "update Infer set Iamount=%s,Imoney=%s where Tnum=%s"
    try:
        cursor.execute(sql, (i7.get(), i8.get(), i9.get()))
        connect.commit()
        tkinter.messagebox.showinfo("提示", "数据更新成功!")
    except:
        connect.rollback()
    connect.close()


def update_Member():
    connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
    cursor = connect.cursor()
    sql = "update Member set Mphone=%s,Mpassword=%s where Mnum=%s"
    try:
        cursor.execute(sql, (m9.get(), m10.get(), m11.get()))
        connect.commit()
        tkinter.messagebox.showinfo("提示", "数据更新成功!")
    except:
        connect.rollback()
    connect.close()


def update_Trade():
    connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
    cursor = connect.cursor()
    sql = "update Trade set Tmoney=%s,Tamount=%s where Tnum=%s"
    try:
        cursor.execute(sql, (t9.get(), t10.get(), t11.get()))
        connect.commit()
        tkinter.messagebox.showinfo("提示", "数据更新成功!")
    except:
        connect.rollback()
    connect.close()


def update_Entry():
    connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
    cursor = connect.cursor()
    sql = "update Entry set Emoney=%s,Eamount=%s where Enum=%s"
    try:
        cursor.execute(sql, (e9.get(), e10.get(), e11.get()))
        connect.commit()
        tkinter.messagebox.showinfo("提示", "数据更新成功!")
    except:
        connect.rollback()
    connect.close()


def update_Exits():
    connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
    cursor = connect.cursor()
    sql = "update Exits set Xmoney=%s,Xamount=%s where Xnum=%s"
    try:
        cursor.execute(sql, (x8.get(), x9.get(), x10.get()))
        connect.commit()
        tkinter.messagebox.showinfo("提示", "数据更新成功!")
    except:
        connect.rollback()
    connect.close()


################################################################################################################################
# 数据库条件查询
def select_Goods():
    connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
    cursor = connect.cursor()
    sql = "select * from Goods where Gnum=%s"
    try:
        cursor.execute(sql, (g14.get()))
        results = cursor.fetchall()
        tkinter.messagebox.showinfo(title='output', message=results)
    except:
        return
    connect.close()


def select_Staff():
    connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
    cursor = connect.cursor()
    sql = "select * from Staff where Snum=%s"
    try:
        cursor.execute(sql, (s14.get()))
        results = cursor.fetchall()
        tkinter.messagebox.showinfo(title='output', message=results)
    except:
        return
    connect.close()


def select_Check1():
    connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
    cursor = connect.cursor()
    sql = "select * from Check where Cdate=%s"
    try:
        cursor.execute(sql, (c7.get()))
        results = cursor.fetchall()
        tkinter.messagebox.showinfo(title='output', message=results)
    except:
        return
    connect.close()


def select_Ware():
    connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
    cursor = connect.cursor()
    sql = "select * from Ware where Wnum=%s"
    try:
        cursor.execute(sql, (w9.get()))
        results = cursor.fetchall()
        tkinter.messagebox.showinfo(title='output', message=results)
    except:
        return
    connect.close()


def select_Vendor():
    connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
    cursor = connect.cursor()
    sql = "select * from Vendor where Vnum=%s"
    try:
        cursor.execute(sql, (v9.get()))
        results = cursor.fetchall()
        tkinter.messagebox.showinfo(title='output', message=results)
    except:
        return
    connect.close()


def select_Infer():
    connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
    cursor = connect.cursor()
    sql = "select * from Infer where Tnum=%s"
    try:
        cursor.execute(sql, (i10.get()))
        results = cursor.fetchall()
        tkinter.messagebox.showinfo(title='output', message=results)
    except:
        return
    connect.close()


def select_Member():
    connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
    cursor = connect.cursor()
    sql = "select * from Member where Mnum=%s"
    try:
        cursor.execute(sql, (m12.get()))
        results = cursor.fetchall()
        tkinter.messagebox.showinfo(title='output', message=results)
    except:
        return
    connect.close()


def select_Trade():
    connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
    cursor = connect.cursor()
    sql = "select * from Trade where Tnum=%s"
    try:
        cursor.execute(sql, (t12.get()))
        results = cursor.fetchall()
        tkinter.messagebox.showinfo(title='output', message=results)
    except:
        return
    connect.close()


def select_Entry():
    connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
    cursor = connect.cursor()
    sql = "select * from Entry where Enum=%s"
    try:
        cursor.execute(sql, (e12.get()))
        results = cursor.fetchall()
        tkinter.messagebox.showinfo(title='output', message=results)
    except:
        return
    connect.close()


def select_Exits():
    connect = pymysql.connect(host="localhost", user="root", password="123456", database="pygoods")  # 建立连接
    cursor = connect.cursor()
    sql = "select * from Exits where Xnum=%s"
    try:
        cursor.execute(sql, (x11.get()))
        results = cursor.fetchall()
        tkinter.messagebox.showinfo(title='output', message=results)
    except:
        return
    connect.close()

前端UI界面相关代码:文章来源地址https://www.toymoban.com/news/detail-462862.html

######################################################################################################


# 添加商品界面
def Goods_add():
    window_choice.destroy()
    # 构建全集变量,方便上面的函数调用
    global window_function
    global g1, g2, g3, g4, g5, g6, g7, g8, g9
    # 生成窗口
    window_function = tk.Tk()
    # 窗口标题
    window_function.title("商城信息管理系统")
    # 窗口大小
    window_function.geometry('400x700')

    # 生成标签
    tk.Label(window_function, text="添加新商品", font=("黑体", 20)).grid(row=0, column=1, pady=10)
    tk.Label(window_function, text="请输入商品编号:").grid(row=1, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入商品名称:").grid(row=2, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入商品类别:").grid(row=3, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入商品售价:").grid(row=4, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入商品成本:").grid(row=5, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入库存量:").grid(row=6, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入告警量:").grid(row=7, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入计划库存量:").grid(row=8, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入供货商编号:").grid(row=9, column=0, padx=20, pady=20)
    # 定义变量记录输入信息
    g1 = tk.StringVar()
    g2 = tk.StringVar()
    g3 = tk.StringVar()
    g4 = tk.StringVar()
    g5 = tk.StringVar()
    g6 = tk.StringVar()
    g7 = tk.StringVar()
    g8 = tk.StringVar()
    g9 = tk.StringVar()
    # 生成输入框
    entry1 = tk.Entry(window_function, show=None, textvariable=g1).grid(row=1, column=1)
    entry2 = tk.Entry(window_function, show=None, textvariable=g2).grid(row=2, column=1)
    entry3 = tk.Entry(window_function, show=None, textvariable=g3).grid(row=3, column=1)
    entry4 = tk.Entry(window_function, show=None, textvariable=g4).grid(row=4, column=1)
    entry5 = tk.Entry(window_function, show=None, textvariable=g5).grid(row=5, column=1)
    entry6 = tk.Entry(window_function, show=None, textvariable=g6).grid(row=6, column=1)
    entry7 = tk.Entry(window_function, show=None, textvariable=g7).grid(row=7, column=1)
    entry8 = tk.Entry(window_function, show=None, textvariable=g8).grid(row=8, column=1)
    entry9 = tk.Entry(window_function, show=None, textvariable=g9).grid(row=9, column=1)
    # 生成按钮
    button = tk.Button(window_function, text="添加", command=add_Goods).place(relx=0.3, rely=0.9)

    button2 = tk.Button(window_function, text="返回", command=change_add).place(relx=0.5, rely=0.9)

    # 显示窗口
    window_function.mainloop()


# 添加员工界面
def Staff_add():
    window_choice.destroy()
    # 构建全集变量,方便上面的函数调用
    global window_function
    global s1, s2, s3, s4, s5, s6, s7, s8, s9
    # 生成窗口
    window_function = tk.Tk()
    # 窗口标题
    window_function.title("商城信息管理系统")
    # 窗口大小
    window_function.geometry('400x700')

    # 生成标签
    tk.Label(window_function, text="添加新员工", font=("黑体", 20)).grid(row=0, column=1, pady=10)
    tk.Label(window_function, text="请输入员工编号:").grid(row=1, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入员工姓名:").grid(row=2, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入员工性别:").grid(row=3, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入员工年龄:").grid(row=4, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入员工工龄:").grid(row=5, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入员工电话:").grid(row=6, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入身份证号:").grid(row=7, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入员工工资:").grid(row=8, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入健康码情况:").grid(row=9, column=0, padx=20, pady=20)
    # 定义变量记录输入信息
    s1 = tk.StringVar()
    s2 = tk.StringVar()
    s3 = tk.StringVar()
    s4 = tk.StringVar()
    s5 = tk.StringVar()
    s6 = tk.StringVar()
    s7 = tk.StringVar()
    s8 = tk.StringVar()
    s9 = tk.StringVar()
    # 生成输入框
    entry1 = tk.Entry(window_function, show=None, textvariable=s1).grid(row=1, column=1)
    entry2 = tk.Entry(window_function, show=None, textvariable=s2).grid(row=2, column=1)
    entry3 = tk.Entry(window_function, show=None, textvariable=s3).grid(row=3, column=1)
    entry4 = tk.Entry(window_function, show=None, textvariable=s4).grid(row=4, column=1)
    entry5 = tk.Entry(window_function, show=None, textvariable=s5).grid(row=5, column=1)
    entry6 = tk.Entry(window_function, show=None, textvariable=s6).grid(row=6, column=1)
    entry7 = tk.Entry(window_function, show=None, textvariable=s7).grid(row=7, column=1)
    entry8 = tk.Entry(window_function, show=None, textvariable=s8).grid(row=8, column=1)
    entry9 = tk.Entry(window_function, show=None, textvariable=s9).grid(row=9, column=1)
    # 生成按钮
    button = tk.Button(window_function, text="添加", command=add_Staff).place(relx=0.3, rely=0.9)
    button2 = tk.Button(window_function, text="返回", command=change_add).place(relx=0.5, rely=0.9)
    # 显示窗口
    window_function.mainloop()


# 添加安全问题界面
def Check1_add():
    window_choice.destroy()
    # 构建全集变量,方便上面的函数调用
    global window_function
    global c1, c2, c3, c4
    # 生成窗口
    window_function = tk.Tk()
    # 窗口标题
    window_function.title("商城信息管理系统")
    # 窗口大小
    window_function.geometry('400x700')

    # 生成标签
    tk.Label(window_function, text="添加安全问题检查情况", font=("黑体", 20)).grid(row=0, column=0, pady=10)
    tk.Label(window_function, text="请输入检查日期:").grid(row=1, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入顾客健康码情况:").grid(row=2, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入灭火器情况:").grid(row=3, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入灭火喷洒装置情况:").grid(row=4, column=0, padx=20, pady=20)

    # 定义变量记录输入信息
    c1 = tk.StringVar()
    c2 = tk.StringVar()
    c3 = tk.StringVar()
    c4 = tk.StringVar()

    # 生成输入框
    entry1 = tk.Entry(window_function, show=None, textvariable=c1).grid(row=1, column=1)
    entry2 = tk.Entry(window_function, show=None, textvariable=c2).grid(row=2, column=1)
    entry3 = tk.Entry(window_function, show=None, textvariable=c3).grid(row=3, column=1)
    entry4 = tk.Entry(window_function, show=None, textvariable=c4).grid(row=4, column=1)

    # 生成按钮
    button = tk.Button(window_function, text="添加", command=add_Check1).place(relx=0.3, rely=0.9)

    button2 = tk.Button(window_function, text="返回", command=change_add).place(relx=0.5, rely=0.9)

    # 显示窗口
    window_function.mainloop()


# 添加仓库界面
def Ware_add():
    window_choice.destroy()
    # 构建全集变量,方便上面的函数调用
    global window_function
    global w1, w2, w3, w4
    # 生成窗口
    window_function = tk.Tk()
    # 窗口标题
    window_function.title("商城信息管理系统")
    # 窗口大小
    window_function.geometry('400x700')

    # 生成标签
    tk.Label(window_function, text="添加仓库信息", font=("黑体", 20)).grid(row=0, column=1, pady=10)
    tk.Label(window_function, text="请输入仓库编号:").grid(row=1, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入仓库名称:").grid(row=2, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入仓库地址:").grid(row=3, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入仓库管理员编号:").grid(row=4, column=0, padx=20, pady=20)

    # 定义变量记录输入信息
    w1 = tk.StringVar()
    w2 = tk.StringVar()
    w3 = tk.StringVar()
    w4 = tk.StringVar()

    # 生成输入框
    entry1 = tk.Entry(window_function, show=None, textvariable=w1).grid(row=1, column=1)
    entry2 = tk.Entry(window_function, show=None, textvariable=w2).grid(row=2, column=1)
    entry3 = tk.Entry(window_function, show=None, textvariable=w3).grid(row=3, column=1)
    entry4 = tk.Entry(window_function, show=None, textvariable=w4).grid(row=4, column=1)

    # 生成按钮
    button = tk.Button(window_function, text="添加", command=add_Ware).place(relx=0.3, rely=0.9)

    button2 = tk.Button(window_function, text="返回", command=change_add).place(relx=0.5, rely=0.9)

    # 显示窗口
    window_function.mainloop()


# 添加供货商界面
def Vendor_add():
    window_choice.destroy()
    # 构建全集变量,方便上面的函数调用
    global window_function
    global v1, v2, v3, v4
    # 生成窗口
    window_function = tk.Tk()
    # 窗口标题
    window_function.title("商城信息管理系统")
    # 窗口大小
    window_function.geometry('400x700')

    # 生成标签
    tk.Label(window_function, text="添加供货商信息", font=("黑体", 20)).grid(row=0, column=1, pady=10)
    tk.Label(window_function, text="请输入供货商编号:").grid(row=1, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入供货商名称:").grid(row=2, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入供货商电话:").grid(row=3, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入供货商地址:").grid(row=4, column=0, padx=20, pady=20)

    # 定义变量记录输入信息
    v1 = tk.StringVar()
    v2 = tk.StringVar()
    v3 = tk.StringVar()
    v4 = tk.StringVar()

    # 生成输入框
    entry1 = tk.Entry(window_function, show=None, textvariable=v1).grid(row=1, column=1)
    entry2 = tk.Entry(window_function, show=None, textvariable=v2).grid(row=2, column=1)
    entry3 = tk.Entry(window_function, show=None, textvariable=v3).grid(row=3, column=1)
    entry4 = tk.Entry(window_function, show=None, textvariable=v4).grid(row=4, column=1)

    # 生成按钮
    button = tk.Button(window_function, text="添加", command=add_Vendor).place(relx=0.3, rely=0.9)

    button2 = tk.Button(window_function, text="返回", command=change_add).place(relx=0.5, rely=0.9)

    # 显示窗口
    window_function.mainloop()


# 添加退货信息界面
def Infer_add():
    window_choice.destroy()
    # 构建全集变量,方便上面的函数调用
    global window_function
    global i1, i2, i3, i4, i5
    # 生成窗口
    window_function = tk.Tk()
    # 窗口标题
    window_function.title("商城信息管理系统")
    # 窗口大小
    window_function.geometry('400x700')

    # 生成标签
    tk.Label(window_function, text="添加退货信息", font=("黑体", 20)).grid(row=0, column=1, pady=10)
    tk.Label(window_function, text="请输入交易流水号:").grid(row=1, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入商品编号:").grid(row=2, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入退货数量:").grid(row=3, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入退款金额:").grid(row=4, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入退货日期:").grid(row=5, column=0, padx=20, pady=20)

    # 定义变量记录输入信息
    i1 = tk.StringVar()
    i2 = tk.StringVar()
    i3 = tk.StringVar()
    i4 = tk.StringVar()
    i5 = tk.StringVar()

    # 生成输入框
    entry1 = tk.Entry(window_function, show=None, textvariable=i1).grid(row=1, column=1)
    entry2 = tk.Entry(window_function, show=None, textvariable=i2).grid(row=2, column=1)
    entry3 = tk.Entry(window_function, show=None, textvariable=i3).grid(row=3, column=1)
    entry4 = tk.Entry(window_function, show=None, textvariable=i4).grid(row=4, column=1)
    entry5 = tk.Entry(window_function, show=None, textvariable=i5).grid(row=5, column=1)

    # 生成按钮
    button = tk.Button(window_function, text="添加", command=add_Infer).place(relx=0.3, rely=0.9)

    button2 = tk.Button(window_function, text="返回", command=change_add).place(relx=0.5, rely=0.9)

    # 显示窗口
    window_function.mainloop()


# 添加会员表界面
def Member_add():
    window_choice.destroy()
    # 构建全集变量,方便上面的函数调用
    global window_function
    global m1, m2, m3, m4, m5, m6, m7
    # 生成窗口
    window_function = tk.Tk()
    # 窗口标题
    window_function.title("商城信息管理系统")
    # 窗口大小
    window_function.geometry('400x700')

    # 生成标签
    tk.Label(window_function, text="添加新会员", font=("黑体", 20)).grid(row=0, column=1, pady=10)
    tk.Label(window_function, text="请输入会员卡号:").grid(row=1, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入会员姓名:").grid(row=2, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入会员电话:").grid(row=3, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入注册日期:").grid(row=4, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入累计金额:").grid(row=5, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入卡内余额:").grid(row=6, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入会员密码:").grid(row=7, column=0, padx=20, pady=20)

    # 定义变量记录输入信息
    m1 = tk.StringVar()
    m2 = tk.StringVar()
    m3 = tk.StringVar()
    m4 = tk.StringVar()
    m5 = tk.StringVar()
    m6 = tk.StringVar()
    m7 = tk.StringVar()

    # 生成输入框
    entry1 = tk.Entry(window_function, show=None, textvariable=m1).grid(row=1, column=1)
    entry2 = tk.Entry(window_function, show=None, textvariable=m2).grid(row=2, column=1)
    entry3 = tk.Entry(window_function, show=None, textvariable=m3).grid(row=3, column=1)
    entry4 = tk.Entry(window_function, show=None, textvariable=m4).grid(row=4, column=1)
    entry5 = tk.Entry(window_function, show=None, textvariable=m5).grid(row=5, column=1)
    entry6 = tk.Entry(window_function, show=None, textvariable=m6).grid(row=6, column=1)
    entry7 = tk.Entry(window_function, show=None, textvariable=m7).grid(row=7, column=1)

    # 生成按钮
    button = tk.Button(window_function, text="添加", command=add_Member).place(relx=0.3, rely=0.9)

    button2 = tk.Button(window_function, text="返回", command=change_add).place(relx=0.5, rely=0.9)

    # 显示窗口
    window_function.mainloop()


# 添加商品交易界面
def Trade_add():
    window_choice.destroy()
    # 构建全集变量,方便上面的函数调用
    global window_function
    global t1, t2, t3, t4, t5, t6, t7
    # 生成窗口
    window_function = tk.Tk()
    # 窗口标题
    window_function.title("商城信息管理系统")
    # 窗口大小
    window_function.geometry('400x700')

    # 生成标签
    tk.Label(window_function, text="添加商品交易信息", font=("黑体", 20)).grid(row=0, column=1, pady=10)
    tk.Label(window_function, text="请输入交易流水号:").grid(row=1, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入交易日期:").grid(row=2, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入员工编号:").grid(row=3, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入商品编号:").grid(row=4, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入交易数量:").grid(row=5, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入交易金额:").grid(row=6, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入会员卡号:").grid(row=7, column=0, padx=20, pady=20)

    # 定义变量记录输入信息
    t1 = tk.StringVar()
    t2 = tk.StringVar()
    t3 = tk.StringVar()
    t4 = tk.StringVar()
    t5 = tk.StringVar()
    t6 = tk.StringVar()
    t7 = tk.StringVar()

    # 生成输入框
    entry1 = tk.Entry(window_function, show=None, textvariable=t1).grid(row=1, column=1)
    entry2 = tk.Entry(window_function, show=None, textvariable=t2).grid(row=2, column=1)
    entry3 = tk.Entry(window_function, show=None, textvariable=t3).grid(row=3, column=1)
    entry4 = tk.Entry(window_function, show=None, textvariable=t4).grid(row=4, column=1)
    entry5 = tk.Entry(window_function, show=None, textvariable=t5).grid(row=5, column=1)
    entry6 = tk.Entry(window_function, show=None, textvariable=t6).grid(row=6, column=1)
    entry7 = tk.Entry(window_function, show=None, textvariable=t7).grid(row=7, column=1)

    # 生成按钮
    button = tk.Button(window_function, text="添加", command=add_Trade).place(relx=0.3, rely=0.9)

    button2 = tk.Button(window_function, text="返回", command=change_add).place(relx=0.5, rely=0.9)

    # 显示窗口
    window_function.mainloop()


# 添加入库信息界面
def Entry_add():
    window_choice.destroy()
    # 构建全集变量,方便上面的函数调用
    global window_function
    global e1, e2, e3, e4, e5, e6, e7
    # 生成窗口
    window_function = tk.Tk()
    # 窗口标题
    window_function.title("商城信息管理系统")
    # 窗口大小
    window_function.geometry('400x700')

    # 生成标签
    tk.Label(window_function, text="添加入库信息", font=("黑体", 20)).grid(row=0, column=1, pady=10)
    tk.Label(window_function, text="请输入入库单编号:").grid(row=1, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入商品编号:").grid(row=2, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入入库量:").grid(row=3, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入总金额:").grid(row=4, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入供货商编号:").grid(row=5, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入入库日期:").grid(row=6, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入入库员编号:").grid(row=7, column=0, padx=20, pady=20)

    # 定义变量记录输入信息
    e1 = tk.StringVar()
    e2 = tk.StringVar()
    e3 = tk.StringVar()
    e4 = tk.StringVar()
    e5 = tk.StringVar()
    e6 = tk.StringVar()
    e7 = tk.StringVar()

    # 生成输入框
    entry1 = tk.Entry(window_function, show=None, textvariable=e1).grid(row=1, column=1)
    entry2 = tk.Entry(window_function, show=None, textvariable=e2).grid(row=2, column=1)
    entry3 = tk.Entry(window_function, show=None, textvariable=e3).grid(row=3, column=1)
    entry4 = tk.Entry(window_function, show=None, textvariable=e4).grid(row=4, column=1)
    entry5 = tk.Entry(window_function, show=None, textvariable=e5).grid(row=5, column=1)
    entry6 = tk.Entry(window_function, show=None, textvariable=e6).grid(row=6, column=1)
    entry7 = tk.Entry(window_function, show=None, textvariable=e7).grid(row=7, column=1)

    # 生成按钮
    button = tk.Button(window_function, text="添加", command=add_Entry).place(relx=0.3, rely=0.9)

    button2 = tk.Button(window_function, text="返回", command=change_add).place(relx=0.5, rely=0.9)

    # 显示窗口
    window_function.mainloop()


# 添加出库信息界面
def Exits_add():
    window_choice.destroy()
    # 构建全集变量,方便上面的函数调用
    global window_function
    global x1, x2, x3, x4, x5, x6
    # 生成窗口
    window_function = tk.Tk()
    # 窗口标题
    window_function.title("商城信息管理系统")
    # 窗口大小
    window_function.geometry('400x700')

    # 生成标签
    tk.Label(window_function, text="添加出库信息", font=("黑体", 20)).grid(row=0, column=1, pady=10)
    tk.Label(window_function, text="请输入出库单编号:").grid(row=1, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入商品编号:").grid(row=2, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入出库量:").grid(row=3, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入总金额:").grid(row=4, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入出库日期:").grid(row=5, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入出库员编号:").grid(row=6, column=0, padx=20, pady=20)

    # 定义变量记录输入信息
    x1 = tk.StringVar()
    x2 = tk.StringVar()
    x3 = tk.StringVar()
    x4 = tk.StringVar()
    x5 = tk.StringVar()
    x6 = tk.StringVar()

    # 生成输入框
    entry1 = tk.Entry(window_function, show=None, textvariable=x1).grid(row=1, column=1)
    entry2 = tk.Entry(window_function, show=None, textvariable=x2).grid(row=2, column=1)
    entry3 = tk.Entry(window_function, show=None, textvariable=x3).grid(row=3, column=1)
    entry4 = tk.Entry(window_function, show=None, textvariable=x4).grid(row=4, column=1)
    entry5 = tk.Entry(window_function, show=None, textvariable=x5).grid(row=5, column=1)
    entry6 = tk.Entry(window_function, show=None, textvariable=x6).grid(row=6, column=1)

    # 生成按钮
    button = tk.Button(window_function, text="添加", command=add_Exits).place(relx=0.3, rely=0.9)

    button2 = tk.Button(window_function, text="返回", command=change_add).place(relx=0.5, rely=0.9)

    # 显示窗口
    window_function.mainloop()


############################################################################################

# 删除商品界面
def Goods_delete():
    window_choice.destroy()
    global window_function
    global g10
    window_function = tk.Tk()
    window_function.title("商城信息管理系统")
    window_function.geometry('500x400')
    tk.Label(window_function, text="删除商品", font=("黑体", 20)).grid(row=0, column=1, pady=20)
    tk.Label(window_function, text="请输入商品编号:").grid(row=1, column=0, padx=20)
    g10 = tk.StringVar()
    entry1 = tk.Entry(window_function, show=None, textvariable=g10).grid(row=1, column=1, pady=40)
    button = tk.Button(window_function, text="删除", command=delete_Goods, anchor='s').place(relx=0.2, rely=0.5)
    button2 = tk.Button(window_function, text="返回", command=change_delete).place(relx=0.4, rely=0.5)
    window_function.mainloop()


# 删除员工界面
def Staff_delete():
    window_choice.destroy()
    global window_function
    global s10
    window_function = tk.Tk()
    window_function.title("商城信息管理系统")
    window_function.geometry('500x400')
    tk.Label(window_function, text="删除员工", font=("黑体", 20)).grid(row=0, column=1, pady=20)
    tk.Label(window_function, text="请输入员工编号:").grid(row=1, column=0, padx=20)
    s10 = tk.StringVar()
    entry1 = tk.Entry(window_function, show=None, textvariable=s10).grid(row=1, column=1, pady=40)
    button = tk.Button(window_function, text="删除", command=delete_Staff, anchor='s').place(relx=0.2, rely=0.5)
    button2 = tk.Button(window_function, text="返回", command=change_delete).place(relx=0.4, rely=0.5)
    window_function.mainloop()


# 删除安全问题界面
def Check1_delete():
    window_choice.destroy()
    global window_function
    global c6
    window_function = tk.Tk()
    window_function.title("商城信息管理系统")
    window_function.geometry('500x400')
    tk.Label(window_function, text="删除检查安全记录", font=("黑体", 20)).grid(row=0, column=1, pady=20)
    tk.Label(window_function, text="请输入检查日期:").grid(row=1, column=0, padx=20)
    c6 = tk.StringVar()
    entry1 = tk.Entry(window_function, show=None, textvariable=c6).grid(row=1, column=1, pady=40)
    button = tk.Button(window_function, text="删除", command=delete_Check1, anchor='s').place(relx=0.2, rely=0.5)
    button2 = tk.Button(window_function, text="返回", command=change_delete).place(relx=0.4, rely=0.5)
    window_function.mainloop()


# 删除仓库界面
def Ware_delete():
    window_choice.destroy()
    global window_function
    global w5
    window_function = tk.Tk()
    window_function.title("商城信息管理系统")
    window_function.geometry('500x400')
    tk.Label(window_function, text="删除仓库", font=("黑体", 20)).grid(row=0, column=1, pady=20)
    tk.Label(window_function, text="请输入仓库编号:").grid(row=1, column=0, padx=20)
    w5 = tk.StringVar()
    entry1 = tk.Entry(window_function, show=None, textvariable=w5).grid(row=1, column=1, pady=40)
    button = tk.Button(window_function, text="删除", command=delete_Ware, anchor='s').place(relx=0.2, rely=0.5)
    button2 = tk.Button(window_function, text="返回", command=change_delete).place(relx=0.4, rely=0.5)
    window_function.mainloop()


# 删除供货商界面
def Vendor_delete():
    window_choice.destroy()
    global window_function
    global v5
    window_function = tk.Tk()
    window_function.title("商城信息管理系统")
    window_function.geometry('500x400')
    tk.Label(window_function, text="删除供货商", font=("黑体", 20)).grid(row=0, column=1, pady=20)
    tk.Label(window_function, text="请输入供货商编号:").grid(row=1, column=0, padx=20)
    v5 = tk.StringVar()
    entry1 = tk.Entry(window_function, show=None, textvariable=v5).grid(row=1, column=1, pady=40)
    button = tk.Button(window_function, text="删除", command=delete_Vendor, anchor='s').place(relx=0.2, rely=0.5)
    button2 = tk.Button(window_function, text="返回", command=change_delete).place(relx=0.4, rely=0.5)
    window_function.mainloop()


# 删除退货信息界面
def Infer_delete():
    window_choice.destroy()
    global window_function
    global i6
    window_function = tk.Tk()
    window_function.title("商城信息管理系统")
    window_function.geometry('500x400')
    tk.Label(window_function, text="删除退货信息", font=("黑体", 20)).grid(row=0, column=1, pady=20)
    tk.Label(window_function, text="请输入交易流水号:").grid(row=1, column=0, padx=20)
    i6 = tk.StringVar()
    entry1 = tk.Entry(window_function, show=None, textvariable=i6).grid(row=1, column=1, pady=40)
    button = tk.Button(window_function, text="删除", command=delete_Infer, anchor='s').place(relx=0.2, rely=0.5)
    button2 = tk.Button(window_function, text="返回", command=change_delete).place(relx=0.4, rely=0.5)
    window_function.mainloop()


# 删除会员表界面
def Member_delete():
    window_choice.destroy()
    global window_function
    global m8
    window_function = tk.Tk()
    window_function.title("商城信息管理系统")
    window_function.geometry('500x400')
    tk.Label(window_function, text="删除会员信息", font=("黑体", 20)).grid(row=0, column=1, pady=20)
    tk.Label(window_function, text="请输入会员卡号:").grid(row=1, column=0, padx=20)
    m8 = tk.StringVar()
    entry1 = tk.Entry(window_function, show=None, textvariable=m8).grid(row=1, column=1, pady=40)
    button = tk.Button(window_function, text="删除", command=delete_Member, anchor='s').place(relx=0.2, rely=0.5)
    button2 = tk.Button(window_function, text="返回", command=change_delete).place(relx=0.4, rely=0.5)
    window_function.mainloop()


# 删除商品交易记录界面
def Trade_delete():
    window_choice.destroy()
    global window_function
    global t8
    window_function = tk.Tk()
    window_function.title("商城信息管理系统")
    window_function.geometry('500x400')
    tk.Label(window_function, text="删除商品交易记录", font=("黑体", 20)).grid(row=0, column=1, pady=20)
    tk.Label(window_function, text="请输入交易流水号:").grid(row=1, column=0, padx=20)
    t8 = tk.StringVar()
    entry1 = tk.Entry(window_function, show=None, textvariable=t8).grid(row=1, column=1, pady=40)
    button = tk.Button(window_function, text="删除", command=delete_Trade, anchor='s').place(relx=0.2, rely=0.5)
    button2 = tk.Button(window_function, text="返回", command=change_delete).place(relx=0.4, rely=0.5)
    window_function.mainloop()


# 删除入库信息界面
def Entry_delete():
    window_choice.destroy()
    global window_function
    global e8
    window_function = tk.Tk()
    window_function.title("商城信息管理系统")
    window_function.geometry('500x400')
    tk.Label(window_function, text="删除入库信息", font=("黑体", 20)).grid(row=0, column=1, pady=20)
    tk.Label(window_function, text="请输入入库单编号:").grid(row=1, column=0, padx=20)
    e8 = tk.StringVar()
    entry1 = tk.Entry(window_function, show=None, textvariable=e8).grid(row=1, column=1, pady=40)
    button = tk.Button(window_function, text="删除", command=delete_Entry, anchor='s').place(relx=0.2, rely=0.5)
    button2 = tk.Button(window_function, text="返回", command=change_delete).place(relx=0.4, rely=0.5)
    window_function.mainloop()


# 删除出库信息界面
def Exits_delete():
    window_choice.destroy()
    global window_function
    global x7
    window_function = tk.Tk()
    window_function.title("商城信息管理系统")
    window_function.geometry('500x400')
    tk.Label(window_function, text="删除出库信息", font=("黑体", 20)).grid(row=0, column=1, pady=20)
    tk.Label(window_function, text="请输入出库单编号:").grid(row=1, column=0, padx=20)
    x7 = tk.StringVar()
    entry1 = tk.Entry(window_function, show=None, textvariable=x7).grid(row=1, column=1, pady=40)
    button = tk.Button(window_function, text="删除", command=delete_Exits, anchor='s').place(relx=0.2, rely=0.5)
    button2 = tk.Button(window_function, text="返回", command=change_delete).place(relx=0.4, rely=0.5)
    window_function.mainloop()


#####################################################################################
# 更新商品信息界面
def Goods_update():
    window_choice.destroy()
    global window_function
    global g11, g12, g13
    window_function = tk.Tk()
    window_function.title("商城信息管理系统")
    window_function.geometry('500x400')
    tk.Label(window_function, text="更新商品信息", font=("黑体", 20)).grid(row=0, column=1, pady=20)
    tk.Label(window_function, text="请输入商品进价:").grid(row=1, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入商品售价:").grid(row=2, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入商品编号:").grid(row=3, column=0, padx=20, pady=20)
    g11 = tk.StringVar()
    g12 = tk.StringVar()
    g13 = tk.StringVar()
    entry1 = tk.Entry(window_function, show=None, textvariable=g11).grid(row=1, column=1)
    entry2 = tk.Entry(window_function, show=None, textvariable=g12).grid(row=2, column=1)
    entry3 = tk.Entry(window_function, show=None, textvariable=g13).grid(row=3, column=1)
    button = tk.Button(window_function, text="更新", command=update_Goods).place(relx=0.3, rely=0.7)
    button2 = tk.Button(window_function, text="返回", command=change_update).place(relx=0.5, rely=0.7)
    window_function.mainloop()


# 更新员工界面
def Staff_update():
    window_choice.destroy()
    global window_function
    global s11, s12, s13
    window_function = tk.Tk()
    window_function.title("商城信息管理系统")
    window_function.geometry('500x400')
    tk.Label(window_function, text="更新员工信息", font=("黑体", 20)).grid(row=0, column=1, pady=20)
    tk.Label(window_function, text="请输入员工电话:").grid(row=1, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入员工工资:").grid(row=2, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入员工编号:").grid(row=3, column=0, padx=20, pady=20)
    s11 = tk.StringVar()
    s12 = tk.StringVar()
    s13 = tk.StringVar()
    entry1 = tk.Entry(window_function, show=None, textvariable=s11).grid(row=1, column=1)
    entry2 = tk.Entry(window_function, show=None, textvariable=s12).grid(row=2, column=1)
    entry3 = tk.Entry(window_function, show=None, textvariable=s13).grid(row=3, column=1)
    button = tk.Button(window_function, text="更新", command=update_Staff).place(relx=0.3, rely=0.7)
    button2 = tk.Button(window_function, text="返回", command=change_update).place(relx=0.5, rely=0.7)
    window_function.mainloop()


# 更新仓库界面
def Ware_update():
    window_choice.destroy()
    global window_function
    global w6, w7, w8
    window_function = tk.Tk()
    window_function.title("商城信息管理系统")
    window_function.geometry('500x400')
    tk.Label(window_function, text="更新仓库信息", font=("黑体", 20)).grid(row=0, column=1, pady=20)
    tk.Label(window_function, text="请输入仓库名称:").grid(row=1, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入仓库管理员编号:").grid(row=2, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入仓库编号:").grid(row=3, column=0, padx=20, pady=20)
    w6 = tk.StringVar()
    w7 = tk.StringVar()
    w8 = tk.StringVar()
    entry1 = tk.Entry(window_function, show=None, textvariable=w6).grid(row=1, column=1)
    entry2 = tk.Entry(window_function, show=None, textvariable=w7).grid(row=2, column=1)
    entry3 = tk.Entry(window_function, show=None, textvariable=w8).grid(row=3, column=1)
    button = tk.Button(window_function, text="更新", command=update_Ware).place(relx=0.3, rely=0.7)
    button2 = tk.Button(window_function, text="返回", command=change_update).place(relx=0.5, rely=0.7)
    window_function.mainloop()


# 更新供货商界面
def Vendor_update():
    window_choice.destroy()
    global window_function
    global v6, v7, v8
    window_function = tk.Tk()
    window_function.title("商城信息管理系统")
    window_function.geometry('500x400')
    tk.Label(window_function, text="更新供货商信息", font=("黑体", 20)).grid(row=0, column=1, pady=20)
    tk.Label(window_function, text="请输入供货商电话:").grid(row=1, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入供货商地址:").grid(row=2, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入供货商编号:").grid(row=3, column=0, padx=20, pady=20)
    v6 = tk.StringVar()
    v7 = tk.StringVar()
    v8 = tk.StringVar()
    entry1 = tk.Entry(window_function, show=None, textvariable=v6).grid(row=1, column=1)
    entry2 = tk.Entry(window_function, show=None, textvariable=v7).grid(row=2, column=1)
    entry3 = tk.Entry(window_function, show=None, textvariable=v8).grid(row=3, column=1)
    button = tk.Button(window_function, text="更新", command=update_Vendor).place(relx=0.3, rely=0.7)
    button2 = tk.Button(window_function, text="返回", command=change_update).place(relx=0.5, rely=0.7)
    window_function.mainloop()


# 更新退货信息界面
def Infer_update():
    window_choice.destroy()
    global window_function
    global i7, i8, i9
    window_function = tk.Tk()
    window_function.title("商城信息管理系统")
    window_function.geometry('500x400')
    tk.Label(window_function, text="更新供货商信息", font=("黑体", 20)).grid(row=0, column=1, pady=20)
    tk.Label(window_function, text="请输入退货数量:").grid(row=1, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入退款金额:").grid(row=2, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入交易流水号编号:").grid(row=3, column=0, padx=20, pady=20)
    i7 = tk.StringVar()
    i8 = tk.StringVar()
    i9 = tk.StringVar()
    entry1 = tk.Entry(window_function, show=None, textvariable=i7).grid(row=1, column=1)
    entry2 = tk.Entry(window_function, show=None, textvariable=i8).grid(row=2, column=1)
    entry3 = tk.Entry(window_function, show=None, textvariable=i9).grid(row=3, column=1)
    button = tk.Button(window_function, text="更新", command=update_Infer).place(relx=0.3, rely=0.7)
    button2 = tk.Button(window_function, text="返回", command=change_update).place(relx=0.5, rely=0.7)
    window_function.mainloop()


# 更新会员表界面
def Member_update():
    window_choice.destroy()
    global window_function
    global m9, m10, m11
    window_function = tk.Tk()
    window_function.title("商城信息管理系统")
    window_function.geometry('500x400')
    tk.Label(window_function, text="更新供货商信息", font=("黑体", 20)).grid(row=0, column=1, pady=20)
    tk.Label(window_function, text="请输入会员电话:").grid(row=1, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入会员密码:").grid(row=2, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入会员卡号编号:").grid(row=3, column=0, padx=20, pady=20)
    m9 = tk.StringVar()
    m10 = tk.StringVar()
    m11 = tk.StringVar()
    entry1 = tk.Entry(window_function, show=None, textvariable=m9).grid(row=1, column=1)
    entry2 = tk.Entry(window_function, show=None, textvariable=m10).grid(row=2, column=1)
    entry3 = tk.Entry(window_function, show=None, textvariable=m11).grid(row=3, column=1)
    button = tk.Button(window_function, text="更新", command=update_Member).place(relx=0.3, rely=0.7)
    button2 = tk.Button(window_function, text="返回", command=change_update).place(relx=0.5, rely=0.7)
    window_function.mainloop()


# 更新商品交易记录界面
def Trade_update():
    window_choice.destroy()
    global window_function
    global t9, t10, t11
    window_function = tk.Tk()
    window_function.title("商城信息管理系统")
    window_function.geometry('500x400')
    tk.Label(window_function, text="更新商品交易信息", font=("黑体", 20)).grid(row=0, column=1, pady=20)
    tk.Label(window_function, text="请输入交易金额:").grid(row=1, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入交易数量:").grid(row=2, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入交易流水号:").grid(row=3, column=0, padx=20, pady=20)
    t9 = tk.StringVar()
    t10 = tk.StringVar()
    t11 = tk.StringVar()
    entry1 = tk.Entry(window_function, show=None, textvariable=t9).grid(row=1, column=1)
    entry2 = tk.Entry(window_function, show=None, textvariable=t10).grid(row=2, column=1)
    entry3 = tk.Entry(window_function, show=None, textvariable=t11).grid(row=3, column=1)
    button = tk.Button(window_function, text="更新", command=update_Trade).place(relx=0.3, rely=0.7)
    button2 = tk.Button(window_function, text="返回", command=change_update).place(relx=0.5, rely=0.7)
    window_function.mainloop()


# 更新入库信息界面
def Entry_update():
    window_choice.destroy()
    global window_function
    global e9, e10, e11
    window_function = tk.Tk()
    window_function.title("商城信息管理系统")
    window_function.geometry('500x400')
    tk.Label(window_function, text="更新供货商信息", font=("黑体", 20)).grid(row=0, column=1, pady=20)
    tk.Label(window_function, text="请输入总金额:").grid(row=1, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入入库量:").grid(row=2, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入入库单编号:").grid(row=3, column=0, padx=20, pady=20)
    e9 = tk.StringVar()
    e10 = tk.StringVar()
    e11 = tk.StringVar()
    entry1 = tk.Entry(window_function, show=None, textvariable=e9).grid(row=1, column=1)
    entry2 = tk.Entry(window_function, show=None, textvariable=e10).grid(row=2, column=1)
    entry3 = tk.Entry(window_function, show=None, textvariable=e11).grid(row=3, column=1)
    button = tk.Button(window_function, text="更新", command=update_Entry).place(relx=0.3, rely=0.7)
    button2 = tk.Button(window_function, text="返回", command=change_update).place(relx=0.5, rely=0.7)
    window_function.mainloop()


# 更新出库信息界面
def Exits_update():
    window_choice.destroy()
    global window_function
    global x8, x9, x10
    window_function = tk.Tk()
    window_function.title("商城信息管理系统")
    window_function.geometry('500x400')
    tk.Label(window_function, text="更新供货商信息", font=("黑体", 20)).grid(row=0, column=1, pady=20)
    tk.Label(window_function, text="请输入总金额:").grid(row=1, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入出库量:").grid(row=2, column=0, padx=20, pady=20)
    tk.Label(window_function, text="请输入出库单编号:").grid(row=3, column=0, padx=20, pady=20)
    x8 = tk.StringVar()
    x9 = tk.StringVar()
    x10 = tk.StringVar()
    entry1 = tk.Entry(window_function, show=None, textvariable=x8).grid(row=1, column=1)
    entry2 = tk.Entry(window_function, show=None, textvariable=x9).grid(row=2, column=1)
    entry3 = tk.Entry(window_function, show=None, textvariable=x10).grid(row=3, column=1)
    button = tk.Button(window_function, text="更新", command=update_Exits).place(relx=0.3, rely=0.7)
    button2 = tk.Button(window_function, text="返回", command=change_update).place(relx=0.5, rely=0.7)
    window_function.mainloop()


#############################################################################################################################

# 条件查找商品界面
def Goods_select():
    window_choice.destroy()
    global window_function
    global g14
    window_function = tk.Tk()
    window_function.title("商城信息管理系统")
    window_function.geometry('500x400')
    tk.Label(window_function, text="查找商品信息", font=("黑体", 20)).grid(row=0, column=1, pady=20)
    tk.Label(window_function, text="请输入商品编号:").grid(row=1, column=0, padx=20)
    g14 = tk.StringVar()
    entry1 = tk.Entry(window_function, show=None, textvariable=g14).grid(row=1, column=1, pady=40)
    button = tk.Button(window_function, text="查找", command=select_Goods).place(relx=0.3, rely=0.5)
    button2 = tk.Button(window_function, text="返回", command=change_select).place(relx=0.5, rely=0.5)
    window_function.mainloop()


# 查找员工界面
def Staff_select():
    window_choice.destroy()
    global window_function
    global s14
    window_function = tk.Tk()
    window_function.title("商城信息管理系统")
    window_function.geometry('500x400')
    tk.Label(window_function, text="查找员工信息", font=("黑体", 20)).grid(row=0, column=1, pady=20)
    tk.Label(window_function, text="请输入员工编号:").grid(row=1, column=0, padx=20)
    s14 = tk.StringVar()
    entry1 = tk.Entry(window_function, show=None, textvariable=s14).grid(row=1, column=1, pady=40)
    button = tk.Button(window_function, text="查找", command=select_Staff).place(relx=0.3, rely=0.5)
    button2 = tk.Button(window_function, text="返回", command=change_select).place(relx=0.5, rely=0.5)
    window_function.mainloop()


# 查找安全问题界面
def Check1_select():
    window_choice.destroy()
    global window_function
    global c7
    window_function = tk.Tk()
    window_function.title("商城信息管理系统")
    window_function.geometry('500x400')
    tk.Label(window_function, text="查找安全检查信息", font=("黑体", 20)).grid(row=0, column=1, pady=20)
    tk.Label(window_function, text="请输入检查日期:").grid(row=1, column=0, padx=20)
    c7 = tk.StringVar()
    entry1 = tk.Entry(window_function, show=None, textvariable=c7).grid(row=1, column=1, pady=40)
    button = tk.Button(window_function, text="查找", command=select_Check1).place(relx=0.3, rely=0.5)
    button2 = tk.Button(window_function, text="返回", command=change_select).place(relx=0.5, rely=0.5)
    window_function.mainloop()


# 查找仓库界面
def Ware_select():
    window_choice.destroy()
    global window_function
    global w9
    window_function = tk.Tk()
    window_function.title("商城信息管理系统")
    window_function.geometry('500x400')
    tk.Label(window_function, text="查找仓库信息", font=("黑体", 20)).grid(row=0, column=1, pady=20)
    tk.Label(window_function, text="请输入仓库编号:").grid(row=1, column=0, padx=20)
    w9 = tk.StringVar()
    entry1 = tk.Entry(window_function, show=None, textvariable=w9).grid(row=1, column=1, pady=40)
    button = tk.Button(window_function, text="查找", command=select_Ware).place(relx=0.3, rely=0.5)
    button2 = tk.Button(window_function, text="返回", command=change_select).place(relx=0.5, rely=0.5)
    window_function.mainloop()


# 查找供货商界面
def Vendor_select():
    window_choice.destroy()
    global window_function
    global v9
    window_function = tk.Tk()
    window_function.title("商城信息管理系统")
    window_function.geometry('500x400')
    tk.Label(window_function, text="查找供货商信息", font=("黑体", 20)).grid(row=0, column=1, pady=20)
    tk.Label(window_function, text="请输入供货商编号:").grid(row=1, column=0, padx=20)
    v9 = tk.StringVar()
    entry1 = tk.Entry(window_function, show=None, textvariable=v9).grid(row=1, column=1, pady=40)
    button = tk.Button(window_function, text="查找", command=select_Vendor).place(relx=0.3, rely=0.5)
    button2 = tk.Button(window_function, text="返回", command=change_select).place(relx=0.5, rely=0.5)
    window_function.mainloop()


# 查找退货信息界面
def Infer_select():
    window_choice.destroy()
    global window_function
    global i10
    window_function = tk.Tk()
    window_function.title("商城信息管理系统")
    window_function.geometry('500x400')
    tk.Label(window_function, text="查找退货信息", font=("黑体", 20)).grid(row=0, column=1, pady=20)
    tk.Label(window_function, text="请输入交易流水号:").grid(row=1, column=0, padx=20)
    i10 = tk.StringVar()
    entry1 = tk.Entry(window_function, show=None, textvariable=i10).grid(row=1, column=1, pady=40)
    button = tk.Button(window_function, text="查找", command=select_Infer).place(relx=0.3, rely=0.5)
    button2 = tk.Button(window_function, text="返回", command=change_select).place(relx=0.5, rely=0.5)
    window_function.mainloop()


# 查找会员表界面
def Member_select():
    window_choice.destroy()
    global window_function
    global m12
    window_function = tk.Tk()
    window_function.title("商城信息管理系统")
    window_function.geometry('500x400')
    tk.Label(window_function, text="查找会员信息", font=("黑体", 20)).grid(row=0, column=1, pady=20)
    tk.Label(window_function, text="请输入会员卡号:").grid(row=1, column=0, padx=20)
    m12 = tk.StringVar()
    entry1 = tk.Entry(window_function, show=None, textvariable=m12).grid(row=1, column=1, pady=40)
    button = tk.Button(window_function, text="查找", command=select_Member).place(relx=0.3, rely=0.5)
    button2 = tk.Button(window_function, text="返回", command=change_select).place(relx=0.5, rely=0.5)
    window_function.mainloop()


# 查找商品交易记录界面
def Trade_select():
    window_choice.destroy()
    global window_function
    global t12
    window_function = tk.Tk()
    window_function.title("商城信息管理系统")
    window_function.geometry('500x400')
    tk.Label(window_function, text="查找商品交易信息", font=("黑体", 20)).grid(row=0, column=1, pady=20)
    tk.Label(window_function, text="请输入交易流水号:").grid(row=1, column=0, padx=20)
    t12 = tk.StringVar()
    entry1 = tk.Entry(window_function, show=None, textvariable=t12).grid(row=1, column=1, pady=40)
    button = tk.Button(window_function, text="查找", command=select_Trade).place(relx=0.3, rely=0.5)
    button2 = tk.Button(window_function, text="返回", command=change_select).place(relx=0.5, rely=0.5)
    window_function.mainloop()


# 查找入库信息界面
def Entry_select():
    window_choice.destroy()
    global window_function
    global e12
    window_function = tk.Tk()
    window_function.title("商城信息管理系统")
    window_function.geometry('500x400')
    tk.Label(window_function, text="查找入库信息", font=("黑体", 20)).grid(row=0, column=1, pady=20)
    tk.Label(window_function, text="请输入入库单编号:").grid(row=1, column=0, padx=20)
    e12 = tk.StringVar()
    entry1 = tk.Entry(window_function, show=None, textvariable=e12).grid(row=1, column=1, pady=40)
    button = tk.Button(window_function, text="查找", command=select_Entry).place(relx=0.3, rely=0.5)
    button2 = tk.Button(window_function, text="返回", command=change_select).place(relx=0.5, rely=0.5)
    window_function.mainloop()


# 查找出库信息界面
def Exits_select():
    window_choice.destroy()
    global window_function
    global x11
    window_function = tk.Tk()
    window_function.title("商城信息管理系统")
    window_function.geometry('500x400')
    tk.Label(window_function, text="查找出库信息", font=("黑体", 20)).grid(row=0, column=1, pady=20)
    tk.Label(window_function, text="请输入出库单编号:").grid(row=1, column=0, padx=20)
    x11 = tk.StringVar()
    entry1 = tk.Entry(window_function, show=None, textvariable=x11).grid(row=1, column=1, pady=40)
    button = tk.Button(window_function, text="查找", command=select_Exits).place(relx=0.3, rely=0.5)
    button2 = tk.Button(window_function, text="返回", command=change_select).place(relx=0.5, rely=0.5)
    window_function.mainloop()


########################################################################################################
# 增删改查之后进去每个都可以对员工信息 商品信息 安全信息 仓库信息 供货信息 退货信息 会员信息等等进行操作
def all_add():
    # window.destroy()
    global window_choice
    window_choice = tk.Tk()
    window_choice.title("商城信息管理系统")
    window_choice.geometry('400x900')
    # 生成画布,销毁后生成新的画布实现跳转
    page = tk.Frame(window_choice)
    page.pack()

    tk.Label(window_choice, text="欢迎使用商城信息管理系统", font=("黑体", 20)).pack(pady=10)
    button1 = tk.Button(window_choice, text="添加员工信息", command=Staff_add).pack(pady=10)
    button2 = tk.Button(window_choice, text="添加商品信息", command=Goods_add).pack(pady=10)
    button3 = tk.Button(window_choice, text="添加安全信息", command=Check1_add).pack(pady=10)
    button4 = tk.Button(window_choice, text="添加仓库信息", command=Ware_add).pack(pady=10)
    button5 = tk.Button(window_choice, text="添加供货商信息", command=Vendor_add).pack(pady=10)
    button6 = tk.Button(window_choice, text="添加退货信息", command=Infer_add).pack(pady=10)
    button7 = tk.Button(window_choice, text="添加会员信息", command=Member_add).pack(pady=10)
    button8 = tk.Button(window_choice, text="添加交易信息", command=Trade_add).pack(pady=10)
    button9 = tk.Button(window_choice, text="添加入库信息", command=Entry_add).pack(pady=10)
    button10 = tk.Button(window_choice, text="添加出库信息", command=Exits_add).pack(pady=10)
    button11 = tk.Button(window_choice, text="返回", command=change_main).place(relx=0.5, rely=0.8)
    window_choice.mainloop()


def all_delete():
    # window.destroy()
    global window_choice
    window_choice = tk.Tk()
    window_choice.title("商城信息管理系统")
    window_choice.geometry('400x900')
    # 生成画布,销毁后生成新的画布实现跳转
    page = tk.Frame(window_choice)
    page.pack()

    tk.Label(window_choice, text="欢迎使用商城信息管理系统", font=("黑体", 20)).pack(pady=10)
    button1 = tk.Button(window_choice, text="删除员工信息", command=Staff_delete).pack(pady=10)
    button2 = tk.Button(window_choice, text="删除商品信息", command=Goods_delete).pack(pady=10)
    button3 = tk.Button(window_choice, text="删除安全信息", command=Check1_delete).pack(pady=10)
    button4 = tk.Button(window_choice, text="删除仓库信息", command=Ware_delete).pack(pady=10)
    button5 = tk.Button(window_choice, text="删除供货商信息", command=Vendor_delete).pack(pady=10)
    button6 = tk.Button(window_choice, text="删除退货信息", command=Infer_delete).pack(pady=10)
    button7 = tk.Button(window_choice, text="删除会员信息", command=Member_delete).pack(pady=10)
    button8 = tk.Button(window_choice, text="删除交易信息", command=Trade_delete).pack(pady=10)
    button9 = tk.Button(window_choice, text="删除入库信息", command=Entry_delete).pack(pady=10)
    button10 = tk.Button(window_choice, text="删除出库信息", command=Exits_delete).pack(pady=10)
    button11 = tk.Button(window_choice, text="返回", command=change_main).place(relx=0.5, rely=0.8)
    window_choice.mainloop()


def all_update():
    # window.destroy()
    global window_choice
    window_choice = tk.Tk()
    window_choice.title("商城信息管理系统")
    window_choice.geometry('400x900')
    # 生成画布,销毁后生成新的画布实现跳转
    page = tk.Frame(window_choice)
    page.pack()

    tk.Label(window_choice, text="欢迎使用商城信息管理系统", font=("黑体", 20)).pack(pady=10)
    button1 = tk.Button(window_choice, text="更新员工信息", command=Staff_update).pack(pady=10)
    button2 = tk.Button(window_choice, text="更新商品信息", command=Goods_update).pack(pady=10)
    button3 = tk.Button(window_choice, text="更新仓库信息", command=Ware_update).pack(pady=10)
    button4 = tk.Button(window_choice, text="更新供货商信息", command=Vendor_update).pack(pady=10)
    button5 = tk.Button(window_choice, text="更新退货信息", command=Infer_update).pack(pady=10)
    button6 = tk.Button(window_choice, text="更新会员信息", command=Member_update).pack(pady=10)
    button7 = tk.Button(window_choice, text="更新交易信息", command=Trade_update).pack(pady=10)
    button8 = tk.Button(window_choice, text="更新入库信息", command=Entry_update).pack(pady=10)
    button9 = tk.Button(window_choice, text="更新出库信息", command=Exits_update).pack(pady=10)
    button10 = tk.Button(window_choice, text="返回", command=change_main).place(relx=0.5, rely=0.8)
    window_choice.mainloop()


def all_select():
    # window.destroy()
    global window_choice
    window_choice = tk.Tk()
    window_choice.title("商城信息管理系统")
    window_choice.geometry('400x900')
    # 生成画布,销毁后生成新的画布实现跳转
    page = tk.Frame(window_choice)
    page.pack()

    tk.Label(window_choice, text="欢迎使用商城信息管理系统", font=("黑体", 20)).pack(pady=10)
    button1 = tk.Button(window_choice, text="查询员工信息", command=Staff_select).pack(pady=10)
    button2 = tk.Button(window_choice, text="查询商品信息", command=Goods_select).pack(pady=10)
    button3 = tk.Button(window_choice, text="查询安全信息", command=Check1_select).pack(pady=10)
    button4 = tk.Button(window_choice, text="查询仓库信息", command=Ware_select).pack(pady=10)
    button5 = tk.Button(window_choice, text="查询供货商信息", command=Vendor_select).pack(pady=10)
    button6 = tk.Button(window_choice, text="查询退货信息", command=Infer_select).pack(pady=10)
    button7 = tk.Button(window_choice, text="查询会员信息", command=Member_select).pack(pady=10)
    button8 = tk.Button(window_choice, text="查询交易信息", command=Trade_select).pack(pady=10)
    button9 = tk.Button(window_choice, text="查询入库信息", command=Entry_select).pack(pady=10)
    button10 = tk.Button(window_choice, text="查询出库信息", command=Exits_select).pack(pady=10)
    button11 = tk.Button(window_choice, text="返回", command=change_main).place(relx=0.5, rely=0.8)
    window_choice.mainloop()


####################################################################################################

# 添加商品界面跳转
def change_add():
    window_function.destroy()
    all_add()


def change1_add():
    window.destroy()
    all_add()


# 删除商品界面跳转
def change_delete():
    window_function.destroy()
    all_delete()


def change1_delete():
    window.destroy()
    all_delete()


# 更新商品界面跳转
def change_update():
    window_function.destroy()
    all_update()


def change1_update():
    window.destroy()
    all_update()


# 条件查询商品界面跳转
def change_select():
    window_function.destroy()
    all_select()


def change1_select():
    window.destroy()
    all_select()


# 主界面跳转
def change_main():
    window_choice.destroy()
    mainpage()


def change_login():
    login1.destroy()
    mainpage()

到了这里,关于课程设计:商品零售信息管理系统(Python+MySQL+Tinker实现)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言课程设计-车辆信息管理系统

    这个是我学编程以来写的第一个管理系统,现在回来看,当时写的代码还是很青涩的,写得不好大家轻点喷!!! 题目描述: 建立车辆信息管理系统,实现车辆信息的添加和维护管理。 系统存储数据要求: 每台车辆至少需要包含以下属性,系统中保存多台车辆的信息: 

    2024年02月09日
    浏览(53)
  • C语言课程设计——航班信息管理系统

    实现功能 整体概述 系统结构 主要功能模块实现 身份验证 信息遍历 查找航班信息 编辑航班信息 整理信息顺序 预订航班 小结 通过此系统可以实现如下功能:(1) 录入 :管理员用户可以录入航班情况,数据存储在一个数据文件中;(2) 遍历 :可以查看某一类信息的所有

    2024年02月05日
    浏览(41)
  • Python课程设计之学生信息管理系统

    核心代码 运行效果 核心代码 运行效果 核心代码 运行效果 核心代码 运行效果 核心代码 运行效果 核心代码 运行效果 核心代码 运行效果 核心代码 运行效果 点击下载

    2024年02月11日
    浏览(50)
  • MySQL课程设计——简易学生信息管理系统

    1.1.1 业务分析 学生信息管理系统时面向学生和学校教师的一个多功能数据管理平台。 1.1.2 分析系统 本系统所设计到的用户有学校在校学生、教师,对于不同的用户系统所提供给的功能也有所不同,其中对于学生来说,学生可以通过该系统进行学生基本信息查询、考试成绩查

    2024年02月09日
    浏览(48)
  • java课程设计(学生信息管理系统设计)+数据库

    🔍 🔎 本期带领大家一起来学习 java课程设计(学生信息管理系统设计)+数据库 的实现思路 🔍 🔎 学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计学生信息管理系统,使之能提供以下功能: 1、系统以菜单方式工作 2、学生信息录入功能

    2024年02月08日
    浏览(59)
  • ASP.NET程序设计课程设计——学生信息管理系统

    点击查看详细信息 ASP.NET程序设计课程设计——学生信息管理系统 一、实验目的 综合运用们所学的ASP.NET知识,开发学生信息管理系统,完成相关功能: (1)教师管理 (2)学生信息 (3)课程信息 (4)成绩管理 (5)班级管理 二、实验环境 (1)Windows 10 (2)Visual Studio 2

    2024年02月03日
    浏览(58)
  • 【JSP课程设计】个人信息管理系统(代码保姆级)

    目录 开发工具及开发环境 WEB系统注册与登录功能模块需求 1.1 注册功能 1.2 登录功能 登陆时的过程: 1.3 填写补充信息功能 1.3 查看注册信息功能 1.4 修改用户信息功能 1.5 用户退出 1.6 其它功能 项目流程结构及源码 项目编写的流程(参考) 系统功能展示 JSP个人信息管理系统:

    2024年02月07日
    浏览(53)
  • python课程设计——Django+vue信息管理系统

    python课程设计 之Django+vue2 文章目录 系列文章目录 前言 一、 信息管理系统的具体设计 二、 信息管理系统测试效果 三、结语 总结 python课程设计——Django+vue2 1 Django平台整体构建 一个完整的Django项目通常需要划分出很多不同的子模块进行设计,采用模块设计可以使得分工更加

    2024年02月05日
    浏览(68)
  • 【JSP课程设计】个人信息管理系统(代码保姆级)【更新】

    目录 开发工具及开发环境 WEB系统注册与登录功能模块需求 1.1 注册功能 1.2 登录功能 登陆时的过程: 1.3 填写补充信息功能 1.3 查看注册信息功能 1.4 修改用户信息功能 1.5 用户退出 1.6 其它功能 项目流程结构及源码 项目编写的流程(参考) 系统功能展示 JSP个人信息管理系统:

    2024年02月03日
    浏览(42)
  • 高校人员信息管理系统(Java课程设计,带图形界面版)

    题目 1 、问题描述 某高校有四类员工:教师、实验员、行政人员,教师兼行政人员;共有的信息包括:编号、姓名、性别、年龄等。其中,教师还包含的信息有:所在系部、专业、职称;实验员还包含的信息由:所在实验室、职务;行政人员还包含的信息有:政治面貌、职称

    2024年02月09日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包