基于C#和SQL Server 2012实现的商品库存系统

怪咖先生

发布日期: 2020-08-04 12:31:09 浏览量: 83
评分:
star star star star star star star star star star_border
*转载请注明来自write-bug.com

摘 要

随着商品经济市场的不断发张,我国各大中小城市不断涌现出一批又一批的商店,超市,并且随着人们日益增长的物质需求,这些商店,超市的规模不断扩张,日益庞大的商品库存管理已经超出人们自身所能胜任的限度,同时也随着计算机在各行各业的普及,各种管理系统正朝着协作化、智能化的方向发展、其技术手段、设计思想、系统体系结构的都发生了深刻的变化,也就是应运而生需要一些简单实用可靠的商品库存管理软件。

商品经济是社会经济的重要组成部分,而作为商品经济最基本的商品,由于种类繁多,因此其商品管理本身就已经比较复杂,何况作为商品最重要的库存管理的复杂性,可想而知。因此一个完善的商品库存管理系统是不可缺少的部分,它的内容对于决策者和管理者来说都至关重要,所以商品库存管理系统应该能为用户提供充足的信息和快捷的查询手段。但一直以来人们使用系统人工的方式管理仓库中的各种物质设备。这种管理方式存在着许多缺点,如:效率低,另外时间一长,将产生大量的文化和数据,这对于查找和维护都带来了不少的困难。简要介绍了系统各功能模块及数据库的设计,着重讨论了用 ASP.NET技术和SQL Server 数据库设计开发商品库存管理系统时的数据库访问技术和动态网页制作技术,并给出了部分实现代码。通过该系统,使职员可以方便地进行商品的库存管理。该B/S结构的系统在Windows 10系统和ASP.NET平台下开发完成,使用C#作为ASP.NET的开发语言,SQL Server 2012作为数据库。系统有较高的安全性和较好的性能。

本系统的用户对象主要是某类商品的销售机构,主要实现对商品的进货、库存和销售的基本管理。从而加强商品库存的管理,提高职员的工作效率,降低职员的工作量。

一、开发背景

大多商品库存管理理论认为,库存是物理上和逻辑上库房库位的所有有形和无形物料及其价值的总和,具体包括货品、库房等。过量的库存非但没有用处而且占用了资金。占用的资金对于超市发展、新产品的进入等都是非常重要的,减少资金占用还可以大大减少来自银行贷款的利息和风险,同时也方便超市日常进货、设备更新等资金周转。对于那些采购量特别大、采购件市场有波动的物料库存,加强库存管理效果更为明显。因此,可以看出开发出一款商品库存管理系统以满足市场客户的要求成为很有必要的事情。本系统面向市场上广大的中小型客户,已期达到尽可能的应用率,同时也成为他们减少工作的难度和负担,本产品还可以用于一些小的便利店,个人商店等所以应用范围广,灵活性好,可以尽可能的被各中小型规模的超市或者商店管理者采用。

二、需求分析

2.1 用户基本需求描述

根据基本需求调查,本系统包括以下几个主要功能模块:

  • 基本信息管理:基本信息包括销售主要商品的基本信息、系统用户基本信息、主要供应商基本信息和出入库记录的登记管理,这是一个基本模块

  • 库存管理模块:该模块主要管理商品的出入库记录和盘点记录,本功能模块对于每种商品品类和具体商品的实际库存实现实时的更新和管理。当某类商品的实际库存低于最低库存值时,要及时通知采购机构开出对应的采购计划

  • 采购管理模块:根据盘点记录人员提交的采购申请制定详细的采购计划,包括商品品类、具体的商品,预期采购数,预期采购时间以及预期采购单价和总价等。在预期采购时间内如果此项采购计划得以实施,则登记实际采购数据,如果出现延误或者取消,则登记具体的延误或取消原因;实际采购数据如果调整,例如采购数量或者采购单价发生变化,也需要注明原因

根据系统用户分析各个角色的需求如下:

  • 系统管理人员:主要负责系统基础数据的维护,包括职员数据(包括库存管理人员、库存管理人员、盘点记录人员和采购人员)、商品基本数据、商品分类信息和仓库基本数据

  • 库存管理人员:记录每次的出入库数据,具体包括以下功能:

    • 入库登记:当入库商品时,登记入库商品的数量、入库时间、入库仓库及经手人信息,同时更新商品的总库存
    • 出库登记:当出库商品时,登记出库商品的数量、出库时间、出库仓库及经手人信息,同时更新商品的总库存。当总库存量小于出库量时,则取消此次出库操作,并提醒盘点记录人员开出采购申请
    • 盘点记录人员:定期进行各类商品的库存盘点,包括记录盘点时间、商品品类、库存量、存储仓库等信息。当商品库存总量低于预警最低库存量或满足不了出库需求时,向采购部门开出采购申请
  • 采购人员:根据盘点记录人员提交的采购申请制定详细的采购计划,并将采购计划的具体执行情况进行登记

2.2 数据流图分析

顶层数据流图

0层数据流图

数据流分层图

2.3 数据字典

数据字典(Data Dictionary,DD)用来定义系统中各成分的具体含义,它以详细、清晰、准确、无歧义的说明为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。数据字典是数据库的重要部分,它是数据流图中所有要素严格定义的场所,这些要素包括数据流、数据流的组成、文件、加工小说明及其他应进入字典的一切数据,其中每个要素对应数据字典中的一项条目。

数据流条目

名字 别名 描述 定义 位置
出库登记 出库单 当出库商品时,登记商品出库信息 出库登记=数量+时间+仓库编号+经手人 输出到打印机
入库登记 入库单 当入库商品时,登记商品入库信息 入库登记=数量+时间+仓库编号+经手人 输出到打印机
盘点记录 盘点单 定期进行各类商品的库存盘点 盘点记录=时间+盘点人员+商品名称+库存量+仓库编号+备注 输出到打印机
采购申请 缺货单 当商品库存总量低于预警最低库存量或满足不了出库需求时向采购人员提出采购申请 采购申请=盘点人+商品名称+缺少量 输出到打印机
采购计划 采购单 根据盘点记录人员提交的采购申请制定详细的采购计划 采购计=商品名称+采购人员+预期采购数+预期采购时间+预期采购单价+总价 输出到打印机
供货单 供货报单 供应商提供商品的信息 供货单=商品名称+数量+时间+单价+总价 输出到打印机

数据存储条目

数据储存条目 别名 简述 组成 组成方式 查询方式
采购记录 存放采购数据 索引文件,以采购ID为关键字 要求能立即查询
库存记录 存放库存信息 索引文件,以入库ID为关键字 要求能立即查询
缺货记录 存放出库信息 索引文件,以出库ID为关键字 要求能立即查询

数据项条目

数据项名称 数据项别名 说明 类型 长度
供应商编号 Supplierid Int
名称 Sname 供应商名字 Char 10
联系电话 Sphone Varchar 11
仓库编号 Dpositoryid Int
名称 Dname Char 10
职员编号 Fnctionaryid Int
供应单编号 Supplylisid 供应单生成的编号 Int
供应商编号 Supplierid Int
商品编号 Wresid Int
数量 Number varchar 50
时间 Time datetime
单价 Price varchar 50
总价 TotalPrice varchar 50

三、详细设计

3.1 概念模型设计

3.2 关系模型设计

  • 供应商供应商编号,名称,联系电话)

  • 仓库仓库编号,名称,职员编号)

  • 职员表职员编号,名称,联系电话,职员类型编号)

  • 职员类型表职员类型编号,名称)

  • 商品表商品编号,仓库编号,名称,商品类型编号)

  • 商品类型表商品类型编号,名称)

  • 供货单供货单编号供应商编号,商品编号,数量,时间,单价,总价)

  • 入库登记入库单编号经手人(职员编号)商品编号,数量,时间,仓库编号)

  • 出库登记出库单编号经手人(职员编号)商品编号,数量,时间,仓库编号)

  • 盘点记录盘点编号职员编号商品编号,时间,库存量,仓库编号,备注)

  • 采购申请申请编号职员编号商品编号,缺少量)

  • 采购计划计划编号职员编号商品编号,预期采购数,时间,预期采购单价,总价,备注)

  • 系统用户用户名、密码)

3.3 物理模型设计

该系统在设计数据库的表的时候,因为考虑到在系统运行时,录入的数据具备一定的意义性,完整性。在设计数据库表时对记录设置数据完整性约束以及参考3NF,对字段设置域完整性、参照完整性、自定义完整性等三类数据完整性。数据完整性约束是为了防止不符合规范的数据进入数据库,在用户对数据进行插入、修改、删除等操作时,DBMS自动按照一定的约束条件对数据进行监测,使不符合规范的数据不能进入数据库,以确保数据库中存储的数据正确、有效、相容。综合以上条件数据库设计表一共13张表。

供应商表Supplier

中文名 学段名 类型 长度 约束
供应商编号 Supplierid Int 主键
名称 Sname Char 10
联系电话 Sphone Varchar 11

仓库表Dpository

中文名 学段名 类型 长度 约束
仓库编号 Dpositoryid Int 主键
名称 Dname Char 10
职员编号 Fnctionaryid Int 外键

职员表Fnctionary

中文名 学段名 类型 长度 约束
职员编号 Fnctionaryid Int 主键
名称 Fname Char 10
联系电话 Fphone Varchar 11
职员类型编号 Stafftypeid Int 外键

职员类型表Stafftype

中文名 学段名 类型 长度 约束
职员类型编号 Stafftypeid Int 主键
名称 Stname Char 10

商品表Wres

中文名 学段名 类型 长度 约束
商品编号 Wresid Int 主键
仓库编号 Dpositoryid Int 外键
名称 Wname Char 10
商品类型编号 Commoditytypeid Int 外键

商品类型表CommodityTpe

中文名 学段名 类型 长度 约束
商品类型编号 Commoditytypeid Int 主键
名称 Ctname Char 10

供货单Supplylisi

中文名 学段名 类型 长度 约束
供应单编号 Supplylisid Int 主键
供应商编号 Supplierid Int 外键
商品编号 Wresid Int 外键
数量 Number varchar 50
时间 Time datetime
单价 Price varchar 50
总价 TotalPrice varchar 50

入库登记Warehousing

中文名 学段名 类型 长度 约束
入库单编号 Warehousingid Int 主键
职员编号 Fnctionaryid Int 外键
商品编号 Wresid Int 外键
数量 Number varchar 50
时间 Time datetime
仓库编号 Dpositoryid int

出库登记Stork

中文名 学段名 类型 长度 约束
出库单编号 Storkid Int 主键
职员编号 Fnctionaryid Int 外键
商品编号 Wresid Int 外键
数量 Number varchar 50
时间 Time datetime
仓库编号 Dpositoryid int

盘点记录Inventory

中文名 学段名 类型 长度 约束
盘点编号 Inventoryid Int 主键
职员编号 Fnctionaryid Int 外键
商品编号 Wresid Int 外键
时间 Time datetime
库存量 storage varchar 50
仓库编号 Dpositoryid int
备注 Remarks varchar 250

采购申请Aapplication

中文名 学段名 类型 长度 约束
申请编号 Aapplicationid Int 主键
职员编号 Fnctionaryid Int 外键
商品编号 Wresid Int 外键
缺少量 Deficiency varchar 50

采购计划Plan

中文名 学段名 类型 长度 约束
计划编号 Planid Int 主键
职员编号 Fnctionaryid Int 外键
商品编号 Wresid Int 外键
预期采购数 number varchar 50
时间 Time datetime
预期采购单价 Pice varchar 50
总价 TotalPice varchar 50
备注 Remarks varchar 250

系统用户User

中文名 学段名 类型 长度 约束
用户名 Userid Int 主键
密码 password Char 10

四、系统功能模块说明

4.1 用户注册模块

  • 功能描述:此模块的主要功能是实现用户注册。系统的用户必须在注册获得合法身份之后才能登录系统进行对应的操作

  • 输入:用户名、密码

  • 输出:注册成功进入登录界面或者注册失败重新登录

4.2 用户登录模块

  • 功能描述:此模块的主要是实现用户登录。用户首先在用户登录界面进行账户密码的登录。系统必须在用户名和密码验证成功的情况下才能进入主页面,操作系统。如果账号密码错误,则请重新登录

  • 输入:用户名,密码

  • 输出:登录成功进入主界面或者注册失败重新登录。

4.3 基本信息模块

  • 功能描述:此模块的主要功能是对于商品信息的展示,销售主要商品的基本信息、系统用户基本信息、主要供应商基本信息和出入库记录的登记管理

  • 输入:用户查询商品,供应商信息

  • 输出:显示商品,供应商的基本信息

4.4 库存管理模块

  • 功能描述:此模块的主要功能是管理商品的出入库记录和盘点记录,对于各种商品品类和具体的商品的实际库存实现实时的更新和管理。当某类商品的实际库存低于库存值时,要及时通知采购机构开出对应的采购计划

  • 输入:用户进行进货信息、退货信息的添加,修改

  • 输出:修改成功或查询成功显示相应数据,添加成功或修改成功显示相应数据

4.5 采购管理模块

  • 功能描述:此模块的主要功能是根据盘点记录人员提交的采购申请置顶详细的采购计划,包括商品品类,具体的商品,预期采购数,预期采购时间以及采购单价和总价等。在预期采购时间内如果此项采购计划得以实施,则登记实际采购数据,如果出现延误或者取消,则登记具体的延误或取消原因;实际采购数据如果调整,例如采购数据或者采购单价发生变化,也需要注明原因

  • 输入:用户进行采购信息的添加,修改

  • 输出:修改成功或查询成功显示相应数据,添加成功或修改成功显示相应数据

五、系统实现

5.1 系统目录

5.2 注册界面

用户首先进入商品库存系统,进入注册页面进行账号密码的注册操作,用户首先进行注册账号,密码,注册成功!返回登录界面,如果注册失败!提示注册失败请重新注册。

5.3 登录界面

用户进入登录界面,通过输入账户,密码进行登录,验证成功!跳转主页面。验证失败!提示账户,密码错误,请重新登录。

5.4 主页面

此页面为主页面,分为商品采购、采购信息查询、商品销售信息、退货、供应商信息、员工反馈模块。以及注销,退出系统

5.5 库存管理模块

该模块主要进行进货查询,同过输入进货编号进行查询进货信息,查询成功!将进货显示出来,查询失败!则提示没有改进货信息。

该模块主要进行退货操作,用户通过输入商品编号进行验证,验证通过则提示可退货请确认,验证失败,则提示不可退货,请重新选择。

5.6 采购管理模块

说明:该模块主要进行商品的采购操作,用户通过输入商品的基本信息进行采购商品的添加,采购成功!提示添加成功!采购失败!提示添加失败!

总 结

我们团队小组经过两周的努力,基本完成了毕业设计选题系统的设计开发。这段时间里,从需求分析到软件编码完成,从中学到了很多知识,不仅让我更深层次的掌握了数据库原理、SQL Server数据库应用、异步交互技术以及项目开发的大致流程,并且结合着软件工程的理论,让我在这次毕业设计中真正懂得了做软件需要的不仅仅是好的思维和编程技巧。更重要的是在调研的过程中,学到了很多实际的业务,并学到对一种业务从不同角度出发考虑,对业务从不同角度处理等。同时也学到将众多的数据进行筛选,后进行分析,对这些数据进行归纳总结,并将归纳的结果进一步变成知识消化。

通过此次课程设计,使我们更加扎实的掌握了有关数据库设计方面的知识,如:ER图,数据流图,关系模型以及SQL语句。在设计过程中虽然遇到了一些问题,但经过组内讨论以及徐老师的细心讲解,我们终于克服了问题的所在,同时这也暴露出了前期我们在这方面的知识欠缺和经验的不足。实践出真知,通过亲自动手查找资料和计算数据,使我们掌握的知识不再是纸上谈兵。

参考文献

[1] 李春葆.数据库原理与设计—基于SQL Server 2012[M].清华大学出版社,2015

[2] 贺伟,李凤.Java面向对象程序设计[M].计算机产品与流通,2019

[3] 姚素红.基于Java开发中的Web应用系统开发模式[J].江苏工程职业学院学报,2018,18(01):6-9

[4] 李青春.课程设计考核模式下的Java微课设计与应用分析[J].计算机时代,2018(02):80-02

[5] 邱珊.《Java语言程序设计》课程实验教学碎片化研究与实践[J].现代计算机(专业版),2018,25(01):120-124

[6] 温明.《ASP网站建设实录》[M].红旗出版社.2015

[7] 张海潘,牟永敏.软件工程导论(第6版)[M].清华大学出版社.2019年6月第19次印刷

[8] 韩道军,贾培艳.新建构主义在ASP.NET MVC Web程序设计课程中的应用[J].软件导刊,2018,17(02):224-226

[9] 陈柳松,杨利,张宇,刘丽.基于.NET程序集的C#与Matlab混合编程技术及应用[J].控制与信息技术,2018(02):44-46+64

[10] 王小科.ASP.NET典型模块开发全程实录[M].清华大学出版社,2013

上传的附件 cloud_download 基于C#实现的商品库存系统.zip ( 1.37mb, 2次下载 )
error_outline 下载需要12点积分

发送私信

21
文章数
1
评论数
最近文章
eject