1、湖南机电职业技术学院毕业论文(设计)红铭进销存管理系统设计与实现作 者 姓 名 所 属 系 部 指 导 教 师 专 业 班 级 论 文 提 交 日 期 摘 要随着现代工业的发展,计算机信息企业管理系统越来越受到企业的重视,本系统是根据企业的特点,集进、销、存于一体的进销存管理软件。在设计过程中最大限度的满足用户的要求,因此,该系统具有较强的实用性。本系统界面友好,操作简单,可维护性强,功能完备。本系统介绍了进销存管理信息系统开发的全过程,主要从管理思想、系统分析说明、系统使用说明、技巧与体会等方面对管理系统加以论述。前言部分指明了选题背景和开题意义;而后有详细介绍了系统的分析、系统的开发与设计
2、说明等内容;最后给出了系统的心得体会。本系统开发以 SQL Server 2005 为后台数据库的进销存管理系统。关键词:.NET Framework 2.0; C/S; 进销存Abstract With the development of modern industry,the information management system of the computer is being paid attention to by enterprises,This system is the administrant software which according to the charac
3、teristics of the enterprise gather stock,sale,merchandise in an organic whole.In the course of designing, the maximum meets users demand, so it has stronger practicability is strong and the function is complete. The thesis introduced the whole course that the management information system develops,m
4、anily from manage thought、elucidation of system analysis、systematic specification 、systematic operation instructions、skill、respect of realizing etc.Preface part pointed out the background of the selected title and turned on the question meaning; Then introduced such contents as systematic analysis,s
5、ystematic development and specification,etc. in detail:Finally,provide the systematic operation instructions and gains in depth of comprehension designed systematically.湖南机电职业技术学院毕业设计(论文) 第 III 页Key word: .net Framework 2.0; C/S;Sql Server 2005目 录1 绪论 1 系统概述 22.1 系统需求分析 22.1.1 系统需求概述 .22.2 系统功能需求 22
6、.2.1 登录管理模块 .22.2.2 资料管理模块 .22.2.3 进货管理模块 .22.2.4 销售管理模块 .32.2.4 报表管理模块 .32.2.5 权限管理模块 .32.3 用户角色分 析 33 系统总体设计 .43.1 系统流程分析 43.2 操作流程图分析 53.3 软件模块结构设计 53.3.1 系统方案确定 .53.3.2 软件结构设计 .53.4 数据库的设计 73.4.1 概念结构设计 73.4.2 表结构设计 93.4.3 触发器设计 .133.4.4 存储过程设计 .134 系统的实现 154.1 系统的登录界面 .154.2 系统主界面 .164.3 货物信息界面
7、 .174.4 供应商信息维护界面 .194.5 客户信息维护界面 .214.6 进货入库界面 .234.7 入库商品查询界面 .254.8 销售出库界面 .274.9 销售出库商品查询界面 .294.10 红铭退货商品查询界面 314.11 客户退货商品查询界面 334.12 商品信息水晶报表打印界面 354.13 供应商水晶报表打印界面 37总 结 38致 谢 38参考文献 39湖南机电职业技术学院毕业设计(论文) 第 1 页1 绪论中小企业在我国经济发展中具有重要地位,目前我国的中小企业数量较多、地区分布广泛、行业分布跨度大,随着全球经济一体化的发展及中国加入WTO,中小企业将面临外资企
8、业的和国外产品与服务的严峻挑战,比较而言,外资企业具有更为雄厚的资金实力、丰富的管理经验和先进的技术手段,因此,如果我国的中小企业不借助先进的管理思想转变经营理念、使用信息化手段提高企业的管理水平和工作效率,将很难在今后的国际竞争中取胜利。企业管理在很多方面、很大程度上都必须借助信息化的工具来完成,采用电脑管理进货,库存和销售等诸多环节也已成为必然趋势。为了适应这种形式,中小企业不仅要有一定的硬件的基础,还要有一套完整的进销存管理系统。而要实现这一功能,就要求中小企业管理者配备一套高效的进销存管理系统,以方便对信息资源进行高效的管理。通过设计开发,本系统分为普通用户和超级用户,实现了普通操作员
9、能根据超级用户(管理员)分配的权限进行进货入库,销售出库等相应的操作。超级用户能进行所有的操作,完善商品信息,添加修改用户权限等。经过分析,我们使用 Microsoft 公司的 Visual Studio 2005 开发工具,Visual studio 2005 是企业级开发管理工具,也是 Visual Studio 产品发布 10 年来最具有革命意义的一次升级。它的优点不胜枚举,其中最突出的三点是商务智能(BI)、可编程性和安全性。非常适合进销存系统的开发。 系统概述2.1 系统需求分析2.1.1 系统需求概述进销存管理系统目前应用越来越普遍,几乎每个企业都具有相应的进销存管理系统,该项目开
10、发的软件为红铭电脑销售公司的进销存管理系统软件,是鉴于目前公司的业务不断扩大,公司先前的纯文本式管理以不能满足公司的日常事物管理,为提高公司的运转效率,公司对业务和员工管理的自动化与准确化的要求日益强烈背景下构思出来的。2.2 系统功能需求2.2.1 登录管理模块此模块是系统的用户管理模块,本模块分两种身份登录普通用户和超级用户,用户不必选择身份,系统会自动识别登陆身份。输入用户名和密码,验证正确后方可进入系统。2.2.2 资料管理模块 资料管理模块主要用于对公司人员、商品的基本信息、供货商的基本信息、客户的基本信息等进行维护。湖南机电职业技术学院毕业设计(论文) 第 3 页2.2.3 进货管
11、理模块 该模块主要用于实现商品进货数据录入、退货数据录入和相应的查询。2.2.4 销售管理模块 该模块主要是用于实现商品的销售数据录入、客户退货数据录入和销售信息查询。2.2.4 报表管理模块 报表模块主要是用于客户信息打印,商品信息打印,供应商信息打印等。2.2.5 权限管理模块 该模块用于实现系统用户设置、操作权限设置、修改密码等。2.3 用户角色分析本系统主要面向两类用户:普通用户和超级用户,不同的用户对系统的需求则不同如下:(1)普通用户对功能的需求普通用户登录后可对系统进行进货入库,入库货物查询,销售出库出库货物查询操作等基本操作。(2)超级用户对系统的需求超级用户登录后可以对系统进
12、行所有的操作,包括商品信息维护,公司人员管理,销售入库,销售出库,出库货物查询,权限设置等 3 系统总体设计3.1 系统流程分析为了更清楚地说明系统框架,以便更好地说明设计该系统的解决方案,我们给出了系统流程图,如图 3.1。系统流程图展示了该系统所有功能模块之间的逻辑关系,其中的各个功能模块基本上都代表了一个或多个独立的页面,并将在下面的的系统设计阶段得到体现。系统用户 是否登录 分配权限否是管理员用户权限分配普通用户操作权限操作模块中的数据操作所有模块资料管理 进货管理 销售管理 报表管理 报表管理 帮助3.1 系统流程图湖南机电职业技术学院毕业设计(论文) 第 5 页由流程图可以看出,使
13、用者首先通过登录管理模块进行身份验证,验证通过后,系统会根据该使用者的账户信息进行授权。如果是超级用户,则为其提供全部模块的使用权限,如果是普通用户,则为其开放对相应模块的权限。3.2 操作流程图分析用户进入系统首先打开起始页登陆界面。输入用户名和密码即可进入系统界面,超级用户,通过导航可以操作其他功能。使用普通用户身份登录输入用户名和密码进入系统界面,只能操作超级用户为其分配的模块。 3.3 软件模块结构设计3.3.1 系统方案确定通过对系统的调研与分析,系统主要完成的功能有:资料管理、进货管理、销售管理、报表管理、权限管理、系统帮助。3.3.2软件结构设计本系统是执行时,先根据不同的操作人
14、员的需要来进行相应的模块,然后可以输入数据或者进行其它的查询和浏览等操作。总体来说,本系统属于一个事务型管理系统。系统结构图 3.3.2 所示 红铭进销存管理系统资料管理销售管理销售管理报表管理权限管理数据备份系统帮助资料管理人员管理商品信息维护客户信息维护供应商信息维护进货管理进货入库退货出库进货商品查询退货商品查询销售管理销售出库退货入库出库商品查询客户退货商品查询3.3.2 系统结构图湖南机电职业技术学院毕业设计(论文) 第 7 页3.4 数据库的设计3.4.1 概念结构设计概念结构设计的重点在于信息结构的设计,它是整个数据库系统设计的关键。它独立于逻辑结构设计和 DBMS。现实世界中一
15、组具有某些共同特性和行为的对象就可以抽象为一个实体。对象类型的组成成分可以抽象为实体的属性。为此本系统从业务逻辑数据流中抽象出各个实体:普通用户、超级用户、客户、入库货物等。并根据系统实际确定各实体之间的关系。红铭进销存管理系统中用户与货物的 E-R 图普通用户查询货物添加 货物图 3.4.1 E-R 图普通用户与货物这两个实体是多对多联系;一位普通用户要添加多种货物,一种货物可以由多位普通用户可以添加。超级用户与货物的 E-R 图超级用户查询货物添加 货物删除货物图 3.4.2 E-R 图数据流层图返回 数据信息 信息返回信息 数据信息 修改命令 返 修 返回信息回 改信 命息 令图 3.4
16、.3 超级用户管理货物 DFD 图超级用户(管理员)进货入库销售出库删除入库货物删除出库货物湖南机电职业技术学院毕业设计(论文) 第 9 页3.4.2 表结构设计在需求分析,系统分析的工作完成后,接下来就是数据库的设计了。数据库设计是整个数据库应用系统开发过程中一个重要环节,在设计数据库表结构之前,首先要创建一个数据库,数据库采用 Microsoft 推出的 SQL 2005 的数据库。表 3.9 这个表是用来记录供货商信息的。 表 3.9 供货商清单编号 字段名称 数据结构 是否为空 关键字1 供应商号 Char(10) 否 是2 拼音编码 Char(10) 是 否3 名称 Varchar(
17、20) 否 否4 地址 Varchar(20) 是 否5 邮编 Char(4) 是 否6 区号 Char(4) 是 否7 类型 Char(10) 是 否8 电话 Varchar(20) 是 否9 传真 Varchar(12) 是 否表 3.10 表是用来记录以入库货物的信息的 表 3.10 进货入库编号 字段名称 数据结构 是否为空 关键字1 订单号 Char(14) 否 是2 供货商号 Char(10) 是 否3 业务员 Char(10) 是 否4 拼音编码 Char(10) 是 否5 货物名称 Char(10) 是 否6 货物数量 int 是 否7 货物单位 Char(10) 是 否8 进
18、价 Money 是 否9 进货日期 Datetime 是 否10 税额 Numeric(28,6) 是 否表 3.11 客户清单是用来记录客户信息的。表 3.11 客户清单编号 字段名 数据类型 是否为空 关键字1 客户编号 Char(10) 否 是2 拼音编码 Char(10) 是 否3 名称 Varchar(20) 是 否4 地址 Varchar(20) 是 否5 邮编 Char(6) 是 否6 区号 Char(6) 是 否7 地区 Char(6) 是 否8 电话 Varchar(12) 是 否9 传真 Varchar(12) 是 否10 业务员 Char(10) 是 否表 3.12 人员
19、管理是用来管理公司职员的。 表 3.12 人员管理编号 字段名 数据类型 是否为空 关键字1 姓名 Char(10) 否 是2 工作类型 Char(10) 是 否3 职位 Char(10) 是 否4 文化程度 Char(10) 是 否5 工作经验 Char(10 是 否6 单位 Char(20) 是 否表 3.13 商品清单是用来记录商品信息的。湖南机电职业技术学院毕业设计(论文) 第 11 页表 3.13 商品清单编号 字段名 数据类型 是否为空 关键字1 货号 Char(14) 否 否2 拼音编码 Char(10) 是 否3 品名 Char(15) 否 是4 单位 Char(6) 是 否5
20、 产地 Varchar(50) 是 否6 类别 Char(20) 是 否7 进货价 Money 是 否8 销售价 Money 是 否9 最低销价 Money 是 否10 税额 float 是 否11 剩余数量 int 是 否表 3.14 退货出库是用来记录以退货物的信息的。表 3.14 退货出库编号 字段名 数据类型 是否为空 关键字1 订单号 Char(14) 否 是2 供货商号 Char(10) 是 否3 业务员 Char(10) 是 否4 拼音编码 Char(10) 是 否5 货物名称 Char(10 是 否5 退货数量 Int 是 否6 退货单位 Char(10) 是 否7 退货价格
21、Money 是 否8 退货日期 datetime 是 否表 3.15 退货入库是用来记录客户退货入库信息的。表 3.15 退货入库表 3.16 销售出库是用来记录以买出货物信息的。表 3.16 销售出库编号 字段名 数据类型 是否为空 关键字1 订单号 Char(14) 否 是2 客户编号 Char(10) 是 否3 销售产品 Char(10) 是 否4 销售数量 Int 是 否5 销售日期 Datetime 是 否6 业务员 Char(10) 是 否7 销售价格 Money 是 否8 最低价格 Money 是 否9 税额 Char(10) 是 否10 货物单位 Char(10) 是 否编号
22、字段名 数据类型 是否为空 关键字1 订单号 Char(14) 否 是2 客户编号 Char(14) 是 否3 退货产品 Char(10) 是 否4 退货数量 Int 是 否5 货物单位 Char(10) 是 否6 退货日期 Datetime 是 否7 业务员 Char(10) 是 否8 退货价格 money 是 否湖南机电职业技术学院毕业设计(论文) 第 13 页表 3.17 用户清单是用来记录用户信息的。表 3.17 用户清单编号 字段名 字段类型 是否为空 关键字1 用户名(主键) Char(10) 否 是2 密码 Char(10) 否 否3 说明 Char(8) 是 否3.4.3 触发
23、器设计为了使系统的使用尽量简单,减少用户的输入工作量,同时提高系统的工作效率。根据实际需求设计如下触发器:1 触发器 Buy , Sell 用途:在卖出和进货时,自动更改商品的数量。 Create trigger buyon dbo.进货入库 for insert,updateas declare num intselect num=货物数量from insertedupdate 商品清单set 剩余数量=(select 剩余数量from 商品清单where 品名=(select 货物名称from inserted)+num)where 品名=(select 货物名称 from inserte
24、d)Create trigger sellon dbo.销售出库 for insert,updateas declare num intselect num=销售数量from insertedupdate 商品清单set 剩余数量=(select 剩余数量from 商品清单where 品名 =(select 销售产品from inserted)-num)where 品名=(select 销售产品from inserted )3.4.4 存储过程设计存储过程提供了数据驱动应用程序中的许多优点,使用它数据操作可以封装在单个命令中,为获取最佳性能而进行优化并通过附加安全性得到增强。根据实际需求设计如
25、下存储过程:1用途:断开数据库的连接。Create proc p_killspid dbname varchar(200) -要关闭进程的数据库名 as declare sql nvarchar(500) declare spid nvarchar(20) declare #tb cursor for select spid=cast(spid as varchar(20) from mastersysprocesses where dbid=db_id(dbname) open #tb fetch next from #tb into spid while fetch_status=0 be
26、gin exec(kill +spid) fetch next from #tb into spid end close #tb deallocate #tb go 2用途:备份数据库。Create proc rstskypl1 intasif pl1 = 1beginRESTORE DATABASE sky FROM DISK = NC:backUpsky.bakendelse if pl1 =2beginRESTORE DATABASE sky FROM DISK = ND:backUpsky.bakendelse if pl1 =3beginRESTORE DATABASE sky FR
27、OM DISK = NE:backUpsky.bakendelse RESTORE DATABASE sky FROM DISK = NF:backUpsky.bak湖南机电职业技术学院毕业设计(论文) 第 15 页4 系统的实现经过前面的精心准备,现在我们终于可以进行系统的实现阶段了,本节我们将首先进行系统的界面设计,下面就将这些页面分别进行介绍。4.1 系统的登录界面1) 用户登录界面图 4.1 系统登录主页面代码如下:public static DataTable Description;int i =0; /用于记载登陆的次数private void button1_Click(object sender, EventArgs e)if (i=“ + t2 + “ and 进货日期=“ + t3 + “;