仓库管理系统课程设计.docx

上传人:b****4 文档编号:3766997 上传时间:2022-11-25 格式:DOCX 页数:55 大小:539.25KB
下载 相关 举报
仓库管理系统课程设计.docx_第1页
第1页 / 共55页
仓库管理系统课程设计.docx_第2页
第2页 / 共55页
仓库管理系统课程设计.docx_第3页
第3页 / 共55页
仓库管理系统课程设计.docx_第4页
第4页 / 共55页
仓库管理系统课程设计.docx_第5页
第5页 / 共55页
点击查看更多>>
下载资源
资源描述

仓库管理系统课程设计.docx

《仓库管理系统课程设计.docx》由会员分享,可在线阅读,更多相关《仓库管理系统课程设计.docx(55页珍藏版)》请在冰豆网上搜索。

仓库管理系统课程设计.docx

仓库管理系统课程设计

仓库管理系统

一、课程设计的内

1、学习与实践数据库应用程序开发流程;

2、学习使用某一种数据库服务,学会数据库应用程序编程,安装配置系统开发环境;

3、设计和实现仓库管理系统;

4、撰写课程设计报告。

二、课程设计的要求与数据

系统应该实现以下功能:

(1)进、出库管理。

对进、出库信息进行记录。

(2)查询功能。

仓库管理对查询要求高,通过主菜单记录当前操作用户的用户编号,保证了对进、出库信息录入负责人的确认。

(3)部门资料管理与库存报表生成。

资料管理包括了人员信息管理,财政支出信息管理,以及各项业务单据的资料管理。

报表主要分类为:

日报表,月报表,销售报表,入库报表等等。

(4)由于计算机能存贮大量的数据,而且数据只要一次存入,便可多次重复使用,所以管理数据达到完整,统一,原始记录能保证及时,准确。

(5)许多重复性的工作,都可由计算机去执行,从而使管理人员从事务性工作解脱出来,真正变为从事一些信息的分析,判断,决策等创造性的工作。

数据自己自行编造测试。

论文要求结构严谨、格式规范,内容正确、文字通顺。

三、课程设计应完成的工作

该系统主要分为三大功能:

管理员功能、信息安全功能、一般用户功能、报表生成。

(1)管理员功能:

产品入库登记、确认入库信息、删除库内信息、借出信息登记、产品分类管理、添加人员、删除人员、查询库内信息。

(2)信息安全功能:

人员权限区分、事件记录、数据警告、数据备份、数据恢复;

(3)一般用户功能:

查询库内信息、查询出库信息、查询入库信息、修改本用户密码;

(4)报表生成:

库存信息报表生成。

五、应收集的资料及主要参考文献

[1]MySQL5.1参考手册

[2]D

[3]数据库系统概论(第四版)王珊萨师煊高等教育出版社2006.5

[4]软件工程(第二版)李代平等编著清华大学出版社2008.1

[5]MySQL开发者SQL权威指南(荷)RickF.vanderLans著许杰星李强等译机械工业出版社2008.1

[6]学习MySQL(影印版)SeyedM.M."Saied"Tabagbogbi&HugbE.Williams著南京:

东南大学出版社2007.6

[7]C++Builder程序员成长攻略蒙祖强龚涛等编著北京:

中国水利水电出版社2007.1

相关技术介绍

1.1MySQL

MySQL是最受欢迎的开源SQL数据库管理系统,它由MySQLAB开发、发布和支持。

MySQL是一个快速的、多线程、多用户和健壮的SQL数据库服务器。

MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass-deployed)的软件中去。

MySQL的特性:

1)使用C和C++编写,用众多不同的编译器进行了测试,能够工作在众多不同的平台上。

2)使用GNUAutomake、Autoconf和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函数是使用高度优化的类库实现的,运行很快。

通常,在完成查询初始化后,不存在存储器分配。

12)采用Purify(商业内存溢出检测器)以及GPL工具Valgrind测试了MySQL代码。

13)服务器可作为单独程序运行在客户端/服务器联网环境下。

它也可作为库提供,可嵌入(链接)到独立的应用程序中。

这类应用程序可单独使用,也能在网络环境下使用。

简言之,MYSQL具有功能强,使用简单,管理方便,运行速度快,可靠性高,安全保密等特点。

1.2BorlandC++Builder集成开发环境

BorlandC++Builder(以下简称BCB)是Borland公司(现更名为Inprise)继Delphi之后推出的又一个优秀的可视化编程环境,它在32位Windows环境下为我们提供了一种极具吸引力的快速Windows应用程序开发系统(RAD)。

它基于最流行的面向对象程序设计语言C++,采用领先的数据库技术,并结合使用了图形用户界面(GUI)的许多先进特性和设计思想。

VCL是可视化组件库的简称,它是一个面向对象的函数库,完全支持所有面向对象编程的标准概念如继承、多态和封装等。

C++Builder的集成开发环境提供了120多个VCL组件,使开发人员不需太多编码,就能够实现很多复杂的功能,体现了软件的“重用性”原则。

C++Builder的用户界面也非常友好,易于使用,并且采用了停驻式(docking)工具条,可以自由组合集成开发环境窗口和工具条的排放方式。

在编码过程中,还可以使用CodeExplorer技术对源代码进行管理。

CodeCompletion技术使编译器能够自动列出VCL组件的可用属性和方法供程序员选择,而不必手工输入冗长的代码。

C++Builder含有20多个数据感知控件。

在许多情况下,甚至不须要编写任何程序代码,便可以开发一个复杂的应用程序。

C++Builder还提供了强大的Borland数据库引擎,这是一种非常成熟的数据库连接技术,它提供了3种访问数据库的方式:

一是可以直接存取dBase、FoxPro、Paradox等文件型数据库生成的DB、DBF文件;二是提供了标准的ODBC接口;三是提供了高效的SQLLinks数据库驱动程序,允许直接存取Oracle、Informix、SyBase、MSSQLServer、DB2和InterBase。

此外,C++Builder还提供了一组ADO控件,使C++Builder编程人员不用依靠BDE来创建应用程序,可直接使用ADO存取数据。

C++Builder率先引入了多层数据库应用模型,通过C++Builder提供的多层分布式应用服务(MIDAS)可以轻松开发出高可靠性、高效率、高负载的分布式数据处理系统。

此外,还可以通过ActiveForm或InterBaseExpress为多层数据库应用程序创建基于Web的客户端,这样用户通过普通的浏览器就可以与远程数据库系统进行交互。

在C++cBuilder6中,MIDAS更名为DataSnap、DataSnap强化了MIDAS原有的功能,并改善了MIDAS的执行效率,更方便使用。

1.3MyDAC组件库

MyDAC,全称为MySQLDataAccessComponents(MySQL数据访问组件),支持BorlandDelphi,C++Builder和Kylix。

它提供访问MySQL数据库的一种方式,可以代替标准的BorlandDatabaseEngine(BDE)或dbExpress。

MyDAC能够通过MySQLclient或MySQLnetworkprotocol工作。

假如直接使用MySQLprotocol协议MyDAC不需要clientlibrary,仅需要TCP/IPprotocol。

这个特征允许编译真正的瘦客户数据库应用。

在基于MySQL的client/server应用中使用BDE或dbExpress有些不足,许多情况下BDE和dbExpress不能够使用服务器的特殊特征,还有BDE必须容忍过多的资源使用,限制一个应用程序的分发和管理。

使用BDE:

[MySQL]<->[ODBC]<->[BDE]<->[Application]

通过MySQL接口:

[MySQL]<->[Clientlibrary]<->[Application]

使用MySQL网络协议:

[MySQL]<->[Application]

二、需求分析

2.1功能需求及用户需求

2.1.1功能需求

该系统主要分为三大功能:

管理员功能、信息安全功能、一般用户功能、报表生成。

(1)管理员功能:

产品入库登记、确认入库信息、删除库内信息、借出信息登记、产品分类管理、添加人员、删除人员、查询库内信息。

(2)信息安全功能:

人员权限区分、事件记录、数据警告、计划备份、即时备份、数据恢复;

(3)一般用户功能:

查询库内信息、查询出库信息、查询入库信息、修改本用户密码;

(4)报表生成:

库存信息报表生成。

2.1.2用户需求

根据用户需求,该系统应该实现以下功能:

(1)进、出库管理。

对进、出库信息进行记录。

(2)查询功能。

仓库管理对查询要求高,通过主菜单记录当前操作用户的用户编号,保证了对进、出库信息录入负责人的确认。

(3)部门资料管理与库存报表生成。

资料管理包括了人员信息管理,财政支出信息管理,以及各项业务单据的资料管理。

报表主要分类为:

日报表,月报表,销售报表,入库报表等等。

(4)由于计算机能存贮大量的数据,而且数据只要一次存入,便可多次重复使用,所以管理数据达到完整,统一,原始记录能保证及时,准确。

(5)许多重复性的工作,都可由计算机去执行,从而使管理人员从事务性工作解脱出来,真正变为从事一些信息的分析,判断,决策等创造性的工作。

2.2系统流图

 

 

2.3数据描述

2.3.1数据字典

2.3.1.1基本数据项及数据结构

●零部件信息。

包括的数据项有零件号、零件名称、规格、单价、描述。

●仓库信息。

包括的数据项有仓库号、已用库存、库存总量、负责人、电话号码。

●供应商信息。

包括的数据项有编号、供应商、电话号码、地址。

●部门信息。

包括的数据项有部门号、名称、电话。

 

数据项名称

别名

简述

类型

长度

取值范围

零件号

-

零件的编号

字符型

7

第1位:

进口/国产(I/D)

第2-4位:

类别

第5-7位:

物资编号

零件名称

-

零件的名称

字符型

20

-

规格

-

零件规格

字符型

10

单价

-

零件的单位价格

货币型

6

默认计量单位:

描述

-

零件描述/说明

文本型

-

-

仓库号

-

仓库的编号

字符型

3

-

已用库存

-

仓库已用存储容量

数值型

6

>0:

仓库非空

=0:

空仓库

<0:

不允许

库存总量

-

仓库总存储容量

数值型

6

>0:

物资存量

=0:

空仓库

<0:

不允许

负责人

-

仓库负责人

字符型

20

-

供应商编号

-

供应商编号

字符型

3

-

供应商

-

供应商名称

字符型

20

-

地址

-

供应商联系地址

文本

-

-

部门号

-

公司部门编号

字符型

3

-

部门名

-

公司部门名称

字符型

20

-

电话

-

电话号码

字符型

15

-

2.3.1.2数据流条目

名称

别名

简述

来源

去向

入库单

-

入库单位在把相应的零件送人仓库时必须填写的单据

供应商

库存

出库单

-

领料人员从仓库中领取零件时必须填写的单据

库存

公司部门

客户

还库单

-

零件使用后归还入库必须填写的单据

公司部门

库存

需求单

-

对新零件需求所填写的单据

公司部门

库存

采购单

-

购买新零件所填写的单据

采购员

供应商

2.3.1.3数据存储条目

名称

别名

简述

组织方式

查询要求

仓库库存

-

存放

索引文件,以仓库编号为关键字

要求立即查询

零件库存

-

存放

索引文件,以零件编号为关键字

要求立即查询

 

2.3.1.4加工条目

加工名

激发条件

优先级

输入

输出

零件入库

接收到

合格

入库单时

普通

合格

入库单

库存满,

零件成功入库

加工逻辑

根据库存记录。

Loop:

If(入库物资的数量+物资现有存量)<=该物资库存量临界值

Then物资存入仓库;

物资现有存量=物资现有存量+入库物资的数量;

Else物资库存已足,

If物资现有存量=该物资库存量临界值

Then结束,入库失败

Endif;

调整入库单;

gotoloop,

直到(入库物资的数量+物资现有存量)<=该物资库存

量临界值;

Endif;

零件入库;

统计仓库库存已用量;

加工名

激发条件

优先级

输入

输出

零件出库

接收到

合格

出库单时

普通

合格

出库单

库存量不足,

零件成功出库

加工逻辑

根据库存记录。

Loop:

零件是否存在?

是:

If需求单物资的数量<该物资库存量的临界值

Then零件出库

物资现有存量=物资现有存量-出库零件的数量;

Else物资短缺,

If物资现有存量<=物资最少存量

Then结束,出库失败

Endif;

调整入库单;

gotoloop,

直到(物资现有存量-出库零件的数量)>=该物资库

存量临界值;

Endif;

否:

零件不存在,gotoloop;

零件入库;

统计仓库库存已用量;

2.3.2数据流图

1)本系统的顶层数据流图

2)细化后的数据流图

3)货物入库信息管理细化

4)货物出库信息管理细化

2.4安全性和完整性要求

2.4.1安全性要求

系统安全性要求至少达到TCSEC(TDI)的C1级。

即只提供了非常初级的自主安全保护。

能够实现对用户和数据的分离,进行自主存取控制(DAC),保护或限制用户权限的传播。

实行用户标识与鉴别,具有数据备份和日志审计功能。

2.4.2完整性要求

每个关系中都至少要有一个主键,并且都有一个聚集索引(ClusteredIndex)。

关系与关系之间通过主外键关联。

定义属性上的约束条件,定义触发器。

三、概念结构设计

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)仓库表storehouse

NO.

字段名

代码

类型

约束

1

仓库号

stoID

Char(3)

主键

2

已用库存

Used_volume

Smallint

非空,默认0,unsigned,<=All_volume

3

库存总量

All_volume

Smallint

非空,默认10000,unsigned

4

负责人

principal

Varchar(20)

非空

5

电话号码

stoTEL

Varchar(15)

2)零件表parts

NO.

字段名

代码

类型

约束

1

零件号

parID

Char(7)

主键

2

名称

part

Varchar(20)

非空

3

规格

spec

Char(10)

4

单价

price

Decimal(6,2)

非空,默认0,unsigned

5

计量单位

mensuration

Char(4)

非空,默认“元”

6

描述

description

Text

3)供应商supplier

NO.

字段名

代码

类型

约束

1

编号

supID

Char(3)

主键

2

供应商

supName

Varchar(20)

非空

3

电话号码

supTEL

Varchar(15)

非空

4

地址

address

Text

4)部门表dept

NO.

字段名

代码

类型

约束

1

部门号

depID

Char(3)

主键

2

名称

depName

Varchar(20)

非空

3

电话

depTEL

Varchar(15)

5)库存表storage

NO.

字段名

代码

类型

约束

1

仓库号

stoID

Char(3)

主键,与storehouse表中的stoID外键关联,级联删除、更新

2

零件号

parID

Char(7)

主键,与parts表中的parID外键关联,级联删除、更新

3

现有存量

Now_volume

Smallint

非空,默认0,>=Min_volume,<=Max_volume

4

最小存量

Min_volume

Smallint

非空,默认0,unsigned

5

最大存量

Max_volume

Smallint

非空,默认0,unsigned

6)供应表supply

NO.

字段名

代码

类型

约束

1

供应商号

supID

Char(3)

主键,与supplier表中的supID外键关联,级联删除、更新

2

零件号

parID

Char(7)

主键,与parts表中的parID外键关联,级联删除、更新

3

供应量

supVolume

Smallint

非空,默认0,unsigned

4

供应时间

supDate

Timestamp

非空

7)部门需求表demand

NO.

字段名

代码

类型

约束

1

零件号

parID

Char(7)

主键,与parts表中的parID外键关联,级联删除、更新

2

部门号

depID

Char(3)

主键,与dept表中的depID外键关联,级联更新、删除

3

需求数量

demVolume

Smallint

非空,默认0,unsigned

4

开始时间

startTime

Timestamp

非空

5

结束时间

endTime

Timestamp

非空

8)零件归还表restore

NO.

字段名

代码

类型

约束

0

编号

resID

Smallint

主键,AUTO_INCREMENT

1

仓库号

stoID

Char(3)

主键,与storehouse表中的stoID外键关联,级联删除、更新

2

零件号

parID

Char(7)

主键,与parts表中的parID外键关联,级联更新、删除

3

部门号

depID

Char(3)

主键,与dept表中的depID外键关联,级联更新、删除

4

归还数量

resVolume

Smallint

非空,默认0,unsigned

5

经手人

cmaker

Varchar(20)

非空

6

归还者

returner

Varchar(20)

非空

7

归还时间

resDate

Timestamp

非空

9)零部件采购计划表stock

NO.

字段名

代码

类型

约束

1

零件号

parID

Char(7)

主键,与parts表中的parID外键关联,级联更新、删除

2

采购量

stoVolume

Smallint

非空,默认0,unsigned

3

供应商号

supID

Char(3)

与supplier表中的supID外键关联

4

采购时间

stoDate

Timestamp

主键

5

采购员

buyer

Varchar(20)

10)入库表warehousing

 

NO.

字段名

代码

类型

约束

0

编号

inID

Smallint

主键,AUTO_INCREMENT

1

仓库号

stoID

Char(3)

主键,与storehouse表中的stoID外键关联,级联删除、更新

2

供应商号

supID

Char(3)

非空,与supplier表中的supID外键关联

3

零件号

parID

Char(7)

主键,与parts表中的parID外键关联,级联更新、删除

4

入库数量

inVolume

Smallint

非空,默认0,unsigned

5

经手人

cmaker

Varchar(20)

非空

6

入库时间

inDate

Timestamp

非空,默认当前时间

11)出库表stockout

NO.

字段名

代码

类型

约束

0

编号

outID

smallint

主键,,AUTO_INCREMENT

1

仓库号

stoID

Char(3)

主键,与storehouse表中的stoID外键关联,级联删除、更新

2

零件号

parID

Char(7)

主键,与parts表中的parID外键关联,级联更新、删除

3

出库数量

outVolume

Smallint

非空,默认0,unsigned

4

使用者

user

Varchar(20)

非空

5

经手人

cmaker

Varchar(20)

非空

6

领取人

receiptor

Varchar(20)

非空

7

出库时间

outDate

Timestamp

非空,默认当前时间

4.2用户子模式设计

1)仓库信息视图storehouse_view

NO.

字段名

代码

类型

备注

1

仓库号

stoID

Char(3)

连storehouse表

2

已用库存

Used_volume

Int

连storehouse表

3

库存总量

All_volume

Int

连storehouse表

4

负责人

principal

Varchar(20)

连storehouse表

6

电话号码

stoTEL

Varchar(15)

连storehouse表

2)零部件库存视图parts_storage_view

NO.

字段名

代码

类型

备注

1

仓库号

stoID

Char(3)

连storage表

2

零件号

parID

Char(7)

连parts表

3

名称

part

Varchar(20)

连parts表

4

规格

spec

Char(10)

连parts表

5

单价

price

Decimal

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1