软件开发综合技能训练报告仓储管理系统设计专业 计算机科学与技术学生姓名班级 学号指导教师 李萍 完成日期2015年1月8日信息学院目录1简介 (1)1.1.课程设计目的及要求 (1)1.2.课程设计的主要内容 (1)1.3.开发工具 (1)2算法说明 (3)2.1.需求分析数据字典 (3)2.2.概念模型设计 (5)2.3.数据库设计 (5)2.4.完整性设计 (12)2.5.主要功能模块设计 (13)3测试结果 (17)4分析与探讨 (26)4.1.基础数据模块 (26)4.2.数据查询模块的设计与实现 (26)4.3.库存管理模块 (26)4.4.数据库管理模块的实现 (27)5小结 (28)附录 (29)附录1 源程序清单 (29)仓库管理系统的设计1 简介1.1.课程设计目的及要求数据库课程设计是为数据库原理及应用课程而独立开设的实践性课程。
数据库课程设计对于巩固数据库知识,加强学生的实际动手能力和提高学生综合素质十分必要。
本课程分为系统分析与数据库设计、应用程序设计和系统集成调试三个阶段进行。
数据库课程设计的主要目标是:a.加深对数据库系统、程序设计语言的理论知识的理解和应用水平。
b.通过设计实际的数据库系统应用课题,进一步熟悉数据库管理系统的操作技术,提高动手能力,提高分析问题和解决问题的能力。
1.2.课程设计的主要内容运用数据库基本理论与应用知识,在微机RDBMS(SQL Server)的环境上建立一个数据库应用系统。
要求把现实世界的事物及事物之间的复杂关系抽象为信息世界的实体及实体之间联系的信息模型,再转换为机器世界的数据模型和数据文件,并对数据文件实施检索、更新和控制等操作。
背景资料:1)有一个存放商品的仓库,每天都有商品出库和入库。
2)每种商品都有名称、生产厂家、型号、规格等。
3)出入库是必须填写出入库单据,单据包括商品名称、生产厂家、型号、规格、数量、日期、时间、入库单位(或出库单位)名称、送货(或提货)人姓名。
设计要求:1)进行需求分析,编写数据字典。
2)设计E-R图。
3)设计出入库单据的录入。
4)实现按商品名称、出入库日期的查询。
5)实现分别安日、月和年对出入库商品数量的统计。
1.3.开发工具JBuilder 是目前最好的Java开发工具之一,在协同管理、对J2EE和XML的支持等方面都非常的优秀,它的这些特性是其他同类产品无法比拟的。
同时它在Applet和EJB开发方面也具有独特的优势,使得它在J2EE工程开发界具有独特的优势,成为目前最流行的Java开发工具之一。
一般来讲Jbuilder提供了企业数据库的动态链接,可以开发出基于网络的动态分布计算数据库管理系统。
在现在的企业信息管理系统的实现中通常是结合Jbuilder和Weblogic_server来共同实现数据库开发系统。
Jbuilder的主要特性包括四个方面:(1)Tomcat组件的集成:Tomcat组件是业界公认的优秀的网络开发软件,Jbuilder 和它集成,大大方便了Java在网络和数据库分布计算方面的应用,使得Java的Web 开发更容易。
(2)企业信息化应用的开发功能:可以据此集成多种应用服务器,大大方便了Java 在企业信息化方面的应用。
提高了企业信息化的水平,促进了Java在工程界的广泛应用。
(3)非常简单的程序发布功能:只需简单的步骤便可将自己的程序打包进行发布,大大方便了用户使用和发布自己的程序。
(4)由于在现在的软件开发中团队合作是最重要的,Jbuilder就提供了团队开发能力,可以集成多种版本控制产品,方便了不同层次的用户使用。
Jbuilder是按照SUN公司提供J2EE标准来构筑的,它是一个遵循J2EE标准的可视化集成开发环境,目前在业界具有广泛的用户,成为一个处于市场领先地位的跨平台环境,主要用于构建一些具有行业实力的企业Java小程序,如为企业信息化而产生的客户前台浏览界面,为特定的用户开发一些专业的程序包和特定的类库。
JBuilder继承了Borland公司开发工具系列的优秀特性,继承了许多Delphi 和C++ Builder产品的优秀特性,这使得用过这两种产品的用户很容易的就可以过渡到JBuilder的开发环境当中,熟练的开发出高质量的Java程序。
在JBuilder 这个开发环境中实际上包含了用户在Java集成开发环境中所需要的一切东西。
包括对常用的面向对象语言UML建模工具的支持。
我们可以在这个环境下对系统进行建模,进行系统调试,对系统进行打包发布。
SQL Server 在管理企业信息方面最灵活和最经济高效。
在尽可能提高服务质量的同时削减了管理成本。
除极大地提高质量和性能以外,SQL Server作为微软公司的数据库产品,能够和绝大多数建立在Windows XP平台上的软件兼容,具有很强的兼容性,并且SQL Server本身功能也十分强大,其中还有SQL查询分析器、SQL Server 服务管理器、企业管理器等功能强大的工具,所以我选择SQL Server 作为我们的的后台数据库。
2算法说明2.1.需求分析数据字典1.对图中"采购",在数据字典中可对其作如下描述:处理过程:确定订单说明:采购员以购买计划为准,确定价格,数量,总金额,供应商,在采购过程中生成订单及订单.输入:计划单编号输出:订单预订单程序提要: A在购买计划表中查找是否在价格范围之内B在价格范围之内,则单价乘以数量是否在总金额范围之内C若A,B都满足,则添加一条记录D处理完后,形成订单和预订单2.对图中"检验",在数据字典中可对其作如下描述:处理过程:核对物品信息后生成入库单说明:送货员将物品送到后,管理员以预订单为准核对物品信息,确定无误后,登记入库单.输入:预订单编号输出:入库单程序提要: A在预订单中查找物品(例如:M)信息进行核对B如若无误,则在入库单中添加一条物品(M)记录C核对完后,形成入库单3.对图中"入库",在数据字典中可对其作如下描述:处理过程:入库后修改(增加)现有库存表说明:入库后增加现有库存表输入:入库单编号输出:现有库存表程序提要: A在入库单中查找到每一种物品的数量,在现有库存表中相应增加B处理完后,形成现有库存表4.对图中"出库",在数据字典中可对其作如下描述:处理过程:出库后登记入库单并修改(减少)现有库存表说明:提货员提交出库申请,由管理员批准后,登记出库单并修改(减少)现有库存表输入:出库申请编号输出:出库单现有库存表程序提要:A在出库申请单中查找物品(例如:M)信息进行核对,出库数量是否超过库存或出库后数量小于最小库存B如若无误,则在出库单中添加一条物品(M)记录C核对完后,形成出库单D在出库单中查找到每一种物品的数量,在现有库存表中相应加减少E处理完后,形成现有库存表5.对图中"对比",在数据字典中可对其作如下描述:处理过程:核对归还物品信息后生成还库单说明:将物品归还时,管理员以出库单为准核对物品信息,确定无误后,登记还库单,如若有误,登记惩罚表.输入:出库单编号输出:还库单惩罚表程序提要: A管理员在出库单中查找物品(例如:M)信息进行核对B如若无误,则在还库单中添加一条物品(M)记C核对完后,形成入库单D如若有误,则登记惩罚表E处理完后,形成惩罚表6.对图中"归还入库",在数据字典中可对其作如下描述:处理过程:还库后修改(增加)现有库存表说明:还库后增加现有库存表输入:还库单编号输出:现有库存表程序提要: A在还库单中查找到每一种物品的数量,在现有库存表中相应增加B处理完后,形成现有库存表2.2.概念模型设计图2-1 E-R图2.3.数据库设计图2-2关系图表:1).表2-1商品表create table SHANGPIN(Sno char(5) primary key,Sname char(20) unique,Sleibie char(10), --食物,衣物,生活用品,家用电器等等Sxinghao char(8) unique,Sdanwei char(2) not null, --件,个等等Sprice int);2).表2-2仓库表create table CANGKU(Cno char(5) primary key,Cname char(20));3).表2-3库存表create table STORE(Sno char(5),Cno char(5),NUM int,primary key(Sno,Cno),foreign key(Sno)references SHANGPIN(Sno), foreign key(Cno)references CANGKU(Cno))4).表2-4管理员表create table MANAGER(Mno char(5) primary key,Mname char(10) not null,Msex char(2) check(Msex in('男','女')), Mage int check(Mage>=18 and Mage<=60), Mtel char(15))5).表2-5客户表create table KEHU(KHno char(5) primary key,KHleibie char(10),KHname char(20),KHlxr char(10),KHtel char(15),CITY char(5),)6).表2-6入库表create table RUKU(RKno char(5) primary key,RKday char(8),Sno char(5),Sname char(20),Cno char(5),RKnum int,RKprice int,RKmoney int,RKyfk int,KHno char(5),KHname char(20),Mno char(5),Mname char(10),foreign key(Sno)references SHANGPIN(Sno), foreign key(Cno)references CANGKU(Cno), foreign key(Mno)references MANAGER(Mno), foreign key(KHno)references KEHU(KHno))7).表2-7出库表8.表2-8密码表create table CUKU(CKno char(5) primary key,CKday char(8),Sno char(5),Sname char(20),Cno char(5),CKnum int,CKprice int,CKmoney int,CKyfk int,KHno char(5),KHname char(20),Mno char(5),Mname char(10) not null,foreign key(Sno)references SHANGPIN(Sno), foreign key(Cno)references CANGKU(Cno),foreign key(Mno)references MANAGER(Mno), foreign key(KHno)references KEHU(KHno), foreign key(Sno,Cno)references KUCUN(Sno,Cno) )8).表2-9密码表create table PASSWORDS(Mno char(5),Passwords char(6),foreign key(Mno)references MANAGER(Mno))视图:1).图2-3仓库信息视图表2-102).图2-4库存信息视图表2-11触发器:1).入库触发器创建:要求:在添加入库记录时,必须修改库存表,分两种情况,一是(Sno,Cno)在库存表中有记录,修改库存数量即可,二是没有记录时,要添加相关记录。