资源描述
数据库系统课程设计报告
题目:仓库信息管理系统
课程代号: 0686416
课程名称:数据库系统课程设计
学号: 20115885
姓名: 王艾娟
班级: 中加一班
指导教师: 佟丽
完成日期:2014年11月
目 录
第一章 引言 3
第二章 系统分析与设计 3
1.1实现的用户需求 3
1。2系统需求分析 4
1。2.1数据流图 4
1。2.2数据库概念结构设计 4
1.2。3数据库逻辑结构设计 5
1。2。4数据库创建 5
1.3系统总体结构设计 6
第三章 系统开发及实践 6
第四章 总结 8
参考文献 8
第一章 引言
目前,随着市场经济发展不断的深入,企业间形成了激烈的甚至是残酷的多元化竞争。当今的企业要想在这样的市场环境中生存并立于不败之地,就必须降低企业生产过程中的各种成本。而企业的采购、库存等环节是企业成本控制的关键。依靠传统的方法对这些环节进行管理,不能使企业的采购、库存等环节的信息数据得到及时沟通和适时共享,以至于造成采购过量和库存积压等现象,不仅降低了功率,大大增加企业不必要的开支。因此,使用一个功能齐全,操作方便的仓库管理系统已经是企业的一个必然的选择。
对于设计开发及运行的软硬件环境,我采用的是Microsoft Visual Studio 2010 和SQL Server2008。
第二章 系统分析与设计
1.1 根据系统开发的目的,可以实现的用户需求总述如下:
系统操作人员从登陆界面进入系统,在登陆页面输入用户名和密码,通过身份验证后,方可进入系统的首页。如果未能通过系统的身份验证,系统自动给出无权操作的警告。
1) 通过身份验证的操作人员进入系统的首页。在首页中可以进行各项仓库管理模块的操作。
2) 首先,可以进行对仓库中的产品进行管理.当有新的产品出现可以是添加新的产品。同识,可以对原来的产品的信息进行修改.当一种产品从仓库中去除是可以对该产品进行删除信息的操作。
3) 当采购人员采购来新的产品时可对产品入库进行的登记入库的工作,当操作中出现失误时,能够对录入的产品入库信息加以修改或者删除,并重新进行输入。在日常的入库管理工作中能够通过关键字对入库的产品进行查询并且可以实现对入库产品的年度统计的功能。
4) 有对产品的入库管理,相对应的必然会对产品的出库管理。当产品获得销售,从仓库中被提出来时,必须及时的对产品进行出库的管理。其中,包括对出库产品进行登记、修改和删除。和入库产品管理一样,能够对出口产品的信息进行查询和年度统计。
5) 为了更好地对仓库中的产品进行管理,定期盘点库存是必须的。操作人员可以借助本系统进行对产品的盘存操作,添加新的盘存信息和对盘存新信息的修改和删除。
6) 操作人员可以对系统进行管理,在系统管理中对收货单位,供货单位,仓库和经手人的操作,包括删除,修改和添加。
7) 还能够对操作人员自己的密码进行重新设定。
1.2系统需求分析
1.2。1数据流图
数据流图
Data Flow Diagram
开始
登陆
进入管理员界面
管理产品
管理出库
管理盘存
管理入库
图2.1
1。2。2 数据库概念结构设计(给出E—R图)
E-R图
E-R Diagram
密码
用户名
管理员
管理
管理入库
管理盘存
管理产品
管理出库
图2.2
1。2.3数据库逻辑结构设计
产品信息表(Product)用来记录仓库中所有产品的具体信息,使用产品编号HID作为表的主键.该表的字段结构如下所述。
字段
中文描述
数据类型
是否为空
备注
HID
产品编号
int
否
主键
ProductName
产品名称
char(10)
否
Unit
产品单位
char(10)
否
Warehouse
产品存放的仓库
char(10)
否
InPrice
入库单价
Decimal(18,6)
是
OotPrice
出库单价
Decimal(18,6)
是
LowLine
原石库存
Decimal(18,6)
是
1.2。4数据库创建(创建表的界面、创建外码的界面)
本系统采用SQL SERVER 2008 数据库保存数据,数据库命名为ManagerWarehouse,共涉及了如下数张表:
1. 产品信息表(Product)用来记录仓库中所有产品的具体信息,使用产品编号HID作为标的主键.
2. 入库产品信息表(InWarehouse)用来记录进入仓库产品的详细信息,Id入库编号是该表的主键。
3. 出库产品信息表(OutWarehouse)用来记录供货单位的详细信息,我们选择出库编号OId作为主键
4. 供货单位信息表(Supply Unit)用来记录供货单位的详细信息,供货编号具有唯一性,所以,可以设置成为主键字段。
5. 收货单位信息表(ReceivingUnit)用来记录收货单位的详细信息,与供货单位信息表相似,收货编号是主键。
6. 产品库存表(Result)用来记录产品库存详细的信息,根据主键唯一性原则,设定库存编号为主键。
7. 用户信息表(Users)用来记录使用本系统的用户信息,其中,用户姓名可以重复,而用户编号是不可重复,主键非用户编号莫属。
8. 经手人信息表(Person)用来记录各种操作的经办人信息.
9. 仓库信息表(Warehouse)用来存放产品的各个仓库的信息.
1。3系统总体结构设计(给出系统总体结构图)
总体结构图
The Total Structure
图2.3
第三章 系统开发及实现
论述设计开发采用的技术及设计效果(逐模块或主要模块)
在对某公司仓库管理的调查过程中知道,该公司目前所有的库物资的入
库,出库等管理还是靠人工完成的.仓库管理员每天对仓库的物资进出首先登记,
然后对每笔进出的物资进行汇总,在汇总的过程中,需要将当天同一编号的物资
进行计算汇总,如果进出的量小,人工汇总还可以勉强可以对付,如果当天进出量很大的话,人工汇总就会超出负荷,该公司在2000年以前还处于发展初期,每天进出的货物的种类一般在10种左右,每种类别的进出数量平均在30件左右,人工借助简单的计算器和纸介质可以完成,错误率比较低。但是该公司从2000年以后,随着业务大幅度增加和不断拓展客户,特别是近几年,公司货物的进出量猛增,由于种类的增加,所有在人工统计的时候,寻找同类的物资花费的时间是不可想象的。由于同类的物资的进出数量多,那么就容易造成统计的时候漏掉数据,这样造成物资的库存数量相应也不准确,给公司的决策不能提供正确的依据。
通过业务调查,获知公司相关人员每天需要进行的工作如下:仓库管理员进货时经检查合同确认认为有效托收以后,进行验货入库,填写入库单,进行入库登记。仓库管理员根据出库单核对发放货物。当货物库存量低于一个数值时需要及时补充新货物入库,填写入库单。根据需要按照月,季,年进行统计分析,产生相应报表。
在这个调查的基础上又结合其他公司的仓库管理方式,同时考虑程序编制的
特点,在此基础上分别对各个子模块进行功能上的扩展,最终实现一个集强大的查询、
统计、财务记账、综合统计功能的专业的仓库管理软件。提高了企业信息管理的水平,减轻仓库管理员负担,同时节约了企业成本,降低由于数据出错带来的风险。
仓库管理的物资主要是企业生产所需要的各种设备及原料。进货时经检查合同确认为有效托收以后,进行验收入库,填写入库单,进行入库登记。企业各个部门根据所需要的物资设备总额和部门生产活动需要提出物资需求申请。管理员根据整个企业的需求开出物资设备出库单,仓库管理中根据出库单核对发放设备.设备使用完毕需要及时归还入库,填写入库单。
仓库管理的特点是信息自理量比较大。所管理的物资设备种类繁多,而且由于入库单、出库单、需求单等单据发生量特别大,关联信息多,查询和统计的方工各不相同。因此在管理上实现起来有一定的困难.在管理的过程中经常会出现信息的重复传递;单据、报表种类繁多,各个部门管理规格不统一等问题。在本系统的设计过程中,为了克服这些困难,满足计算机管理的需要,我们采取了下面的一些原则:
1.统一各种原始单据的格式,统一帐目的格式。
2。删除不必要的管理冗余,实现管理规范化、科学化。
3.程序代码标准化,软件统一化,确保软件的可维护性和实用性.
4.界面尽量简单化,做到实用、方便,尽量满足企业中不同层次员工的需要。
本系统采用面向对象的程序设计思想进行编制
[13]a)[6][13]a)[7],整个系统数据存在表格文件中,由数据库文件进行管理.在设计数据库时使表格文件发生关联,组成关系型数据库,以便于对数据进行处理。这样就可以在数据的操作上分别针
对属于不同表的数据,不必为了某条记录的一个字段来对全部记录进行修改,加快了数据的处理速度,增加了数据的可管理性.
第四章 总结
从设计阶段开始到正式进入软件的实际开发阶段,已经完成系统的大致设计并明确系统的数据结构与程序结构。在软件设计阶段主要是把一个软件需求转化为软件表示的过程,这种表示只是描绘出软件的总的概貌。然后就是进一步细化软件设计阶段得出的软件细节,把它加工成在程序细节上非常接近于源程序的软件表示。
本系统主要完成对仓库的库存管理,包括入库、出库、库存,员工信息,供应商信息以及密码管理等六个方面.系统可以完成对各类信息的浏览、查询、添加,删除,修改系统的核心是入库,库存,和出库三者之间的联系,但是由于经验不足对于每一个表的修改都将联动的影响其他的表这一个功能没有完全实现, 当完成入库或出库操作时系统会自动地完成相应库存表的修改。查询功能也是系统的核心之一,在系统中即有单条件查询和多条件查询,也有精确查询,系统有静态的条件查询,其目的都是为了方便用户使用。系统有完整的用户添加、删除和密码修改功能。
在编写数据库应用程序时,我经常要遇到这样的情况,即好多组件、窗体同时访问相同的数据源,如果为每一个组件或者窗体都设置一个数据源将是十分耗时的工件,而且要保证这些数据源的确是相同的也需花一番功夫。因此在老师指导下,我知道应该将这些数据源集中管理,最好是成一个统一的模块,需要时就将该模块引入而不必直接操作数据源本身.
在这次实践中,编写的系统只实现了几个主要功能,很多细节还需要仔细的完善。
通过本次课程设计我学到了不少新的东西,也发现了大量的问题,有些在设计过程中已经解决,有些还有待今后慢慢学习。只要学习就会有更多的问题,有更多的难点,但也会有更多的收获。
参考文献
[1] 萨师煊,王珊.数据库系统概论。第三版. 北京:高等教育出版社,2010.02。
[2]杨易。sp网络编程技术与实例[M].人民邮电出版社,2011.10.
附录
前台的页面和数据库是怎么关联的代码如下:
<?xml version="1。0"?〉
〈!—-
注意: 除了手动编辑此文件以外,您还可以使用
Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
“网站”—>“Asp。Net 配置”选项.
设置和注释的完整列表在
machine。ments 中,该文件通常位于
\Windows\Microsoft.Net\Framework\v2。x\Config 中
——>
<configuration>
〈appSettings>
〈!—-此处设置数据库连接字符串——〉
<add key=”ConnectionString" value="server=.;database=ManagerWarehouse;User ID=sa;password=585858;"/〉
</appSettings〉
〈connectionStrings>
〈add name=”kc_dbConnectionString" connectionString="Data Source=.;Initial Catalog=ManagerWarehouse;User ID=sa;Password=585858;" providerName="System。Data。SqlClient”/>
</connectionStrings>
<system.web〉
<compilation debug="true" targetFramework="4.0”〉
</compilation>
〈!--
通过 <authentication〉 节可以配置 ASP。NET 使用的
安全身份验证模式,
以标识传入的用户。
-—>
〈authentication mode=”Windows”/〉
〈!—-
如果在执行请求的过程中出现未处理的错误,
则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
开发人员通过该节可以配置
要显示的 html 错误页
以代替错误堆栈跟踪。
〈customErrors mode=”RemoteOnly” defaultRedirect=”GenericErrorPage.htm">
〈error statusCode="403” redirect="NoAccess。htm" />
<error statusCode=”404" redirect="FileNotFound。htm” />
〈/customErrors>
--〉
<pages controlRenderingCompatibilityVersion=”3.5” clientIDMode="AutoID”/〉</system。web〉
〈/configuration〉
database=ManagerWarehouse:
using System;
using System.Data;
using System。Configuration;
using System。Collections;
using System.Web;
using System。Web。Security;
using System。Web.UI;
using System。Web。UI.WebControls;
using System。Web.UI。WebControls.WebParts;
using System.Web.UI。HtmlControls;
using System。Data.SqlClient;
using System。Linq;
public partial class ManagerWarehouse : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Bind();
}
}
private void Bind()
{
string s = ”select WId,Number,Name from Warehouse order by WId desc”;
SqlConnection con = new SqlConnection(ConfigurationManager。AppSettings[”ConnectionString"]);
con。Open();
SqlDataAdapter da = new SqlDataAdapter(s, con);
DataSet ds = new DataSet();
da。Fill(ds);
con.Close();
GridView1。DataSource = ds。Tables[0].DefaultView;
GridView1.DataBind();
}
protected void GridView1_PageIndexChanging1(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e。NewPageIndex;
Bind();
}
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
string str = ”delete from Warehouse where WId=’" + this。GridView1.DataKeys[e。RowIndex]。Value。ToString() + "'";
SqlConnection con = new SqlConnection(ConfigurationManager。AppSettings["ConnectionString”]);
con.Open();
SqlCommand cmd = new SqlCommand(str, con);
cmd。ExecuteNonQuery();
con。Close();
Bind();
}
}
展开阅读全文