当前位置:首页 » 《随便一记》 » 正文

零售药店管理系统 Python+MySQL数据库

26 人参与  2023年04月01日 13:45  分类 : 《随便一记》  评论

点击全文阅读


零售药店管理系统 【Python+数据库】

1 背景介绍

结合本学期所学的Python和数据库完成一个零售药店管理系统

2 问题定义

零售药店管理系统通过录入零售药品信息、员工信息、客户信息、供应商信息、库房信息和管理员登录信息,实现对药品、员工、客户、供应商、库房和管理员信息的增加、删除、修改和查找四项基本功能,同时能对药店的销售流水、进货信息等记录,并实现数据分析可视化功能,以此决定营业主方向等其他一些功能。

3 需求分析

3.1功能需求

3.1.1基本功能
1.基础信息管理:药品信息、员工信息、客户信息、供应商信息等。
2.进货管理:入库登记、入库登记查询、入库报表等。
3.库房管理:库存查询、库存盘点、库存报表等。
4.销售管理:销售登记、销售报表及相应的查询等。
5.系统维护:用户登录管理、系统设置和修改密码。

3.2数据库需求

3.2.1需要存储数据信息

实体
1.药品(药品编号,药品名称,药品价格,供应商,药品数量,所在库房);
2.员工(员工编号,员工姓名,性别,年龄,电话);
3.客户(客户VIP号,姓名,性别,年龄,电话,住址);
4.供应商(供货商编号,供应商名称,供应药品名称,供应商电话,供应商地址);
5.库房(库房编号,名称,地址);
6.管理员登录(序号,用户号,密码);

功能
7.销售流水(销售流水号,销售员工姓名,销售药品编号,销售药品名称,销售日期,销售数量,销售单价,销售总金额);
8.进货(进货日期,库房编号,库房名称,药品名称,药品进价,进货数量);
9.库存(库房名称,药品编号,药品名称,库存量);放入零售药品信息里一起管理
10.登录(用户名,密码);

3.2.2分别对应数据库里的二维表信息

1.Drug(Drugnum,Drugname,Drugprice,DrugSup,Drugnumber,Drughouse);
2.Staff(Staffnum,Staffname,Ssex,Sage,Sphone);
3.Consumers(Cnum,Cname,Csex,Cage,Cphone,Caddress);
4.Suppliers(Supnum,Supname,Supdrug,Supphone,Supaddress);
5.House(Housenum,Housename,Houseaddress);
6.Login(num,name,password);
7.Sale(Salenum,Staffname,Drugnum,Drugname,Saledate,Salenumber,Saleprice,Saletotal);
8.Loadin(Datenum,Housenum,Housename,Drugname,Drugpricein,Drugsum);

4 数据库分析

4.1数据字典
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4.2数据流图
在这里插入图片描述

在这里插入图片描述

4.3业务流程图
在这里插入图片描述

5 系统设计

5.1数据库设计

5.1.1概念模型设计
在这里插入图片描述

在这里插入图片描述

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

6 功能系统模块设计

6.1登录功能
伪代码:
1.创建登录窗口;
2.添加“用户名”和“密码”标签以及两个多行文本框;
3.添加“登录”和“退出”两个按钮;
4.连接数据库,检查用户名和密码;
5.登录失败,报出warning警告;
流程图:
在这里插入图片描述

import tkinter as tkfrom tkinter import messageboximport pymysqlfrom MainPage import MainPagefrom PIL import Image, ImageTkdef Landing():    root=tk.Tk()    root.geometry('820x400')    root.title('药店员工登录界面')    image_file = Image.open("D:\\百度下载\\12.jpg")    photo = ImageTk.PhotoImage(image_file)    tk.Label(root,image=photo).pack()    username = tk.StringVar()    password = tk.StringVar()    Lable1 = tk.Label(root, text='账号:', font=('Verdana', 13), fg='black')    Lable1.place(relx=0.4, rely=0.4)    entry1 = tk.Entry(root, textvariable=username,width=15, font=('Verdana', 10, 'bold', 'italic'))    entry1.place(relx=0.5, rely=0.4)    Lable2 = tk.Label(root, text='密码:', font=('Verdana', 13), fg='black')    Lable2.place(relx=0.4, rely=0.5)    entry2 = tk.Entry(root, textvariable=password,show='*',width=15, font=('Verdana', 10))    entry2.place(relx=0.5, rely=0.5)    def Login():        db = pymysql.connect(host="localhost", user="root", passwd="12345", db="database")        cur = db.cursor()        sql = f"select * from Login where name='{username}' and password='{password}'"        cur.execute(sql)        db.commit()        data = cur.fetchall()        if data != "":            root.destroy()            MainPage()        else:            messagebox.showwarning(title='警告', message='登陆失败!请检查账号密码输入是否正确!')    tk.Button(root, text="登录", command=Login).place(relx=0.4,rely=0.7)    tk.Button(root, text='退出', command=quit).place(relx=0.55,rely=0.7)    root.mainloop()if __name__=='__main__':    Landing()

运行效果图
在这里插入图片描述
6.2基本操作功能
伪代码:
1.创建主界面窗体;
2.添加“基本操作”菜单;
3.为“基本操作”菜单添加子菜单“零售药品信息”、“员工信息”、“客户信息”、“供应商信息”和“库房信息”;
4.将子菜单“零售药品信息”、“员工信息”、“客户信息”、“供应商信息”和“库房信息”连接数据库,并提供相应的增/删/改/查操作;
流程图:
在这里插入图片描述

import tkinter as tkimport Druginfoimport Aboutimport Consumersimport Houseimport Saleimport Staffinfoimport Suppliersinfoimport Loadinimport Logininfoimport Analysefrom PIL import Image, ImageTkdef MainPage():    top=tk.Tk()    top.title('零售药店管理系统  v0.0.1')    top.geometry('820x400')    image_file = Image.open("D:\\百度下载\\11.jpg")    photo = ImageTk.PhotoImage(image_file)    tk.Label(top,image=photo).pack()    menubar=tk.Menu(top)    menubar1=tk.Menu(menubar)    menubar2=tk.Menu(menubar)    menubar3=tk.Menu(menubar)    menubar4= tk.Menu(menubar)    menubar5=tk.Menu(menubar)    menubar.add_cascade(label='基本操作',menu=menubar1)    menubar1.add_command(label='零售药品信息',command=Druginfo.Drug)    menubar1.add_separator()    menubar1.add_command(label='员工信息', command=Staffinfo.Staff)    menubar1.add_separator()    menubar1.add_command(label='客户信息', command=Consumers.Consumers)    menubar1.add_separator()    menubar1.add_command(label='供应商信息', command=Suppliersinfo.Suppliers)    menubar1.add_separator()    menubar1.add_command(label='库房信息', command=House.House)    menubar.add_cascade(label='系统管理', menu=menubar2)    menubar2.add_command(label='登录管理',command=Logininfo.Login)    menubar.add_cascade(label='财务流通',menu=menubar3)    menubar3.add_command(label='销售记录',command=Sale.Sale)    menubar3.add_separator()    menubar3.add_command(label='进货记录', command=Loadin.Loadin)    menubar.add_cascade(label='数据可视化',menu=menubar4)    menubar4.add_command(label='药品——价格分析',command=Analyse.analyse1)    menubar4.add_separator()    menubar4.add_command(label='药品入库分析',command=Analyse.analyse2)    menubar4.add_separator()    menubar4.add_command(label='进货数量分析',command=Analyse.analyse3)    menubar4.add_separator()    menubar4.add_command(label='进货药品价格分析',command=Analyse.analyse4)    menubar4.add_separator()    menubar4.add_command(label='药品销量分析',command=Analyse.analyse5)    menubar.add_cascade(label='关于', menu=menubar5)    menubar5.add_command(label='帮助', command=About.About)    top['menu']=menubar    top.mainloop()if __name__=='__main__':    MainPage()

运行效果图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
有需要完整代码的同学,希望点赞+收藏,再留言,邮箱地址切勿留错!!!
鉴于好几个铁汁的邮箱都留错了,还是转成网盘吧!
链接:https://pan.baidu.com/s/1UtHRfCE_1EMxvAwVBKtDaQ?pwd=r4pp
提取码:r4pp


点击全文阅读


本文链接:http://zhangshiyu.com/post/57790.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1