超市管理系统详细设计文档已完成.docx
《超市管理系统详细设计文档已完成.docx》由会员分享,可在线阅读,更多相关《超市管理系统详细设计文档已完成.docx(36页珍藏版)》请在冰豆网上搜索。
超市管理系统详细设计文档已完成
1.引言
1.1编写目的
本文档为超市进销存管理系统详细设计文档,是对该项目进行详细设计,在概要设计的基础上进一步明确系统结构,详细的介绍系统的各个模块,为进行后面的实现和测试做准备。
本阶段完成系统的大致设计并明确系统的数据结构和软件结构。
讲一个用户需求转化为软件表示的过程。
本详细设计说明书的预期读者为本项目小组的成员以及对该系统感兴趣,在以后相对系统进行扩展和维护的人员。
1.2项目背景
此系统产品名为:
超市进销存管理系统。
超市进销存管理系统旨在用计算机对超市日常进销存进行管理。
本项目针对的用户是中小型超市,实现C/S模式,超市数据库储存在服务器上,实现在多个客户端进行管理。
同时具有权限管理的功能。
系统能够存储商品信息,以及超市进销存的记录,便管理者对超市进行维护,包括进货管理、销售管理、销售退货、仓库管理、会员管理、员工管理、权限分配等,这主要包括:
商品信息的录入、修改和删除。
员工信息的录入、修改、删除、查看员工类型、查看员工工作绩效、修改员工管理权限。
进货记录的录入、查看、进货情况的分析。
销售记录的录入、查看、销售分析。
仓库商品情况的查看、对有问题商品的转移,过期商品、即将过期商品的警示。
登录权限的分配设置。
能够对销售情况进行分析。
包括指定时间段的销售分析、消费者的男女比例分析、年龄分析等。
能够提供一定的安全机制,指定不同登陆者的管理权限。
防止误删数据。
1.3定义
专业术语
定义
系统
超市进销存管理系统
模块
相对独立的功能
数据库
所有数据的逻辑设备,是数据的存储仓
角色
使用系统的用户
权限
相应级别的用户可以访问的数据和可以执行的操作的围
SQLServer2008
一种商业管理数据库,可实现数据的存储和访问
VS2010
微软开发的一款程序编译软件
C#
一种程序设计语言
1.4参考资料
a.超市进销存管理系统计划书;
b.超市进销存管理系统用户需求报告;
c.超市进销存管理系统总体设计说明书;
2.总体设计
本软件是为了让便超市管理人员对进销存的管理开发的要求系统界面友好,使用便,提供对商品信息、用户信息、商品销售情况的编辑、查询、统计报表等全面的数据管理功能,同时使收银员能便的对每一位客户的消费进行扫描、收费、输入等操作,便进货人员进货时对商品进行统计、存储。
同时还能便管理员对所有记录进行查看、删除、以及管理不同角色的权限。
此外系统还具有一定的安全性和可维护性。
2.1需求概述
系统协助中小型超市工作人员实现各种日常事物的管理。
其中,收银员具有销售管理的权限。
进货人具有进货管理的权限。
仓库管理员具有仓库管理的权限。
一般工作人员具有查看自己信息和工作情况的权限。
经理具有查看销售情况、进货情况、销售分析、进货分析等权限。
此外,对于系统本身的维护,系统具备一定的安全机制和信息备份机制,对用户分级管理,设置用户权限,保证系统安全性。
2.2程序系统的结构
2.2.1系统模块调用关系图
2.2.2数据库表结构图
UserInfo表
存储登录信息
列名
描述
功能
USERID
登录Id
主键
USERNO
登录用户名
USERPWD
登录密码
USERTYPEID
登录用户类型
外键(UserType表->USERTYPEID)
USERSTATUS
用户状态
UserType表
登录用户类型
列名
描述
功能
USERTYPEID
登录用户Id
主键
USERTYPENAME
用户类型
Goodsunit_info表
商品单位信息
列名
描述
功能
GOODSUNITID
商品单位Id
主键
GOODSUNIT
商品单位名字
GoodsType_first表
商品大类信息
列名
描述
功能
FIRST_TYPEID
商品大类Id
主键
FIRST_TYPENAME
商品大类名称
GoodsType_second表
商品小类信息
列名
描述
功能
SECOND_TYPEID
商品小类Id
主键
SECOND_TYPENAME
商品小类名称
FIRST_TYPEID
商品大类Id
外键(GoodsType_first->FIRST_TYPEID)
GoodsType_info表
商品细类信息
列名
描述
功能
GOODSTYPEID
商品细类Id
主键
GOODSTYPE
商品细类名称
SECOND_TYPEID
商品中类Id
外键(GoodsType_second->SECOND_TYPEID)
Goods_info表
商品信息
列名
描述
功能
GOODSID
商品Id
主键
GOODSNAME
商品名称
GOODSCODE
商品条形码
唯一约束
GOODSMODEL
商品类型
GOODSUNITID
商品单位id
外键(Goodsunit_info->GOODSUNITID)
GOODSUNITID_1
辅助商品单位id
外键(Goodsunit_info->GOODSUNITID)
GOODSUNITRELATION
辅助单位关系
GOODSBID
进价
GOODSPRICE
售价
GOODSSHELFLIFE
保质期
EARLYWARNING
剩余数量警告
GOODSTYPEID
商品类型id
外键(GoodsType_info->GOODSTYPEID)
GOODSREMARK
备注
Employee_info表
员工信息
列名
描述
功能
EMPLOYEEID
员工Id
主键
EMPLOYEENAME
员工姓名
EMPLOYEESEX
性别
DATEOFBIRTH
出生日期
EMPLOYEEPHONE
员工
EMPLOYEEADRESS
住址
ASSISTNAME
联系人姓名
ASSISTPHONE
联系人
EMPLOYEESALARY
工资
EMPLOYEEBONUS
奖金
USERTYPEID
用户类型id
外键(UserType表->USERTYPEID)
EMPLOYEEMARK
备注
PurchaseInfo表
进货信息
列名
描述
功能
PURCHASEID
进货记录Id
主键
SUPPLIERID
供应商id
外键(SUPPLIERINFO->SUPPLIERID)
PURCHASEDATA
操作日期
OPERATORID
经办人id
外键(UserInfo->userid)
PURCHASEPRICE
总金额
REALPAYMENT
实付金额
PURCHASEREMARK
备注
ASSESSFLAG
是否审核
Purchasedetail表
进货详细信息
列名
描述
功能
PURCHASEID
进货记录Id
外键(PurchaseInfo->PURCHASEID)
GOODSCODE
商品条形码
外键(Goods_Info->GOODSCODE)
GOODSAMOUNT
商品数量
DATAOFMANUFACTURE
生产日期
DETAILREMARK
备注
Re_PurchaseInfo表
退货信息
列名
描述
功能
RE_PURCHASEID
退货记录Id
主键
SUPPLIERID
供应商id
外键(SUPPLIERINFO->SUPPLIERID)
RE_PURCHASEDATA
操作日期
RE_OPERATORID
经办人id
外键(UserInfo->userid)
RE_PURCHASEPRICE
总金额
REALRECEIVABLE
实付金额
RE_PURCHASEREMARK
备注
RE_ASSESSFLAG
是否审核
Re_Purchasedetail表
退货详细信息
列名
描述
功能
RE_PURCHASEID
退货记录Id
外键(Re_PurchaseInfo->Re_PURCHASEID)
GOODSCODE
商品条形码
外键(Goods_Info->GOODSCODE)
GOODSAMOUNT
商品数量
RE_DETAILREMARK
备注
DATAOFMANUFACTURE
生产日期
SaleInfoo表
销售信息
列名
描述
功能
SALEID
销售记录Id
主键
VIPID
客户id
外键(VIPINFO->VipID)
SALEDATA
销售日期
OPERATORID
经办人id
外键(UserInfo->userid)
TOTALPRICE
总金额
CASHPAYMENT
现金支付金额
BANKCARDPAYMENT
银行卡支付金额
DISCOUNTPRICE
打折后金额
SaleDetail表
退货详细信息
列名
描述
功能
SALEID
销售记录Id
外键(SaleInfo->SALEID)
GOODSCODE
商品条形码
外键(Goods_Info->GOODSCODE)
GOODSAMOUNT
商品数量
SALEREMARK
备注
SaleInfo表
销售信息
列名
描述
功能
RE_SALEID
销售退货记录Id
主键
VIPID
客户id
外键(VIPINFO->VipID)
RE_SALEDATA
退货日期
OPERATORID
经办人id
外键(UserInfo->userid)
RE_TOTALPRICE
退货总金额
RE_REALPAYMENT
退货实退金额
RE_REMARK
退货备注(原因)
Re_SaleDetail表
销售退货详细信息
列名
描述
功能
RE_SALEID
销售退货记录Id
外键(Re_SaleInfo->Re_SALEID)
GOODSCODE
商品条形码
外键(Goods_Info->GOODSCODE)
GOODSAMOUNT
商品数量
RESALEREMARK
退货备注备注
Supplierinfo表
供应商信息
列名
描述
功能
SUPPLIERID
供应商Id
主键
SUPPLIERNAME
供应商名称
CONTACT
联系人
CONTACTNUMBER
联系人
CONTACTPHONE
联系人手机
ADRESS
地址
SUPPLIERREMARK
备注
StockInfoo表
仓库信息
列名
描述
功能
GOODSCODE
商品条形码
主键、外键(Goods_Info->GOODSCODE)
STOCKNUMBER
库存数量
DATAOFMANUFACTURE
生产日期
StockProbleminfo表
问题仓库信息
列名
描述
功能
GOODSCODE
商品条形码
主键、外键(Goods_Info->GOODSCODE)
STOCKNUMBER
问题数量
OPERATOR
经办人id
外键(UserInfo->userid)
REMOVEDATA
移进日期
PROBLEM_REMARK
备注(问题描述)
DATAOFMANUFACTURE
生产日期
StockRecord表
仓库流水信息
列名
描述
功能
STOCKRECORDID
流水id
RECORDTYPE
流水类型
OPERATORID
经办人id
外键(UserInfo->userid)
GOODSCODE
商品条形码
GOODSMOUNT
商品数量
RECORDREMARK
备注
DATAOFMANUFACTURE
生产日期
OPERADATA
操作日期
Permission表
权限信息
列名
描述
功能
USERID
用户id
主键、外键(UserInfo->userid)
SELL
销售权限
RE_SELL
销售退货权限
PURCHASE
进货权限
RE_PURCHASE
进货退货权限
STOCKVIEW
查看仓库权限
EMPLOYEEVIEW
查看员工权限
EMPLOYEEADD
增加员工权限
EMPLOYEEMODIFY
修改员工权限
EMPLOYEEDELETE
删除员工权限
SUPPLIERVIEW
供应商查看权限
SUPPLIERADD
增加供应商权限
SUPPLIERMODIFY
修改供应商权限
SUPPLIERDELETE
删除供应商权限
RECORDVIEW
查看记录权限
RECORDMODIFY
修改记录权限
GOODSVIEW
查看商品权限
GOODSADD
增加商品权限
GOODSMODIFY
修改商品权限
UNITADD
增加商品单位权限
TYPEADD
增加商品类型权限
JOURNALINGVIEW
报表查看权限
PASSWORDMODIFY
修改密码权限
PERMISSIONSET
修改权限权限
USERTYPEADD
增加用户类型权限
3.程序描述
3.1销售管理模块
3.1.1模块名:
销售录入
编号1.1
功能:
提供窗口让销售人员输入销售的商品信息,vip信息,更改数据库数据
输入项目:
角色输入的商品信息
输出项目:
根据角色输入的信息更新数据库文件
算法:
1.根据操作时间自动生成销售记录id。
2.判断要提交容是否合法,不合法给出相应提示。
3.事务更新数据库,若中间环节出错,给出相应提示。
点击“销售出货”菜单项
弹出销售出货界面
供用户输入
确定录入此商品?
输入合法?
将此商品信息显示到Table中
退出
确定提交?
根据Table表信息批量事务更新数据库
继续录入商品信息
弹出错误信息,重新输入
程序流程图:
接口:
1.销售录入窗口中商品id号可通过商品管理模块传递参数。
储存分配:
通过销售录入模块,商品销售信息会更新到相应数据库,存储分配案如下:
1.销售信息更新到SaleInfo数据表。
2.销售商品详情更新到SaleDetail数据表。
3.根据商品销售数量更新StockInfo表对应的商品数量。
4.仓库出入记录信息更新到StockRecord表。
限制条件:
1.限制操作用户更改操作人信息
2.限制操作人输入不存在的VIP信息、供应商信息、商品信息。
3.限制销售数量大与库存数量。
测试要点:
1.对输入框自动检测系统测试。
2.对限制条件测试。
3.对大数据批量更新测试。
4.对商品数量为0时测试。
5.对促销情况测试。
3.1.2模块名:
销售退货
编号1.2
功能:
提供窗口让销售人员输入退货的商品信息,vip信息,更改数据库数据
输入项目:
角色输入的商品信息
输出项目:
根据色输入的信息更新数据库文件
算法:
1.根据操作时间自动生成销售退货记录id。
2.判断要提交容是否合法,不合法给出相应提示。
3.事务更新数据库,若中间环节出错,给出相应提示。
点击“销售退货”菜单项
弹出销售出货界面
供用户输入
确定登记此商品?
输入合法?
将此商品信息显示到Table中
退出
确定提交?
根据Table表信息批量事务更新数据库
继续录入商品信息
弹出错误信息,重新输入
此商品是否符合退货标准?
N
N
Y
Y
N
Y
Y
N
程序流程图:
接口:
1销售退货窗口中商品id号可通过商品管理模块传递参数。
储存分配:
通过销售退货模块,商品退货信息会更新到相应数据库,存储分配案如下:
2销售退货信息更新到Re_SaleInfo数据表。
3销售退货商品详情更新到Re_SaleDetail数据表。
4根据商品销售数量更新StockProblemInfo表对应的商品数量。
限制条件:
1限制操作用户更改操作人信息
测试要点:
1对输入框自动检测系统测试。
2对限制条件测试。
3大数据批量更新测试。
4商品数量为0时测试。
5对促销商品退货测试。
3.2进货管理模块
3.2.1模块名:
进货录入
编号2.1
功能:
提供窗口让进货人员输入进货的商品信息,供应商信息,更改数据库数据
输入项目:
角色输入的商品信息
输出项目:
根据角色输入的信息更新数据库文件
点击“进货录入”菜单项
弹出进货录入界面
供用户输入
确定录入此商品?
输入合法?
将此商品信息显示到Table中
退出
确定提交?
根据Table表信息批量事务更新数据库
继续录入商品信息
弹出错误信息,重新输入
程序流程图:
算法:
1.根据操作时间自动生成进货记录id。
2.判断要提交容是否合法,不合法给出相应提示。
3.事务更新数据库,若中间环节出错,给出相应提示。
接口:
1进货录入窗口中商品id号可通过商品管理模块传递参数。
储存分配:
通过进货录入模块,进货信息会更新到相应数据库,存储分配案如下:
1进货信息更新到PurchaseInfo数据表。
2进货商品详情更新到PurchaseDetail数据表。
3根据进货数量和商品的生产日期更新StockInfo表对应的商品数量和生产日期。
4仓库出入记录信息更新到StockRecord表。
限制条件:
1操作用户更改操作人信息
2限制操作人输入不存在的VIP信息、供应商信息、商品信息。
测试要点:
1对输入框自动检测系统测试。
2对限制条件测试。
3对大数据批量更新测试。
4对商品数量为0时测试。
5对新商品录入测试。
3.2.2模块名:
进货退货
编号2.2
功能:
提供窗口让进货人员输入退货的商品信息,供应商信息,更改数据库数据
输入项目:
角色输入的商品信息
输出项目:
根据色输入的信息更新数据库文件
算法:
1.根据操作时间自动生成退货记录id。
2.判断要提交容是否合法,不合法给出相应提示。
3.事务更新数据库,若中间环节出错,给出相应提示。
N
N
Y
Y
N
Y
Y
N
点击“进货退货”菜单项
弹出进货退货界面
供用户输入
确定登记此商品?
输入合法?
将此商品信息显示到Table中
退出
确定提交?
根据Table表信息批量事务更新数据库
继续录入商品信息
弹出错误信息,重新输入
此商品是否符合退货标准?
程序流程图:
接口:
1退货窗口中商品id号可通过商品管理模块传递参数。
储存分配:
通过退货模块,退货信息会更新到相应数据库,存储分配案如下:
1退货信息更新到Re_PurchaseInfo数据表。
2退货商品详情更新到Re_PurchaseDetail数据表。
3根据退货数量和商品的生产日期更新StockProblemInfo表对应的商品数量和生产日期。
限制条件:
1限制操作用户更改操作人信息
2限制操作人输入不存在的供应商信息、商品信息。
测试要点:
1对输入框自动检测系统测试。
2对限制条件测试。
3对大数据批量更新测试。
4对商品数量为0时测试。
3.3仓库管理模块
3.3.1模块名:
查看仓库
编号3.1
功能:
提供窗口让具有权限的角色查看仓库信息
输入项目:
角色输入的检索信息
输出项目:
根据角色输入的信息访问数据库,将结果显示到窗口中
Y
Y
N
N
点击“仓库查看”菜单项
弹出仓库查看界面
供用户输入检索信息
退出
根据检索信息设置约束条件
检索数据将过期、警报数量的商品信息高亮显示
将数据显示在窗口
点击“查询按钮”?
点击“退出”?
程序流程图:
算法:
无特殊算法
接口:
无
储存分配:
通过查看仓库模块,输入查询信息信息查询相应数据库,不进行分配。
限制条件:
无,用户可随意输入数据查询
测试要点:
1对输入数据测试
2对输入全部条件测试
3对0输入测试
4对过期提醒、数量警报测试
3.3.1模块名:
仓库调度
编号3.1
功能:
提供窗口让具有权限的角色查看进行仓库调度
输入项目:
窗口中DataGridView被选中的数据行,以及角色输入的调度数量、原因。
输出项目:
根据角色选择的数据行以及角色输入的调度数量、原因,更新相应的数据库。
算法:
1.自动事务更新数据库
退出
输入合法?
是否选择了数据行?
点击“确定”按钮
输入调度数据
更新数据库
选择数据行
点击“仓库调度”菜单项
N
Y
Y
N
程序流程图:
接口:
1通过右键仓库中“商品调度”传递数据到“商品调度”模块
储存分配:
通过查看仓库调度模块,右键相应商品进行调度,存储分配如下:
1.根据调度情况更新StockInfo数据表。
2.根据调度情况更新StockProblemInfo数据表。
3.根据仓库出入更新StockRecord数据表
限制条件:
1每次仅允对一个商品调度。
2.调度数量不能大仓库剩余数量。
测试要点:
1.对输入框数据自动检测测试
2.对没有选择商品情况测试。
3.对选择多个商品情况测试
4.对限制条件测试。
3.4信息查看模块
3.4.1模块名:
查看记录
编号4.1
功能:
提供窗口让具有权限的角色查看各种记录
输入项目:
角色设置的检索信息,窗口间传递的标志。
输出项目:
根据角色输入的检索信息查看数据库,并显示到窗口
算法:
1.根据检索条件自动生成sql查询语句。
程序流程图:
Y
N
Y
N
点击“信息查看”菜单项
或从其他窗口跳转
输入检索信息信息,或直接从跳转传递的的标志设置检索条件
确定查看详细信息?
是否选中行?
退出
根据选中行查看详细信息
弹出错误信息,重新输入
根据约束条件查看数据库,病显示到窗口
接口:
通过构造函数传递参数,指明要查询的数据类型。
储存分配:
通过查看记录模块,查询数据库,不进行存储分配。
限制条件:
1限制按时间段查询时,前一个时间大于后一个时间。
测试要点:
1.对没有输入检索条件测试
2.对输入多个检索条件测试
3.5员工管理模块
3.5.1模块名:
增加员工
编号5.1
功能:
提供窗口让具有权限的角色增加员工信息
输入项目:
角色输入的员工信息
输出项目:
根据角色输入的信息更新数据库
程序流程图:
点击“新增员工”菜单项
弹出新增员工界面
供用户输入员工信息
确定新增此员