数据库应用技术课程设计报告仓库管理信息系统.doc
一、仓库管理信息系统问题综述(一)、问题提出“21世纪是中国的世纪”,这是一句在20世纪末被世界上很多国家和国际经济学专家所谈论的热门话题。随着我国改革开放程度的不断深入和经济的持续高速发展,大、中、小企业如雨后春笋般的在中国大地上崛起,为了适应21世纪信息时代的需要,相应的企业运做也显得尤其重要。好的企业管理必将带来好的效益,尤其是信息化的今天更显其重要性。所以很多信息化的管理方式被人们开发出来。“仓库管理系统”就是其中之一。(二)、仓库管理系统基本背景 随着计算机机技术的飞跃发展,数据库的发展也日趋成熟,由于企业网建设的不断完善 ,对企业信息管理的要求也越来越高,为了实现对企业物资的便捷管理,就要求企业有一套方便的仓库管理系统,仓库管理系统是一个典型的管理信息系统(MIS),仓库管理系统是一个企业不可或缺的一个组成部分,它对于一个企业物资的方便管理有着重要作用。 仓库管理系统应该能够为用户提供充足的信息和方便的查询以及便捷的修改,但一直以来人们传统人工的方式管理仓库的各种资料,这种管理方式存在着很多缺点,如:效率低,保密性差,另外,时间一长将产生大量的文件和数据,这对于查找,更新和维护都带来了不少的麻烦,随着计算机日益走进人类社会的各个领域,其强大的功能已为人们所熟知,作为计算机应用的一部分,使用计算机对仓库信息进行管理,具有手工管理所无法比拟的优点,如:检索迅速,查找方便,可靠性高,存储量大,保密性好,寿命长,成本低等。这些优点能够极大提高仓库管理的效率,也是企业正规化,科学化管理,并与世界企业接轨的重要条件。 基于以上考虑,我根据企业中存在的大量有关仓库方面的数据的特点,提出在企业信息管理系统的基础上将仓库信息的查询,修改等环节与其有机的结合在一起,为企业提供一个完整的,有效的,综合的管理分析系统。二、系统需求分析(一)、系统的主要功能:1、入库管理,可以填写入库单,确认产品入库;2、出库管理,可以填写出库单,确认出库;3、仓库管理,可以填写仓库编号,对仓库进行管理;4、库存设置,连接入库管理和出库管理,确认库存;5、查询产品入库情况、出库情况、当前库存情况,可以按出库单、入库单,产品、时间进行查询。(二)、数据流图图1 系统数据流图0层图图2 系统数据流图1层图(三)、数据字典表1 产品表的结构数据项名别名数据类型长度逻辑关系cpnumber产品编号char10主键,决定产品信息的其它数据项cpname产品名称char10依赖于产品编号表2 仓库表的结构数据项名别名数据类型长度逻辑关系caknumber仓库号char10主键,决定仓库信息的其它数据项cakname仓库名char10依赖于仓库号表3 库存的结构数据项名别名数据类型长度逻辑关系caknumber仓库号char10主键,决定库存信息的其它数据项cpnumber产品编号char10主键,决定库存信息的其它数据项kcamount库存量int4依赖于仓库号,产品编号表3 管理员的结构数据项名别名数据类型长度逻辑关系glynumber管理员IDchar10主键,决定管理员信息的其它数据项glyname管理员姓名char10依赖于管理员glypassword密码int10 依赖于管理员表4 入库表的结构数据项名别名数据类型长度逻辑关系rknumber入库编号char10主键,决定入库信息的其它数据项rktime入库时间datetime8依赖于入库编号caknumber仓库号char10依赖于入库编号cpnumber产品编号char10依赖于入库编号cpamount产品数量int4依赖于入库编号glynumber管理员编号char10依赖于入库编号表5 出库表的结构数据项名别名数据类型长度逻辑关系cknumber出库编号char10主键,决定出库信息的其它数据项cktime出库时间datetime8依赖于出库编号caknumber仓库号char10依赖于出库编号cpnumber产品编号char10依赖于出库编号cpamount产品数量int4依赖于出库编号glynumber管理员编号char10依赖于出库编号三、系统总体设计图3 系统功能模块图四、数据库设计1、 数据库概念结构设计图4 系统E-R图2、 逻辑结构设计,将概念模型转化为关系模型:产品:(产品编号;产品名称)仓库:(仓库号;仓库名)库存:(仓库号;产品编号;库存量)管理员:(管理员ID;管理员姓名;密码)入库:(入库编号;入库时间;仓库号;产品编号;产品数量;管理员编号)出库:(出库编号;出库时间;仓库号;产品编号;产品数量;管理员编号)3、 物理设计,选择实施环境。选择SQLServer2000作为本信息系统的数据库管理系统;选Microsoft Visual Studio 2008,利用Visual Basic语言编辑本信息管理系统。五、系统详细设计1、功能需求该系统的用户为仓库管理员,同时他也是系统管理员。系统的主要功能如下:1) 仓库入库管理:主要是管理员对进入仓库的产品进行登记,包括入库编号,入库时间,仓库号,产品编号,产品数量,以及管理员编号等。以便统一管理,当同一产品入库时记录追加,同时也要记录仓库入库的日志信息。2) 仓库出库管理:主要是管理员对进入仓库的产品进行登记,包括出库编号,出库时间,仓库号,产品编号,产品数量,以及管理员编号等。以便统一管理,当同一产品出库时记录减少,同时也要记录仓库出库的日志信息。3) 仓库查询管理:用户可按产品号,仓库号等进行查询。这些查询主要是用户需要知道产品资料是进行,由于只进行查询操作,所以数据以只读的形式出现。2、用户界面设计图5 用户登录界面图6 系统管理界面图7 入库管理界面图8 新建入库信息界面图9 系统管理界面3、程序代码设计与分析1)系统登录 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim 管理员ID As String Dim 密码 As String 管理员ID = TextBox1.Text 密码 = TextBox2.Text Dim str As String str = "select 管理员ID,密码 from 管理员 where 管理员ID='" & 管理员ID & "' and 密码='" & 密码 & "'" comm.Connection = conn comm.CommandType = CommandType.Text comm.CommandText = str da.SelectCommand = comm Try conn.Open() da.Fill(ds) If ds.Tables(0).Rows.Count <> 0 Then Dim frm1 As New Form2 frm1.Show() Me.Hide() Else MessageBox.Show("密码或用户名错误,请重新输入", "提示信息") TextBox1.Text = "" TextBox2.Text = "" TextBox1.Focus() End If Catch ex As Exception MessageBox.Show("登陆失败", "提示信息") End Try End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Application.Exit()End Sub2)入库管理 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim frm1 As New Form7 frm1.Show() Me.Hide() End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click If conn.State = ConnectionState.Closed Then conn.Open() End If Dim a As String a = "select * from 入库" comm.Connection = conn comm.CommandType = CommandType.Text comm.CommandText = a da.SelectCommand = comm ds.Tables.Clear() DataGridView1.Invalidate() da.Fill(ds, "入库") DataGridView1.DataSource = ds.Tables("入库") If conn.State = ConnectionState.Open Then conn.Close() End If End Sub3)出库管理 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click If conn.State = ConnectionState.Closed Then conn.Open() End If Dim a As String a = "select * from 出库" comm.Connection = conn comm.CommandType = CommandType.Text comm.CommandText = a da.SelectCommand = comm ds.Tables.Clear() DataGridView1.Invalidate() da.Fill(ds, "出库") DataGridView1.DataSource = ds.Tables("出库") If conn.State = ConnectionState.Open Then conn.Close() End If End Sub4)库存查询 Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click If conn.State = ConnectionState.Closed Then conn.Open() End If Dim a As String a = "select 仓库号,库存量 from 库存 where 仓库号= " & TextBox1.Text & " " comm.Connection = conn comm.CommandType = CommandType.Text comm.CommandText = a da.SelectCommand = comm ds.Tables.Clear() DataGridView1.Invalidate() da.Fill(ds, "库存") DataGridView1.DataSource = ds.Tables("库存") If conn.State = ConnectionState.Open Then conn.Close() End If End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If conn.State = ConnectionState.Closed Then conn.Open() End If Dim a As String a = "select 产品编号,库存量 from 库存 where 产品编号= " & TextBox2.Text & " " comm.Connection = conn comm.CommandType = CommandType.Text comm.CommandText = a da.SelectCommand = comm ds.Tables.Clear() DataGridView1.Invalidate() da.Fill(ds, "库存") DataGridView1.DataSource = ds.Tables("库存") If conn.State = ConnectionState.Open Then conn.Close() End If End Sub5)新建入库信息 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim str As String str = "insert into 入库 values('" & TextBox1.Text & "','" & TextBox2.Text & "','" & TextBox3.Text & "','" & TextBox4.Text & "','" & TextBox5.Text & "','" & TextBox6.Text & "') " If conn.State = ConnectionState.Closed Then conn.Open() End If comm.Connection = conn comm.CommandType = CommandType.Text comm.CommandText = str da.SelectCommand = comm da.Fill(ds, "入库") str = "select * from 入库 where 入库编号='" & TextBox1.Text & "'" comm.CommandText = str da.SelectCommand = comm da.Fill(ds, "入库") DataGridView1.DataSource = ds.Tables("入库") conn.Close() End Sub6)新建出库信息 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim str As String str = "insert into 出库 values('" & TextBox1.Text & "','" & TextBox2.Text & "','" & TextBox3.Text & "','" & TextBox4.Text & "','" & TextBox5.Text & "','" & TextBox6.Text & "') " If conn.State = ConnectionState.Closed Then conn.Open() End If comm.Connection = conn comm.CommandType = CommandType.Text comm.CommandText = str da.SelectCommand = comm da.Fill(ds, "出库") str = "select * from 出库 where 出库编号='" & TextBox1.Text & "'" comm.CommandText = str da.SelectCommand = comm da.Fill(ds, "出库") DataGridView1.DataSource = ds.Tables("出库") conn.Close() End Sub4、运行结果图10 新建入库信息执行结果六、系统使用说明用户名:管理员登陆ID:123456密 码:123456路 径:数据库路径:.0807003208070032 xxx课设_Data.MDF .0807003208070032 xxx课设_Log.LDF 程序路径:.0807003208070032 xxx课设080700xx xxx课设.sln参考文献1王珊,冯念真.计算机应用系统的设计和开发.北京:高等教育出版社,19892姚卿达.数据库设计.北京:高等教育出版社,19873Smith J, Smith D. Database Abstractions: Aggregation and Generalization.TODS,2:2,19774王珊.面向对象的数据库系统.计算机世界专题综述,19905李昭原主编.数据库技术新进展.北京:清华大学出版社,19776张龙祥.数据库原理与设计.北京:人民邮电出版社,20007李红.数据库原理与应用.北京:高等教育出版社,20028何旭洪.数据库系统开发实例导航.北京:人民邮电出版社,20039童爱红,刘凯.VB.NET应用教程.北京:清华大学出版社,200710刘志铭,高春艳,孙健鹏.数据库开发实例.北京:机械工业出版社,2004