德阳广播电视大学数据库原理及应用课程设计题目:仓库管理系统专业班级:学号:学生姓名:指导教师:教师职称:起止时间:课程设计(论文)任务及评语学号学生姓名专业班级课程设计题目仓库管理系统课程设计任务课程设计任务及要求:通过一个仓库管理系统,使仓库的管理工作系统化、规范化、自动化,使得资金使用合理,物资设备的储备最佳。本次设计的基本要求如下:(1)仓库管理各种信息的输入,包括入库、出库、还库、需求信息的输入等。(2)仓库管理各种信息的查询、修改和维护。(3)设备采购报表的生成。(4)在库存管理中加入最高储备和最低储备字段,对仓库中的物资设备实现监控和报警。(5)企业各个部门的物资需求的管理。指导教师评语及成绩成绩:指导教师签字:年月日目录第1章课程设计目的与要求.................................................41.1课程设计目的.........................................................41.2课程设计的实验环境...................................................41.3课程设计的预备知识...................................................41.4课程设计要求.........................................................4第2章课程设计内容.......................................................52.1选题说明及需求介绍...................................................52.2数据库设计说明.......................................................52.2.1概念设计.......................................................52.2.2逻辑设计.......................................................62.2.3建立数据库和基本表.............................................72.2.4定义基本表之间的关系...........................................82.3系统的功能模块划分...................................................82.4实现过程及完成效果介绍...............................................92.4.1实现过程简要说明...............................................92.4.1系统实现效果...................................................9第3章课程设计总结......................................................14参考文献....................................................................15第1章课程设计目的与要求1.1课程设计目的本课程的课程设计实际是计算机信息管理专业学生学习完《数据库原理与应用》课程后,进行的一次全面的综合训练,其目的在于加深对数据库基础理论和基本知识的理解,掌握运用数据库应用系统开发软件的基本方法。1.2课程设计的实验环境硬件要求能运行WindowsXP操作系统的微机系统。数据库应用系统开发软件可以选用MicrosoftAccess2003,或其他数据库管理系统。1.3课程设计的预备知识熟悉数据库的基本知识及一种以上数据库系统开发软件。1.4课程设计要求必须独立完成课程设计报告的撰写,不得抄袭他人或网上的社会实践报告,如有雷同,抄袭者和被抄袭者的成绩均为不合格,不能取得学分。按课程设计指导书提供的课题,独立设计,要求书写详细的设计说明书,对复杂的代码段和程序段,应画出程序流程图。在界面设计中,画出每个窗口的布局,有多个窗口时,按模块调用的方式画出窗口调用图。要求书写规范、文字通顺、图表清晰、数据完整、结论明确。第2章课程设计内容2.1选题说明及需求介绍选题说明:1、项目背景:数据库原理课程设计2、编写目的:掌握数据库设计原理及相关软件的使用3、软件定义:仓库管理系统4、开发环境:Access2003需求分析:1、问题的提出:由于所掌握的物资种类众多,订货、管理、发放的渠道各有差异,各个企业之间的管理体制不尽相同,种类统计计划报表繁多等原因,企业的物资管理往往是很繁琐的,因此物资管理必要实现计算机化,而且必须根据企业的具体情况制定相应的方案,决定开发仓库管理系统。2、需要完成的功能:(1)仓库管理各种信息的输入,包括入库、出库、还库、需求信息的输入等。(2)仓库管理各种信息的查询、修改和维护。(3)设备采购报表的生成。(4)在库存管理中加入最高储备和最低储备字段,对仓库中的物资设备实现监控和报警。(5)企业各个部门的物资需求的管理。2.2数据库设计说明通过一个仓库管理系统,使仓库的管理工作系统化、规范化、自动化,使得资金使用合理,物资设备的储备最佳。2.2.1概念设计本系统基本有库存实体、出库实体、采购实体、还库实体、需求实体,实体和实体之间的关系E-R图见下面。2.2.2逻辑设计下面为数据库需要建立数据表逻辑示意:Device_Buy表(设备采购计划表)Howdo表(操作日志表)Device_Return表(设备还库表)Device_Need表(部门需求表)Device表(现有库存表)Device_Code表(设备代码表)Device_Out表(设备出库表)Device_In表(设备入库表)2.2.3建立数据库和基本表根据上述的分析,这个仓库管理系统应该包括八个数据表:Device_Code表(设备代码表)、Device_In表(设备入库表)、Device_Out表(设备出库表)、Device表(现有库存表)、Device_Need表(部门需求表)、Device_Return表(设备还库表)、Howdo表(操作日志表)和Device_Buy表(设备采购计划表)。各数据表的逻辑结构设计如下:以下以“Device_In表(设备入库表)”为例利用表设计器新建这个表。运行该设计,得到如下结果:2.2.4定义基本表之间的关系建立基本表之间的关系,有利于整个系统的查询设计,下图为各表之间的关系分布图2.3系统的功能模块划分根据上述的分析,可以将本系统分成几个功能模块,基本结构如下图所示2.4实现过程及完成效果介绍2.4.1实现过程简要说明1、建立数据基本表首先,使用向导创建“仓库管理系统”数据库,然后才进行表的设计。按照表格的逻辑结构将表格的数据填入,具体逻辑结构如2.2.2逻辑设计所示2、建立各表之间的关系:建立关系如“2.2.4定义基本表之间的关系”所示3、查询设计本系统需建立两个查询:库存不足查询以及库存过多查询。以库存不足查询为例(1)在【查询】选项里使用【在设计视图中创建查询】,将“Device”表里的“设备号”、“现有库存”和“最小库存”字段到查询设计视图下边的设计网格中去,在已选定的字段“现有库存”列下的“条件”单元格中,输入“[最小库存]”作为查询条件,设计结果如下图所示运行该查询,查询运行如下图,该查询建立成功4、窗体设置窗体设置建立了设备入库、设备出库、设备还库、设备需求、设备采购、显示报表、切换面板7个窗体,这里以设备入库窗体为例(1)在【窗体】选项里选择【在设计视图中创建新窗体】建立新窗体,将Device_In”表的所有字段加入窗体,并添加3个控制按钮,设计结果如下:(3)编写代码“设备入库”窗体具有“添加记录”、“修改库存”和“查找记录”三项功能,可以通过编写VBA代码来实现。在代码窗口中,输入如下代码:OptionCompareDatabaseOptionExplicitPrivateSubcmdAdd_Click()'******************************'添加记录功能'******************************OnErrorGoToErr_cmdAdd_ClickDoCmd.GoToRecord,,acNewRecExit_cmdAdd_Click:ExitSubErr_cmdAdd_Click:MsgBoxErr.DescriptionResumeExit_cmdAdd_ClickEndSubPrivateSubcmdMod_Click()'******************************'修改库存功能'******************************DimcurdbAsDatabaseDimcurRSAsRecordsetDimdeviceCntAsIntegerSetcurdb=CurrentDbSetcurRS=curdb.OpenRecordset(select*fromdevicewhere设备号=’&设备_号.Value&’)IfNotcurRS.EOFThen'*****************************************'如果已经存在该设备'就在库存中修改相关记录'*****************************************deviceCnt=curRS.Fields(现有库存)deviceCnt=deviceCnt+CInt(入库数量.Value)curdb.Executeupdatedeviceset现有库存=&deviceCnt&,总数=&_curRS.Fields(_总数).Value+CInt(入库数量.Value)&where设备号='&设备号.Value&'Else'*****************************************'如果数据库里没有相关设备'就在库存中添加一条新记录'*****************************************WithcurRS.AddNew.Fields(设备号)=设备号.Value.Fields(现有库存)=CInt(入库数量.Value).Fields(最大库存)=CInt(入库数量.Value)+10.Fields(最小库存)=CInt(入库数量.Value)-10.Fields(总数)=CInt(入库数量.Value).UpdateEndWithEndIfcurdb.ExecuteinsertintoHowdo(操作员,操作内容,操作时间)values('管理员','设备入_库'&CDate(入库时间.Value)&)'*******************'将操作记录到日志中'******************cmdAdd.Enabled=TruecmdAdd.SetFocuscmdMod.Enabled=FalseEndSubPrivateSubcmdSearch_Click()'******************************'查找记录功能'******************************OnErrorGoToErr_cmdSearch_ClickScreen.PreviousControl.SetFocusDoCmd.DoMenuItemacFormBar,acEditMenu,10,,acMenuVer70Exit_cmdSearch_Click:ExitSubErr_cmdSearch_Click: