数据库课程设计大作业.docx
《数据库课程设计大作业.docx》由会员分享,可在线阅读,更多相关《数据库课程设计大作业.docx(33页珍藏版)》请在冰豆网上搜索。
数据库课程设计大作业
《数据库原理》
课程设计报告
专业:
测控技术与仪器
班级:
测控071班
学号:
200710402112200710402115
姓名:
杜文龙王京京
题目名称:
物资管理系统
完成日期:
2009年12月25日
昆明理工大学信息工程与自动化学院
2009年12月
物资管理系统
一、课程设计目的:
1.加深对讲授内容的理解
《数据库原理及应用》中有关数据库技术的基本理论、基本概念、设计与实现的方法和阶段性知识,光靠课堂讲授既枯燥无味又难以记住,但它们都很重要,要想熟练掌握,必须经过大量实践环节加深对它们的理解。
2.通过课程设计,掌握数据库系统设计与开发的方法及步骤
数据库是一门应用性很强的学科,开发一个数据库系统需要集理论、系统和应用三方面为一体,以理论为基础,以系统(DBMS)作支柱,以应用为目的,将三者紧密结合起来。
同时结合实际需要开发一个真实的数据库系统,对于较大型的系统可多人一起完成,但无论如何都应完成数据库的需求分析、数据的分析与建模、数据库的建立、数据库的开发与运行等全部过程。
在此过程中将所学的知识贯穿起来,达到能够纵观全局,分析、设计具有一定规模的题目要求,基本掌握数据库系统设计与开发的基本思路和方法并且做到对知识的全面掌握和运用。
3.培养学生自学以及主动解决问题的能力
通过本次设计,使同学能够主动查阅与数据库相关资料,掌握一些课堂上老师未曾教授的知识,从而达到培养学生自学以及主动解决问题的能力的目的。
二、课程设计基本要求:
1.课程设计应由学生本人独立完成,严禁抄袭。
2.掌握所学的基础理论知识,数据库的基本概念、基本原理、关系数据库的设计理论、设计方法等。
熟悉数据建模工具Visio与数据库管理系统SQLServer软件的使用。
3.按时上机调试,认真完成课程设计。
4.认真编写课程设计报告。
三、需求分析
信息管理系统是集计算机技术、网络通讯技术为一体的信息系统工程,它能够使企业运行的数据更加准确、及时、全面、详实,同时对各种信息进一步地加工,使企业领导层对生产、经营的决策依据更充分,更具有合理性和库、科学性,并创建出更多的发展机会;另外也进一步加强企业的科学化、合理化、制度化、规范化管理,为企业的管理水平跨上新台阶,为企业持久、健康、稳定的发展打下基础。
这个物资管理系统是以客户机/服务器模式的信息管理模式的信息管理系统。
它的开发过程不仅仅是一个编写应用程序的过程,而是以软件工程的思想为指导,从可行性研究开始,经过系统分析、系统设计、系统实施等主要阶段而进行规范的开发过程。
控制物资流动是企业要做好的事。
物资流动主要包括采购、仓储和销售3个环节。
传统的仓储管理使用各类表单来记录数据,最后需要盘点或统计时十分耗费时间和人力。
采用物资管理系统对物资的出入情况进行管理,可以很方便地完成各类统计,为生产销售人员及时提供信息。
四、系统介绍
1.系统资料介绍:
(1).这是一个存放各种品牌手机的仓库,每天都有手机出库和入库。
(2).每种品牌的手机都有名称、生产厂家、型号、规格等信息。
(3).手机在出入库时必须填写出入库单据,单据包括手机品牌、生产厂家、型号、规格、数量、日期、时间、入库单位(或出库单位)名称、送货(或提货)人姓名。
(4).该系统可以实现按手机名称、出入库日期的查询。
(5).该系统可以实现分别按日、月和年对出入库手机数量的统计。
2.物资管理系统功能结构图
●手机信息(手机品牌、手机生产厂家、手机型号、手机规格)
●手机入库信息(手机品牌、手机生产厂家、手机型号、手机规格、手机入库数量、手机生产日期、手机入库时间、入库单位名称、送货人姓名)
●手机出库信息(手机品牌、手机生产厂家、手机型号、手机规格、手机出库数量、手机生产日期、手机出库时间、出库单位名称、提货人姓名)
●查询方法(手机品牌查询、手机型号查询、手机规格查询、生产厂家查询、手机入库时间查询、手机出库时间查询)
3.数据库概念结构设计
(1)在仓库中主要涉及的实体的属性:
Ø手机(手机品牌、手机生产厂家、手机型号、手机规格)
Ø入库单据(手机品牌、手机生产厂家、手机型号、手机规格、手机入库数量、手机生产日期、手机入库时间、入库单位名称、送货人姓名)
Ø出库单据(手机品牌、手机生产厂家、手机型号、手机规格、手机出库数量、手机生产日期、手机出库时间、出库单位名称、提货人姓名)
(2)实体间的联系:
Ø仓库与手机之间是1:
n的联系;
Ø仓库与入库单据或或出库单据之间是1:
m(m≥0)的联系;
Ø入库单据或或出库单据与手机之间也是m:
n的联系;
(3).仓库管理系统的E-R图:
4、数据库逻辑结构设计
(1)逻辑结构设计列表描述:
序号
表名
中文名
作用
1
G_Info
商品信息表
存储商品信息
2
I_Info
商品入库信息表
存储入库商品基本信息
3
O_Info
商品出库信息表
存储出库商品基本信息
商品信息表
字段
字段名
类型
宽度
是否允许为空值
1
商品编号
char
20
NOTNULL
2
商品名称
char
30
NOTNULL
3
商品生产厂家
char
30
NOTNULL
4
商品型号
char
30
NOTNULL
5
商品规格
varchar
30
NOTNULL
商品入库信息表
字段
字段名
类型
宽度
是否允许为空值
1
商品名称
char
30
NOTNULL
2
商品生产厂家
char
30
NOTNULL
3
商品型号
char
30
NOTNULL
4
商品规格
varchar
30
NOTNULL
5
入库商品数量
char
10
NOTNULL
6
商品生产时间
datetime
NOTNULL
7
商品入库时间
datetime
NOTNULL
8
入库单位名称
varchar
30
NOTNULL
9
送货人
varchar
20
NOTNULL
商品出库信息表
字段
字段名
类型
宽度
是否允许为空值
1
商品名称
char
30
NOTNULL
2
商品生产厂家
char
30
NOTNULL
3
商品型号
char
30
NOTNULL
4
商品规格
varchar
30
NOTNULL
5
出库商品数量
char
10
NOTNULL
6
商品生产时间
datetime
NOTNULL
7
商品出库时间
datetime
NOTNULL
8
出库单位名称
varchar
30
NOTNULL
9
提货人
varchar
20
NOTNULL
五、数据库代码及运行结果
1.建立数据库
/*#################创建商品仓库###################*/
--检验该数据库是否存在,如果为真,即该仓库存在,则删除此数据库--
Ifexists(Select*FromsysdatabasesWherename='GoodsDB')
DROPDATABASEGoodsDB
GO
--创建库GoodsDB
CREATEDATABASEGoodsDB
ON
(
NAME='GoodsDB_data',
FILENAME='c:
\Goods\GoodsDB_data.mdf'
)
LOGON
(
NAME='GoodsDB_log',
FILENAME='c:
\Goods\GoodsDB_log.ldf'
)
2.创建表
/*################创建商品信息表####################*/
USEGoodsDB
GO
IFexists(SELECT*FROMsysobjectsWHEREname='G_Info')
DROPTABLEG_Info
CREATETABLEG_Info--商品信息表
(
G_IDchar(20)NOTNULL,--商品编号
G_NameCHAR(30)NOTNULL,--商品名称
G_FactoryCHAR(30)NOTNULL,--商品生产厂家
G_ModelnumberCHAR(30)NOTNULL,--商品型号
G_StandardVARCHAR(30)NOTNULL,--商品规格
)
/*################创建入库单据表####################*/
ifexists(select*FROMsysobjectsWHEREname='I_Info')
DROPTABLEI_Info
CREATETABLEI_Info--入库单据表
(
G_Namechar(6)NOTNULL,--商品名称
G_Factorychar(30)NOTNULL,--商品生产厂家
G_ModelnumberCHAR(8)NOTNULL,--商品型号
G_StandardVARCHAR(10)NOTNULL,--商品规格
G_numberchar(10)NOTNULL,--商品数量
G_DatadatetimeNOTNULL,--商品生产日期
G_IntimedatetimeNOTNULL,--商品入库时间
IndataVARCHAR(30)NOTNULL,--商品入库单位名称
SendpersonVARCHAR(10)NOTNULL--送货人
)
/*################创建出库单据表####################*/
ifexists(select*FROMsysobjectsWHEREname='O_Info')
DROPTABLEO_Info
CREATETABLEO_Info--出库单据表
(
G_Namechar(6)NOTNULL,--商品名称
G_Factorychar(30)NOTNULL,--商品生产厂家
G_ModelnumberCHAR(8)NOTNULL,--商品型号
G_StandardVARCHAR(10)NOTNULL,--商品规格
G_numberchar(10)NOTNULL,--商品数量
G_DatadatetimeNOTNULL,--商品生产日期
G_OuttimedatetimeNOTNULL,--商品出库库时间
OutdataVARCHAR(30)NOTNULL,--商品出库单位名称
GetpersonVARCHAR(10)NOTNULL--提货人
)
3.插入数据
/*###########################插入商品数据#####################*/
insertintoG_Info(G_ID,G_Name,G_Factory,G_Modelnumber,G_Standard)
select'0001','诺基亚手机','中域科技有限公司','7610','直板'union
select'0002','三星手机','万通商联','X688','翻盖'union
select'0003','摩托罗拉手机','苏州新华通讯器材有限公司','V8','翻盖'union
select'0004','多普达手机','宏达科技有限公司','TouchVIVAT2222','直板'union
select'0005','天语手机','星域科技公司','C820','直板'union
select'0006','索尼爱立信手机','大航科技有限公司','C702','直板'union
select'0007','西门子手机','金达科技有限公司','E9874','翻盖'union
select'0008','金立手机','华语通讯有限公司','T876','滑盖'
--/*#####################插入入库单据表#####################*/
insertintoI_Info(G_Name,G_Factory,G_Modelnumber,G_Standard,G_number,G_Data,G_Intime,Indata,Sendperson)
select'诺基亚手机','中域科技有限公司','7610','直板','60部','2009-5-13','2009-9-13','中域科技有限公司','张沐'union
select'三星手机','万通商联','X688','翻盖','60部','2009-5-12','2009-9-2','万通商联','刘淇'union
select'摩托罗拉手机','苏州新华通讯器材有限公司','V8','翻盖','50部','2009-5-3','2009-8-3','通娱科技有限公司','韩增慧'union
select'多普达手机','宏达科技有限公司','TouchVIVAT2222','直板','30部','2009-6-6','2009-10-6','宏达科技有限公司','韩愈'union
select'天语手机','星域科技公司','C820','直板','80部','2009-3-4','2009-6-15','星域科技公司','王雨田'union
select'索尼爱立信手机','大航科技有限公司','C702','直板','20部','2009-3-24','2009-6-4','大航科技有限公司','宋思明'union
select'西门子手机','金达科技有限公司','E9874','翻盖','30部','2009-4-8','2009-6-4','金达科技有限公司','郭海藻'union
select'金立手机','华语通讯有限公司','T876','滑盖','60部','2009-5-3','2009-8-2','华语通讯有限公司','孟哲'
--/*######################插入出库单据表######################*/
insertintoO_Info(G_Name,G_Factory,G_Modelnumber,G_Standard,G_number,G_Data,G_Outtime,Outdata,Getperson)
select'诺基亚手机','中域科技有限公司','7610','直板','30部','2009-5-13','2009-10-13','星耀手机商场','苏淳'union
select'三星手机','万通商联','X688','翻盖','40部','2009-5-12','2009-10-7','星耀手机商场','苏淳'union
select'摩托罗拉手机','苏州新华通讯器材有限公司','V8','翻盖','20部','2009-5-3','2009-10-6','星耀手机商场','苏淳'union
select'多普达手机','宏达科技有限公司','TouchVIVAT2222','直板','10部','2009-6-6','2009-11-8','迪信通手机广场','邬君梅'union
select'天语手机','星域科技公司','C820','直板','50部','2009-6-15','2009-7-15','迪信通手机广场','邬君梅'union
select'索尼爱立信手机','大航科技有限公司','C702','直板','10部','2009-3-24','2009-7-23','佰腾数码广场','马克'union
select'西门子手机','金达科技有限公司','E9874','翻盖','10部','2009-4-8','2009-8-13','佰腾数码广场','马克'union
select'金立手机','华语通讯有限公司','T876','滑盖','20部','2009-5-3','2009-9-24','佰腾数码广场','马克'
4.查询
----/*######################按商品名称查询#######################*/
select*fromG_InfowhereG_Name='诺基亚手机'
--/*######################按商品入库时间查询######################*/
select*fromI_InfowhereG_Intime='2009-6-4'
--/*######################按商品出库时间查询######################*/
select*fromO_InfowhereG_Outtime='2009-11-8'
--/*#####################按商品商品规格查询######################*/
select*fromG_InfowhereG_Standard='翻盖'
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.SqlClient;
namespaceGoods1
{
publicpartialclassForm1:
Form
{
publicForm1()
{
InitializeComponent();
}
privatevoidbtnSearch_Click(objectsender,EventArgse)
{
if(rboBtnIn.Checked)
{
stringsql="";
if(txtYear.Text=="")
{
MessageBox.Show("请输入要查询的信息!
","系统提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);
}
if(txtDay.Text=="")
{
sql=string.Format("selectcount(*)fromO_Infowhereyear(G_Outtime)='{0}'andmonth(G_Outtime)='{1}'",txtYear.Text,txtMonth.Text);
}
if(txtMonth.Text=="")
{
sql=string.Format("selectcount(*)fromO_Infowhereyear(G_Outtime)='{0}'",txtYear.Text);
}
else
{
sql=string.Format("selectcount(*)fromO_Infowhereyear(G_Outtime)='{0}'andmonth(G_Outtime)='{1}'andday(G_Outtime)='{2}'",txtYear.Text,txtMonth.Text,txtDay.Text);
}
SqlCommandcmd=newSqlCommand(sql,DBHelper.con);
DBHelper.con.Open();
try
{
objectres=cmd.ExecuteScalar();
if(resisDBNull)
{
MessageBox.Show("当天没有商品出库!
","系统提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);
}
else
{
txtNo.Text=res.ToString();
}
}
catch(Exceptionex)
{
MessageBox.Show("数据库操作失败!
"+ex.ToString(),"系统提示",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
finally
{
DBHelper.con.Close();
}
}
if(rbobtnout.Checked)
{
stringsql="";
if(txtYear.Text=="")
{
MessageBox.Show("请输入要查询的信息!
","系统提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);
}
if(txtDay.Text=="")
{
sql=string.Format("selectcount(*)fromI_Infowhereyear(G_Intime)='{0}'andmonth(G_Intime)='{1}'",txtYear.Text,txtMonth.Text);
}
if(txtMonth.Text=="")
{
sql=string.Format("selectcount(*)fromI_Infowhereyear(G_Intime)='{0}'",txtYear.Text);
}
else
{
sql=string.Format("selectcount(*)fromI_Infowhereyear(G_Intime)='{0}'andmonth(G_Intime)='{1}'andday(G_Intime)='{2}'",txtYear.Text,txtMonth.Text,txtDay.Text);
}
SqlCommandcmd=newSqlCommand(sql,DBHelper.con);
DBHelper.con.Open();
try
{
objectres=cmd.ExecuteScalar();
if(resisDBNull)
{
MessageBox.Show("当天没有商品入库!
","系统