数据库课设----超市管理系统的设计与实现

超市管理系统的设计与实现
数据库课程设计报告

目录
一、项目简介····························································3
二、需求分析····························································3
三、详细设计 ··························································4
四、实现··································································9
五、总结与期望·························································26

一、项目简介
本周数据库的课程设计任务是超市管理系统的设计与实现。根据所学的数据库系统原理与python程序设计的知识,能够针对一个数据库管理信息系统,进行系统的需求分析,系统设计,数据库设计,编码,测试等,完成题目要求的功能,从而达到掌握开发一个小型数据库管理信息系统的目的。数据库在一个信息管理系统中占有非常重要的地位,数据库结构的设计好坏将直接对应用系统的效率以及实现的效果产生影响。数据库设计一般包括以下四个部分:数据库需求分析、数据库概念结构设计、数据库逻辑结构设计、数据库物理结构实现。
此次运用了python和数据库相结合的知识对系统进行超市管理系统进行设计。在此系统中,提供了一个登录页面,登录的用户设定为存储在员工信息表里的员工编号,若不存在,则无法登录。登录系统之后,可以实现查找所有员工信息,查询某一个员工的全部信息,输入用户名,删除用户;可以实现显示所有供应商和增添供应商;可以实现显示所有帐单和增添账单。

二、需求分析
该超市零售管理信息系统旨在为超市的会员管理工作提供一个比较系统的零售管理平台,它帮助超市查询所有人员信息,供应商信息和账单信息,能够提高超市管理的效率。很大程度上帮助了超市管理者对超市的掌握与管理。通过对超市管理工作过程的内容和数据流图分析,设计如下面的实体及属性。
1、员工信息,包括的数据项有:员工编号,姓名,性别,职务,口令,权限级别、身份证号,所属部门编号等。
2、部门信息,包括的数据项有:部门编号,部门名称。
3、供应商信息,包括的数据项有:供应商编号,供应商名称,地址,邮政编码,电话号码,税号,银行帐号,开户银行,联系人,备注等。
4、会员信息,包括的数据项有:会员编号,姓名,性别,身份证号,消费总金额,积分等。
5、入库信息,包括的数据项有:入库编号,入库日期,商品编号,计量单位,入库价格,销售价格,数量,总金额,供应商编号,业务员编号等。
6、商品信息,包括的数据项有:商品编号,所属类别,数量,单价,商品名称等。
7、销售出货单主信息,包括的数据项有:销售日期,总金额,是否现金,是否会员,会员编号、收银号编号等。
8、销售出货单子信息,包括的数据项有:商品编号,数量,单价,折扣比例,金额等。

三、详细设计
3.1数据库概念结构设计
3.1.1各个实体的ER图
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3.1.2 实体联系的ER图
在这里插入图片描述
在这里插入图片描述

3.2数据库逻辑结构设计
根据ER图设计数据库如下:
员工信息表
字段名 数据类型 长度 说明 描述
snum varchar 20 主键,非空 员工编号
deptid varchar 20 外键关联到部门信息表中的部门编号,唯一 部门编号
sname varchar 20 非空 姓名
ssex varchar 20 非空 性别
swork varchar 20 非空 职务
sps varchar 20 非空 口令
slevel varchar 20 非空 权限级别
sid varchar 20 非空,唯一 身份证号

部门信息表
字段名 数据类型 长度 说明 描述
deptid varchar 20 主键,非空 部门编号
depname varchar 20 非空 部门名称

供应商信息表
字段名 数据类型 长度 说明 描述
vnum varchar 20 主键,非空 供应商编号
vname varchar 20 非空 供应商名称
vpalce varchar 20 非空 地址
vpass varchar 20 非空 邮政编码
vphone varchar 20 非空 电话号码
vsh varchar 20 非空 税号
vyz varchar 20 非空 银行账户
vkh varchar 20 非空 开户银行
vfriend varchar 20 非空 联系人
vnz varchar 20 非空 备注

VIP信息表
字段名 数据类型 长度 说明 描述
vnumhy varchar 20 主键,非空 会员编号
vnamehy varchar 20 非空 会员姓名
vsex varchar 20 非空 性别
vid varchar 20 非空,唯一 身份证号
vmoney varchar 20 非空 消费总金额
vscore varchar 20 非空 积分

入库信息表
字段名 数据类型 长度 说明 描述
wnum varchar 20 主键,非空 入库编号
wdate varchar 20 非空 入库日期
gnum varchar 20 外键关联到商品信息表中的商品编号,唯一 商品编号
wunit varchar 20 非空 计量单位
wprice varchar 20 非空 入库价格
xprice varchar 20 非空 销售价格
gstock varchar 20 非空 数量
gprice varchar 20 非空,唯一 单价
gname varchar 20 非空 商品名称

商品信息表
字段名 数据类型 长度 说明 描述
gnum varchar 20 主键,非空 商品编号
gtype varchar 20 非空 所属类别
gstock varchar 20 非空 数量
gprice varchar 20 非空 单价
gname varchar 20 非空 商品名称

销售出货单主信息表
字段名 数据类型 长度 说明 描述
adate varchar 20 主键,非空 销售日期
amoney varchar 20 非空 总金额
acash varchar 20 非空 是否现金
avip varchar 20 非空 是否会员
vnum varchar 20 外键关联到VIP信息表中的会员编号,唯一 会员编号
asy varchar 20 非空 收银号编号

销售出货单子信息表
字段名 数据类型 长度 说明 描述
gnum varchar 20 主键,非空 商品编号
bstock varchar 20 非空 数量
xprice varchar 20 非空 单价
bdis varchar 20 非空 折扣比例
bmoney varchar 20 非空

四、实现
4.1实现Python 连接 SQL Severe 数据库
import mysql.connector #引入pymssql模块

connect = mysql.connector.connect(host=“localhost”, # 数据库主机地址
user=“root”, # 数据库用户名
passwd=“123123”,
database=“runoob_db”)
if connect:
print(“连接成功”)

代码运行结果如下:
在这里插入图片描述

4.2创建数据库表
import mysql.connector #引入pymssql模块

connect = mysql.connector.connect(host=“localhost”, # 数据库主机地址
user=“root”, # 数据库用户名
passwd=“123123”,
database=“runoob_db”)
if connect:
print(“连接成功”)

cursor = connect.cursor() # 创建一个游标对象,python里的sql语句都要通过cursor来执行
cursor.execute(“create table department(
deptid varchar(20) not null primary key,
depname varchar(20) not null
)”)
cursor.execute(“create table Staff(
Snum varchar(20) not null primary key,
Sname varchar(20) not null,
Ssex varchar(20) check(Ssex in(‘男’,‘女’)) not null,
Swork varchar(20) not null,
Sps varchar(20) not null,
Slevel varchar(20) not null,
Sid varchar(20) not null unique,
deptid varchar(20) not null unique,
constraint foreign key(deptid) references department(deptid)
)”)

cursor.execute("create table vendor(\
                        vnum varchar(20) primary key,\
                        vname varchar(20),\
                        vpalce varchar(20),\
                        vpass  varchar(20),\
                        vphone varchar(20),\
                        vsh varchar(20),\
                        vyz varchar(20),\
                        vky varchar(20),\
                        vfriend varchar(20),\
                        vbz varchar(20)\
                                   )")
cursor.execute("create table vip(\
                        vnum varchar(20) primary key,\
                        vname varchar(20),\
                        vsex varchar(20),\
                        vid varchar(20) unique,\
                        vmoney varchar(20),\
                        vscore varchar(20)\
                         )")
cursor.execute("create table goods(\
                                gnum varchar(20) primary key,\
                                gtype varchar(20),\
                                gstock varchar(20),\
                                gprice varchar(20),\
                                gname  varchar(20)\
                                         )")
cursor.execute("create table warehouse(\
                        wnum varchar(20) primary key,\
                        wdate varchar(20),\
                        gnum varchar(20),\
                        wunit varchar(20),\
                        wprice varchar(20),\
                        xprice varchar(20),\
                        gstock varchar(20),\
                        gprice varchar(20),\
                        gname  varchar(20),\
                        constraint foreign key(gnum) references goods(gnum)\
                                )")

cursor.execute("create table asale(\
                            adate varchar(20) primary key,\
                            amoney varchar(20),\
                            acash varchar(20),\
                            avip varchar(20),\
                            vnum varchar(20),\
                            asy varchar(20),\
                            constraint foreign key(vnum) references vip(vnum)\
                                  )")
cursor.execute("create table bsale(\
                            gnumch varchar(20) primary key,\
                            bstock varchar(20),\
                            xprice varchar(20),\
                            bdis varchar(20),\
                            bmoney varchar(20)\
                              )")
cursor.close()  # 关闭游标
connect.close()  # 关闭连接

代码运行结果如下:
在这里插入图片描述

8个表格建立完成!

4.3 在8个表中插入数据代码如下:
import mysql.connector #引入pymssql模块

connect = mysql.connector.connect(host=“localhost”, # 数据库主机地址
user=“root”, # 数据库用户名
passwd=“123123”,
database=“runoob_db”)
if connect:
print(“连接成功”)

cursor = connect.cursor()  # 创建一个游标对象,python里的sql语句都要通过cursor来执行
sql = "insert into department(deptid, depname) values ('01','销售部')"
cursor.execute(sql)
connect.commit()  # 提交
sql = "insert into department(deptid, depname) values ('02','人事管理部')"
cursor.execute(sql)
connect.commit()  # 提交
sql="insert into staff(snum,sname,ssex,swork,sps,slevel,sid,deptid) values ('001','张三','男','推销员','123','3','123456','01')"
cursor.execute(sql)
connect.commit()  # 提交
sql = "insert into staff(snum,sname,ssex,swork,sps,slevel,sid,deptid) values ('002','小花','女','收银员','456','4','456789','02')"
cursor.execute(sql)
connect.commit()  # 提交

sql="insert into vendor(vnum,vname,vpalce,vpass,vphone,vsh,vyz,vky,vfriend,vbz) values ('0001','食品','一区','08408','136','012','173','农业银行','李四','无')"
cursor.execute(sql)
connect.commit()  # 提交
sql = "insert into vendor(vnum,vname,vpalce,vpass,vphone,vsh,vyz,vky,vfriend,vbz) values ('0002','服装','二区','08418','182','123','227','中国银行','小丽','无')"
cursor.execute(sql)
connect.commit()  # 提交
sql = "insert into vip(vnumhy,vnamehy,vsex,vid,vmoney,vscore) values ('1','小明','男','145678','100','100')"
cursor.execute(sql)
connect.commit()  # 提交
sql = "insert into vip(vnumhy,vnamehy,vsex,vid,vmoney,vscore) values ('2','小红','女','195678','200','200')"
cursor.execute(sql)
connect.commit()  # 提交
sql = "insert into goods(gnum,gtype,gstock,gprice,gname) values ('111','食品','1000','40','辣条')"
cursor.execute(sql)
connect.commit()  # 提交
sql = "insert into goods(gnum,gtype,gstock,gprice,gname) values ('113','服装','500','400','T恤')"
cursor.execute(sql)
connect.commit()  # 提交
sql = "insert into warehouse(wnum,wdate,gnum,wunit,wprice,xprice,gstock,gprice,gname) values ('011','0101','111','g','10','50','1000','40','辣条')"
cursor.execute(sql)
connect.commit()  # 提交
sql = "insert into warehouse(wnum,wdate,gnum,wunit,wprice,xprice,gstock,gprice,gname) values ('012','0102','113','kg','20','80','1000','40','饼干')"
cursor.execute(sql)
connect.commit()  # 提交
sql = "insert into asale(adate,amoney,acash,avip,vnum,asy) values ('0201','50','是','是','1','010')"
cursor.execute(sql)
connect.commit()  # 提交
sql = "insert into asale(adate,amoney,acash,avip,vnum,asy) values ('0202','50','否','否',' ','010')"
cursor.execute(sql)
connect.commit()  # 提交
sql = "insert into bsale(gnumch,bstock,xprice,bdis,bmoney) values ('111','200','40','0.9','36')"
cursor.execute(sql)
connect.commit()  # 提交
sql = "insert into bsale(gnumch,bstock,xprice,bdis,bmoney) values ('114','200','40','0.8','32')"
cursor.execute(sql)
connect.commit()  # 提交
cursor.close()
connect.close()

以staff表为例,查看插入的结果:
在这里插入图片描述

4.4创建开始界面
输入的账号为用户表里的用户编码,若不是,则输出账号不存在.
代码如下:
import tkinter as tk
import tkinter.messagebox
import mysql.connector
from PIL import ImageTk
from tkinter import messagebox
window = tk.Tk()
window.title(‘超市管理系统’) # 设置窗口的标题
window.geometry(‘500x400’) # 设置窗口的大小

#画布放在window的顶部

canvas = tk.Canvas(window, height=200, width=500)
canvas.pack(side=‘top’)
image_file = ImageTk.PhotoImage(file=‘D:\数据库课设\超市图片.jpg’)

#以图片中心定位到 (250, 100) 的位置上

image = canvas.create_image(250, 100, anchor=‘center’, image=image_file)

#输入框的提示语

tk.Label(window, text=“用户名:”).place(x=75, y=250, anchor=‘nw’)

tk.Label(window, text=“密码 :”).place(x=75, y=280, anchor=‘nw’)

#两个输入框

user_name_var = tk.StringVar()

password_var = tk.StringVar()

tk.Entry(window, textvariable=user_name_var).place(x=150, y=250, anchor=‘nw’)

tk.Entry(window, textvariable=password_var).place(x=150, y=280, anchor=‘nw’)

connect = mysql.connector.connect(host=“localhost”, # 数据库主机地址
user=“root”, # 数据库用户名
passwd=“123123”,
database=“runoob_db”)

cursor = connect.cursor()
cursor.execute(“select snum from staff”)
result=cursor.fetchall()
for i in result:
print(i)

def login():
user_name = user_name_var.get()
password=password_var.get()
if user_name not in result:
messagebox.showinfo(title=‘登录失败’, message=“用户不存在”)
else:
messagebox.showinfo(title=‘登录成功’, message=“欢迎你, {name}”.format(name=user_name))

登录按钮

tk.Button(window, text=‘登录’, command=login).place(x=280, y=350)

window.mainloop()

显示结果如下:
在这里插入图片描述
在这里插入图片描述

4.5实现数据库信息的“增删查”功能
代码如下:
import mysql.connector
import tkinter as tk
import tkinter.messagebox

def xianshiYH():
connect = mysql.connector.connect(host=“localhost”, # 数据库主机地址
user=“root”, # 数据库用户名
passwd=“123123”,
database=“runoob_db”)

cursor = connect.cursor()
sql="select snum from staff"
try:
    cursor.execute(sql)
    result = cursor.fetchall()
    tkinter.messagebox.showinfo(result)
except:
    connect.rollback()
connect.close()

#数据库模糊条件查询
def select():
connect = mysql.connector.connect(host=“localhost”, # 数据库主机地址
user=“root”, # 数据库用户名
passwd=“123123”,
database=“runoob_db”)

cursor = connect.cursor()
sql = "select *  from staff where staff.sname like'%s'"%('%'+v13.get()+'%')
try:
    cursor.execute(sql)
    results = cursor.fetchall()
    tkinter.messagebox.showinfo(results)
except:
    connect.rollback()
connect.close()

#数据库删除操作
def delete():
connect = mysql.connector.connect(host=“localhost”, # 数据库主机地址
user=“root”, # 数据库用户名
passwd=“123123”,
database=“runoob_db”)

cursor=connect.cursor()
sql = "delete from staff where gnum='%s'" % (v11.get())
try:
    cursor.execute(sql)
    connect.commit()
    tkinter.messagebox.showinfo("提示","用户数据删除成功")
except:
    connect.rollback()
connect.close()

def xianshiGYS():
connect = mysql.connector.connect(host=“localhost”, # 数据库主机地址
user=“root”, # 数据库用户名
passwd=“123123”,
database=“runoob_db”)

cursor = connect.cursor()
sql="select vname from Vendor"
try:
    cursor.execute(sql)
    result2 = cursor.fetchall()
    tkinter.messagebox.showinfo(result2)
except:
    connect.rollback()
connect.close()

#数据库添加操作
def GYS_add():
# 连接数据库
connect = mysql.connector.connect(host=“localhost”, # 数据库主机地址
user=“root”, # 数据库用户名
passwd=“123123”,
database=“runoob_db”)

# 创建光标
cursor = connect.cursor()
# 编写SQL语句
sql = "insert into vendor(vnum,vname,vpalce,vpass,vphone,vsh,vyz,vky,vfriend,vbz)\
                   values('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')" % (v1.get(), v2.get(), v3.get(), v4.get(),\
                   v5.get(), v6.get(), v7.get(), v8.get(), v9.get(), v10.get())
# 执行SQL语句,并且输出完成提示信息,否则回滚
try:
    cursor.execute(sql)
    connect.commit()
    tkinter.messagebox.showinfo("提示", "供应商数据添加成功")
except:
    connect.rollback()
# 关闭数据库连接,防止泄露
connect.close()

def xianshizhangdan():
connect = mysql.connector.connect(host=“localhost”, # 数据库主机地址
user=“root”, # 数据库用户名
passwd=“123123”,
database=“runoob_db”)

cursor = connect.cursor()
sql="select gnum,bmoney from Vendor"
try:
    cursor.execute(sql)
    result3 = cursor.fetchall()
    tkinter.messagebox.showinfo(result3)
except:
    connect.rollback()
connect.close()

def zhangdan_add():
# 连接数据库
connect = mysql.connector.connect(host=“localhost”, # 数据库主机地址
user=“root”, # 数据库用户名
passwd=“123123”,
database=“runoob_db”)

# 创建光标
cursor = connect.cursor()
# 编写SQL语句
sql = "insert into bsale(gnumch,bstock,xprice,bdis,bmoney)\
                   values('%s','%s','%s','%s','%s')" % (v21.get(), v22.get(), v23.get(), v24.get(),v25.get())
# 执行SQL语句,并且输出完成提示信息,否则回滚
try:
    cursor.execute(sql)
    connect.commit()
    tkinter.messagebox.showinfo("提示", "账单数据添加成功")
except:
    connect.rollback()
# 关闭数据库连接,防止泄露
connect.close()

#查询某一用户界面
def Staff_select():
global window_function
global v13
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)
v13 =tk.StringVar()
entry1=tk.Entry(window_function,show=None,textvariable=v13).grid(row = 1,column =1,pady=40)
button = tk.Button(window_function, text=“查找”, command=select).place(relx=0.3,rely=0.5)
button2 = tk.Button(window_function, text=“返回”, command=chaneg_main).place(relx=0.5,rely=0.5)
window_function.mainloop()

#删除某一用户界面
def Staff_delete():
global window_function
global v11
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)
v6 =tk.StringVar()
entry1=tk.Entry(window_function,show=None,textvariable=v11).grid(row = 1,column =1,pady=40)
button = tk.Button(window_function, text=“删除”, command=delete,anchor = ‘s’).place(relx=0.2,rely=0.5)
button2 = tk.Button(window_function, text=“返回”, command=chaneg_main).place(relx=0.4,rely=0.5)
window_function.mainloop()

#添加供应商界面
def Vendor_add():
#构建全集变量,方便上面的函数调用
global window_function
global v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
#生成窗口
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)
tk.Label(window_function, text=“请输入电话号码:”).grid(row=10, column=0, padx=20, pady=20)
#定义变量记录输入信息
v1 = tk.StringVar()
v2 = tk.StringVar()
v3 = tk.StringVar()
v4 = tk.StringVar()
v5 = tk.StringVar()
v6 = tk.StringVar()
v7 = tk.StringVar()
v8 = tk.StringVar()
v9 = tk.StringVar()
v10 = 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)
entry5 = tk.Entry(window_function, show=None, textvariable=v5).grid(row=5, column=1)
entry6 = tk.Entry(window_function, show=None, textvariable=v6).grid(row=6, column=1)
entry7 = tk.Entry(window_function, show=None, textvariable=v7).grid(row=7, column=1)
entry8 = tk.Entry(window_function, show=None, textvariable=v8).grid(row=8, column=1)
entry9 = tk.Entry(window_function, show=None, textvariable=v9).grid(row=9, column=1)
entry10 = tk.Entry(window_function, show=None, textvariable=v10).grid(row=10, column=1)
#生成按钮
button = tk.Button(window_function, text=“添加”, command=GYS_add).place(relx=0.3,rely=0.9)

button2 = tk.Button(window_function, text="返回", command=chaneg_main).place(relx=0.5,rely=0.9)
#显示窗口
window_function.mainloop()

#添加账单界面
def bsale_add():
#构建全集变量,方便上面的函数调用
global window_function
global v21,v22,v23,v24,v25
#生成窗口
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)
#定义变量记录输入信息
v21 = tk.StringVar()
v22 = tk.StringVar()
v23 = tk.StringVar()
v24 = tk.StringVar()
v25 = tk.StringVar()
#生成输入框
entry1 = tk.Entry(window_function,show=None,textvariable=v21).grid(row = 1,column =1)
entry2 = tk.Entry(window_function,show=None,textvariable=v22).grid(row = 2,column =1)
entry3 = tk.Entry(window_function,show=None,textvariable=v23).grid(row = 3,column =1)
entry4 = tk.Entry(window_function, show=None, textvariable=v24).grid(row=4, column=1)
entry5 = tk.Entry(window_function, show=None, textvariable=v25).grid(row=5, column=1)
#生成按钮
button = tk.Button(window_function, text=“添加”, command=zhangdan_add).place(relx=0.3,rely=0.9)

button2 = tk.Button(window_function, text="返回", command=chaneg_main).place(relx=0.5,rely=0.9)
#显示窗口
window_function.mainloop()

#显示所有用户界面
def change_xianshiYH():
# 销毁画布
window.destroy()
# 生成新界面
xianshiYH()
#查询某一用户界面
def change_yhchaxvn():
window.destroy()
Staff_select()

#删除某一用户界面跳转
def change_yhshanchu():
window.destroy()
Staff_delete()

#显示所有供应商
def change_xianGYS():
window.destroy()
xianshiGYS()

#添加供应商
def change_addGYS():
window.destroy()
Vendor_add()
#显示所有账单
def change_xianshizhangdan():
window.destroy()
xianshizhangdan()
#显示增添账单
def change_addzhangdan():
window.destroy()
bsale_add()

#用户界面
def Yonghu():
window_function = tk.Tk()
window_function.title(“超市管理系统用户界面”)
window_function.geometry(‘500x400’)
# 生成画布,销毁后生成新的画布实现跳转
page = tk.Frame(window_function)
page.pack()
tk.Label(window_function, text=“用户功能实现”, font=(“黑体”, 20)).pack(pady=10)
button1 = tk.Button(window_function, text=“所有用户”, command=change_xianshiYH).pack(pady=10)
button2 = tk.Button(window_function, text=“查询用户”, command=change_yhchaxvn).pack(pady=10)
button3 = tk.Button(window_function, text=“删除用户”, command=change_yhshanchu).pack(pady=10)
window_function.mainloop()
#供应商界面
def GYS():
window_function1 = tk.Tk()
window_function1.title(“超市管理系统供应商界面”)
window_function1.geometry(‘500x400’)
# 生成画布,销毁后生成新的画布实现跳转
page = tk.Frame(window_function1)
page.pack()
tk.Label(window_function1, text=“供应商功能实现”, font=(“黑体”, 20)).pack(pady=10)
button1 = tk.Button(window_function1, text=“所有供应商”, command=change_xianGYS).pack(pady=10)
button2 = tk.Button(window_function1, text=“添加供应商”, command=change_addGYS).pack(pady=10)
window_function1.mainloop()

def zhangdan():
window_function2 = tk.Tk()
window_function2.title(“超市管理系账单界面”)
window_function2.geometry(‘500x400’)
# 生成画布,销毁后生成新的画布实现跳转
page = tk.Frame(window_function2)
page.pack()
tk.Label(window_function2, text=“账单功能实现”, font=(“黑体”, 20)).pack(pady=10)
button1 = tk.Button(window_function2, text=“所有账单”, command=change_xianGYS).pack(pady=10)
button2 = tk.Button(window_function2, text=“查询账单”, command=change_addGYS).pack(pady=10)
window_function2.mainloop()
#主界面
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=Yonghu).pack(pady=10)
button2 = tk.Button(window, text=“供应商信息”, command=GYS).pack(pady=10)
button3 = tk.Button(window, text=“账单”, command=zhangdan).pack(pady=10)
window.mainloop()

#主界面跳转
def chaneg_main():
window_function.destroy()
mainpage()

#主函数生成主界面
if name == ‘main’:
mainpage()
代码实现:
系统主界面:
在这里插入图片描述

用户功能的实现:
在这里插入图片描述

查找所有用户,显示用户编码:
在这里插入图片描述

查找某一用户代码实现的界面:
在这里插入图片描述

供应商的功能:
(1)查找所有供应商
在这里插入图片描述

增添供应商:
原供应商表:
在这里插入图片描述
在这里插入图片描述

后供应商:
在这里插入图片描述

添加成功!
四、总结与期望
此次的课设是针对数据库知识的回顾和运用,在做此项目中,发现自己的知识面还是很薄的,要继续学习。有关于数据库与Python的连接这块知识,我也是在这次实验中学到的。当然,因为此次的课设因为本人的技术有限,做的简陋了一点。希望在之后,有一定的知识积累之后,能够做出较为完美的、实用性强的系统。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值