淮海工学院计算机工程学院课程设计报告设计名称:数据库原理及应用课程设计姓名:朱洁学号: 510856117 专业班级:软件081系(院):东港学院设计时间:2010.12.20~~2010.12.31设计地点:东港学院D2-308一、概述仓库管理系统是在管理科学、系统科学、计算机科学等的基础上发展起来的综合性边缘科学。
在21世纪信息高速发展的时代中,仓库管理系统具有很重要的作用,它的预测和辅助决策的功能,即利用现代管理的决策和支持。
仓库管理系统是一个人机系统,同时它又是一个一体化集成系统。
仓库管理系统是信息系统的一个子系统,它以计算机技术、通讯技术和软件技术为技术基础,同时将现代管理理论、现代管理方法及各级管理人员融为一体,最终为某个组织整体的管理与决策服务,是由人和计算机组成的能进行管理信息的收集、传递、存储、加工、维护和使用的系统。
仓库管理系统的基本结构可以概括为四大部件,即信息源、信息处理器、信息用户和信息管理者。
因此,一个成功的管理信息系统应该具有可靠的硬件、实用的软件、强有力的现代化管理水平。
具体讲,管理信息系统的三大支柱是:计算机网络、数据库和现代化的管理,这三打支柱称为管理信息系统的扩展部件。
二、需求分析通过对系统的终端用户、生产商和销售商进行分析,可以得到本系统典型的文本需求说明,其中的关键部分如下:基本信息是仓库管理系统得以运行的数据基础。
基本信息包括产品信息、仓库信息、生产商信息和销售商的信息。
用户可以通过界面来随时添加、修改和查询这些信息。
出入库管理是仓库管理系统的核心部分,实现产品的出入库登记。
产品出入库登记中的产品信息、仓库信息、生产商信息和销售商的信息都是从已有的信息中通过下拉列表选择的,这样可以减少出错,提高效率;如果在基本信息中找不到相关信息即时进行添加。
根据用户需求,该系统应该实现以下功能:1)基本信息(包括产品信息、仓库信息、生产商和销售商信息)的添加、修改和查询。
2)填写基本信息→提交信息填写3)修改基本信息→提交信息修改4)选择填写查询条件→提交查询→查询结果显示5)产品入库登记、修改和查询。
6)填写入库产品信息→提交入库登记7)修改入库登记→提交信息修改8)选择填写查询条件→提交查询→查询结果显示9)品出库登记、修改和查询。
10)出库选择→填写出库产品信息→提交出库登记11)修改出库登记→提交信息修改12)选择填写查询条件→提交查询→查询结果显示13)产品库存统计信息查询14)选择查询条件→填写查询内容→提交查询→查询结果显示15)用户和仓库管理员注册16)登录→输入用户名→输入密码→注册17)用户修改密码和仓库管理员添加用户。
28)输入旧密码→输入新密码→确认新密码→提交密码修改29)输入新用户名→输入用户密码→确认密码→设置用户权限→提交用户添加2.2模块划分2.2.1系统功能模块设计2.2.2数据流程图三、系统设计设计的数据项和数据结构如下:设备代码信息,包括的数据项有设备号、设备名称。
现有库存信息,包括的数据项有设备、现有数目、总数目、最大库存和最小库存。
设备使用信息,包括的数据项有使用的设备、使用部门、数目、使用时间和出库时状态等。
设备采购信息,包括的数据项有采购的设备、采购员、供应商、采购数目和采购时间等。
设备归还信息,包括的数据项有归还设备、归还部门、归还数目、归还时间和经手人等。
设备需求信息,包括的数据项有需求的部门、需求设备、需求数目和需求时间等。
3.2数据库概念结构设计本实例根据上面的设计规划出的实体有库存实体、入库实体、出库实体、采购实体、还库实体和需求实体,各实体的E-R图及其关系描述如下:图3-2-1 库存实体E-R图图3-2-2 入库实体E-R图图3-2-3 出库实体E-R图图3-2-4 部门需求实体E-R图图3-2-5 还库实体E-R图图3-2-6计划采购实体E-R图图3-2-7实体和实体之间的关系E-R图3.3数据库逻辑结构设计在上面的实体以及实体之间的关系的基础上,形成数据库中的表格以及各个表格之间的关系。
仓库管理系统数据库中的各个表格的设计结果如下面的几个表格所示。
每个表格表示在数据库中的一个表。
3.4 数据库和数据库表创建语法/*创建管理员表*/CREATE TABLE User (UserWorkID varchar(20) Primary key ,UserName varchar(50) NULL ,UserAdress varchar(50) NULL , UserQuanxian varchar(20) NULL,UserPhone varchar(20) NULL ,)GO/*创建厂商表*/CREATE TABLE Factory (FactoryID varchar(10) Primary key ,FactoryName varchar(50) NOT NULL ,FactoryAddress varchar(250) NULL ,FactoryPhone varchar(50) NULL)GO/*创建会员表*/CREATE TABLE Member (MemberID varchar(10) Primary key ,MemberCard varchar(20) NOT NULL ,TotalCost money NOT NULL ,RegDate datetime NOT NULL)GO/*创建商品信息表*/CREATE TABLE MerchInfo (MerchID int identity(1,1) Primary key ,MerchName varchar(50) Unique NOT NULL , MerchPrice money NOT NULL ,MerchNum int NOT NULL ,CautionNum int NOT NULL ,PlanNum int NOT NULL ,BarCode varchar(20) Unique NOT NULL ,SalesProPrice money NULL ,SalesProDateS datetime NULL ,SalesProDateE datetime NULL ,AllowAbate int NOT NULL ,AllowSale int NOT NULL ,FactoryID int NOT NULL ,ProvideID int NOT NULL)GO/*创建供应商表*/CREATE TABLE Provide (ProvideID varchar(10) Primary key ,ProvideName varchar(50) NOT NULL ,ProvideAddress varchar(250) NULL ,ProvidePhone varchar(25) NULL)GO系统登陆窗体模块的设计private void c_form_Load(object sender, System.EventArgs e){string connstr="Persist Security Info=False;Integrated Security=SSPI;database=ckgldata;server=localhost;Connect Timeout=30";conn=new SqlConnection(connstr);try{conn.Open();}catch(Exception ee1){MessageBox.Show(ee1.Message);Application.Exit();}login login1=new login();login1.ShowDialog();}4.2货品入库窗体模块的设计private void jcdl_Load(object sender, System.EventArgs e){c_rq.Value=DateTime.Now;c_form.mydata.Tables.Add("jcmx1");c_form.mydata.Tables["jcmx1"].Columns.Add("原料编号");c_form.mydata.Tables["jcmx1"].Columns.Add("原料名称");c_form.mydata.Tables["jcmx1"].Columns.Add("数量");c_form.mydata.Tables["jcmx1"].Columns.Add("单价");c_form.mydata.Tables["jcmx1"].Columns.Add("金额");c_form.mydata.Tables["jcmx1"].Columns.Add("日期");c_form.mydata.Tables["jcmx1"].Columns.Add("备注");grid1.DataSource=c_form.mydata.Tables["jcmx1"].DefaultView;showdm("select bh,mc from yldm order by bh desc");}4.3货品出库窗体模块的设计private void ccdl_Load(object sender, System.EventArgs e){c_rq.Value=DateTime.Now;c_form.mydata.Tables.Add("ccmx1");c_form.mydata.Tables["ccmx1"].Columns.Add("原料编号");c_form.mydata.Tables["ccmx1"].Columns.Add("原料名称");c_form.mydata.Tables["ccmx1"].Columns.Add("数量");c_form.mydata.Tables["ccmx1"].Columns.Add("单价");c_form.mydata.Tables["ccmx1"].Columns.Add("金额");c_form.mydata.Tables["ccmx1"].Columns.Add("日期");c_form.mydata.Tables["ccmx1"].Columns.Add("备注");grid1.DataSource=c_form.mydata.Tables["ccmx1"].DefaultView;showdm("select a.bh,b.mc from kc a,yldm b where a.bh=b.bh order by a.bh desc");}4.4 货品查询窗体模块的设计private void jccx_Load(object sender, System.EventArgs e){if(_woot==1){this.Text="进仓明细查询";jczd="select a.id as 自动编号,a.bh as 原料代码,b.mc as 原料名称,a.sl as 数量,a.dj as 单价,a.sl*a.dj as 金额,a.rq as 进仓日期,er1 as 操作员,a.bz as 备注from jcmx a,yldm b";}else{this.Text="出仓明细查询";jczd="select a.id as 自动编号,a.bh as 原料代码,b.mc as 原料名称,a.sl as 数量,a.dj as 单价,a.sl*a.dj as 金额,a.rq as 出仓日期,er1 as 操作员,a.bz as 备注from ccmx a,yldm b";}string sqlstr=jczd+" where a.bh=b.bh"+sqlpx;c_tj1.SelectedIndex=0;c_tj2.SelectedIndex=0;i_tj2.SelectedIndex=0;showdb(sqlstr);}4.5货品代码维护窗体模块的设计private void yldmwh_Load(object sender, System.EventArgs e){showdb();t_bh.DataBindings.Add("Text",c_form.mydata,"yldm.原料代码");t_mc.DataBindings.Add("Text",c_form.mydata,"yldm.原料名称");t_dj.DataBindings.Add("Text",c_form.mydata,"yldm.参考单价");t_bz.DataBindings.Add("Text",c_form.mydata,"yldm.备注");}4.6用户注销窗体模块的设计private void yhgl_Load(object sender, System.EventArgs e){showdb();if(c_form.mydata.Tables["yh1"].Rows.Count!=0){bdel.Enabled=true;bedit.Enabled=true;}else{bdel.Enabled=false;bedit.Enabled=false;}}四、系统实现系统登陆的实现5.2 货品入库的实现5.3货品入库查询的实现5.4 货品出库的实现5.5 货品出库查询的实现5.6用户密码修改的实现五、系统测试及用户手册经测试,该系统切实可行.六、课程设计心得体会经过一个多星期的努力,课程设计基本完成了。