1、 淮 海 工 学 院 计算机科学系课程设计汇报设计名称: 仓储物资管理系统 姓 名: 袁海燕 学 号: 5 专业班级: G计101 系 (院): 计算机工程学院 设计时间: .1.7-.1.18 设计地点: 计算机工程学院机房 成绩:指导教师评语: 签名: 年 月 日一、课程设计目数据库原理及应用课程设计是计算机科学与技术专业集中实践性环节之一,是学习数据库原理及应用课程后进行一次全面综合练习。本课程设计重要在于加深学生对数据库基础理论和基本知识理解,掌握数据库应用系统设计开发基本措施,到达深入使学生综合运用所学知识和增强实际动手能力目。二、课程设计任务与规定21课程设计任务以Microsof
2、t SQL Server R2作为后台数据库平台,以My Eclipse作为前台开发工具,完毕一种小型数据库应用系统设计开发。本次课程设计开发系统名称为仓储物资管理系统。22课程设计规定通过对某企业仓储物资管理业务进行分析,调查,设计该企业仓储物资管理系统。重要实现如下功能:基础信息管理功能:分为物品信息管理、员工信息管理、客户信息管理、供应商信息管理、仓库信息、供应信息。进货管理管理功能:对库存进行查询,对于缺货或库存较少物品进行进货,对已到物品进行入库登记处理,并随时可查询入库登记,然后可生成入库报表。库房管理功能:库房用于寄存物品,可以库存物品编号、仓库编号、库存数量等信息。新进物品要入
3、库,可查询库存信息,盘点库存信息,对于已卖出物品,其在库存中数量要对应减少,对于被退回物品要重新入库,其对应得库存数量要增长,最终可生成库存报表。销售管理功能:此功能对销售信息及物品进行处理。员工对已销售物品进行销售登记,同步更改物品库存信息,对于被退货物品要进行销售退货登记,同步更改该物品库存信息,系统可生成销售报表。财务管理功能:系统可进行财务管理,可以让员工更好地理解到本单位财务状况,以便管理者可认为本部门更好地做出决策。系统可以记录当日销售物品资金状况,也可以记录当月销售物品资金状况。记录功能:系统可进行各物品销售数量记录、所有员工销售额记录、所有物品库存记录、所有顾客购置物品记录。三
4、、设计阐明书31概述1、开发背景:通过对仓库物品零售、批发等工作深入调查,发现其业务重要包括物品销售、出入库管理、财务管理、人事管理等。仓储物资管理是一项琐碎、复杂而又十分细致工作。手工进行平常物品销售、出入库工作,轻易出现“开空单”现象,且呆账、错账时有发生,并且费时费力。本系统在设计中考虑和克服了上诉问题,实现了仓储物资管理工作系统化、规范化和自动化。2、开发趋势:仓储物资管理系统数量众多,如今类似软件开发趋势重要表目前如下几点:风险最小化、提高效率、增强质量、提高可预测性、简化沟通、减少开销等。3、可行性:在计算机技术飞速发展今天,计算机管理已经在诸多领域得到广泛应用。计算机化已成为各行
5、各业现代化一种不可或缺原因。因此,仓储物资管理系统已成为管理中重要构成不分。目前诸多仓库信息管理还比较落后,劳动强度大且效率低,工作人员大量时间都消耗在繁杂事务上。因此,开发仓储物资管理系统将大大提高他们工作效率。物品管理是一种非常重要和繁杂事务,需要完毕物品购入、存储、销售等诸多操作,这就使得使用仓储物资管理系统来管理这样事务有着很好效果。4.开发工具: 以Microsoft SQL Server R2作为后台数据库平台,以My Eclipse作为前台开发工具。 32系统需求分析员工登陆:需要员工输入自己工号及密码,输入内容若与数据库中内容一致,则成功登陆系统,否则退出系统。信息管理:为物品
6、信息管理、员工信息管理、客户信息管理、供应商信息管理、仓库信息、供应信息。进货管理:对于缺货或库存较少物品进行进货,对已到物品进行入库登记处理。库房管理:库房用于寄存物品。新进物品要入库,可查询库存信息,盘点库存信息,对于已卖出物品,其在库存中数量要对应减少,对于被退回物品要重新入库。销售管理:对销售信息及物品进行处理。员工对已销售物品进行销售登记,同步更改物品库存信息,对于被退货物品要进行销售退货登记,同步更改该物品库存信息,系统可生成销售报表。财务管理:系统可以记录当日销售物品资金状况,也可以记录当月销售物品资金状况。还可进行各物品销售数量记录、所有员工销售额记录、所有物品库存记录、所有顾
7、客购置物品记录。33系统设计: 331.系统总体设计1基础信息管理基础信息管理分为物品信息管理、员工信息管理、客户信息管理、供应商信息管理、仓库信息、供应信息。可对员工信息进行管理(包括添加新员工,查询、修改和删除员工信息)、添加物品信息、客户信息和供应商信息。2进货管理对库存进行查询,对于缺货或库存较少物品进行进货,对已到物品进行入库登记处理,并随时可查询入库登记,然后可生成入库报表。3库房管理库房用于寄存物品,可以库存物品编号、仓库编号、库存数量等信息。新进物品要入库,可查询库存信息,盘点库存信息,对于已卖出物品,其在库存中数量要对应减少,对于被退回物品要重新入库,其对应得库存数量要增长,
8、最终可生成库存报表。4销售管理此功能对销售信息及物品进行处理。员工对已销售物品进行销售登记,同步更改物品库存信息,对于被退货物品要进行销售退货登记,同步更改该物品库存信息,系统可生成销售报表。5财务管理系统可进行财务管理,可以让员工更好地理解到本单位财务状况,以便管理者可认为本部门更好地做出决策。系统可以记录当日销售物品资金状况,也可以记录当月销售物品资金状况。系统可以对已退货物品进行财务处理。还可进行各物品销售数量记录、所有员工销售额记录、所有物品库存记录、所有顾客购置物品记录。6系统系统重要用于对系统进行后期维护和改善,在这里没做太多处理,仅仅实现员工登陆功能和退出系统功能。系统功能模块图
9、如所示:332仓储物资管理系统数据流图: 3321数据流图仓储物资管理系统中数据流重要贯穿于管理工作中业务操作流程之中,波及到员工登陆、进货、销售、退货、财务记录等。 图一 总数据流图图二 进货管理流图图三 销售管理流图3322数据流分析仓储物资管理系统中数据流程重要描述如下:员工登陆成功后可进行进货、物品入库、入库登记查询、库存查询、销售退货处理、销售查询、销售物品等操作。 333数据字典数据字典是有关数据信息集合,也就是对数据流图中包括所有元素定义集合。数据流图和数据字典共同构成系统逻辑模型。 表3-1数据字典列表数据存储名称:员工信息数据来源:员工信息表数据构成:员工信息员工工号姓名+性
10、别所属部门+家庭地址+联络电话+员工编号数据位置:供员工基本信息编辑模块使用描述:存储了系统管理人员信息数据存储名称:客户信息数据来源:客户信息表数据构成:客户信息客户编号+客户姓名+工作单位+联络地址+电话数据位置:物品销售时使用描述:存储了客户基本信息数据存储名称:供应商信息数据来源:供应商信息表数据构成:供应商信息供应商编号+企业名称+企业地址+邮政编码+联络电话数据位置:进购物品时使用描述:存储了供应商基本信息数据存储名称:物品信息数据来源:物品信息表数据构成:物品信息物品编号+物品名称+物品类型+参照价格+生产商+生产日期+有效期+规格+计量单位+员工编号数据位置:物品进购、销售时使
11、用描述:存储了物品基本信息数据存储名称:入库信息数据来源:入库信息表数据构成:入库信息入库编号+物品编号+仓库编号+入库时间+入库数量数据位置:物品入库时使用描述:存储了入库物品基本信息数据存储名称:库存信息数据来源:库存信息表数据构成:库存信息仓库编号+物品编号+仓库编号+库存数量数据位置:员工将物品入库和出库时使用描述:存储了库存物品基本信息数据存储名称:销售信息数据来源:销售信息表数据构成:销售信息销售编号+物品编号+客户编号+销售日期+销售数量+销售金额数据位置:物品销售、退货时使用描述:存储了物品销售基本信息数据存储名称:仓库信息数据来源:仓库信息表数据构成:仓库信息仓库编号+仓库名
12、称+员工工号数据位置:存储物品时使用描述:存储了仓库信息数据存储名称:供应信息数据来源:供应信息表数据构成:供应信息供应编号+供应商编号+物品编号数据位置:购进物品时使用描述:存储了供应信息334数据库设计3341数据库概念构造设计:本系统重要有员工、仓库、物品、客户、供应商五个实体集,一种员工能管理多种仓库,一种仓库只能有一种员工管理,两个实体集之间是一对多联络。一种员工可以可以销售多种物品,一种物品只可以由一种员工销售,两个实体集之间是一对多联络。一种物品可以存储在多种仓库,一种仓库可以存储多种物品,两个实体集之间是多对多联络。一种物品可由多种供应商供应,一种供应商可供应多种物品,两个褓集
13、之间是多对多联络。一种物品被多种客户购置,一种客户可以购置多种物品,两个实体集之间是多对多联络。本系统E-R图如图所示:图3-2E-R关系图实体包括:员工(系统顾客)、仓库、物品、客户、供应商联络:记录(1:n)、管理(1:n)、购置(m:n)、供应(m:n)图3-3员工实体图员工实体属性:员工工号(主)、员工姓名、性别、联络电话、所属部门、家庭住址图3-4客户实体图客户实体属性:客户编号(主)、客户姓名、工作单位、联络电话、地址图3-5供应商实体图供应商实体属性:供应商编号(主)、企业名称、邮政编码、联络电话、企业名称图3-6物品实体图 物品实体属性:物品编号(主)、物品名称、物品类型、参照
14、价格、生产日期、有效期、规格、计量单位图3-7仓库实体图 仓库实体属性:仓库编号(主)、仓库名称、员工工号图3-8入库关系图入库信息属性:【入库编号、物品编号(外)、仓库编号(外)】(主)、入库时间、入库数量图3-9库存关系图 库存信息属性:【库存编号、物品编号(外)、仓库编号(外)】(主)、库存数量图3-10销售关系图销售信息属性:【销售编号、物品编号(外)、客户编号(外)】、销售日期、销售数量、销售金额、员工工号(外)图3-11供应关系图 供应属性:供应编号(外)、供应商编号(外)、物品编号(外)3342数据库逻辑构造设计:根据关系模型转换原则,上面E-R图可以转换为如下所示关系模型:员工
15、(员工工号,员工姓名,性别,所属部门,家庭地址,联络电话)客户(客户编号,客户姓名,工作单位,联络电话,地址)供应商(供应商编号,企业名称,企业地址,邮政编码,联络电话)物品(物品编号,物品名称,物品类型,参照价格,生产日期,有效期,规格,计量单位,员工工号)仓库(仓库编号,仓库名称,员工工号)入库信息(入库编号,物品编号,仓库编号,入库时间,入库数量)库存信息(库存编号,物品编号,仓库编号,库存数量)销售信息(销售编号,物品编号,客户编号,销售日期,销售数量,销售金额)供应(供应编号,供应商编号,物品编号)通过以上E-R图设计和分析,可认为仓储物资管理系统创立9张数据表,分别如下表所示: 表
16、3-1 员工表(User)字段名数据类型与否容许为空默认值阐明userIDvarchar(50)usid主键userNamevarchar(50)员工姓名sexvarchar(10)性别departmentvarchar(50)所属部门address varchar(100)家庭地址telephonevarchar(50)联络电话mimavarchar(50)登陆密码表3-2 客户表(Customer)字段名数据类型与否容许为空默认值阐明cusIDvarchar(50)cusid主键cusNamevarchar(50)客户姓名companyvarchar(50)工作单位address varc
17、har(100)地址telephonevarchar(50)联络电话表3-3 供应商表(Prodcom)字段名数据类型与否容许为空默认值阐明proIDvarchar(50)proid主键proNamevarchar(50)供应商企业名称addressvarchar(100)企业地址postalcodevarchar(20)邮政编码telephonevarchar(50)联络电话表3-4 物品信息表(Wp)字段名数据类型与否容许为空默认值阐明wpIDvarchar(50)druid主键wpNamevarchar(50)物品名称wp_typevarchar(10)医药类型pricefloat参照价
18、格produce_timedateTime生产日期useful-lifeint有效期specvarchar(20)规格unitageVarchar(10)计量单位表3-5 仓库信息表(Depot)字段名数据类型与否容许为空默认值阐明depotIDvarchar(50)depotid主键depotNamevarchar(50)仓库名称userIDvarchar(50)员工工号表3-6 入库信息表(Import)字段名数据类型与否容许为空默认值阐明impIDvarchar(50)入库编号wpIDvarchar(50)物品ID,外键depotIDvarchar(50)仓库ID,外键import_ti
19、medateTime入库时间import_numfloat入库数量表 3-7 库存信息表(Storage)字段名数据类型与否容许为空默认值阐明storIDvarchar(50)库存编号wpIDvarchar(50)物品ID,外键depotIDvarchar(50)仓库ID,外键storage_numfloat库存数量表 3-8 销售信息表(Sell)字段名数据类型与否容许为空默认值阐明sellIDvarchar(50)销售编号wpIDvarchar(50)物品ID,外键cusIDvarchar(50)客户ID,外键sell_timedateTime销售时间sell_numfloat销售数量se
20、ll_moneyfloat销售金额userIdvarchar(50)员工工号表3-9 供应信息表(Provide)字段名数据类型与否容许为空默认值阐明provIDvarchar(50)供应编号proIDvarchar(50)供应商,外键wpIDvarchar(50)物品, 外键34系统实行341重要模块代码(一)、进货管理 事件响应getTextField();从文本框中获取输入信息,待进行供应商信息处理、物品信息处理、以及入库登记及入库处理 trycon3=DriverManager.getConnection(jdbc:odbc:maen, , );sql3=con3.createStat
21、ement();rs3=sql3.executeQuery(SELECT * FROM Import); /连接数据库,查询Import表信息,留待进行比较和操作之用,详细怎样运用,在下面有阐明。 while(rs3.next() String impID=rs3.getString(1); String wpID=rs3.getString(2); String depotID=rs3.getString(3); if(impID.equals(ImpID)&wpID.equals(WpID)&depotID.equals(DepotID) /查看入库信息中与否存在同样记录 c+; if(c
22、=0)/假如入库信息表中不存在同样记录,则进行登记Recode1=(+ImpID+,+WpID+,+DepotID+,+Import_time+,+Import_num+);insertStr1=INSERT INTO Import VALUES+Recode1;sql3.executeUpdate(insertStr1);jTextArea1.setText();jTextArea1.append(登记成功!+n);if(c!=0)/假如入库信息中存在该种记录则返回信息,提醒顾客问题所在jTextArea1.setText();jTextArea1.append(主键反复,请检查!+n);
23、con3.close(); catch(SQLException es) System.out.println(es); 注:上面代码实现是入库信息登记,首先要到Import表中查询与否存在相似登记,假如有相似信息,系统无法实现登记功能。 trycon4=DriverManager.getConnection(jdbc:odbc:maen, , );sql4=con4.createStatement();rs4=sql4.executeQuery(SELECT * FROM Storage); while(rs4.next() String storID=rs4.getString(1); S
24、tring wpID=rs4.getString(2); String depotID=rs4.getString(3); if(storID.equals(StorID)&wpID.equals(WpID)&depotID.equals(DepotID) d+; if(d=0) Recode2=(+StorID+,+WpID+,+DepotID+,+Import_num+);insertStr2=INSERT INTO Storage VALUES+Recode2;sql4.executeUpdate(insertStr2);jTextArea1.setText();jTextArea1.a
25、ppend(入库成功!+n); if(d!=0) jTextArea1.setText();jTextArea1.append(主键反复,请检查!+n); con4.close(); catch(SQLException es) System.out.println(es); 注:上面代码重要实现物品入库功能,入库登记过物品必须入库,只有入库物品才能销售,物品入库之前要进行物品信息处理,以及供应商信息处理,并将处理信息写进物品信息表和供应商信息表。 (二)、销售管理事件响应获取文本框中信息,留待下面操作之用; trycon4=DriverManager.getConnection(jdbc:o
26、dbc:maen, , );sql4=con4.createStatement();rs4=sql4.executeQuery(SELECT * FROM Sell); while(rs4.next() String sellID =rs4.getString(1); String wpID=rs4.getString(2); String cusID=rs4.getString(3); if(xiaoshouid.equals(sellID)&yaopinid.equals(wpID)&kehuid.equals(cusID) h+; if(h=0)Recode1=(+xiaoshouid+
27、,+yaopinid+,+kehuid+,+xiaoshoudate+,+xiaoshounum+,+yingfum+);insertStr1=INSERT INTO Sell VALUES+Recode1;sql4.executeUpdate(insertStr1);area.append(登记成功!+n);if(h!=0)area.setText();area.append(主键反复,请检查!+n); con4.close(); catch(SQLException es) System.out.println(es); 注:上面代码重要实现销售登记功能,首先要到销售信息表中查询与否存在相
28、似登记,假如有相似信息,系统无法实现登记功能。 try double num=0;con5=DriverManager.getConnection(jdbc:odbc:maen, , );sql5=con5.createStatement();rs5=sql5.executeQuery(SELECT * FROM Storage); while(rs5.next() String storID=rs5.getString(1); String wpID=rs5.getString(2); String depotID=rs5.getString(3); double storage_num=r
29、s5.getDouble(4); if(storID.equals(kucunid)&wpID.equals(yaopinid)&depotID.equals(cangkuid) i+; num=storage_num-xiaoshounum; if(i!=0&num=0)updateStr1=UPDATE Storage set storage_num=+num+ WHERE storID = +kucunid+AND+ druID=+yaopinid+ AND+ depotID=+cangkuid+;sql5.executeUpdate(updateStr1);area.setText()
30、;area.append(库存更改成功!+n); if(i=0) area.setText();area.append(该仓库没有该种物品,或物品局限性!+n); con5.close(); catch(SQLException es) System.out.println(es); 上面代码重要实现销售后库存更改功能,首先要到库存信息表中查询物品与否存在和数量与否充足,假如物品不充足,系统返回信息;若存在并且物品充足则更改库存信息。四、设计成果1员工登陆员工登陆界面:规定员工输入自己工号和密码,若输入对,则显示“登陆成功”对话框,并可以进行系统中其他操作;若输入不对则会弹出“登陆失败”对话框
31、,并退出系统。2物品信息 物品界面:首先输入员工编号、物品编号、物品名称、物品类型、参照价格、生产日期、有效期、规格、计量单位,点击“录入”按纽,登记物品信息。点击“所有物品信息”可在查询成果中显示所有物品所有信息。也可以在查询方式中按物品编码或物品名称进行特定查询或删除。对于物品录入应遵照下面流程:(1)物品编号不能反复。(2)物品编号与员工编号不能为空。(3)员工编号必须存在,不能为不存在编号。3进货及入库登记 物品进货界面。首先输入物品编号,点击物品信息处理进入物品信息处理界面,登记物品信息;然后输入供应商编号,点击供应商信息处理进入供应商信息处理界面,登记供应商信息;最终输入入库编号、
32、物品编号、仓库编号、入库时间、入库数量以及库存编号等信息,点击登记入库,这里将实现两个功能,一是物品入库登记,二是实现物品入库,生成库存报表。对于物品进货遵照下面流程:(1)进行供应商信息处理,如不存在该供应商,则需登记。(2)进行物品信息处理,如不存在该种物品,则需登记。(3)供应商信息登记完后,要进行物品入库登记,生成入库报表。(4)物品登记后要对物品进行物品入库。4销售及销售信息登记 销售及销售信息登记界面。在销售之前首先需要物品编号,及销售数量,点击计算金额,应付金额将显示本次购置物品总金额;输入销售编号、销售日期、库存编号及实付金额,点击确定发售,找零文本框将显示找零金额;输入客户编
33、号,点击客户登记,将进入客户信息界面进行客户信息处理;输入销售日期,点击销售登记,将完毕两种功能,一是进行销售信息登记,生成销售报表,二是修改库存信息。对于物品销售遵照下面规定:(1)销售物品存在并且到达销售数量,进行销售登记。(2)销售退货时,物品要重新入库。(3)前两者操作后将生成销售报表。5销售退货及退货处理销售退货及退货信息处理界面。在确定退货之前首先需要输入库存编号、物品编号、仓库编号、退货数量、销售编号、客户编号,该操作若执行成功,将会修改销售表内容。在执行退货信息处理时,需要输入库存编号、物品编号、仓库编号、退货数量,若执行成功,则会显示“已经回库”,该操作将会修改库存表内容。对
34、于销售退货及退货信息处理需遵照下面规定:(1)库存编号、物品编号、仓库编号、客户编号必须存在,并且退货数量不不小于等于该客户购置总数量。(2)销售退货时,物品要重新入库。五、设计心得这次课程设计我选择了仓储物资管理系统,这个课程设计是综合性,这对我也是一种锻炼,我要用所学过数据库方面知识和软件工程方面知识来分析系统需求和其中实体关系。在这次课程设计过程中,我首先对仓储物资管理进行了理解,也查询了诸多资料,仔细分析了该管理对系统功能规定,并根据这些功能规定对系统进行定义,确定系统必须做什么。之后着手对系统展开设计工作,首先是概念构造设计,根据需求分析成果总结系统内实体及联络并绘制系统局部ER图然
35、后画出全局ER图。结合需求分析与概念构造设计把设计好ER图转换为DBMS所支持数据模型所符合逻辑构造,运用SQL数据库管理系统建好表和有关约束。数据模型建立对于整个系统建设至关重要,假如刚开始建立不好,则后来工作会显相称苦难,总会出现修修改改现象,当然,这也和开始做需求有关。数据库建设还是有相称难度,数据库建设需要开发软件人员具有较高综合素质。不仅专业素质要强,对其他行业业务也要有较广泛理解。我在后期写代码过程中明显感觉到我数据库设计还存在某些问题,这些问题导致我在后期制作过程中碰到了不少麻烦。在这次课程设计中虽然碰到过诸多困难,但我从中学到了诸多有用知识,通过不停翻阅资料,各个问题处理使我对系统设计越来越感爱好。相信我从这次课程设计所学到东西可以让我在后来学习及工作中受益无限。参照资料:1 单建魁、赵启升 数据库系统试验指导 清华大学出版社2 耿祥义、张跃平 Java 2 实用教程(第三版) 清华大学出版社3 吴其庆 Java综合实例经典 冶金工业出版社4 张广彬、孟红蕊、张永宝 Java课程设计案例精编 清华大学出版社5 刘军、张景安、赵慧勤、付文博 数据库应用系统开发技术 机械工业出版社