某商店进销存管理系统课程设计报告.docx
《某商店进销存管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《某商店进销存管理系统课程设计报告.docx(24页珍藏版)》请在冰豆网上搜索。
![某商店进销存管理系统课程设计报告.docx](https://file1.bdocx.com/fileroot1/2023-6/9/56bc7a73-4277-4c07-931a-7f7905e17c8c/56bc7a73-4277-4c07-931a-7f7905e17c8c1.gif)
某商店进销存管理系统课程设计报告
学号
《某商店进销存课程名称》
课程设计报告
题目:
某商店进销存管理系统
专业:
网络工程
班级:
姓名:
指导教师:
成绩:
计算机学院
2017年12月8日
一、需求分析
1.1处理对象及组织如下:
商品:
商品编号、商品名称、商品单价、生产日期、保质期、商品重量、商品规格
供应商:
应商名称、供应商地址、供应商帐号、供应商传真、供应商电话、交货日期、订单号
进销存:
库存号、现有库存、最高库存、最低库存、盈亏数量、联系人
(1)针对商店进销存管理系统,分别对采购部门、销售部门和库存保管部门进行详细的调研和分析,总结出如下的需求信息:
商品按类管理,所以需要有一商品类型信息。
如果一个商品类型存在商品,或存在下级商品类型,则该类型不可删除。
需要记录供应商品信息。
在涉及商品数量的地方,需要知道商品的库存地方。
商品销售信息单中要包含登记商品销售数量、单价等信息。
在进货信息中要包含商品供应商等信息。
商品报损要有报损原因。
进货、销售、报损操作要有相应信息管理员。
只有管理员登录之后才可以使用系统。
默认的管理员不可以删除。
进货、销售、库存、报损信息都要可以添加、修改、删除、分类查找。
当进行进货、销售和报损操作后,能相应更新库存。
(2)经上述系统功能分析和需求总结,考虑到将来功能的扩展,设计如下的数据项和数据结构:
商品类型信息,包括数据项有:
商品信息,包括的数据项有:
商品编号、商品名称、商品的的生产日期、库存量等。
商供应商信息,包括供应商号、供应商名称、联系电话等。
进货信息,包括进货商品号、数量、规格、单价等。
销售信息,包括销售商品、数量、单价等。
报损信息,包括报损商品、数量、原因、登记时间等。
员工信息,包括员工号、姓名、职称等
1.2信息处理及系统功能
该系统由商品信息管理模块,员工信息管理模块,供应商信息管理模块,仓库信息管理模块等可以完成商品的进销存和查询,更改等的基本操作。
并根据客户的要求完善系统的功能需求。
系统功能有:
(1)商品信息的管理包括商品基本信息的新建、修改和删除,商品的编号、商品名称、商品规格等
(2)供货商信息管理:
包括供货商信息的新建、修改和删除和供应商的名称、供应商代号、供应商地址等。
(3)员工信息管理:
系统管理员的添加、删除和修改密码和员工姓名、性别、职称、工号等。
(4)仓库信息管理:
仓库号、库存商品号、商品数量等
1.3数据库系统开发环境
数据库系统开发环境需求决定以windowsXP为开发平台,采用选择功能强大的MicrosoftSQLServer为开发工具。
1.4该业务的流程图
通过对商店管理系统的要求和分析、处理,弄清楚了进销存各个系统的环节需求。
清楚了环节所需要的信息内容、流向、处理、提供信息的信息表形态等,把分析系统的相关用“业务流程图”表示出来。
具体分为进货业务,销售业务,业务流程图如下:
以下是某商店管理系统的业务流程的分析
(1)某商店管理系统进货业务流程图为
图1—1为某商店进销存管理系统的进货业务流程图
(2)某商店管理系统销售业务流程图
图1—2为某商店进销存管理系统的销售业务流程图
1.5某商店管理系统数据流i程图分析
数据流程图是一种能全面地描述信息系统逻辑模型的主要工具,它可以用少数几种符号综合地反映出信息在系统中的流动、处理和存储情况。
根据上面业务流程图的描述,从系统的科学性、管理的合理性、实际运行的可行性角度出发,自顶向下对系统进行分解,导出了商店销售管理系统的顶层数据流程图、第二层数据流程图和第三层数据流程图。
(1)某商店管理系统顶层数据流程图
图1—3为某商店管理系统顶层数据流程图
上图是商店管理系统的顶层数据流程图。
由业务流程图确定系统开发的外部实体即系统数据的来源与去处,从而确定了整个系统的外部实体和数据流,在顶层数据流程图中,把商店管理系统作为一个处理环节,与实体间传递信息,简单的表达系统的各部分功能。
(1)第一层数据流程
确定系统的主要处理功能,可以将系统分为进货管理、库存管理、销售管理等几部分。
再确定各个输入和输出的数据流的以及与之相关的数据结构,为各个数据流、报表命名
并编码,从而得到商店销售进销存系统的第一层数据流程图,如图上图所示
(2)第二层数据流程图
再将第一层数据流程图分解就可得到第二层流程图。
其中某些数据项处理可分解为多个处理过程。
在本系统中有销售模块、进货管理。
每一部分都可以分解为第二层流程图。
具体的分解情况如下
(5)数据字典
数据流程图表达了数据和处理的关系,数据字典则是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果。
数据字典在数据库设计中占有很重要的地位。
数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程五个部分。
其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构,数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容
数据项如表一
数据项编号
数据项名称
备注
类型及宽度
完整性约束
I1
TID
标识商品的代号
Char(8)
I2
Tname
某商品的名称
Char(14)
I3
TPrice
某商品的价值
Int
I4
Tproducedate
某商品生产的时间
Char(6)
I5
TKeepdate
某商品的保存时间
Char
(2)
I6
TWeight
某商品的重量
Char(8)
I7
TProducename
某商品的生产公司
Char(14)
I8
TNorms
某商品长宽
Char(6)
I9
SName
某商品的公司名称
Char(12)
I10
SAddress
某商品生产的地方
Char(16)
I11
SCodename
某供应商的产品代号
Char(8)
I12
SFax
与供应商的传真联系方式
Char(11)
I13
STele
联系供应商的电话方式
Char(11)
I14
SDate
定货单位要求的供货日期
Char(12)
I15
SOrder
发出订单的单据号
Char(8)
I16
YID
标识公司员工的代码
Char(6)
I17
Yname
公司员工的姓名
Char(6)
I18
YSex
公司员工的性别
Char
(1)
I19
YAge
公司员工的年龄
Char
(2)
I20
YZhichen
公司的员工的职位名称
Char(6)
I21
KNO
存储商品的库存号
char
(2)
I22
KNum
某种商品当前的库存量
Char(4)
I23
KHnum
商品的库存上限
Char
I24
KDnum
商品的库存下限
Char
I25
KPnum
盘盈盘亏数量
Int
I26
KPerson
与定货发生联系的供应商负债人
Char(8)
二、概念设计
2.1分E-R图建立
根据第二层数据流程图得到三个分E-R图
图2—1为某商店进货的E—R图
图2—2为某商店销售的E—R图
图2—3为某商店存储E—R图
图2—3为某商店存储E—R图
图2—3为某商店存储E—R图
图2—4为某商店供应商E—R图
2.1全局/整体E-R图
通过各个分E-R图之间的联系,合成全局E-R图。
由于在做局部E—R图时,只是针对局部的E—R图考虑,导致各个E—R图之间有很多不一致的地方,造成在合并局部E—R图生成全局E—R图时有很多的冲突发生。
而在编写商品信息时,考虑商品的数目很多,如果只用数字标号不好区分也不容易查询,就用的字母加数字来编号,所以在合并的时候造成的冲突,最后把订单中的商品编号也改成了字符型的,消除了冲突。
如图下所示
图2—4为全局/整体E-R图
三、逻辑设计
3.1建立关系模式
E—R图转换为关系模型实际上就是要将实体性、实体的属性和实体性之间的联系转换为关系模式,这种转换一般遵循如下规则:
一个实体型转换为一个关系模式。
实体的属性就是关系的属性,实体的码就是关系的码。
对于实体型见的联系则有以下不同的情况:
(1)一个1:
1的联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。
如果与某一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。
(2)一个1:
n联系可以转换为一个独立的关系模式看,也可以与n端对应的关系模式合并。
如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码味n端实体的码。
(3)一个m:
n联系转换为一个关系模式。
与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系吗的一部分。
根据以上规则将本系统的E—R图转换为关系模式(关系的码用下划线标出)
有一个商店管理系统数据库,包括T、S、Y、K、kt、TY、SK、TSYK个关系模式:
T(TID,Tname,TPrice,Tproducedate,TKeepdate,TWeight,TNorms,TProducename);
S(SCodename,SName,SAddress,SFax,Stele,SDate,SOrder);
Y(YID,YName,YSex,YAge,YZhichen);
K(KNo,KNum,KHnum,KDnum,KPnum,KPerson);
KT(KNo,TID,QTY)
TY(TID,YID,QTY);
SK(SNo,KNo,CQTY);
TSYK(TID,SName,YID,KNo,WQTY)
1.商品信息表T由商品编号(TID)、商品名称(Tname)、商品单价(TPrice)、生产日期(Tproducedate)、保质期(TKeepdate)、商品重量(TWeight)、商品规格(TNorms)组成;
2.供应商信息表S由供应商名称(SName)、供应商地址(SAddress)、供应商帐号(SCodename)、供应商传真(SFax)、供应商电话(Stele)、交货日期(SDate)、订单号(SOrder);
3.员工信息表Y由员工编号(YID)、员工姓名(YName)、员工的性别(YSex)、员工的年龄(YAge)、员工的职称(YZhichen);
4.库存信息表K由库存号(KNo)现有库存(KNum)、最高库存(KHnum)、最低库存(KDnum)、盈亏数量(KPnum)、联系人(KPerson)组成;
5.KT表是由存储商品的库存号(KNO),标识商品的代号(TID),某商品的数量(QTY)组成;
6.YT由标识公司员工的代码(YID),标识商品的代号(TID),销售的商品数量(CQTY)组成;
7.ST供应商商品表由某供应商的产品代号(SCodename),标识商品的代号(TID),
8.TSYK供应商商品员工仓库表由商品编号(TID)、供应商名称(SName)、库存号(KNo)、员工编号(YID)实际的商品数量(WQTY)组成;
商品关系模式表
数据项名称
类型
长度(精度)
完整性约束
备注
TID
Char
8
NOTNULL
标识商品的代号Primarykey
Tname
Char
14
NOTNULL
某商品的名称
TPrice
Int
NOTNULL
某商品的价值
Tproducedate
Char
6
NOTNULL
某商品生产的时间
TKeepdate
Char
2
NOTNULL
某商品的保存时间
TWeight
Char
8
NOTNULL
某商品的重量
TNorms
Char
12
某商品长宽
TProducename
Char
14
NOTNULL
某商品的生产公司
供应商关系模式表
数据项名称
类型
长度(精度)
完整性约束
备注
SCodename
Char
8
NOTNULL
某供应商的产品代号Primarykey
SName
Char
12
NOTNULL
某商品的公司名称
SAddress
Char
16
NOTNULL
某商品生产的地方
SFax
Char
11
NOTNULL
与供应商的传真联系方式
STele
Char
11
NOTNULL
联系供应商的电话方式
SDate
Char
12
NOTNULL
定货单位要求的供货日期
SOrder
Char
8
NOTNULL
发出订单的单据号
员工关系模式表
数据项名称
类型
长度(精度)
完整性约束
备注
YID
char
6
NOTNULL
标识公司员工的代码primarykey
Yname
char
6
NOTNULL
公司员工的姓名
YSex
char
1
NOTNULL
公司员工的性别
YAge
char
2
NOTNULL
公司员工的年龄
YZhichen
char
6
NOTNULL
公司的员工的职位名称
仓库关系模式表
数据项名称
类型
长度(精度)
完整性约束
备注
KNO
char
2
NOTNULL
存储商品的库存号primarykey
KNum
Char
4
NOTNULL
某种商品当前的库存量
KHnum
Char
NOTNULL
商品的库存上限
KDnum
Char
NOTNULL
商品的库存下限
KPnum
Int
NOTNULL
盘盈盘亏数量
KPerson
Char
8
NOTNULL
与定货发生联系的供应商负债人
仓库商品关系模式
数据项名称
类型
长度(精度)
完整性约束
备注
KNO
char
2
NOTNULL
存储商品的库存号
TID
char
8
NOTNULL
标识商品的代号
QTY
int
NOTNULL
某商品的数量
员工商品关系模式
数据项名称
类型
长度(精度)
完整性约束
备注
YID
Char
6
NOTNULL
标识公司员工的代码
TID
Char
12
NOTNULL
标识商品的代号
CQTY
int
NOTNULL
销售的商品数量
供应商商品表
数据项名称
类型
长度(精度)
完整性约束
备注
SCodename
Char
8
NOTNULL
某供应商的产品代号
TID
Char
8
NOTNULL
标识商品的代号
GQTY
Char
6
NOTNULL
供应商品数量
供应商商品员工仓库表
数据项名称
类型
长度(精度)
完整性约束
备注
SCodename
Char
8
NOTNULL
某供应商的产品代号
YID
Char
6
NOTNULL
标识公司员工的代码
KNO
char
2
NOTNULL
存储商品的库存号
TID
Char
8
NOTNULL
标识商品的代号
WQTY
int
NOTNULL
实际的商品数量
四、物理结构设计
通常关系数据库物理设计的内容主要包括:
(1)为关系模式选择存取方法;
(2)设计关系、索引等数据库文件的物理存储结构。
物理设计的方法:
(1)首先对要运行的事物进行详细分析,获得选择物理结构设计所需要的参数。
(2)其次,要充分了解所用RDBMS的内容特征,特别是系统提供的存取方法和存取结构。
建立索引的原则:
(1)如果一个(或)一组属性经常在查询条件中出现,则考虑在这个(或这组)属性上建立索引(或则会索引);
(2)如果一个属性经常作为最大值和最小值等聚集函数的参数,则考虑在这个属性上建立索引;
(3)如果一个(或一组)属性经常在连接操作的连接条件中出现,则考虑在这个(或这组)属性上建立索引;
五、数据实施和维护
5.1创建表
(1)创建数据库
createdatabase商店管理系统数据库
(2)创建基本表
createtableT(
TIDChar(8)primarykey,
TProducenameChar(14)NOTNULL,
TnameChar(14)NOTNULL,
TPriceIntNOTNULL,
TproducedateChar(6)NOTNULL,
TKeepdateChar
(2)NOTNULL,
TWeightChar(8)NOTNULL,
TNormsChar(12),
)
createtableS(
SCodenameChar(8)primarykey,
SNameChar(12)NOTNULL,
SAddressChar(16)NOTNULL,
SFaxChar(11)NOTNULL,
STeleChar(11)NOTNULL,
SDateChar(12)NOTNULL,
)
createtableY(
YIDChar(6)primarykey,
YnameChar(6)NOTNULL,
YSexChar
(1)NOTNULL,
YAgeChar
(2)NOTNULL,
YZhichenChar(6)NOTNULL,
)
createtableK(
KNOchar
(2)primarykey,
KNumChar(4)NOTNULL,
KHnumChar(112)NOTNULL,
KDnumChar(12)NOTNULL,
KPnumIntNOTNULL,
KPersonChar(8)NOTNULL,
)
createtableTY(
KNOchar(8)NOTNULL,
TIDChar(8)NOTNULL,
QTYchar(6)NOTNULL,
)
createtableST(
SCodenameChar(8)NOTNULL,
TIDChar(8)NOTNULL,
GQTYchar(6)NOTNULL,
)
createtableKT(
KNOchar
(2)NOTNULL,
TIDChar(8)NOTNULL,
QTYintNOTNULL,
)
createtableTSYK(
SCodenameChar(8)NOTNULL,
YIDChar(6)NOTNULL,
KNOchar
(2)NOTNULL,
TIDChar(8)NOTNULL,
WQTYintNOTNULL,
)
(3)创建视图
购买商品信息视图
CREATEVIEWVIEW_VT
AS
SELECTTID,Tname,TPrice
FROMT
供应商信息视图
CREATEVIEWVIEW_VS
AS
SELECTSName,SAddress,SCodename,Stele,SDate
FROMS
仓库信息视图
CREATEVIEWVIEW_VC
AS
SELECTKNO,KNum,KHnum,KDnum
FROMK
员工信息视图
CREATEVIEWVIEW_DH
AS
SELECTYname,Yage,Yzhichen
FROMY
WHEREYID='P006'
(4)创建触发器
在商品信息表上创建触发器提醒信息管理员相应的操作
createtriggertri_delete_tele
onT
fordelete
as
print'请在仓库中删除此商品'
在仓库信息表上建立触发器
createtriggertri_S_update
onK
forupdate
as
if(selectTName
fromT
whereTID='F650')=0
print'此商品存放仓库已满'
在供应商信息表上建立触发器
createtriggertri_update_Stele
onS
forupdate
as
if(selectTID
fromT
whereTID='I112')<100
print'存货不足请及时进货'
(5)建立索引
CreateuniqueindexIX_TIDonT(TID);
CreateuniqueindexIX_SCodenameonS(SCodename);
CreateuniqueindexIX_YIDonY(YID);
CreateuniqueindexIX_KNOonK(KNO);
(6)建立储存过程
1、商品信息查询的存储过程:
createprocedureT_T
@T_IDchar(15),
@T_namechar(30),
@T_Prochar(18)
as
select*
fromT
whereTID=@T_ID
2、员工信息查询的存储过程:
createprocedureY_Y
@Y_IDChar(16),
@Y_nameChar(16),
@Y_SexChar
(1),
@Y_AgeChar(12),
@Y_ZhichenChar(6)
as
select*
fromY
whereYID=@Y_ID
3、供应商信息查询存储过程:
createprocedureS_S
@S_CodenameChar(8),
@S_NameChar(12),
@S_AddressChar(16),
@S_FaxChar(11),
@S_TeleChar(11)
as
select*
fromS
whereSCodename=@S_Codename
4、库存信息查询的存储过程:
createprocedureK_K
@K_NOchar
(2),
@K_NumChar(4),
@K_PnumInt,
@K_PersonChar(8)
as
select*
fromK
whereKNO=@K_NO
六、总结(心得)
通过此次课程设计,对于数据库的设计方法我有了基本的了解,对于C#的编程环境也有所了解。
在编写程序的过程中,我也发现了自己的很多不足,比如平日程序编写量少,使得漏洞百出,错误很多。
另外,对于this等指针的使用还不