家具城进销存管理系统模板.docx
《家具城进销存管理系统模板.docx》由会员分享,可在线阅读,更多相关《家具城进销存管理系统模板.docx(31页珍藏版)》请在冰点文库上搜索。
家具城进销存管理系统模板
家具城进销存管理系统
呼伦贝尔学院
计算机科学与技术学院
期末设计
题目:
家具城进销存管理系统
学生姓名:
学号:
专业班级:
指导教师:
完成时间:
第1章绪论
1.1开发背景及内容
随着公司业务量的逐渐增长,业务范围的不断扩大,特别是中国进入WTO之后,市场竞争特别是家电行业的竞争日趋激烈,公司需要更多的人力、物力、财力以稳固并拓展各公司商品在市场的销售额。
如何更加有效地管理产品的进、销、存已成为公司领导的重要决策事项。
到当前为止,还没有一套完整的、行之有效的管理信息系统,进行信息管理的主要方式是基于文本、表格等纸介质的手工处理,信息处理工作量大,查询困难。
为了使管理工作科学化、规范化,为了降低管理成本,实现管理现代化,扩大市场的竞争优势,特此开发“进销存管理信息系统”。
“家具城进销存管理信息系统”主要是为公司的经营活动提供信息服务,它涵盖了采购部门、销售部门和仓库的各项管理工作,涉及多方面的职能。
系统能够对客户信息管理、订单管理、供应商管理、销售管理等信息提供存储、更新、查询、统计的功能,使公司能够合理控制进销存各个环节,提高资金的利用率和结算速度,实现管理的高效率、实时性、安全性、科学化、现代化和智能化。
系统的数据来源由各职能部门的业务人员经过键盘输入。
1.2开发目标
经过建立家具城进销存管理系统,希望避免公司业务管理的随意性,提高信息处理的速度和准确性,及时、准确地把握企业内部、市场和其它外部信息,以提高领导决策的水平。
实现如下功能:
1.商品各种信息的录入、查询、修改、删除。
2.供应商信息的录入、查询、删除。
3.客户基本信息的录入、查询、修改、删除。
4.销售单的添加、删除。
5.采购单的添加、删除。
6.库房的查询统计。
1.3开发工具
1.3.1C#简介
C#是微软公司发布的一种面向对象的、运行于.NETFramework之上的高级程序设计语言。
并定于在微软职业开发者论坛(PDC)上登台亮相。
C#是微软公司研究员AndersHejlsberg的最新成果。
C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。
可是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NETwindows网络框架的主角。
C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言。
它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。
C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。
C#是面向对象的编程语言。
它使得程序员能够快速地编写各种基于MICROSOFT.NET平台的应用程序,MICROSOFT.NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。
C#使得C++程序员能够高效的开发程序,且因可调用由C/C++编写的本机原生函数,因此绝不损失C/C++原有的强大的功能。
因为这种继承关系,C#与C/C++具有极大的相似性,熟悉类似语言的开发者能够很快的转向C#。
1.3.2SQLServer
SQLServer是一个重大的产品版本,它推出了许多新的特性和关键的改进,使得它成为至今为止的最强大和最全面的SQLServer版本。
这篇文章详细介绍了MicrosoftSQLServer中的新的特性、优点和功能……在现今数据的世界里,公司要获得成功和不断发展,她们需要定位主要的数据趋势的愿景。
微软的这个数据平台帮助公司满足这些数据爆炸和下一代数据驱动应用程序的需求。
微软将继续投入和发展以下的关键领域来支持她们的数据平台愿景:
关键任务企业数据平台、动态开发、关系数据和商业智能。
SQLServer出现在微软数据平台上是因为它使得公司能够运行她们关键任务的应用程序,同时降低了管理数据基础设施和发送观察和信息给所有用户的成本。
这个平台有以下特点:
可信任的——使得公司能够以很高的安全性、可靠性和可扩展性来运行她们最关键任务的应用程序。
高效的——使得公司能够降低开发和管理她们的数据基础设施的时间和成本。
智能的——提供了一个全面的平台,能够在你的用户需要的时候给她发送观察和信息。
第2章系统分析
2.1可行性分析
在明确系统目标和环境的基础上,需要进一步对系统的可行性进行研究。
此活动的主要目标是进一步明确系统的目标、规模与功能,对系统开发背景、必要性和意义进行调查分析并根据需要和可能提出拟开发系统的初步方案与计划。
可行性研究是针对系统进行全面、概要的分析,主要包括四方面:
技术可行性分析、经济可行性分析、操作可行性分析和法律可行性。
2.1.1技术可行性分析
技术上的可行性分析主要分析现有技术条件能否顺利完成开发工作,硬、软件配置能否满足开发者需要等。
本系统采用Windows7操作系统,其容量、速度能满足系统要求。
数据库开发平台选用Microsoft公司的SQLServer,该数据库管理系统在Windows7操作系统或WindowsXP操作系统的计算机上都能运行,并提供数据库之间的数据复制功能,可代替现有系统数据的手工传递工作,降低出错率,提高数据的可用性。
本系统的应用软件开发工具选用的是开发人员熟悉的MicrosoftVisualStudio。
2.1.2经济可行性分析
主要是对项目的经济效益进行评价,一方面是支出的费用,其中包括设备购置费、软件开发费、管理和维护费、人员工资和培训费等。
另一方面是取得的收益中能够用前来衡量的那部分。
基于现有计算机及配套设备,不需要添置硬件设备,而且由本人自行开发,能够大大节省软件的开发费用、人员工资和培训费等,建立该系统后,能大大减少重复性的书面报告,降低办公费用,提高办公效率,与前期的投入相比,后期的收益是可观的。
2.1.3操作可行性分析
该系统操作简单,易于理解,经过简单培训便可操作;而且是基于C#语言开发的,操作时完全可行的。
2.1.4法律可行性分析
本系统为本人开发,不涉及任非法问题,因此在法律上本系统也是可开发的。
2.2需求分析
这一阶段的主要目标是明确公司的进销存需求,确定新系统的逻辑功能,提出新系统的逻辑方案,完成系统分析阶段的最终成果—系统说明书的编写。
2.2.1数据字典
数据字典是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果。
而数据项是数据字典不可或缺的一部分,以下为该系统各个表的数据项。
1.商品信息如表2-1所示:
表2-1商品表
序号
字段名称
是否为主键
是否为外键
是否可为空
Q1
商品号
是
否
否
Q2
商品名
否
否
否
Q3
类别
否
否
是
Q4
颜色
否
否
是
Q5
型号
否
否
否
2.供应商信息如表2-2所示:
表2-2供应商表
序号
字段名称
是否为键
是否为键
是否可空
Q6
供应商号
是
否
否
Q7
姓名
否
否
否
Q8
性别
否
否
是
Q9
地址
否
否
是
Q10
电话
否
否
否
Q11
银行账号
否
否
否
3.客户信息如表2-3所示:
表2-3客户表
Q12
字段名称
是否为键
是否为键
是否可空
Q13
客户编号
是
否
否
续表
表2-3客户表
序号
字段名称
是否为主键
是否为外键
是否可为空
Q14
地址
否
否
否
Q15
性别
否
否
是
Q16
电话
否
否
否
4.员工信息如表2-4所示
表2-4员工表
序号
字段名称
是否为主键
是否为外键
是否可为空
Q17
职工号
是
否
否
Q18
职工名
否
否
否
Q19
性别
否
否
是
Q20
电话
否
否
否
Q21
角色
否
否
否
5.仓库信息如表2-5所示
表2-5仓库表
序号
字段名称
是否为主键
是否为外键
是否可为空
Q22
仓库号
是
否
否
Q23
仓库名
否
否
是
Q24
最大容量
否
否
否
Q25
地址
否
否
否
6.采购信息如表2-6所示
表2-6采购表
序号
字段名称
是否为主键
是否为外键
是否可为空
Q26
商品号
否
是
否
Q27
职工号
否
是
否
Q28
供应商号
否
是
否
Q29
采购单号
是
否
否
Q30
日期
否
否
否
Q31
数量
否
否
否
Q32
进价
否
否
否
7.销售信息如表2-7所示
表2-7销售表
序号
字段名称
是否为主键
是否为外键
是否可为空
Q33
商品号
否
是
否
Q34
职工号
否
是
否
续表
表2-7销售表
序号
字段名称
是否为主键
是否为外键
是否可为空
Q35
客户编号
否
是
否
Q36
销售单编号
是
否
否
Q37
日期
否
否
否
Q38
数量
否
否
否
Q39
单价
否
否
否
8.库存信息如表2-8所示:
表2-8库存表
序号
字段名称
是否为主键
是否为外键
是否可为空
Q40
商品号
是
是
否
Q41
仓库号
是
是
否
Q42
数量
否
否
否
9.管理员信息如表2-9所示
表2-9管理员表
序号
字段名称
是否为主键
是否为外键
是否可为空
Q43
用户名
是
否
否
Q44
密码
否
否
否
2.2.2数据要求
家具城进销存管理系统对数据的要求如下:
1.商品管理
商品管理实现的是商品各种信息的录入、查询、修改、删除,经过录入商品的基本信息能够实现销售员对商品信息进行查看和更改,商品的基本信息包括(商品号,商品名,类别,颜色,型号)。
2.客户管理
客户管理实现的是客户基本信息的录入、查询、修改、删除,客户的基本信息包括(客户编号,联系人,地址,性别,电话)
3.供应商管理
供应商管理实现的是供应商信息的录入、查询、删除,经过对供应商信息的录入可实现对不同供应商供应的同种商品进行对比查看,供应商的基本信息包括(供应商号,姓名,性别,地址,电话,银行账号)
4.员工管理
经过对员工的管理可查出每一个销售单采购单的负责人,对于销售、采购出错时可根据信息询问对应的员工,员工的基本信息包括(职工号,职工名,性别,电话,角色)
5.仓库管理
经过对仓库的管理可查看商品的存放位置,库存余量,仓库的基本信息包括(仓库号,仓库名,最大容量,地址)
2.3系统功能结构图
家具城进销存管理系统完成的主要功能有:
1.商品各种信息的录入、查询、修改、删除。
2.供应商信息的录入、查询、删除。
3.客户基本信息的录入、查询、修改、删除。
4.销售单的添加、删除。
5.采购单的添加、删除。
6.库房的查询统计。
系统功能结构图如图2-1所示:
图2-1系统功能结构图
第3章数据库设计
3.1数据库概念结构设计
概念设计的实质是将系统需求分析得到的用户需求抽象为信息结构的过程。
概念设计的结果是数据库的概念模型,也就是用E-R图表示。
3.1.1局部E-R图
以下为家具城进销存管理的局部E-R图:
1.员工E-R图如图3-1所示:
图3-1员工E-R图
2.供应商E-R图如图3-2所示
图3-2供应商E-R图
3.客户E-R图如图3-3所示:
图3-3客户E-R图
4.商品E-R图如图3-4所示:
图3-4商品E-R图
5.仓库E-R图如图3-5所示:
图3-5仓库E-R图
6.管理员E-R图如图3-6所示:
图3-6管理员E-R图
3.1.2全局E-R图
家具城进销存管理系统全局E-R图如图3-7所示:
图3-7家具城进销存管理总体E-R图
3.2数据库逻辑结构设计
数据库的逻辑设计的任务就是把概念结构设计阶段的基本E-R图转化为与选用具体机器上的DBMS产品所支持的数据模型相符合的逻辑结构,首先要实现的是E-R图关系模型的转化。
而为此要解决的问题是如何将实体和实体之间的联系转化为关系模式,如何确定这些关系模式的属性和码。
对于实体,将每个实体转换为一个关系,实体的属性即为关系的属性,实体的码即为关系的码。
根据E-R图转换关系模式如:
员工(职工号,职工名,性别,电话,角色)
供应商(供应商号,姓名,性别,地址,电话,银行账号)
商品(商品号,商品名,类别,颜色,型号)
采购(采购单号,商品号,职工号,供应商号,日期,数量,进价)
客户(客户编号,联系人,地址,性别,电话)
销售(销售单编号,商品号,职工号,客户编号,日期,数量,单价)
仓库(仓库号,仓库名,最大容量,地址)
库存(商品号,仓库号,数量)
用户(用户名,密码)
3.3数据库实施
3.3.1建库代码
以下为数据库建库代码:
createdatabase家具城进销存管理系统
3.3.2建表代码
以下为数据库建表代码:
1.创立管理员表
createtableuser1
(
用户名nchar(12)primarykey,
密码varchar(20)notnull,
)
2.创立仓库表
createtable仓库
(
仓库号nchar(6)primarykey,
仓库名nchar(6)notnull,
最大容量int,
地址nvarchar(20)
)
3.创立商品表
createtable商品
(
商品号nchar(6)primarykey,
商品名nvarchar(10),
类别nchar
(2),
颜色nchar(3),
型号nchar
(2)
)
4.创立库存表
createtable库存
(
商品号nchar(6),
仓库号nchar(6),
数量int
primarykey(商品号,仓库号,是否入库),
foreignkey(商品号)references商品(商品号),
foreignkey(仓库号)references仓库(仓库号),
)
5.创立员工表
createtable员工
(
职工号nchar(10)primarykey,
职工名nvarchar(10),
性别nchar
(2),
电话nchar(11),
角色nchar(3)
)
6.创立客户表
createtable客户
(
客户编号nchar(10)primarykey,
联系人nvarchar(10),
地址nvarchar(30),
性别nchar
(2),
电话nchar(11)
)
7.创立销售表
createtable销售
(
商品号nchar(6),
职工号nchar(10),
客户编号nchar(10),
销售单编号nchar(6),
日期datetime,
数量int,
单价int,
primarykey(销售单编号),
foreignkey(商品号)references商品(商品号),
foreignkey(职工号)references员工(职工号),
foreignkey(客户编号)references客户(客户编号)
)
8.创立供应商表
createtable供应商
(
供应商号nchar(10)primarykey,
姓名nvarchar(6),
性别nchar
(2),
地址nvarchar(30),
电话nchar(11),
银行账号nvarchar(20)
)
9.创立采购表
createtable采购
(
商品号nchar(6),
职工号nchar(10),
供应商号nchar(10),
采购单号nchar(6),
日期datetime,
数量int,
进价int
primarykey(采购单号),
foreignkey(商品号)references商品(商品号),
foreignkey(职工号)references员工(职工号),
foreignkey(供应商号)references供应商(供应商号),
)
第4章系统实现
4.1用户注册界面
本界面的主要功能是实现管理员的注册。
若注册时输入的用户名已存在则不予注册,若密码与确认密码不一致也不予注册。
若点击取消则取消注册并关闭窗体。
其窗体如图4-1所示:
图4-1注册界面
4.2登陆界面
本界面的主要功能是实现管理员的登陆。
登陆时若输入的用户名不存在则弹出提示信息;若输入的密码错误也弹出提示信息;若输入的用户名和密码都正确,则进入主界面。
其窗体如图4-2所示:
图4-2登陆界面
4.3主界面
管理员经过用户名和密码进入系统之后,便可经过主菜单进行一些简单的操作,具体操作有四部分:
系统管理、基础信息管理、查询统计、帮助。
主界面如图4-3所示:
图4-3主界面
4.3.1系统管理
系统管理主要实现管理员的密码修改和注销账户。
1.修改密码如图4-4所示:
图4-4修改密码
2.注销账户如图4-5所示:
图4-5注销账户
4.3.2基础信息管理
基础信息管理主要分为客户信息管理、商品信息管理、供应商信息管理、采购管理和销售管理。
1.客户信息管理
客户信息管理主要实现客户的更新、删除、插入的操作。
添加客户信息如图4-6所示:
图4-6添加客户信息
确认客户信息如图4-7所示:
图4-7确认客户信息
【插入】客户信息代码如下所示:
DataColumn[]key={ds.Tables[0].Columns[0]};
ds.Tables[0].PrimaryKey=key;
DataRowrow=ds.Tables["table"].Rows[SelectIndex];
row=ds.Tables["table"].Rows.Find(cmbNo.Text);
if(row==null)
{
row=ds.Tables["table"].NewRow();
row[0]=cmbNo.Text;
row[1]=txtName.Text;
row[2]=txtAdress.Text;
if(rdoB.Checked)
sex="男";
else
sex="女";
row[3]=sex;
row[4]=txtPhone.Text;
if(MessageBox.Show("确认录入吗?
","录入")==DialogResult.OK)
{
ds.Tables[0].Rows.Add(row);
SqlCommandBuilderb=newSqlCommandBuilder(sda);
sda.Update(ds,"table");
getShow();
MessageBox.Show("录入成功!
");
}
2.商品信息管理
商品信息管理主要实现数据的更新和删除操作。
商品信息管理如图4-8所示
图4-8商品信息管理
【保存更新】代码如下所示:
privatevoidgetShow()
{
stringsql="select*from商品";
da=newSqlDataAdapter(sql,h.geton());
da.Fill(ds,"sp");
dgvShow.DataSource=ds.Tables["sp"];
}
SqlCommandBuilderb=newSqlCommandBuilder(da);
da.Update(ds,"sp");
ds.Tables["sp"].Clear();
getShow();
3.供应商信息管理
供应商信息管理主要实现供应商的添加和删除。
供应商信息管理如图4-9所示:
图4-9供应商信息管理
4.采购管理
采购主要实现添加采购信息和删除采购信息的功能。
添加采购信息如图4-10所示:
图4-10添加采购信息
【录入】采购单记录代码如下所示:
sql=string.Format("selectcount(*)from采购where采购单号='{0}'",txtCgsno.Text);
intn=h.handle1(sql);
if(n>0)
{
MessageBox.Show("该采购单已存在");
}
else
{
if(txtCgsno.Text=="")
{
MessageBox.Show("采购单信息不能为空,请重新输入");
txtCgsno.Focus();
}
else
{
sql=string.Format("insertinto采购values('{0}','{1}','{2}','{3}','{4}',{5},{6})",cmbSpsno.Text,cmbZgsno.Text,cmbGysno.Text,txtCgsno.Text,dtpDate.Value.ToShortDateString(),txtCount.Text,txtPay.Text,cmbSpsno.Text);
intm=h.getQuery(sql);
lsvProMess.Items.Clear();
getResult();
if(m>0)
{
stringsql1;
//判断库中是否又该商品若有则则加上对应商品的数量若无则重新录入
stringsql2=string.Format("selectcount(*)from库存where商品号='{0}'and仓库号='{1}'",cmbSpsno.Text,cmbCksno.Text);
n=h.handle1(sql2);
if(n>0)
{
sql1=string.Format("update库存set数量=数量+{0}where商品号='{1}'and仓库号='{2}'",int.Parse(txtCount.Text),cmbSpsno.Text,cmbC