《数据库课程设计-仓库管理系统.doc》由会员分享,可在线阅读,更多相关《数据库课程设计-仓库管理系统.doc(39页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流数据库课程设计-仓库管理系统.精品文档.任 务 书1、课程设计题目仓库管理系统2、设计任务和内容一个小型通用的仓库管理系统是实现企业对库存商品出库、入库进行高效的管理。通过应用系统应能结合销售情况对库存商品进行录入、删除、修改等操作。按照一定的条件,查询、统计符合条件的商品信息;并且对查询、统计的结果有一定的输出。本课题任务是开发一个小型的仓库管理系统,并撰写符合规范的课程设计说明书以体现设计过程和设计结果。3、设计步骤和要求设计步骤:首先进行相关资料查阅和学习,了解基本的业务流程和系统数据功能要求。然后结合软件工程的理论和教材中数据库设计的
2、六个阶段(重点是前三个阶段)完成设计任务,即系统结构设计(需求分析、概念结构设计、逻辑结构设计、物理结构设计)和系统功能设计。设计要求:1、撰写课程设计说明书。其要求如下:(1)基本要求: 能反映完成了上述设计内容要求。 要求撰写不少于5000个文字(20页)的文档。 文档中至少要包括:数据流图、数据字典、E-R图、数据库表的详细说明、系统功能结构图、主要功能模块说明。 课程设计说明书一律用碳素墨水书写,其中用户界面设计可以附界面的计算机截图或手工绘图。(2)文档格式要求(遵循数据库原理及应用课程设计大纲上的要求)其中,正文部分:分章、层次等,每一章从新一页开始。章节安排可如下安排概述:包括项
3、目背景、编写目的、软件定义、开发环境等内容。 需求分析:问题陈述、需完成的功能。以数据流图和数据字典表达。概念结构设计:将上述需求分析的成果抽象为ER模型图。 逻辑结构设计:把ER模型图转换为关系表;描述每一个基本表关系。并进行规范化;定义视图、定义索引、主关键字、定义权限。软件功能设计:画出系统功能结构图,描述每个功能所完成的任务。 代码设计和界面设计:给出主要功能的代码并有适当的说明;界面设计要合理,给出主要界面。2、一个可运行的仓库管理系统原型。(可选) 教师签名:摘 要随着计算机技术的飞速发展,计算机在企业管理中应用的普及,利用计算机实现管理企业势在必行。而仓库管理系统是典型的信息管理
4、系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。本文通过分析浏览器/服务器结构的特点并结合企业仓储管理的实际情况,提出了基于B/S结构中小型企业仓库管理系统的基本设计思想,简要介绍了系统各功能模块及数据库的设计,着重讨论了用 ASP.NET技术和SQL Server 2005开发企业仓库管理系统时的数据库访问技术和动态网页制作技术,并给出了部分实现代码。通过该系统,使学生可以方便地在企业内部网上进行仓储管理。该B/S结构的系统在Windows XP系统和VS.NET
5、平台下开发完成,使用C作为ASP.NET的开发语言,SQL Server 2005作为后台数据库,该数据库系统在安全性、准确性、运行速度方面均有绝对的优势,并且能够对容量较大的数据库进行处理,效率高。系统有较高的安全性和较好的性能本文中除了有对程序的系统分析、总体设计、数据库设计、功能实现等主体部分外,在这之前还介绍了与企业仓库管理系统相关的信息、VS.NET与SQL的无缝链接技术等。关键词 仓库管理;信息管理系统;B/S结构;数据库管理目录第一章 概述1.1项目背景1.2编写目的1.3软件定义1.4开发环境第二章 需求分析2.1可行性分析2.2功能分析2.3数据流图2.4数据字典第三章 概念
6、结构设计3.1 E-R图第四章 逻辑结构设计4.1关系表4.2基本表关系。4.3规范化第五章 软件功能设计5.1系统功能结构图5.2功能任务简介第六章 代码设计和界面设计第一章 概述1.1项目背景仓库存放的货物品种繁多,堆存方式以及处理过程也非常复杂,随着业务量的增加,仓库管理者需要处理的信息量会大幅上升,因此往往很难及时准确的掌握整个仓库的运作状态。针对这一情况,本系统在满足仓库的基本管理功能基础上发挥信息系统的智能化,减轻仓库管理人员和操作人员的工作负担。系统主要的实现目标是监控整个仓库的运转情况;提供完善的出入库登记功能且拥有便捷的查询功能。1.2编写目的根据任务书要求,假想一小型企业拥
7、有多个仓库,拥有多种物品,且物品在仓库中存在耗损情况。开发数据库和系统平台解决此问题。1.3软件介绍本系统包括一下几个模块。1)货物管理提供入库登记、出库登记、损耗登记三个方面的登记功能方便的修改库存信息。2)档案管理提供货物档案设置、仓库设置、分类设置三个方面的内容。分别允许用户更改货物的属性,仓库的属性,分类的属性。3)查询统计提供入库查询、出库查询、耗损查询、库存查询四个方面的内容。允许用户随时查询仓库的现状。4)系统维护提供货物档案设置、仓库设置、分类设置三个方面的内容。分别允许用户更改货物的属性,仓库的属性,分类的属性。5)系统信息提供用户管理,更改密码,系统说明,退出系统四项功能。
8、使软件功能更加完善。1.4开发环境语言环境 C#语言平台环境 SQLServer2000,VisualStudio2005系统开发环境 Win7,处理器T8300,内存2G,显卡Geforce8600GT系统运行环境 WinXp/Vista/Win7,处理器Pentium II300以上,内存64M以上,硬盘空间3G以上,显卡 普通VGA显卡第二章 需求分析2.1可行性分析本软件所有处理流程内置,通过界面操作可以完成所有功能能,使用者无需具备SQL及C#语言知识,且软件所有功能完全可以达成编写目的,软件运行硬件要求不高,开发软件是完全可行的。2.2功能分析本软件所有处理流程内置,通过界面操作可
9、以完成所有功能能,使用者无需具备SQL及C#语言知识,且软件所有功能完全可以达成编写目的,软件运行硬件要求不高,开发软件是完全可行的。2.3数据流图略2.4数据字典1.数据项数据项名别名含义说明类型长度取值范围GoodsID物品号标志每个物品int40-65535SN库存编号标志每条库存信息int40-65535SortID类别ID标志类别int40-65535StorageID仓库ID标志仓库编号int40-65535InOrder入库单号每条入库操作对应单号int40-65535OutOrder出库单号每条出库操作对应单号int40-65535BreakOrder损耗单号每条损耗操作对应单
10、号int40-655352.数据流数据流名说明数据来源数据去向组成存储入库单把入库信息存入入库单货物入库单入库单号,仓库号,物品号, 入库数量, 入库单位, 入库日期存储出库单把出库信息存入出库单仓库出库单出库单号,仓库号,物品号, 出库数量, 出库单位, 出库日期存储耗损单把损耗信息存入损耗单仓库损耗表耗损单号,仓库号,物品号, 耗损数量, 耗损日期,损耗备注3.数据结构数据结构名含义说明组成货物操作入库出库及损耗的物品物品号,物品名,类别名称,规格仓库存放所有货物的载体仓库ID,仓库名称4.数据存储数据存储名说明编号流入数据流流出数据流组成入库单所有入库信息记录D1入库单号,仓库号,物品号
11、, 入库数量, 入库单位, 入库日期,入库备注入库单号,仓库号,物品号, 入库数量, 入库单位, 入库日期,入库备注出库单所有出库信息记录D2出库单号,仓库号,物品号, 出库数量, 出库单位, 出库日期,出库备注出库单号,仓库号,物品号, 出库数量, 出库单位, 出库日期,出库备注损耗单所有损耗信息记录D3耗损单号,仓库号,物品号, 耗损数量, 耗损日期,损耗备注耗损单号,仓库号,物品号, 耗损数量, 耗损日期,损耗备注5.处理过程处理过程名说明输入输出处理入库审核对入库申请进行审核入库申请同意的入库申请,驳回的入库申请判断入库信息完整及数据正确与否,均正确则通过否则驳回入库处理将物品存入库并
12、登记入库表同意的入库申请入库信息,入库单把货物入库并把信息记录到入库单出库审核对出库申请进行审核出库申请同意的出库申请,驳回的出库申请判断出库操作是否够权限并核对仓库中货物是否足够操作,均正确则通过否则驳回出库处理将物品出库并登记入出库表同意的出库申请出库信息,出库单把货物出库并把信息记录到出库单损耗审核对损耗申请进行审核损耗申请同意的损耗申请,驳回的损耗申请判断损耗操作权限是否够及仓库中是否有此物,均正确则通过,否则驳回损耗处理将物品损耗报废并登记入损耗表同意的损耗申请损耗信息,损耗表把货物损耗报废并把信息记录到损耗单第三章 概念结构设计3.1 E-R图图略第四章 逻辑结构设计4.1关系表1
13、. 类别信息表类别信息SortInfo字段名数据类型主键必填字段备注SortIDint是是类别IDSortNameVarchar(10)是类别名称SortLimitInt是类别权限2.仓库信息表仓库信息StorageInfo字段名数据类型主键必填字段备注StoragetIDint是是仓库IDStorageNameVarchar(20)是仓库名称3.物品信息表物品信息GoodsInfo字段名数据类型主键必填字段备注GoodsIDint是是类别IDGoodsNameVarchar(20)是类别名称SortIDInt是类别权限SpecVarchar(10)类别权限库存信息StoreInfo字段名数据
14、类型主键必填字段备注SNint是是库存自动编号StoreIDInt是仓库号GoodsIDInt是物品号SortIDInt是类别IDGoodsNumInt是数量EditDateDateTime修改日期 4.库存信息5.入库信息入库信息InInfo字段名数据类型主键必填字段备注InOrderint是是入库单号StorageIDInt是仓库号GoodsIDInt是物品号InNumInt是入库数量InUnitVarchar(20)是入库单位InDateDateTime入库日期InRemarkVarchar(100)入库备注6.出库信息出库信息OutInfo字段名数据类型主键必填字段备注OutOrder
15、int是是出库单号StorageIDInt是仓库号GoodsIDInt是物品号OutNumInt是出库数量OutUnitVarchar(20)是出库单位OutDateDateTime出库日期OutRemarkVarchar(100)出库备注7.入库信息损耗信息BreakInfo字段名数据类型主键必填字段备注BreakOrderint是是损耗单号StorageIDInt是仓库号GoodsIDInt是物品号BreakNumInt是损耗数量BreakDateDateTime损耗日期BreakRemarkVarchar(100)损耗备注8.用户信息用户信息UserInfo字段名数据类型主键必填字段备注
16、UserIDint是是用户IDUserNameVarchar(20)是用户名称UserPasswordVarchar(8)是用户密码UserLimitint是用户权限4.2基本表关系4.3规范化create database Storeage-物品信息if exists (select * from dbo.sysobjects where id = object_id(Ndbo.GoodsInfo) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table GoodsInfoGOCREATE TABLE GoodsInfoGoodsIDint i
17、dentity(1,1) primary key,-物品号编号主GoodsNamevarchar(20) not null,-物品名SortIDint not null,-类别ID外Specvarchar(10)-规格可空-类别信息if exists (select * from dbo.sysobjects where id = object_id(Ndbo.SortInfo) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table SortInfoGOCREATE TABLE SortInfoSortID int identity(1,1)
18、primary key,-类别ID主SortName varchar(10) not null,-类别名称SortLimit int not null-类别权限-仓库信息if exists (select * from dbo.sysobjects where id = object_id(Ndbo.StorageInfo) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table StorageInfoGOCREATE TABLE StorageInfoStorageID int identity(1,1) primary key,-仓库ID主S
19、torageName varchar(20) not null-仓库名称-库存信息if exists (select * from dbo.sysobjects where id = object_id(Ndbo.StoreInfo) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table StoreInfoGOCREATE TABLE StoreInfoSNint identity(1,1) primary key,-库存自动编号主StoreIDint not null,-仓库号外GoodsIDint not null,-物品号外SortIDi
20、nt not null,-类别ID外GoodsNumint not null,-物品数量EditDatedatetime-修改日期可空-入库信息if exists (select * from dbo.sysobjects where id = object_id(Ndbo.InInfo) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table InInfo GOCREATE TABLE InInfo InOrderint identity(1,1) primary key,-入库单号主StorageIDint references Storag
21、eInfo(StorageID) not null,-仓库号外GoodsIDint references GoodsInfo(GoodsID) not null,-物品号外InNumint not null,-入库数量InUnitvarchar(20),-入库单位可空InDatedatetime,-入库日期可空InRemarkvarchar(100)-入库备注可空-出库信息if exists (select * from dbo.sysobjects where id = object_id(Ndbo.OutInfo) and OBJECTPROPERTY(id, NIsUserTable)
22、= 1)drop table OutInfo GOCREATE TABLE OutInfo OutOrderint identity(1,1) primary key,-出库单号主StorageIDint references StorageInfo(StorageID) not null,-仓库号外GoodsIDint references GoodsInfo(GoodsID) not null,-物品号外OutNumint not null,-出库数量OutUnitvarchar(20),-出库单位可空OutDatedatetime,-出库日期可空OutRemarkvarchar(100)
23、-出库备注可空-损耗信息if exists (select * from dbo.sysobjects where id = object_id(Ndbo.BreakInfo) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table BreakInfo GOCREATE TABLE BreakInfo BreakOrderint identity(1,1) primary key,-损耗单号主StorageIDint references StorageInfo(StorageID) not null,-仓库号外GoodsIDint refere
24、nces GoodsInfo(GoodsID) not null,-物品号外BreakNumint not null,-损耗数量BreakDatedatetime,-损耗日期可空BreakRemarkvarchar(100)-损耗备注可空-用户信息if exists (select * from dbo.sysobjects where id = object_id(Ndbo.UserInfo) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table UserInfoGOCREATE TABLE UserInfoUserIDint identit
25、y(1,1) primary key,-用户ID主UserNamevarchar(20),-用户名UserPasswordvarchar(8),-用户密码UserLimitint-类别(权限)第五章 软件功能设计5.1系统功能结构图图略5.2功能任务简介简述个部分功能代码设计1.主界面using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms
26、;using System.Data.SqlClient;namespace XRX public partial class Main : Form public Main() InitializeComponent(); private void 入库登记(object sender, EventArgs e) GoodsManage.InManage Aa = new XRX.GoodsManage.InManage(); Aa.ShowDialog(); private void 出库登记(object sender, EventArgs e) GoodsManage.OutManag
27、e Ab = new XRX.GoodsManage.OutManage(); Ab.ShowDialog(); private void 耗损登记(object sender, EventArgs e) GoodsManage.BreakManage Ac = new XRX.GoodsManage.BreakManage(); Ac.ShowDialog(); private void 货物档案设置(object sender, EventArgs e) InfoManage.GoodsInfo Ba = new XRX.InfoManage.GoodsInfo(); Ba.ShowDia
28、log(); private void 仓库档案设置(object sender, EventArgs e) InfoManage.StoreInfo Bb = new XRX.InfoManage.StoreInfo(); Bb.ShowDialog(); private void 分类档案设置(object sender, EventArgs e) InfoManage.SortInfo Bc = new XRX.InfoManage.SortInfo(); Bc.ShowDialog(); private void 入库查询(object sender, EventArgs e) Que
29、ryManage.InQuery Ca = new XRX.QueryManage.InQuery(); Ca.ShowDialog(); private void 出库查询(object sender, EventArgs e) QueryManage.OutQuery Cb = new XRX.QueryManage.OutQuery(); Cb.ShowDialog(); private void 损耗查询(object sender, EventArgs e) QueryManage.BreakQuery Cc = new XRX.QueryManage.BreakQuery(); C
30、c.ShowDialog(); private void 库存查询(object sender, EventArgs e) QueryManage.StoreQuery Cd = new XRX.QueryManage.StoreQuery(); Cd.ShowDialog(); private void 备份数据(object sender, EventArgs e) SysManage.DataStore Da = new XRX.SysManage.DataStore(); Da.ShowDialog(); private void 恢复数据(object sender, EventAr
31、gs e) SysManage.DataRevert Db = new XRX.SysManage.DataRevert(); Db.ShowDialog(); private void 用户管理(object sender, EventArgs e) OtherManage.UserManage Ea = new XRX.OtherManage.UserManage(); Ea.ShowDialog(); private void 更改密码(object sender, EventArgs e) OtherManage.EditPassword Eb = new XRX.OtherManag
32、e.EditPassword(); Eb.ShowDialog(); private void 系统说明(object sender, EventArgs e) OtherManage.Help Ec = new XRX.OtherManage.Help(); Ec.ShowDialog(); private void 退出系统(object sender, EventArgs e) Application.Exit(); private void Main_FormClosing(object sender, FormClosingEventArgs e) if (MessageBox.Sh
33、ow(您真的要退出本系统吗?, 提示, MessageBoxButtons.OKCancel, MessageBoxIcon.Information) = DialogResult.OK) Application.Exit(); private void Main_Load(object sender, EventArgs e)2. 登陆界面using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Te
34、xt;using System.Windows.Forms;using System.Data.SqlClient;namespace XRX public partial class Login : Form public static string strUName = ; public static string strUPwd = ; public Login() InitializeComponent(); private void Login_Load(object sender, EventArgs e) User u = new User(); DataSet ds = u.s
35、howLogin(); this.cboxUName.DataSource = ds.Tables0.DefaultView; this.cboxUName.DisplayMember = UserName; private void Login_Click(object sender, EventArgs e) DataBase db = new DataBase(); SqlParameter Pa = new SqlParameter3; Pa0 = db.MakeInParam(UserName,SqlDbType.VarChar, 20, this.cboxUName.Text);
36、Pa1 = db.MakeInParam(UserPassword, SqlDbType.VarChar, 20, this.txtPwd.Text); Pa2 = db.MakeOutParam(rtn, SqlDbType.Int, 20); db.ExecuteNonQuery(CommandType.StoredProcedure, sp_Login, Pa); string rtn = Pa2.Value.ToString(); if (rtn = 1) Main main = new Main(); strUName = this.cboxUName.Text; strUPwd =
37、 this.txtPwd.Text; this.Hide(); main.Show(); else MessageBox.Show(密码错误!, 登陆失败, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); private void Exit_Click(object sender, EventArgs e) Application.Exit(); private void cboxUName_SelectedValueChanged(object sender, EventArgs e) DataBase db = new DataBase
38、(); SqlDataReader dr = db.ExecuteReader(CommandType.Text, select UserLimit from UserInfo where UserName = + this.cboxUName.Text.Trim() + , null); if (dr.Read() string a = drUserLimit.ToString(); if (a = 1) this.labURight.Text = 一级用户; if (a = 2) this.labURight.Text = 二级用户; if (a = 3) this.labURight.T
39、ext = 三级用户; if (a = 4) this.labURight.Text = 管理员; if (a = 5) this.labURight.Text = 超级管理员; dr.Close(); private void cboxUName_SelectedIndexChanged(object sender, EventArgs e) private void Login_FormClosing(object sender, FormClosingEventArgs e) Application.Exit();3.1入库管理界面using System;using System.Co
40、llections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace XRX.GoodsManage public partial class InManage : Form int a = 0, aa = 0,bb=0; public InManage() InitializeComponent(); private void InManage_Load(object sender, EventArgs e)