《红铭进销存管理系统设计与实现毕业论文.doc》由会员分享,可在线阅读,更多相关《红铭进销存管理系统设计与实现毕业论文.doc(43页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
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 characterist
3、ics 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,manily
4、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,systema
5、tic development and specification,etc. in detail:Finally,provide the systematic operation instructions and gains in depth of comprehension designed systematically.Key word: .net Framework 2.0; C/S;Sql Server 2005目 录1绪论1 系统概述22.1系统需求分析22.1.1 系统需求概述22.2 系统功能需求22.2.1 登录管理模块22.2.2 资料管理模块22.2.3 进货管理模块22.
6、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 货物信息界面174.4 供应商信息维护界面194.5 客户信息维护界面214.6 进货入库界面234.7 入库商品查询界面254.8 销售出库界面274.9 销售出库商品查询界面
7、294.10红铭退货商品查询界面314.11客户退货商品查询界面334.12商品信息水晶报表打印界面354.13供应商水晶报表打印界面37总结38致 谢38参考文献391绪论中小企业在我国经济发展中具有重要地位,目前我国的中小企业数量较多、地区分布广泛、行业分布跨度大,随着全球经济一体化的发展及中国加入WTO,中小企业将面临外资企业的和国外产品与服务的严峻挑战,比较而言,外资企业具有更为雄厚的资金实力、丰富的管理经验和先进的技术手段,因此,如果我国的中小企业不借助先进的管理思想转变经营理念、使用信息化手段提高企业的管理水平和工作效率,将很难在今后的国际竞争中取胜利。企业管理在很多方面、很大程度
8、上都必须借助信息化的工具来完成,采用电脑管理进货,库存和销售等诸多环节也已成为必然趋势。为了适应这种形式,中小企业不仅要有一定的硬件的基础,还要有一套完整的进销存管理系统。而要实现这一功能,就要求中小企业管理者配备一套高效的进销存管理系统,以方便对信息资源进行高效的管理。通过设计开发,本系统分为普通用户和超级用户,实现了普通操作员能根据超级用户(管理员)分配的权限进行进货入库,销售出库等相应的操作。超级用户能进行所有的操作,完善商品信息,添加修改用户权限等。经过分析,我们使用Microsoft公司的Visual Studio 2005开发工具,Visual studio 2005是企业级开发管
9、理工具,也是Visual Studio产品发布10年来最具有革命意义的一次升级。它的优点不胜枚举,其中最突出的三点是商务智能(BI)、可编程性和安全性。非常适合进销存系统的开发。 系统概述2.1系统需求分析2.1.1 系统需求概述进销存管理系统目前应用越来越普遍,几乎每个企业都具有相应的进销存管理系统,该项目开发的软件为红铭电脑销售公司的进销存管理系统软件,是鉴于目前公司的业务不断扩大,公司先前的纯文本式管理以不能满足公司的日常事物管理,为提高公司的运转效率,公司对业务和员工管理的自动化与准确化的要求日益强烈背景下构思出来的。2.2 系统功能需求2.2.1 登录管理模块此模块是系统的用户管理模
10、块,本模块分两种身份登录普通用户和超级用户,用户不必选择身份,系统会自动识别登陆身份。输入用户名和密码,验证正确后方可进入系统。2.2.2资料管理模块 资料管理模块主要用于对公司人员、商品的基本信息、供货商的基本信息、客户的基本信息等进行维护。2.2.3进货管理模块 该模块主要用于实现商品进货数据录入、退货数据录入和相应的查询。2.2.4销售管理模块 该模块主要是用于实现商品的销售数据录入、客户退货数据录入和销售信息查询。2.2.4报表管理模块 报表模块主要是用于客户信息打印,商品信息打印,供应商信息打印等。2.2.5权限管理模块 该模块用于实现系统用户设置、操作权限设置、修改密码等。2.3
11、用户角色分析 本系统主要面向两类用户:普通用户和超级用户,不同的用户对系统的需求则不同如下:(1)普通用户对功能的需求普通用户登录后可对系统进行进货入库,入库货物查询,销售出库出库货物查询操作等基本操作。(2)超级用户对系统的需求超级用户登录后可以对系统进行所有的操作,包括商品信息维护,公司人员管理,销售入库,销售出库,出库货物查询,权限设置等 3 系统总体设计3.1系统流程分析为了更清楚地说明系统框架,以便更好地说明设计该系统的解决方案,我们给出了系统流程图,如图3.1。系统流程图展示了该系统所有功能模块之间的逻辑关系,其中的各个功能模块基本上都代表了一个或多个独立的页面,并将在下面的的系统
12、设计阶段得到体现。系统用户是否登录分配权限否是管理员用户权限分配普通用户操作权限操作模块中的数据操作所有模块资料管理进货管理销售管理报表管理报表管理帮助3.1系统流程图由流程图可以看出,使用者首先通过登录管理模块进行身份验证,验证通过后,系统会根据该使用者的账户信息进行授权。如果是超级用户,则为其提供全部模块的使用权限,如果是普通用户,则为其开放对相应模块的权限。3.2操作流程图分析用户进入系统首先打开起始页登陆界面。输入用户名和密码即可进入系统界面,超级用户,通过导航可以操作其他功能。使用普通用户身份登录输入用户名和密码进入系统界面,只能操作超级用户为其分配的模块。 3.3软件模块结构设计3
13、.3.1 系统方案确定通过对系统的调研与分析,系统主要完成的功能有:资料管理、进货管理、销售管理、报表管理、权限管理、系统帮助。3.3.2软件结构设计本系统是执行时,先根据不同的操作人员的需要来进行相应的模块,然后可以输入数据或者进行其它的查询和浏览等操作。总体来说,本系统属于一个事务型管理系统。系统结构图3.3.2所示 红铭进销存管理系统资料管理销售管理销售管理报表管理权限管理数据备份系统帮助资料管理人员管理商品信息维护客户信息维护供应商信息维护进货管理进货入库退货出库进货商品查询退货商品查询销售管理销售出库退货入库出库商品查询客户退货商品查询3.3.2系统结构图3.4数据库的设计3.4.1
14、概念结构设计概念结构设计的重点在于信息结构的设计,它是整个数据库系统设计的关键。它独立于逻辑结构设计和DBMS。现实世界中一组具有某些共同特性和行为的对象就可以抽象为一个实体。对象类型的组成成分可以抽象为实体的属性。为此本系统从业务逻辑数据流中抽象出各个实体:普通用户、超级用户、客户、入库货物等。并根据系统实际确定各实体之间的关系。红铭进销存管理系统中用户与货物的E-R图普通用户查询货物添加货物 图3.4.1 E-R图普通用户与货物这两个实体是多对多联系;一位普通用户要添加多种货物,一种货物可以由多位普通用户可以添加。超级用户与货物的E-R图 超级用户查询货物添加货物删除货物图3.4.2 E-
15、R图数据流层图超级用户(管理员)进货入库返回 数据信息 信息删除入库货物销售出库 返回信息 数据信息 修改命令 返 修 返回信息回 改信 命息 令删除出库货物 图3.4.3超级用户管理货物DFD图3.4.2表结构设计在需求分析,系统分析的工作完成后,接下来就是数据库的设计了。数据库设计是整个数据库应用系统开发过程中一个重要环节,在设计数据库表结构之前,首先要创建一个数据库,数据库采用Microsoft 推出的SQL 2005的数据库。表3.9这个表是用来记录供货商信息的。 表3.9供货商清单编号字段名称 数据结构是否为空关键字1供应商号 Char(10)否是2拼音编码Char(10)是否3名称
16、 Varchar(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进价Money是否9进货日期Datetime是否10税额Numeric(28,6)是否表3.11客户
17、清单是用来记录客户信息的。表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人员管理是用来管理公司职员的。 表3.12人员管理编号字段名数据类型是否为空关键字1姓名Char(10)否是2工作类型Char(10)是否3职位Char(10)是否4文化程度Char(10)是否5工作经验Char(10是否6
18、单位Char(20)是否表3.13商品清单是用来记录商品信息的。表3.13商品清单编号字段名数据类型是否为空关键字1货号Char(14)否否2拼音编码Char(10)是否3品名Char(15)否是4单位Char(6)是否5产地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
19、)是否5货物名称Char(10是否5退货数量Int是否6退货单位Char(10)是否7退货价格Money是否8退货日期datetime是否表3.15退货入库是用来记录客户退货入库信息的。编号字段名数据类型是否为空关键字1订单号Char(14) 否是2客户编号Char(14)是否3退货产品Char(10)是否4退货数量Int是否5货物单位Char(10)是否6退货日期Datetime是否7业务员Char(10)是否8退货价格money是否表3.15退货入库表3.16销售出库是用来记录以买出货物信息的。表3.16销售出库编号字段名数据类型是否为空关键字1订单号Char(14)否是2客户编号Char
20、(10)是否3销售产品Char(10)是否4销售数量Int是否5销售日期Datetime是否6业务员Char(10)是否7销售价格Money是否8最低价格Money是否9税额Char(10)是否10货物单位Char(10)是否表3.17用户清单是用来记录用户信息的。表3.17用户清单编号字段名字段类型是否为空关键字1用户名(主键)Char(10)否是2密码Char(10)否否3说明Char(8)是否3.4.3触发器设计 为了使系统的使用尽量简单,减少用户的输入工作量,同时提高系统的工作效率。根据实际需求设计如下触发器:1 触发器Buy , Sell 用途:在卖出和进货时,自动更改商品的数量。
21、Create trigger buyon dbo.进货入库 for insert,updateas declare num intselect num=货物数量from insertedupdate 商品清单set 剩余数量=(select 剩余数量from 商品清单where 品名=(select 货物名称from inserted)+num)where 品名=(select 货物名称from inserted)Create trigger sellon dbo.销售出库 for insert,updateas declare num intselect num=销售数量from inser
22、tedupdate 商品清单set 剩余数量=(select 剩余数量from 商品清单where 品名=(select 销售产品from inserted)-num)where 品名=(select 销售产品from inserted)3.4.4存储过程设计存储过程提供了数据驱动应用程序中的许多优点,使用它数据操作可以封装在单个命令中,为获取最佳性能而进行优化并通过附加安全性得到增强。根据实际需求设计如下存储过程:1用途:断开数据库的连接。Create proc p_killspid dbname varchar(200) -要关闭进程的数据库名 as declare sql nvarcha
23、r(500) declare spid nvarchar(20) declare #tb cursor for select spid=cast(spid as varchar(20) from master.sysprocesses where dbid=db_id(dbname) open #tb fetch next from #tb into spid while fetch_status=0 begin exec(kill +spid) fetch next from #tb into spid end close #tb deallocate #tb go 2用途:备份数据库。Cr
24、eate proc rstskypl1 intasif pl1 = 1 begin RESTORE DATABASE sky FROM DISK = NC:backUpsky.bak endelse if pl1 =2 begin RESTORE DATABASE sky FROM DISK = ND:backUpsky.bak endelse if pl1 =3 begin RESTORE DATABASE sky FROM DISK = NE:backUpsky.bak endelse RESTORE DATABASE sky FROM DISK = NF:backUpsky.bak4 系
25、统的实现经过前面的精心准备,现在我们终于可以进行系统的实现阶段了,本节我们将首先进行系统的界面设计,下面就将这些页面分别进行介绍。4.1 系统的登录界面1) 用户登录界面图4.1 系统登录主页面代码如下:public static DataTable Description; int i =0; /用于记载登陆的次数 private void button1_Click(object sender, EventArgs e) if (i2) Program.mycon = new SqlConnection(Data Source=.; Initial Catalog=Sky; Integra
26、ted Security=True); Program.mycon.Open(); Program.mycommand = new SqlCommand(select * from 用户清单 where 用户名= + this.textBox1.Text + and 密码= + this.textBox2.Text + ,Program.mycon); SqlDataReader myread =Program.mycommand.ExecuteReader(); myread.Read(); if (myread.HasRows) linkDataBase.userName = this.t
27、extBox1.Text; linkDataBase.userPwd = this.textBox2.Text; /记载当前用户名和密码 Description = Program.linkTb(select 说明 from 用户清单 where 用户名 = + this.textBox1.Text + , 用户清单); linkDataBase.userDes = Description.Rows00.ToString(); /用于记载是否是超级用户 Mainform a = new Mainform(); this.Hide(); a.Show(); else 、 i+=1; Messag
28、eBox.Show(用户名或密码错误,还有 +(3-i)+ 次机会, 信息提示, MessageBoxButtons.OK, MessageBoxIcon.Question); .4.2 系统主界面图4.2 系统主页面代码如下: private void Mainform_Load(object sender, EventArgs e) try string week = ; DateTime Date = System.DateTime.Now; week = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.Get
29、DayName(Convert.ToDateTime(Date).DayOfWeek); this.notifyIcon1.ShowBalloonTip(2, HM进销存管理系统, 今天是: + System.DateTime.Now.ToString(D) + + week + 欢迎您的使用, ToolTipIcon.Info); string txt = select * from 用户权限表 where 用户名= + linkDataBase.userName + ; /判断用户的权限 string table = 用户权限表; myTable = Program.linkTb(txt,
30、 table); .4.3货物信息界面图4.3 货物信息主页面代码如下: public Goods() InitializeComponent(); private void Fill1() this.textBox11.DataBindings.Add(Text, dataGridView1.DataSource, 货号); this.textBox12.DataBindings.Add(Text, dataGridView1.DataSource, 拼音编码); this.textBox13.DataBindings.Add(Text, dataGridView1.DataSource,
31、品名); this.textBox14.DataBindings.Add(Text, dataGridView1.DataSource, 单位); this.textBox15.DataBindings.Add(Text, dataGridView1.DataSource, 产地); this.textBox16.DataBindings.Add(Text, dataGridView1.DataSource, 类别); this.textBox17.DataBindings.Add(Text, dataGridView1.DataSource, 进货价); this.textBox18.Dat
32、aBindings.Add(Text, dataGridView1.DataSource, 销售价); this.textBox19.DataBindings.Add(Text, dataGridView1.DataSource, 最低售价); this.textBox20.DataBindings.Add(Text, dataGridView1.DataSource, 税额); private void Goods_Load(object sender, EventArgs e) bindingSource1.DataSource= linkDataBase.link(select * fr
33、om 商品清单, 商品清单 ); bindingNavigator1.BindingSource = bindingSource1; dataGridView1.DataSource = bindingSource1; Fill1(); private void toolStripButton2_Click(object sender, EventArgs e) dataGridView1.DataSource = null; string txt = ; if (toolStripTextBox1.Text.Trim() =) txt = select * from 商品清单; else t
34、xt = select * from 商品清单 where 拼音编码 like + this.toolStripTextBox1.Text.Trim() + %; bindingSource1.DataSource = linkDataBase.link(txt, 供货商清单); dataGridView1.DataSource = bindingSource1; bindingNavigator1.BindingSource = bindingSource1; private void toolStripButton1_Click(object sender, EventArgs e) da
35、taGridView1.CurrentCell = null; dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit); dataGridView1.EndEdit(); bindingSource1.EndEdit(); if (linkDataBase.mytable.GetChanges()!=null) linkDataBase.mysql.Update(linkDataBase.mytable); MessageBox.Show(数据保存成功!, 提示, MessageBoxButtons.OK, MessageB
36、oxIcon.Information); else return; private void toolStripButton3_Click(object sender, EventArgs e) 商品信息report goods = new 商品信息report(); goods.Show(); 4.4供应商信息维护界面图4.4 供应商信息主界面代码如下:private void Provider_Load(object sender, EventArgs e) bindingSource1.DataSource=linkDataBase.link(Select * from 供货商清单,供货商清单); bindingNavigator1.BindingSource = bindingSource1; dataGridView1.DataSource = bindingSource1;. private void toolStripButton1_Click(object sender, EventArgs e) dataGridView1.DataSource = null; string txt = ; if (toolStripTextBox1.Text.Trim() = ) txt = select * from