当前位置:文档之家› 数据库仓库管理系统

数据库仓库管理系统

课程设计课程设计任务书2009~2010学年第二学期学生姓名:专业班级:指导教师:工作部门:计算机学院一、课程设计题目仓库管理系统设计二、设计目的1.使学生更深入地理解和掌握该课程中的有关基本概念,程序设计思想和方法。

2.培养学生综合运用所学知识独立完成课题的能力。

3.培养学生勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。

4.提高学生对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基本素质。

5.培养学生从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。

6.对学生掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核。

三、设计要求1.可组成设计小组,小组成员分工协作完成。

要求每个成员有自己相对独立的模块,同时要了解其他组员完成的内容。

2.查阅相关资料,自学具体课题中涉及到的新知识。

3.采用结构化、模块化程序设计方法,功能要完善,界面要美观。

4.所设计的系统原则上要能够运行无误,结果准确。

5.按要求写出课程设计报告,并于设计结束后1周内提交。

其主要内容包括:封皮、课程设计任务书,指导教师评语与成绩、目录、概述、软件总体设计、详细设计、软件的调试、总结、谢启、附录:带中文注释的程序清单、参考文献。

报告一律用A4纸打印,中文字体为宋体,西文字体用Time New Roma,一律用小四号字,行距采用“固定值”20磅,首行缩进2字符。

总体设计应配合软件总体模块结构图来说明软件应具有的功能。

详细设计应用传统或N-S流程图和屏幕抓图说明,调试的叙述应配合出错场景的抓图来说明出现了哪些错误,如何解决的。

四、设计内容任务说明:一个存放商品的仓库,每天都有商品出库和入库。

每种商品都有名称、生产厂家、型号、规格等。

出入库时必须填写出入库单据,单据包括商品名称、生产厂家、型号、规格、数量、日期、时间、入库单位(或出库单位)名称、送货(或提货)人姓名。

设计要求:1)进行需求分析,编写数据字典。

2)设计E-R图。

设计数据库对象(表、视图、存储过程等)3)设计出入库单据的录入。

4)实现按商品名称、出入库日期的查询。

5)实现分别按日、月和年对出入库商品数量的统计。

三、课程设计工作计划2010年6月21日,指导教师讲课,学生根据题目准备资料;2010年6月21日,设计小组进行总体方案设计和任务分工;2010年6月22日~2010年6月30日,每人完成自己承担的程序模块并通过独立编译;2010年7月1日~2010年7月2日,将各模块集成为一个完整的系统,并录入足够的数据进行调试运行;2010年7月3日,验收,撰写报告,答辩及总结。

教研室主任签字:年月日目录一.引言 (4)二.系统分析 (5)1.实验目的 (5)2.数据描述 (5)3.数据流图 (6)4.E-R图 (6)5.数据字典 (7)6.功能描述 (8)三.系统设计与实现......................................................................11. 1.职员操作统计. (11)2.月盘点 (13)3.入库单 (15)四.小结 (17).第一章引言仓库在现实生活中用途十分广泛,各种商城、超市要利用仓库存放物资,药房、医院等要利用仓库存放药品,企业、工厂等要利用仓库存放原材料、生产成品,因此仓库的管理成了一项十分重要的工作。

人工管理仓库既费时又费力,而且容易造成混乱,严重时会影响商城、企业的正常运作,造成恶劣的后果。

随着信息技术的发展,办公自动化的普及,如何快速,高效,便捷的管理仓库受到了高度的关注;因此为了解决这个问题我们提供这个系统以满足仓库管理需求,本系统是基于超市仓库的管理系统。

本系统模拟仓库管理,系统主要针对于日常库存信息的管理,包括物资管理、仓库管理、入库操作、入库查询统计、出库操作、出库查询统计、库存查询统计等处理情况。

用户可以通过相应的模块,对仓库里的物品的基本情况和库存数量进行查询,管理员通过简单的操作即可轻松的管理仓库,查询各项相关信息,并能进行入库和出库操作等。

通过仓库管理系统的设计与实现,使我们巩固和加深对数据库基础理论和基本知识的理解,进一步掌握了使用数据库进行软件设计的基本思想和方法,提高了运用数据库理论解决实际问题的能力,锻炼了实际动手能力、创新能力,培养了调查研究、查阅技术文献、资料、手册以及编写文档的能力。

第二章系统分析2.1 实验目标本软件是一个简单的仓库管理系统,在满足用户需求的基础上,用计算机来实现系统的信息处理逻辑模型中规定的输入、输出及内部处理等多项功能,本软件产品是一项独立的软件。

相应的需求有:⑴能分类管理物资信息。

⑵系统能管理多个仓库。

⑶能进行入库操作,能按物资种类、名称、入库时间等信息查询统计出入库的数量、金额等信息。

⑷能进行出库操作,能按物资种类、名称、入库时间等信息查询统计出出库的数量、金额等信息。

如果物资数量小于出库数量不允许进行出库操作。

⑸能按各种方式查询库存信息。

2.2 数据描述2.2.1静态数据所谓静态数据,指在运行过程中主要作为参考的数据,它们在很长的一段时间内不会变化,一般不随运行而改变。

本系统中的实体仓库、物资、职工、供应商及其属性属于静态数据,一般不会改变。

2.2.2动态数据所谓动态数据,包括所有在运行中要发生变化的数据以及在运行中要输入、输出的数据。

本系统中的动态数据包括库存表、入库表和出库表。

2.3 数据流图图1 管理员数据流图图2用户数据流图2.4 E-R图图3 物资及其属性图图4库存表及其属性图图5出库表及其属性图2.5 数据字典2.6 功能需求图11 系统层次图2.7 功能划分管理员:入库操作、出库操作、查询库存信息、入库信息、出库信息、仓库信息、职工信息及供应商信息,更改信息及注册。

用户:查询该用户的物资的入库、出库及库存情况、更改密码及注册。

2.8功能描述管理员:1、入库操作通过将要入库的物资信息更改仓库、物资、库存表及入库表。

2、出库操作通过将要出库的物资信息更改仓库、物资、库存表及出库表。

3、查询根据管理员的需要查看相关信息,其中包括入库信息、出库信息、库存信息、物资信息、职工信息、仓库信息和供应商信息等。

4、更改信息4.1 增加仓库4.2 删除仓库4.3 更改自己账号的密码5、注册用户:1、查询查询该用户的物资的入库、出库及库存情况2、更改密码3、注册三系统设计总体设计物资管理系统是对物资的入库出库等信息进行记录并查询,包括管理员和用户的操作。

管理员可以对仓库进行出库入库及修改仓库信息,用户只能查看自己物资的相关情况。

以下是对仓库各种操作的流程图。

1.职员操作统计Private Sub 进行统计_Click()If 限定仓库.Value = 1 And DataCombo1.Text = "" Then MsgBox "请选择仓库名称!": Exit SubDim 仓库编号 As Long仓库编号 = -1On Error Resume NextIf 仓库编号 <> -1 Thens = s + " and 仓库编号=" + Str(仓库编号)End Ifs = s + ") as 入库次数,"'出库单s = s + "(select count(编号) from 出库单 where 经办人编号=职员信息.编号 If T出入时间.Text <> "无限制" Thens = s + " and 出库时间" + T出入时间.Text + "#" + t + "#"End IfIf 仓库编号 <> -1 Thens = s + " and 仓库编号=" + Str(仓库编号)End Ifs = s + ") as 出库次数,"'借入单s = s + "(select count(编号) from 借入单 where 经办人编号=职员信息.编号” If T出入时间.Text <> "无限制" Thens = s + " and 借入时间" + T出入时间.Text + "#" + t + "#"End IfIf 仓库编号 <> -1 Thens = s + " and 仓库编号=" + Str(仓库编号)End Ifs = s + ") as 借入次数,"'借出单s = s + "(select count(编号) from 借出单 where 经办人编号=职员信息.编号 If T出入时间.Text <> "无限制" Thens = s + " and 借出时间" + T出入时间.Text + "#" + t + "#"End IfIf 仓库编号 <> -1 Thens = s + " and 仓库编号=" + Str(仓库编号)End Ifs = s + ") as 借出次数,"'调拔单s = s + "(select count(编号) from 调拔单 where 经办人编号=职员信息.编" If T出入时间.Text <> "无限制" Thens = s + " and 调拔时间" + T出入时间.Text + "#" + t + "#"End IfEnd Sub2.月盘点Private Sub Form_Resize()ChangeBackColor'新增盘点单If 编号.Text = "" Then日期.Text = Date打印月盘点单.Visible = False更改背景.Visible = False'初始化编号fMainForm.m_checkado.RecordSource = "select 编号 from 盘点单"fMainForm.m_checkado.RefreshIf fMainForm.m_checkado.Recordset.RecordCount > 0 ThenfMainForm.m_checkado.Recordset.MoveLast编号.Text = fMainForm.m_checkado.Recordset.Fields("编号").Value+ 1Else编号.Text = 1End IfElse '打印盘点单'初始化数据fMainForm.m_checkado.RecordSource = "select 仓库.仓库名称,职员信息.姓名 as 经办人,盘点单.盘点数据,盘点单.盘点时间 from 仓库,职员信息,盘点单 where 仓库.编号=盘点单.仓库编号 and 职员信息.编号=盘点单.经办人编号 and 盘点单.编号=" + 编号.Text + " and 盘点时间>" + GetMinDatefMainForm.m_checkado.RefreseOn Error Resume Nextn = n + 1i = j + 1j = InStr(i, data, ";")WendEnd If进行月盘点.Visible = FalselockcontrolEnd IfEnd Sub'写入系统日志fMainForm.WriteLog ("新增月盘点")保存月盘点.Visible = False更改背景.Visible = True打印月盘点单.Visible = TrueEnd Sub3.入库单Private Sub 删除入库单_Click()On Error GoTo quitIf DataGrid1.Columns(12).Text = "已退出" Then GoTo conIf MsgBox("建议用[退出入库单],而不要直接删除,以免数据丢失.您确信要删除该入库单吗?", vbYesNo Or vbQuestion) = vbNo Then Exit Subcon:On Error Resume NextDim code, code1, code2 As Longcode = DataGrid1.Columns(0).TextfMainForm.m_checkado.RecordSource = "select 货物编号,入库数量,仓库编号 from 入库单 where 编号=" + Str(code)fMainForm.m_checkado.RefreshDim num1, num2 As Longcode1 = fMainForm.m_checkado.Recordset.Fields("货物编号").Valuenum1 = fMainForm.m_checkado.Recordset.Fields("入库数量").Valuecode2 = fMainForm.m_checkado.Recordset.Fields("仓库编号").Value'如果是已退出入库单则直接删除If DataGrid1.Columns(12).Text = "已退出" ThenIf MsgBox("您确信要删除该入库退出单吗?", vbYesNo Or vbQuestion) = vbNo Then Exit SubfMainForm.m_checkado.RecordSource = "select * from 入库单 where 编号=" + Str(code)fMainForm.m_checkado.RefreshfMainForm.m_checkado.Recordset.DeletefMainForm.m_checkado.RefreshSaveInitAdodc1.RefreshResumeInitExit SubEnd IfMainForm.m_checkado.RecordSource = "select 库存数量 from 库存状况 where 货物编号=" + Str(code1) + " and 仓库编号=" + Str(code2)fMainForm.m_checkado.Refresh'当前库存数量num2num2 = fMainForm.m_checkado.Recordset.Fields("库存数量").Value'库存不足If num2 < num1 ThenIf MsgBox("库存不足,库存量为" + Str(num2) + ",需求量为" + Str(num1) + "," + "要忽略它并强制删除吗?", vbQuestion Or vbYesNo) = vbNo Then Exit SubEnd If'更新库存状况If num2 - num1 > 0 ThenfMainForm.m_checkado.Recordset.Fields("库存数量").Value = num2 - num1fMainForm.m_checkado.Recordset.updateElse '如果库存为零清空fMainForm.m_checkado.Recordset.DeleteEnd IffMainForm.m_checkado.Refresh'更新入库单fMainForm.m_checkado.RecordSource = "select * from 入库单 where 编号=" +Str(code)fMainForm.m_checkado.RefreshfMainForm.m_checkado.Recordset.DeletefMainForm.m_checkado.RefreshSaveInitAdodc1.RefreshResumeInitMsgBox "入库单删除成功!"'写入系统日志fMainForm.WriteLog ("删除入库单“)quit:End Sub小结经过几个星期的努力终于把仓库管理系统做完了,通过做这次课程设计,我对数据库系统及sql语句和c#语言有了更深的认识和理解,把理论知识和实践结合起来,使理论知识得到了运用,同时自己也掌握了知识。

相关主题