1、仓库管理系统课程设计仓库管理系统一、课程设计的内1、学习与实践数据库应用程序开发流程; 2、学习使用某一种数据库服务,学会数据库应用程序编程,安装配置系统开发环境; 3、设计和实现仓库管理系统;4、撰写课程设计报告。 二、课程设计的要求与数据系统应该实现以下功能:(1) 进、出库管理。对进、出库信息进行记录。(2) 查询功能。仓库管理对查询要求高,通过主菜单记录当前操作用户的用户编号,保 证了对进、出库信息录入负责人的确认。(3) 部门资料管理与库存报表生成。资料管理包括了人员信息管理,财政支出信息管理, 以及各项业务单据的资料管理。报表主要分类为:日报表,月报表,销售报表,入 库报表等等。(
2、4) 由于计算机能存贮大量的数据,而且数据只要一次存入,便可多次重复使用,所以 管理数据达到完整,统一,原始记录能保证及时,准确。(5) 许多重复性的工作,都可由计算机去执行,从而使管理人员从事务性工作解脱出来,真正变为从事一些信息的分析,判断,决策等创造性的工作。数据自己自行编造测试。论文要求结构严谨、格式规范,内容正确、文字通顺。三、课程设计应完成的工作 该系统主要分为三大功能: 管理员功能、信息安全功能、一般用户功能、报表生成。(1) 管理员功能:产品入库登记、确认入库信息、删除库内信息、借出信息登记、产品 分类管理、添加人员、删除人员、查询库内信息。(2) 信息安全功能:人员权限区分、
3、事件记录、数据警告、数据备份、数据恢复; (3) 一般用户功能:查询库内信息、查询出库信息、查询入库信息、修改本用户密码;(4) 报表生成:库存信息报表生成。五、应收集的资料及主要参考文献1 MySQL 5.1参考手册 2 D 3 数据库系统概论(第四版) 王珊 萨师煊 高等教育出版社 2006.54 软件工程(第二版) 李代平等编著 清华大学出版社 2008.15 MySQL开发者SQL权威指南 (荷)Rick F.van der Lans 著 许杰星 李强等译 机械工业出版社 2008.16 学习MySQL(影印版) Seyed M.M.Saied Tabagbogbi & Hugb E.
4、Williams 著 南京:东南大学出版社 2007.67 C+Builder程序员成长攻略 蒙祖强 龚涛等编著 北京:中国水利水电出版社 2007.1相关技术介绍1.1 MySQLMySQL是最受欢迎的开源SQL数据库管理系统,它由MySQL AB开发、发布和支持。MySQL是一个快速的、多线程、多用户和健壮的SQL数据库服务器。MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass-deployed)的软件中去。MySQL的特性:1)使用C和C+编写,用众多不同的编译器进行了测试 ,能够工作在众多不同的平台上。2)使用GNU Automake、Autoco
5、nf和Libtool进行移植。3)提供了用于C、C+、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl的API。4)采用核心线程的完全多线程 如果有多个CPU,它能方便地使用这些CPU。5)提供了事务性和非事务性存储引擎。6)使用了极快的“B树”磁盘表(MyISAM)和索引压缩。7)添加另一个存储引擎相对简单。如果打算为内部数据库添加一个SQL接口,该特性十分有用。8)极快的基于线程的内存分配系统。9)通过使用优化的“单扫描多连接”,能实现极快的连接。10)存储器中的哈希表用作临时表。11)SQL函数是使用高度优化的类库实现的,运行很快。通常,在完成查询初始化后,不存在
6、存储器分配。12)采用Purify(商业内存溢出检测器)以及GPL工具Valgrind测试了MySQL代码。13)服务器可作为单独程序运行在客户端/服务器联网环境下。它也可作为库提供,可嵌入(链接)到独立的应用程序中。这类应用程序可单独使用,也能在网络环境下使用。简言之,MYSQL具有功能强,使用简单,管理方便,运行速度快,可靠性高,安全保密等特点。1.2 Borland C+Builder集成开发环境Borland C+ Builder(以下简称BCB)是Borland公司(现更名为Inprise)继Delphi之后推出的又一个优秀的可视化编程环境,它在32位Windows环境下为我们提供了
7、一种极具吸引力的快速Windows应用程序开发系统(RAD)。它基于最流行的面向对象程序设计语言C+,采用领先的数据库技术,并结合使用了图形用户界面(GUI)的许多先进特性和设计思想。VCL是可视化组件库的简称,它是一个面向对象的函数库,完全支持所有面向对象编程的标准概念如继承、多态和封装等。C+ Builder的集成开发环境提供了120多个VCL组件,使开发人员不需太多编码,就能够实现很多复杂的功能,体现了软件的“重用性”原则。C+ Builder的用户界面也非常友好,易于使用,并且采用了停驻式(docking)工具条,可以自由组合集成开发环境窗口和工具条的排放方式。在编码过程中,还可以使用
8、CodeExplorer技术对源代码进行管理。CodeCompletion技术使编译器能够自动列出VCL组件的可用属性和方法供程序员选择,而不必手工输入冗长的代码。C+Builder含有20多个数据感知控件。在许多情况下,甚至不须要编写任何程序代码,便可以开发一个复杂的应用程序。C+Builder还提供了强大的Borland数据库引擎,这是一种非常成熟的数据库连接技术,它提供了3种访问数据库的方式:一是可以直接存取dBase、FoxPro、Paradox等文件型数据库生成的DB、DBF文件;二是提供了标准的ODBC接口;三是提供了高效的SQL Links数据库驱动程序,允许直接存取Oracle
9、、Informix、SyBase、MSSQLServer、DB2和InterBase。此外,C+Builder还提供了一组ADO控件,使C+Builder编程人员不用依靠BDE来创建应用程序,可直接使用ADO存取数据。C+Builder率先引入了多层数据库应用模型,通过C+Builder提供的多层分布式应用服务(MIDAS)可以轻松开发出高可靠性、高效率、高负载的分布式数据处理系统。此外,还可以通过ActiveForm或InterBaseExpress为多层数据库应用程序创建基于Web的客户端,这样用户通过普通的浏览器就可以与远程数据库系统进行交互。在C+cBuilder 6中,MIDAS更名
10、为DataSnap、DataSnap强化了MIDAS原有的功能,并改善了MIDAS的执行效率,更方便使用。 1.3 MyDAC组件库MyDAC,全称为MySQL Data Access Components (MySQL数据访问组件),支持Borland Delphi,C+ Builder 和Kylix。它提供访问MySQL数据库的一种方式,可以代替标准的Borland Database Engine (BDE)或dbExpress。MyDAC能够通过MySQL client或MySQL network protocol工作。假如直接使用MySQL protocol协议MyDAC不需要clie
11、nt library,仅需要TCP/IP protocol。这个特征允许编译真正的瘦客户数据库应用。在基于MySQL的client/server应用中使用BDE或dbExpress有些不足,许多情况下BDE和dbExpress不能够使用服务器的特殊特征,还有BDE必须容忍过多的资源使用,限制一个应用程序的分发和管理。使用BDE:MySQL ODBC BDE Application通过MySQL接口:MySQL Client library Application使用MySQL网络协议:MySQL Application二、需求分析2.1 功能需求及用户需求 2.1.1 功能需求 该系统主要分为
12、三大功能: 管理员功能、信息安全功能、一般用户功能、报表生成。(1) 管理员功能:产品入库登记、确认入库信息、删除库内信息、借出信息登记、产品 分类管理、添加人员、删除人员、查询库内信息。(2) 信息安全功能:人员权限区分、事件记录、数据警告、计划备份、即时 备份、数据恢复; (3) 一般用户功能:查询库内信息、查询出库信息、查询入库信息、修改本用户密码;(4) 报表生成:库存信息报表生成。 2.1.2 用户需求根据用户需求,该系统应该实现以下功能:(1) 进、出库管理。对进、出库信息进行记录。(2) 查询功能。仓库管理对查询要求高,通过主菜单记录当前操作用户的用户编号,保 证了对进、出库信息
13、录入负责人的确认。(3) 部门资料管理与库存报表生成。资料管理包括了人员信息管理,财政支出信息管理, 以及各项业务单据的资料管理。报表主要分类为:日报表,月报表,销售报表,入 库报表等等。(4) 由于计算机能存贮大量的数据,而且数据只要一次存入,便可多次重复使用,所以 管理数据达到完整,统一,原始记录能保证及时,准确。(5) 许多重复性的工作,都可由计算机去执行,从而使管理人员从事务性工作解脱出来, 真正变为从事一些信息的分析,判断,决策等创造性的工作。2.2 系统流图2.3 数据描述 2.3.1 数据字典2.3.1.1 基本数据项及数据结构零部件信息。包括的数据项有零件号、零件名称、规格、单
14、价、描述。仓库信息。包括的数据项有仓库号、已用库存、库存总量、负责人、电话号码。供应商信息。包括的数据项有编号、供应商、电话号码、地址。部门信息。包括的数据项有部门号、名称、电话。数据项名称别名简述类型长度取值范围零件号-零件的编号字符型7第1位:进口/国产(I/D)第2-4位:类别第5-7位:物资编号零件名称-零件的名称字符型20-规格-零件规格字符型10单价-零件的单位价格货币型6默认计量单位:元描述-零件描述/说明文本型-仓库号-仓库的编号字符型3-已用库存-仓库已用存储容量数值型60:仓库非空=0:空仓库0:物资存量=0:空仓库0:不允许负责人-仓库负责人字符型20-供应商编号-供应商
15、编号字符型3-供应商-供应商名称字符型20-地址-供应商联系地址文本-部门号-公司部门编号字符型3-部门名-公司部门名称字符型20-电话-电话号码字符型15-2.3.1.2 数据流条目名称别名简述来源去向入库单-入库单位在把相应的零件送人仓库时必须填写的单据供应商库存出库单-领料人员从仓库中领取零件时必须填写的单据库存公司部门客户还库单-零件使用后归还入库必须填写的单据公司部门库存需求单-对新零件需求所填写的单据公司部门库存采购单-购买新零件所填写的单据采购员供应商2.3.1.3 数据存储条目名称别名简述组织方式查询要求仓库库存-存放索引文件,以仓库编号为关键字要求立即查询零件库存-存放索引文
16、件,以零件编号为关键字要求立即查询2.3.1.4 加工条目加工名激发条件优先级输入输出零件入库接收到合格入库单时普通合格入库单库存满,零件成功入库加工逻辑根据库存记录。Loop: If (入库物资的数量+物资现有存量)=该物资库存量临界值Then 物资存入仓库; 物资现有存量=物资现有存量+入库物资的数量;Else 物资库存已足, If 物资现有存量=该物资库存量临界值 Then 结束,入库失败 Endif; 调整入库单; goto loop, 直到(入库物资的数量+物资现有存量)=该物资库存 量临界值; Endif;零件入库;统计仓库库存已用量;加工名激发条件优先级输入输出零件出库接收到合格
17、出库单时普通合格出库单库存量不足,零件成功出库加工逻辑根据库存记录。Loop: 零件是否存在? 是: If 需求单物资的数量该物资库存量的临界值 Then 零件出库 物资现有存量=物资现有存量-出库零件的数量; Else 物资短缺, If 物资现有存量=该物资库 存量临界值; Endif; 否: 零件不存在,goto loop;零件入库;统计仓库库存已用量; 2.3.2 数据流图1)本系统的顶层数据流图2)细化后的数据流图3)货物入库信息管理细化4)货物出库信息管理细化 2.4 安全性和完整性要求2.4.1 安全性要求系统安全性要求至少达到TCSEC(TDI)的C1级。即只提供了非常初级的自主
18、安全保护。能够实现对用户和数据的分离,进行自主存取控制(DAC),保护或限制用户权限的传播。实行用户标识与鉴别,具有数据备份和日志审计功能。2.4.2 完整性要求每个关系中都至少要有一个主键,并且都有一个聚集索引(Clustered Index)。关系与关系之间通过主外键关联。定义属性上的约束条件,定义触发器。三、概念结构设计1)库存实体E-R图:2)入库实体E-R图:3) 出库实体E-R图:4)部门需求实体E-R图:5)还库实体E-R图:6)计划采购实体E-R图:7)实体和实体之间的关系图如图所示:8) 仓库管理E-R图如图所示四、逻辑结构设计4.1 关系模型设计1)仓库表storehous
19、eNO.字段名代码类型约束1仓库号stoIDChar(3)主键2已用库存Used_volumeSmallint非空,默认0,unsigned,=Min_volume,=Max_volume4最小存量Min_volumeSmallint 非空,默认0,unsigned5最大存量Max_volumeSmallint 非空,默认0,unsigned6)供应表supplyNO.字段名代码类型约束1供应商号supIDChar(3)主键,与supplier表中的supID外键关联,级联删除、更新2零件号parIDChar(7)主键,与parts表中的parID外键关联,级联删除、更新3供应量supVolu
20、meSmallint 非空,默认0,unsigned4供应时间supDateTimestamp 非空7)部门需求表demandNO.字段名代码类型约束1零件号parIDChar(7)主键,与parts表中的parID外键关联,级联删除、更新2部门号depIDChar(3)主键,与dept表中的depID外键关联,级联更新、删除3需求数量demVolumeSmallint 非空,默认0,unsigned4开始时间startTimeTimestamp非空5结束时间endTimeTimestamp非空8)零件归还表restoreNO.字段名代码类型约束0编号resIDSmallint主键,AUTO_
21、INCREMENT1仓库号stoIDChar(3)主键,与storehouse表中的stoID外键关联,级联删除、更新2零件号parIDChar(7)主键,与parts表中的parID外键关联,级联更新、删除3部门号depIDChar(3)主键,与dept表中的depID外键关联,级联更新、删除4归还数量resVolumeSmallint 非空,默认0,unsigned5经手人cmakerVarchar(20)非空6归还者returnerVarchar(20)非空7归还时间resDateTimestamp非空9)零部件采购计划表stockNO.字段名代码类型约束1零件号parIDChar(7)
22、主键,与parts表中的parID外键关联,级联更新、删除2采购量stoVolumeSmallint 非空,默认0,unsigned3供应商号supIDChar(3)与supplier表中的supID外键关联4采购时间stoDateTimestamp主键5采购员buyerVarchar(20)10)入库表warehousingNO.字段名代码类型约束0编号inIDSmallint主键,AUTO_INCREMENT1仓库号stoIDChar(3)主键,与storehouse表中的stoID外键关联,级联删除、更新2供应商号supIDChar(3)非空,与supplier表中的supID外键关联3
23、零件号parIDChar(7)主键,与parts表中的parID外键关联,级联更新、删除4入库数量inVolumeSmallint 非空,默认0,unsigned5经手人cmakerVarchar(20)非空6入库时间inDateTimestamp非空,默认当前时间11)出库表stockoutNO.字段名代码类型约束0编号outIDsmallint主键,,AUTO_INCREMENT1仓库号stoIDChar(3)主键,与storehouse表中的stoID外键关联,级联删除、更新2零件号parIDChar(7)主键,与parts表中的parID外键关联,级联更新、删除3出库数量outVolu
24、meSmallint 非空,默认0,unsigned4使用者userVarchar(20)非空5经手人cmakerVarchar(20)非空6领取人receiptorVarchar(20)非空7出库时间outDateTimestamp非空,默认当前时间4.2 用户子模式设计1)仓库信息视图storehouse_viewNO.字段名代码类型备注1仓库号stoIDChar(3)连storehouse表2已用库存Used_volumeInt连storehouse表3库存总量All_volumeInt连storehouse表4负责人principalVarchar(20)连storehouse表6电话号码stoTELVarchar(15)连storehouse表2)零部件库存视图parts_storage_viewNO.字段名代码类型备注1仓库号stoIDChar(3)连storage表2零件号parIDChar(7)连parts表3名称partVarchar(20)连parts表4规格specChar(10)连parts表5单价priceDecimal
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1