课题的开发背景
随着竞争的日益激烈,如何降低成本已经成为超市首要解决的问题。对普通的超市来讲,涉及原材料的进货渠道,销售情况及库存等方面的管理,管理的好与坏对超市的持久性至关重要。概括地讲,用户对进销存系统的需求具有普遍性。超市进销存管理系统使用于超市的采购,销售和仓库部门,对超市采购,销售及仓库的业务全过程进行有效控制和跟踪。使用超市进销存管理系统可有效减少盲目采购,降低采购成本,合理控制库存,减少资金占用并提高市场灵敏度,提升超市的市场竞争力。
需求分析
用例图主要用来图示化系统的主事件流程,它主要用来描述客户的需求,即用户希望系统具备的完成一定功能的动作,通俗地理解用例就是软件的功能模块,所以是设计系统分析阶段的起点,本文中采用用例技术进行需求分析的获取和分析。为了能够正确的找出系统的用例,需要确定系统的边界,找出系统的执行者
系统功能分析
本系统采用Myeclipse8.5作为开发平台,后台语言为Java,前台功能采用JavaScript,并采用SQL SERVER2005数据库开发一个供超市员工使用的小型超市管理系统,利用数据库的读写实现管理系统的各个功能,本系统主要完成超市商品信息管理、供货商管理、进货管理、退换货管理、商品销售管理、客户管理、客户退货管理、库存管理等功能。通过以上功能实现简单、便捷的超市管理系统。系统能够实现对商品的入库管理、商品销售管理等方面提供存储、更新、查询、统计汇总、打印等功能,超市中库存商品资料,出库、入库信息由管理人员在系统库存单元负责管理。而商品销售,商品查询由收银员在前台实现。因此系统范围不涉及管理决策单元和财务单元中往来、账款资金方面的管理。
本系统分为管理员登陆和员工登陆两种用户登陆模式。
1)管理员登陆
管理员登陆之后可以进行商品信息管理,员工信息管理,商品进货管理,商品销售管理,商品库存管理,系统管理等操作;
(1) 商品信息管理:商品信息分为商品类别管理、商品信息添加、商品信息维护等操作。添加商品类别的时候只需输入类别名称(类型一般分为:日用品、食品、药品、电器、衣物、床上用品);添加库存商品时候要填入:商品编号、商品类别、商品名称、商品单位、商品型号、商品规格、商品售价、商品产地以及附加备注信息等;而商品信息维护可以更新商品的名称、商品类型、商品售价、商品规格等信息。
(2) 员工信息管理:员工信息管理有员工信息添加和员工信息维护两个操作。员工信息添加需要添加员工的编号、姓名、性别、生日、电话、身份证、家庭住址以及密码等信息;员工信息维护则可以更新修改员工个人信息、
(3) 商品进货管理:进货管理分为进货登记、进货查询、退货登记、退货查询。登记需要选择供应商信息、商品,录入进货价格、数量、总价、日期等;进货查询则可以查询商品的供应商,进货单价、总价、数量、日期等;退货登记除了要登记以上信息外还有填写退货原因,退货查询则可以查询退货的信息。
(4) 商品销售管理:商品销售管理分为商品销售查询、员工业绩查询、顾客退换货办理、退货商品查询等四个操作。其中,商品销售查询可以根据员工编号销售查询员工的销售情况,也可以根据单据号查询某一笔交易的情况,还可以根据时间查询本超市该时间段的商品销售状况;员工业绩查询则可以查询某一段时间内各员工的销售业绩;顾客退货办理,需按要求输入该交易的销售单据、商品编号、退货单价、退货数目、退货原因以及商品是否完好等消息才能实行退登记;退货信息查询则可以根据商品编号、单据号以及时间查询本超市的商品退货信息以及退货商品总金额。
(5) 商品库存管理:商品库存管理分为商品库存查询和商品库存报警。商品库存查询可以根据商品的编号或者名称查询本超市该商品的库存信息;商品库存报警功能则是当库存量低于20的时候出现红色警报,而商品的库存量高于300的时候出现黄色提醒。
(6) 系统管理:系统管理包括供应商管理、修改密码、关于系统等模块。供应商管理可以显示全部供应商信息,并且添加新的供应商信息(需填写供应商公司名称、供应商法人代表、供应商电话、供应商地址等信息);修改密码泽可以修改当前登录用户(即管理员)的登录密码;关于系统模块则是介绍本系统的开发环境等一些信息。
2)员工登陆
员工登陆模式有商品销售管理、商品库存管理、系统管理三个操作。
(1) 商品销售管理:商品销售管理包括商品销售和个人业绩查询两个功能。商品销售时,员工可以根据商品编号搜索获取顾客想要购买的商品信息,然后填写顾客要购买的数量并且添加到购物车,添加完顾客要购买的全部商品后在进行结账,系统计算全部商品的总价,再根据顾客付给的金额计算找零,最后完成操作回到销售商品页面。个人业绩查询,员工可以根据单据号或者日期查询自己的销售业绩。
(2) 商品库存管理:商品库存管理模块,员工也可以查看商品库存和库存报警。
(3) 系统管理:员工的系统管理模块只包括修改密码和关于系统两个操作。
数据库设计
逻辑结构是把概念结构转换为某个DBMS所支持的数据模型,并对其进行优化。本系统根据E-R图可以对数据库进行设计,以下列出主要的数据表。
员工信息表如表4.1所示:
表4.1 用户信息表
字段 | 字段名 | 类型 | 是否为空 |
employeeNo | ID | varchar(20) | 否 |
employee Name | 姓名 | nvarchar(20) | 是 |
employeePassword | 密码 | varchar(30) | 是 |
employeeSex | 性别 | nchar(1) | 是 |
employeeBirthday | 生日 | datetime | 是 |
employeeEducationId | 学历 | int | 是 |
employeeHomeTel | 家庭电话 | varchar(20) | 是 |
employeeMobile | 手机号 | varchar(20) | 是 |
employeeCard | 身份证号 | varchar(20) | 是 |
employeeEmail | 电子邮箱 | varchar(30) | 是 |
employeeAddress | 家庭住址 | nvarchar(80) | 否 |
商品信息表如表4.2所示:
表4.2 商品信息表
字段 | 字段名 | 类型 | 是否为空 |
goodNo | 商品编号 | varchar(20) | 否 |
goodClassId | 类型编号 | Int | 是 |
goodName | 商品名称 | nvarchar(30) | 否 |
goodUnit | 商品单位 | nvarchar(2) | 是 |
goodModel | 商品型号 | nvarchar(20) | 是 |
goodSpecs | 商品规格 | nvarchar(20) | 是 |
goodPrice | 商品售价 | float | 是 |
goodPlace | 商品产地 | nvarchar(50) | 是 |
goodMemo | 备注信息 | char(10) | 是 |
goodAddTime | 进货日期 | datetime | 是 |
供应商信息表如表4.3所示:
表4.3 供应商信息表
字段 | 字段名 | 类型 | 是否为空 |
supplierName | 公司名称 | nvarchar(50) | 否 |
supplierLawyer | 法人代表 | nvarchar(4) | 是 |
supplierTelephone | 电话 | varchar(11) | 否 |
supplierAddress | 地址 | nvarchar(50) | 是 |
退货登记信息表如表4.4所示:
表4.4 退货登记表
字段 | 字段名 | 类型 | 是否为空 |
buyBackId | 退货编号 | int | 否 |
goodNo | 商品编号 | varchar(20) | 是 |
supplierName | 供应商 | varchar(50) | 是 |
price | 退货价格 | float | 是 |
number | 退货数量 | int | 是 |
totalPrice | 退货总价 | float | 是 |
buyBackDate | 退货日期 | datetime | 是 |
buyBackReason | 退货原因 | text | 是 |
buyBackAddTime | 登记时间 | datetime | 是 |
进货登记信息表如表4.5所示:
表4.5 进货登记表
字段 | 字段名 | 类型 | 是否为空 |
buyId | 进货单号 | int | 否 |
goodNo | 商品编号 | varchar(20) | 否 |
supplierName | 供应商 | nvarchar(50) | 否 |
price | 进货价格 | float | 是 |
number | 进货数量 | int | 是 |
totalPrice | 进货总价 | float | 是 |
buyDate | 进货日期 | datetime | 是 |
addTime | 登记时间 | datetime | 是 |
管理员信息表如表4.6所示:
表4.6 管理员信息表
字段 | 字段名 | 类型 | 是否为空 |
adminUsername | 用户名 | varchar(20) | 否 |
adminPassword | 密码 | varchar(32) | 否 |
学历信息表如表4.7所示:
表4.7 学历信息表
字段 | 字段名 | 类型 | 是否为空 |
educationId | 学历编号 | int | 否 |
educationName | 学历名称 | nvarchar(20) | 否 |
员工业绩信息表如表4.8所示:
表4.8 员工业绩表
字段 | 字段名 | 类型 | 是否为空 |
employeeNo | 员工编号 | varchar(20) | 否 |
employeeName | 员工名称 | nvarchar(8) | 否 |
employeeSellMoney | 销售金额 | float | 否 |
销售信息表如表4.9所示:
表4.9 销售信息表
字段 | 字段名 | 类型 | 是否为空 |
sellInfoId | 销售编号 | int | 否 |
sellNo | 单据号 | varchar(30) | 否 |
goodNo | 商品编号 | varchar(20) | 是 |
price | 销售价格 | float | 是 |
number | 销售数量 | int | 是 |
totalPrice | 销售总价 | float | 是 |
sellTime | 销售时间 | datetime | 是 |
employeeNo | 员工号 | varchar(20) | 是 |
商品库存信息表如表4.10所示:
表4.10 商品库存信息表
字段 | 字段名 | 类型 | 是否为空 |
sellBackId | 退货编号 | int | 否 |
sellNo | 销售单据 | varchar(20) | 是 |
goodNo | 商品编号 | varchar(20) | 是 |
price | 退货价格 | float | 是 |
number | 退货数量 | int | 是 |
totalPrice | 退货总价 | float | 是 |
sellBackReason | 退货原因 | text | 是 |
sellBackTime | 退货时间 | datetime | 是 |
商品类别信息表如表4.11所示:
表4.11 商品类别信息表
字段 | 字段名 | 类型 | 是否为空 |
goodClassId | 类型编号 | int | 否 |
goodClassName | 类型名称 | nvarchar(20) | 是 |
商品库存信息表如表4.12所示:
表4.12商品库存信息表
字段 | 字段名 | 类型 | 是否为空 |
goodNo | 商品编号 | varchar(50) | 否 |
goodCount | 库存数量 | int | 是 |
购物车信息表如表4.13所示:
表4.13购物车信息表
字段 | 字段名 | 类型 | 是否为空 |
goodCartId | 购物车编号 | int | 否 |
employeeNo | 员工编号 | varchar(20) | 是 |
goodNo | 商品编号 | varchar(20) | 是 |
goodCount | 商品数量 | Int | 是 |
系统实现
此模块主要实现员工和管理员的登录进入系统,需要输入用户名、密码和验证码,填写完毕后,点击发送,如填写成功顺利进入系统,如用户名、密码或者验证码错误则会提示相应错误信息。
商品的进货管理是超市管理系统中的一个非常重要的功能,在庞大的商品信息中,能够及时添加所缺少的商品,是超市经营中一个重要的环节。本系统采用商品数量预警方案,当商品数量下降到预警范围内。管理员就会及时发现缺的商品,从而进货。本模块对商品的录入进行操作
销售管理是超市系统中的核心部分,进入销售界面,选择需要的货物,并输入数量。系统会自动算出价格。录入待销售的界面。点击确认,并转向销售单。销售信息的写入销售清单,同时对库存清单进行更新,以备用户将来对库存信息进行查询。商品详细的信息已经录入超市的数据库中,这样大大缩小了销售人员的工作量。提高了销售人员的工作效率
结论
本超市管理系统实现了超市管理的一些基本功能,像入库管理、出库管理、商品信息管理、销售管理和查询等功能。对于一般的小超市来说还是很有实际意义以及很强的实用性的。比如在销售了商品或者修改了某种商品信息时,与之关联的库存表和信息表也被修改,实现了数据的实时性。同时各个模块之间都有查询功能,用来实时掌握库存量的动态和商品最新的信息。当某一种商品数量达到预警水平时,系统会发出库存不足的警报,提醒管理员该进货。本系统同时还具有以下特点:扩展性能好,以及快速便捷的操作能力。系统比较安全可靠,用户管理权限很明确。本系统采用相应的技术,具有很好的安全严密性,系统完善的功能设置、比较友好的流程化界面,节省了大量的人力物力和财力,同时也降低了超市的运营成本。总的来说本系统是一个比较好的比较适合小超市的系统,它通过前台和数据库,将原来比较繁琐、浪费时间精力还易出错误的工作,变得简单。
源码获取
https://download.csdn.net/download/qq_41221322/87659087