仓库管理系统毕业课程设计报告doc.docx

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

仓库管理系统毕业课程设计报告doc.docx

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

仓库管理系统毕业课程设计报告doc.docx

仓库管理系统毕业课程设计报告doc

(此文档为word格式,下载后您可任意编辑修改!

 

课程设计(论文)

 

课程名称数据库课程设计

题目名称__仓库管理系统_____

学生学院计算机学院

专业班级05级网络工程3班

学号__________

学生姓名____麦文钜___________

指导教师何晓桃

 

2009年1月

 

广东工业大学课程设计任务书

题目名称

仓库管理系统

学生学院

计算机学院

专业班级

网络开发0503班

姓名

麦文钜

学号

一、课程设计的内容

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

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

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

4、撰写课程设计报告。

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

系统应该实现以下功能:

(1)进、出库管理。

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

(2)查询功能。

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

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

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

报表主要分类为:

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

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

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

数据自己自行编造测试。

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

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

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

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

(1)管理员功能:

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

(2)信息安全功能:

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

(3)一般用户功能:

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

(4)报表生成:

库存信息报表生成。

四、课程设计进程安排

序号

设计(论文)各阶段名称

地点

起止日期

1

选定本次课程设计及报告的研究课题

宿舍

2008.12.28

2

对研究课题进行调查并做出详细的需求分析

宿舍

2008.12.29

3

收集资料和参考文献

图书馆

2008.12.29

4

认真阅读和学习资料、文献并做出初步构思

宿舍

2008.12..12.31

5

制定出整个系统的设计构想、设计思路和方法

宿舍

2008.12..1.1

6

进行系统的设计、开发和编写程序代码

宿舍

2009.1.1-2009.1.3

7

对系统进行测试和系统调试

宿舍

2009.1.4

8

完成整个系统的开发并进行系统维护

宿舍

2009.1.4

9

撰写课程设计报告

宿舍

2009.1.4-2009.1.5

10

最终完成系统修改、论文撰写和表格填写

宿舍

2009.1.5

11

上交课程设计报告、系统答辩

教学楼

2009.1.7-2009.1.9

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

[1]MySQL5.1参考手册#features

[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

发出任务书日期:

2008年12月29日指导教师签名:

何晓桃

计划完成日期:

2009年1月5日基层教学单位责任人签章:

主管院长签章:

一、相关技术介绍7

1.1MySQL7

1.2BorlandC++Builder集成开发环境8

1.3MyDAC组件库8

二、需求分析10

2.1功能需求及用户需求10

2.1.1功能需求10

2.1.2用户需求10

2.2系统流图11

2.3数据描述11

2.3.1数据字典11

2.3.1.1基本数据项及数据结构11

2.3.1.2数据流条目12

2.3.1.3数据存储条目12

2.3.1.4加工条目13

2.3.2数据流图14

2.4安全性和完整性要求15

2.4.1安全性要求15

2.4.2完整性要求16

三、概念结构设计16

四、逻辑结构设计18

4.1关系模型设计18

4.2用户子模式设计22

4.3系统结构图26

4.4安全性和完整性设计26

4.4.1安全性设计26

4.4.2完整性设计27

五、数据库物理设计28

5.1建立索引28

5.2确定数据的存放位置28

5.3确定系统配置29

5.4模块设计30

六、数据库实施30

6.1创建数据库及数据库对象SQL脚本30

6.2数据库备份和恢复方案44

6.2.1静态备份44

6.2.2动态备份44

6.2.3恢复备份44

6.3界面设计45

6.4关键代码48

七、系统测试方案50

7.1登录测试50

7.2新建用户测试50

7.3更改用户测试50

7.4删除用户测试50

7.5数据录入测试51

7.6查询测试51

八、系统主要功能和使用说明51

九、系统安装说明52

十、心得体会54

参考文献:

54

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、需求分析

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)。

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

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

3、概念结构设计

1)库存实体E-R图:

2)入库实体E-R图:

3)出库实体E-R图:

4)部门需求实体E-R图:

5)还库实体E-R图:

6)计划采购实体E-R图:

7)实体和实体之间的关系图如图所示:

8)仓库管理E-R图如图所示

4、逻辑结构设计

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

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

当前位置:首页 > 工程科技 > 纺织轻工业

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

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