基于仓库管理系统 毕业论文.docx
《基于仓库管理系统 毕业论文.docx》由会员分享,可在线阅读,更多相关《基于仓库管理系统 毕业论文.docx(47页珍藏版)》请在冰点文库上搜索。
![基于仓库管理系统 毕业论文.docx](https://file1.bingdoc.com/fileroot1/2023-4/29/4a6e8127-ec5c-484b-8b61-c6b46bc832d3/4a6e8127-ec5c-484b-8b61-c6b46bc832d31.gif)
摘 要
数据库技术是计算机科学技术中发展最快的领域之一。
数据库系统已在当代的社会生活中获得了广泛的应用,渗透到了工农业生产、商业、行政管理、科学研究、教育、工程技术和国防军事等各行各业,而且已围绕数据库技术形成了一个巨大的软件产业,及数据库管理系统和各类工具软件的开发和经营。
数据库技术自20世纪60年代后期产生以来,在三十多年的发展进程中,不仅形成了相对完整的理论体系,形成了现代计算机信息处理系统的重要基础和技术核心,同时也开发出了一大批应用十分的高效实用系统,形成了“哪里有计算机,哪里就有数据库”的崭新局面。
由于数据库技术的科学重要性和实际应用性日益突出,数据库系统及应用技术越来越受到人们的重视。
SQLSereve是目前应用比较广泛的关系型数据库标准语言之一。
现在,SQL已成为国际标准语言,各种类型的计算机和DBS都采用SQL作为其存取语言和标准接口,从而使数据库世界有可能链接为一个统一的整体。
以数据库技术作为后台的可视化应用也越来越受到人们的喜爱,C#是目前应用比较流行的可视化编程软件之一。
它的功能强大,系统自带的代码较为齐,容易操作,受到很多用户的喜欢。
本程序将使用SQLServer2005与C#来组成一个仓库管理系统。
关键词:
数据库原理 SQL Server2005 visualC#
目 录
摘 要 I
目 录 I
第一章 绪论 1
1.1课程设计的目的 1
摘 要 1
1.2理论研究的基础 2
1.2.1.理论研究基础 2
1.3课题研究的主要内容 2
第二章 系统需求分析 2
2.1系统的功能模块 3
.1.4 E-R模型 5
2.2系统的输入输出数据测试 6
2.2.1信息的添加测试 6
2.2.2数据查询测试 7
2.2.3数据删除测试 8
2.2.4数据修改测试 9
第三章 概要设计 10
3.1.1管理员 10
3.1.2工人 10
3.2实现方法 10
第四章 详细设计 10
4.1数据库实现 10
4.1.1添加模块 15
4.2查询模块 21
4.3修改模块 23
4.4删除功能的关键代码 25
第五章 调试分析 27
总 结 28
致 谢 28
参考文献 28
附 录 28
附录1登陆 28
附录2工人主窗体 27
附录3管理员主窗体 30
附录4添加 34
附录5修改 39
附录6查询 41
附录7删除 41
第一章 绪论
从20世纪50年代中期开始,计算机应用由科学研究部门逐渐扩展到企业、行政部门,数据处理已成为计算机的主要应用。
60年代末,数据库技术是作为数据处理中的一门新
技术发展起来的。
经过近40年的发展,数据库技术已是计算机软件的一个重要分支,形成了较为完整的理论体系和实用技术。
随着数据规模的不断扩大,数据量急剧增长,数据库系统应运而生了。
数据库系统提供了对数据的跟高级更有效的的管理。
它主要存在采用数据模型表示复杂的数据结构,有较高的数据独立性等特点。
还为用户提供了方便的用户接口。
数据库管理系统的数据模型主要有层次模型、网状模型、关系模型、和面向对象模型,其中关系模型的应用最广泛。
数据库是长期存储在计算机内部、有组织的、统一管理的相关数据集合。
数据库能为
各种用户共享,具有较小的冗余度、数据间关系紧密而又有较高的数据独立性等特点。
数据库是计算机专业的一门有重要地位的专业基础课,几乎所有的应用系统都是建立
在数据库的基础之上的。
1.1课程设计的目的
熟悉大型数据库管理系统的结构与组成;
熟悉数据库应用系统的设计方法和开发过程;
掌握一种大型数据库管理系统SQLSERVER的应用技术和开发工具的使用;熟悉数据库设计工具的使用;
熟悉数据库安全的相关知识和技术;熟悉数据库系统的管理和维护。
摘 要
数据库技术是计算机科学技术中发展最快的领域之一。
数据库系统已在当代的社会生活中获得了广泛的应用,渗透到了工农业生产、商业、行政管理、科学研究、教育、工程技术和国防军事等各行各业,而且已围绕数据库技术形成了一个巨大的软件产业,及数据库管理系统和各类工具软件的开发和经营。
数据库技术自20世纪60年代后期产生以来,在三十多年的发展进程中,不仅形成了相对完整的理论体系,形成了现代计算机信息处理系统的重要基础和技术核心,同时也开发出了一大批应用十分的高效实用系统,形成了“哪里有计算机,哪里就有数据库”的崭
3
新局面。
由于数据库技术的科学重要性和实际应用性日益突出,数据库系统及应用技术越来越受到人们的重视。
本选题能够加强自己的团队合作,懂得将理论与实际相结合,通过课程设计,加深了对数据库原理教学内容的了解,以及实现数据库原理各部分知识的融合。
进而提高自我分析问题、解决问题,从而运用所学知识解决实际问题的能力。
对以后开发大型的数据库系统是一个基础,和以后的工作中与别人协作的经验。
1.2理论研究的基础
1.2.1.理论研究基础
(1)数据库的创建,数据表的建立。
(2)在数据表中插入信息,设置主键约束,外键约束、唯一性约束。
(3)数据表中表与表之间关系的建立,尽量避免出现数据冗余。
(4)C#中窗体的建立,控件的使用。
(5)数据库与C#的链接。
1.2.2.技术层面的支持
操作系统windowsxp,VisualStudio2005,SQLServer2005.
1.3课题研究的主要内容
仓库管理系统,他有两级用户,分别是管理员和工人。
管理员相当于这个仓库的主管,可以对仓库里的产品信息、库存信息、管理员信息、工人信息、订单表信息、公司信息进行添加、查询、修改、和删除操作。
而工人就相当于日常里在仓库里工作的工人,它可以对数据库进行的操作是对产品信息、库存信息、订单表信息、公司信息的添加、查询、修改、和删除。
二者都需要输入密码才能进入,管理员要输入用户名和密码,经核对正确后才能进入,而工人则要输入姓名和工号,经核对正确后才能进入。
第二章 系统需求分析
其实本系统最主要的功能就是对数据的添加、删除、修改和查询。
只是因为管理权限的不同,执行的功能也就不同。
权限最高的管理员,他可以对所有的信息进行添加、修改、查询、删除;其次是工人,它可以对数据库进行的操作是对产品信息、库存信息、订单表
数据删除
信息、公司信息的添加、查询、修除。
当不同的用户登录本系统时,系统会根据他输入的用户名和密码进行判断,判断的过程其实就是在数据库中查找数据的过程,如果找到就会登陆倒下一个界面,如果没有找到,就会告诉你“您输入的用户名或密码有误,请验证后再重新输入!
”下面将对本系统的基本数据输入输出进行详细的叙述。
2.1系统的功能模块
2.1.1.管理员的功能模块图
管理员
对仓库进行管理
管理工人信息
添加信
息1.
修
改信
息
查询信
息
修改管理员登
陆
添加新的管理
员
修改工人登
陆
添加新的工
人
如图--2-1
2.1.2 工人的能模块
工人
添加信息
查询信息
修改信息
删除信息
产订仓公品单库司信信库信息息存息
按按按按产订公仓品单司库信信信库息息息存
显编类价示号型格所查查查有询询询信
息
显货入支现所所显编示物库付实在供示号所代时情所城应所查有号间况有市产有询信 信品信
息 息 息
按按按按按生公价货产产司格物品日信修代编期息改号号
修修修修
入 出 公
库 库 司
信 信 信
息 息 息
删 删 删
除 除 除
用 订
户 单
删 删
除 4 除
如图—2-2
.1.4 E-R模型
商品名称 货物类别
产品价格
管理员
商品编号
所属公司
保证期
管理 产品信息
数量单位
仓库信息
生产日期
城市
公司信息
管理
工人
管理员
供应商编号
供应商名
联系方式
供应产品
库存信息
产品编号
用户名 密码
市场加分
产品数量
5
总价格
产品编号
付款情况
商品编号
货物数量
取货时间
货物代号
经手人工号
订单表
如图—2-3
2.2系统的输入输出数据测试
2.2.1信息的添加测试
以对产品信息的添加为例。
产品信息的添加,管理员和工人都有这项功能。
而且里面有容错,比如说产品编号应为数字,如果输入的是汉字或字符,则会有提示要重新输入,输入字符。
每一个都有,例如编号、生产日期和产品价格是数字,名称、数量单位、保证期、货物类别、所属公司是汉字。
当完全符合后才能添加到数据表中。
对产品信息添加的测试
输入错误数据类型
如图—2-4
26
在对产品信息进行添加的时候,系统会对输入的数据进行验证,如果输入的类型与要求的数据类型不符,系统会弹出一个提示框,告诉你每一个属性的正确的数据类型。
并且不能添加成功。
当所有的属性都输入正确的数据类型时,你单击注册按钮,系统会告诉你添加成功。
所加信息就会进入到数据表中。
2.2.2数据查询测试
管理员和工人都可以进行查询操作。
不同的是管理员可以对所有信息表进行只能查询,而工人则不能对工人信息和管理员信息的查询。
查询可以显示所要查询表中的所有信息也可以根据各个表中信息的特征进行查询,例如可以根据产品信息的编号查询、货物类型查询、货物价格查询。
因为基本上都差不多,在此就不一一列举了。
以对产品编号查询为例。
(1)显示所有产品信息
(2)按产品编号进行查询
如图—2-5
如图—2-6
说明:
在查询产品信息时可以按产品编号、货物类型、货物价格进行查询。
当输入的信息在数据库中找不到时,系统会提示无此产品的信息。
2.2.3数据删除测试
工人和管理员都可以进行删除操作,只是管理员可以对所有的信息表进行删除操作,而工人则不可以对管理员的信息和工人的信息进行删除操作。
以删除产品信息为例,要先输入所要删除产品信息的编号,先在表中查询出来,然后选中这一行,点击删除按钮,系统提示是否真的要删除,选择是,则就将此信息在信息表中删除。
如图—2-7
说明:
在进行删除之前,首先要根据所输入的表中信息的某种特征查询出此信息,当单击删除按钮时,系统会提示你是否要删除,当再次单击是时信息就真的被删除了,此时系统会告诉你信息已成功删除。
2.2.4数据修改测试
工人和管理员都可以进行修改操作,只是管理员可以对所有的信息表进行修改操作,而工人则不可以对管理员的信息和工人的信息进行修改操作。
以修改产品信息为例,要先输入所要修改产品信息的编号,先在表中查询出来,然后修改所要修改的地方,然后点击保存修改按钮,系统提示已经将所改的信息存入表中。
如图—2-8
说明:
当要对信息进行修改时,先要查出要修改的信息,修改完毕后,单击保存修改按钮时,系统会提示你已成功更新记录。
第三章 概要设计
3.1设计思想
3.1.1管理员
管理员,是系统用户中权限最高的,他拥有对所有表中信息的操作能力。
3.1.2工人
工人是二级用户,他不能对工人信息表和管理员信息表进行操作。
3.2实现方法
先用SQL语句建立了数据库和各个表及各种约束,添加、修改、查询、删除的功能主要是用代码与数据库连接,再对数据进行操作的里面也用到了SQL语言。
C#中的各种控件的应用在本系统的实现中起着举足轻重的作用。
第四章 详细设计
4.1数据库实现
createdatabase仓库管理系统
on(
name=manage_data,filename='f:
\manage_data.mdf',size=4,
maxsize=10,filegrowth=10%
)
logon(
name=sale1_log,filename='f:
\manage_log.mdf',size=1,
maxsize=6,filegrowth=1
)
use 仓库管理系统
go
createtable产品信息
(
编号intnotnull,
名称char(20),数量单位char
(2),货物类别CHAR(10),
所属公司char(50)notnull,生产日期char(50)notnull,保证期char(50)notnull,
产品价格float(20)notnull,primarykey(编号)
)
insertinto产品信息values('01','可口可乐','瓶','饮料','天津可口可乐有限公司','2009-06-01','1月','2.5')
insertinto产品信息values('02','农夫山泉','瓶','饮料','农夫山泉有限公司','2008-12-11','20天','1.0')
insertinto产品信息values('03','奥利奥饼干','袋','食品','奥利奥股份有限责任公司','2008-11-11','10天','3.0')
insertinto产品信息values('04','数据库系统教程','本','图书','高等教育出版社','2007-05-23','1年','33.20')
insertinto产品信息values('05','康师傅冰红茶','瓶','饮料','康师傅有限责任公司','2009-06-01','1月','2.5')
insertinto产品信息values('06','舒蕾洗发露','瓶','生活用品','广州宝洁有限责任公司','2008-06-01','5月','15')
insertinto产品信息values('07','清扬洗发露','瓶', '生活用品','清扬洗发露有限公司','2008-08-01','9月','25')
insertinto产品信息values('08','阿胶枣','袋','食品','沧州阔源食品有限公司','2008-08-01','2月','5')
insertinto产品信息values('09','冰淇淋旦筒','箱','食品','深圳市麦尔斯顿贸易商行','2008-11-01','10天','50')
insertinto产品信息values('10','蒙牛早餐奶','箱','食品','内蒙古蒙牛有限责任公司','2009-5-12','10天','23')
insertinto产品信息values('11','王中王香肠','箱','食品','王中王肉制品有限公司','2009-5-12','5天','23')
use 仓库管理系统
go
createtable用户信息表
(
用户名char(20)primarykey,
密码char(10),
姓名char(20)notnull,性别char(20)notnull,家庭地址char(50)
)
insertinto用户信息表values('1001','30','王通','男','河北省保定市')
insertinto用户信息表values('1002','32','李树冰','男','河北省沧州市')
use 仓库管理系统
go
createtable工人信息表
(
工人编号char(20)notnullprimarykey,
姓名char(20)notnull,性别char(20)notnull,家庭地址varchar(50),
)
insertinto工人信息表values('01','张三','男','河北省廊坊市')insertinto工人信息表values('02','李四','男','河北省石家庄市')insertinto工人信息表values('03','王明','男','河北省保定市')insertinto工人信息表values('04','赵娟','女','北京市')
createtable库存信息
(
编号int notnullprimarykey ,
货物数量INTnotnull,
市场价float(20)notnull
)
insertinto库存信息values('01','100','2.5')insertinto库存信息values('04','500','33.20')insertinto库存信息values('05','200','2.5')insertinto库存信息values('07','20','25')insertinto库存信息values('08','22','5')insertinto库存信息values('10','20','23')
use 仓库管理系统
go
createtable订货单表
(
编号intprimarykey,
货物代号intnotnull,
创建时间char(50)notnull,总价格char(10)notnull,付款情况char(10),
货物数量intnotnull,
经手人工号char(20)notnull,
取货时间char(50)
)
insertinto订货单表values('01','01','2009-02-23','2500','否
','1000','1002','2009-03-12')
use 仓库管理系统
go
createtable公司信息表
(
供应商编号intnotnullprimarykey,
供应商名 char(50),城市 char(50),供应产品char(20),联系方式 char(50)
)
insertinto公司信息表values('01','天津可口可乐有限公司','天津市','可口可乐','15961752736')
4.1系统模块实现
4.1.1添加模块
如图—3-1
对订单表进行添加的代码
usingSystem;
usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;
usingSystem.Drawing;usingSystem.Text;
usingSystem.Windows.Forms;usingSystem.Data.SqlClient;
namespace仓库管理系统2
{
publicpartialclass订单表添加:
Form
{
privateSqlDataAdapterobjSqlDataAdapter;privateSqlConnectionobjSqlConn;
privateDataSetobjDataSet;
privateSqlParameterobjSqlParameter;
public订单表添加()
{
InitializeComponent();
}
privateboolValidateFields()//判断基本信息输入
{
boolreturnValue=true;if(textBox1.Text=="")
{
MessageBox.Show("编号不能为空,请输入商品编号!
","提示");
textBox1.Focus();returnfalse;
}
else
{
for(inti=0;i{
if(!
char.IsNumber(textBox1.Text.ToString(),i))
{
MessageBox.Show("编号应为数字!
","提示");
this.textBox1.Focus();
//returnValue=false;
//break;returnfalse;
}
}
for(inti=0;i{
if(!
Char.IsNumber(货物代号.Text.ToString(),i))
{
MessageBox.Show("货物代号应为数字!
","提示");
this.货物代号.Focus();
//returnValue=false;
//break;returnfalse;
}
}
for(inti=0;i{
if(!
Char.IsNumber(创建时间.Text.ToString(),i))
{
MessageBox.Show("创建时间应为数字!
","提示");
this.创建时间.Focus();
//returnValue=false;
//break;returnfalse;
}
}
for(inti=0;i{
if(!
Char.IsNumber(总价格.Text.ToString(),i))
{
MessageBox.Show("总价格应为数字!
","提示");
this.总价格.Focus();
//returnValue=false;
//break;returnfalse;
}
}
for(inti=0;i{
if(Char.IsNumber(付款情况.Text.ToString(),i))
{
MessageBox.Show("付款情况应为汉字!
","