简单进销存系统设计与实现.docx
《简单进销存系统设计与实现.docx》由会员分享,可在线阅读,更多相关《简单进销存系统设计与实现.docx(33页珍藏版)》请在冰豆网上搜索。
简单进销存系统设计与实现
计算机科学与工程学院
课程设计报告
题目全称:
简易进销存管理系统统设计与实现
学生学号:
姓名:
指导老师:
职称:
指导老师评语:
签字:
课程设计成绩:
设计过程表现
设计报告质量
总分
摘要
进销存系统是用来管理仓库内部的人员、库存、工作时间、定单和设备的软件实施工具。
本文所用的开发工具是美国Microsoft公司推出的MicrosoftVisualStudio2005以及MicrosoftSQLServer数据库。
本文针对进销存管理系统的特点,利用C++和SQLServer2005来完成这次的课程设计。
主要内容:
(1)利用MicrosoftVisualStudio2005的MFC功能完成对于本系统所需要的窗口。
(2)对每一个窗体,完成相应的后台代码。
(3)使用SQL语言在SQLServer2005中建立本系统所需要的数据库。
(4)完成数据库的连接。
(5)测试本系统的性能。
关键字:
进销存SQLC++数据库
第一章绪论
1.1课题背景
在现代企业中,进销存是一项非常繁琐复杂的工作,每天要处理大量的单据数据。
管理效率低,劳动强度大,信息处理速度低而且准确率也不够令人满意。
而现阶段进销存的特点是信息处理量特别大,所管理的物资设备种类繁多,且入库单、出库单、需求单等单据的发生量特别大,关联信息多,查询和统计的方式各不相同,管理过程中经常出现信息的重复传递等问题。
为及时结清每笔业务和货物流动,保证企业生产用料及货物安全,企业要花费大量人力物力和时间来做
数据记录及统计工作。
在互联网时代的21世纪,将计算机这一利器应用于仓库的日常管理已是势在必行,这也将为进销存带来前所未有的改变,它会为企业的迅猛发展提供无限的潜力,给企业管理带来明显的经济效益和社会效益。
现代企业的信息化过程如火如荼,但某公司的管理还很落后,与现代信息技术的发展极不适应。
目前,该公司的进销存仍为手工操作。
从生产部门办理入库登记,到营销部门发货出库,所有手续基本上都是由进销存人员手写,这不仅繁琐、效率低,而且缺乏进销存的一些基本手段,造成了管理上的落后及经济利益上的损失。
设计该进销存系统目标就是提高该公司的库存管理的质量和效率,减少入库管理、出库管理及库存管理中的漏洞,节约管理开支,增加企业收人。
本文结合某公司金属仓库为应用背景,通过研究当前仓库系统的管理现状、存在问题以及现实需求,设计一个针对进销存工作的管理信息系统。
该系统能够提供较为完备的功能,可以全面管理仓库中存储的物品,缩短了库存信息流转时间,使企业的物料管理层次分明,井然有序,为采购、销售和生产提供依据,对于提高企业的经营效率、加快进销存的自动化具有重要的意义。
1.2主要开发工具介绍
1.2.1SQLSever2005数据库
本系统采用的数据库是SQLServer2005数据库。
SQLServer2005由美国微软公司制作并发布的一种性能优越的关系数据库管理系统,具有强大的数据库创建、开发、设计和管理的功能。
它不仅仅是一个完整的数据库,而且有强大的扩展性。
它是Windows操作系统最为流行的数据库,比较适合小型、中型、大型应有程序的后台数据库。
它同时也适合于电子商务、数据仓库和在线商业应用程序等。
SQLServer2005是一种高性能的关系型数据库管理系统。
主要具有以下几个特点:
1.简便的操作方式
SQLServer2005界面友好、操作简单,同时包含一整套的管理和开发的工具,企业管理器就是其中的图形化集成化管理工具,游湖不用记住各种命令和SQL语句就可以完成常规操作。
2.支持多个不同的开发平台
数据库开发人员可以使用任意一种开发平台编写应用程序来访问SQLServer2005。
3.支持企业级的应用程序
SQLServer2005关系数据库引擎具备完整、强大的数据处理功能,允许保护数据完整性。
第二章系统分析与设计
2.1系统需求分析
本套应用程序名称为“仓库管理系统”,主要用于仓库货品信息的管理,系统包括仓库管理、入库、一些统计查询和报表等几部分组成。
库存管理系统满足仓库管理员及工作人员的需求,他们具有登陆系统的权限,所以需要对工作人员的登陆模块进行更多的考虑,设计不同用户的操作权限和登陆方法。
对于一个仓库来说最大的功能就是存储货品,所以仓库管理就是对货品信息,仓库信息,短线货品及仓储货品的管理,用户可以根据实际情况对各种货品信息进行分类管理,包括添加,删除更新数据库等。
当然仓库中货品入库也是常有的事,入库管理操作就是对于货品入库情况的管理,用户可以方便的输入货品的信息。
有了货品的入库,自然也就有货品的出库,这部分提供的功能与入库操作流程差不多,有区别的只是对一些基本的信息生成报表形式,并打印输出功能。
报表是一个数据库中最重要的功能之一,有了报表才能清楚的知道货品的出入情况,在数据报表功能中包括出库报表,库存报表及经办人员报表等一些基本信息的打印,方便简洁。
本系统基本涵盖了库存管理的主要需求,具有完善细致的功能、友好的用户界面、强大的数据处理功能和完惫的安全机制,随心所欲的查询和打印功能,并全面支持分析和决策的功能。
2.2系统目标
(1)系统采用人机对话方式,界面美观友好、信息查询灵活、方便、快捷、准确、数据存储安全可靠。
(2)键盘操作、快速响应。
(3)强大的销售结账功能。
(4)全面的账单查询功能。
(5)实现各种查询。
(6)管理员可以设置操作员的权限。
(7)数据保密性强,为每个用户设置权限级别。
(8)系统最大限度的实现了易安装、易维护和易操作性。
(9)系统运行稳定,安全可靠。
2.3系统功能需求
(1)系统能够对于客户,供应商,产品的信息进行维护。
(2)系统能够管理监控库存。
(3)系统能够对于不同的操作员设置不同的权限级别。
(4)系统能够管理采购、销售等活动的情况,并记录。
2.4模块设计
根据对进销存管理内容和经销存管理系统的分析,进销存管理系统应该具有以下几大模块。
图2-1进销存系统主要功能
1资料管理:
企业的经营的基础资料是一个企业最基本和最重要的信息,包括商品资料、供货商资料和客户资料等。
商品资料维护用于维护企业经营商品的基本信息,内容包括货号、条形码、品名、规格等。
供货商资料维护用于维护企业供货商的基本信息,内容包括供货商号、简称、名称、地址等。
客户资料维护用于维护企业客户的基本信息,内容包括客户编号、简称、名称、联系人等。
2采购管理:
进货单用于录入企业的进货单,分为主从两张表,主表包括进货日期、人员、编号、验收员等。
3销售管理:
销售单用于录入企业的销售单,主表销售单内容包括编号、客户编号、销售日期、业务员等。
4、库存管理:
库存查询用于查询企业商品的库存,可以查询总库存和分仓库库存。
5、系统管理:
权限设置用于设置各操作员使用系统的权限。
第三章系统实现
3.1数据库建立
根据如下代码建立相应的数据库
CREATETABLE[dbo].[商品清单](
[货号][char](14)NOTNULLPrimaryKey,
[条码][char](14)NULL,
[拼音编码][char](40)NULL,
[品名][varchar](80)NULL,
[规格][varchar](40)NULL,
[单位][char](6)NOTNULL,
[产地][varchar](50)NULL,
[类别][char](20)NULL,
[进货价][decimal](28,6)NULLdefault(0),
[销售价1][decimal](28,6)NULLdefault(0),
[销售价2][decimal](28,6)NULLdefault(0),
[最低售价][decimal](28,6)NULLdefault(0)
)
GO
CREATETABLE[dbo].[供货商清单](
[供货商号][char](10)NOTNULLPrimaryKey,
[拼音编码][char](40)NOTNULL,
[简称][varchar](80)NULL,
[名称][varchar](80)NULL,
[地址][varchar](80)NULL,
[邮编][char](6)NULL,
[区号][char](6)NULL,
[地区][varchar](12)NULL,
[类型][char](10)NULL,
[电话][varchar](20)NULL,
[传真][varchar](20)NULL,
[电报][varchar](20)NULL,
[开户行][varchar](40)NULL,
[开户行邮编][char](6)NULL,
[银行帐号][varchar](20)NULL,
[税号][varchar](20)NULL,
[库房地址][varchar](40)NULL,
[库房电话][varchar](20)NULL,
[业务员][char](10)NULL,
[业务部门][varchar](20)NULL,
)
GO
CREATETABLE[dbo].[客户清单](
[客户编号][char](10)NOTNULLPrimaryKey,
[拼音编码][char](20)NOTNULL,
[简称][varchar](80)NULL,
[名称][varchar](80)NULL,
[联系人][varchar](30)NULL,
[地址][varchar](80)NULL,
[邮编][char](6)NULL,
[区号][char](6)NULL,
[地区][varchar](12)NULL,
[电话][varchar](20)NULL,
[传真][varchar](20)NULL,
[电报][varchar](20)NULL,
[开户行][varchar](40)NULL,
[开户行邮编][char](6)NULL,
[银行帐号][varchar](20)NULL,
[税号][varchar](20)NULL,
[性质][varchar](10)NULL,
[业务员][char](10)NULL,
[业务部门][varchar](20)NULL,
[授信额度][decimal](28,6)NULL
)
GO
CREATETABLE[dbo].[业务员清单](
[业务员号][char](14)NOTNULLPrimaryKey,
[姓名][char](10)NULL,
[性别][char]
(2)NULL,
[电话][varchar](20)NULL,
[手机][char](14)NULL,
[地址][varchar](80)NULL,
[邮编][char](6)NULL,
[身份证号][char](16)NULL,
[类别][char](16)NULL
)
GO
CREATETABLE[dbo].[仓库清单](
[仓库号][char](14)NOTNULLPrimaryKey,
[仓库名][varchar](30)NULL,
[类别][char](16)NULL,
[备注][varchar](40)NULL
)
GO
CREATETABLE[dbo].[用户清单](
[用户编号][char](6)NOTNULLPrimarykey,
[部门][char](20)NOTNULL,
[姓名][char](10)NOTNULL,
[性别][char]
(2)NOTNULL,
[密码][char](10)NULL
)
CREATETABLE[dbo].[权限清单](
[权限序号][int]IDENTITY(1,1)NOTNULL,
[用户编号][char](6)NULL,
[部门][char](20)NULL,
[权限名称][char](30)NOTNULL
)
GO
CREATETABLE[dbo].[进货单](
[编号][char](14)NotNULLPrimarykey,
[供货商号][char](10)NOTNULL,
[进货日期][datetime]NULL,
[业务员][char](10)NULL,
[制单人][char](10)NULL,
[验收员][char](10)NULL,
[保管员][char](10)NULL,
[税价合计][decimal](28,6)NULL,
[不含税价][decimal](28,6)NULL,
[税额][decimal](28,6)NULL,
[订单号][char](14)NULL
)
GO
CREATETABLE[dbo].[销售单](
[编号][char](14)NotNULLPrimarykey,
[客户编号][char](10)NOTNULL,
[销售日期][datetime]NULL,
[业务员][char](10)NULL,
[制单人][char](10)NULL,
[保管员][char](10)NULL,
[税价合计][decimal](28,6)NULL,
[不含税价][decimal](28,6)NULL,
[税额][decimal](28,6)NULL,
[订单号][char](14)NotNULL
)
GO
CREATETABLE[dbo].[应付款](
[编号][char](14)NOTNULLprimarykey,
[发票号][char](14)NULL,
[填票日期][int]NULL,
[进货单号][char](14)NULL,
[货号][char](14)NOTNULL,
[供货商号][char](10)NOTNULL,
[数量][decimal](28,6)NOTNULL,
[进货单价][decimal](28,6)NULL,
[金额][decimal](28,6)NULL,
[付款日期][int]NULL,
[详细说明][varchar](100)NULL,
[进货日期][datetime]NULL,
[状态][char](6)NULL,
[减预付][char]
(2)NULL
)
GO
CREATETABLE[dbo].[应收款](
[编号][char](14)NOTNULLprimarykey,
[发票号][char](14)NULL,
[填票日期][int]NULL,
[销售单号][char](14)NULL,
[货号][char](14)NOTNULL,
[客户编号][char](10)NOTNULL,
[数量][decimal](28,6)NOTNULL,
[销售价][decimal](28,6)NULL,
[金额][decimal](28,6)NULL,
[收款日期][int]NULL,
[详细说明][varchar](100)NULL,
[销售日期][datetime]NULL,
[状态][char](6)NULL,
[减预收][char]
(2)NULL
)
GO
CREATETABLE[dbo].[库存库](
[货号][char](14)NOTNULL,
[仓库][varchar](20)NOTNULL,
[库存数量][decimal](28,6)NOTNULL,
[库存金额][decimal](28,6)NOTNULL,
[库存单价][decimal](28,6)NOTNULL,
[最新进价][decimal](28,6)NULL
)
3.2系统模块实现
3.2.1系统登录模块实现
本登录系统通过输入用户名和密码和对用户的输入进行验证,并记录登录用户的姓名和用户号,供系统使用。
图3-1登录界面
为窗体添加如下事件响应代码,完成密码认证的功能:
void__fastcallTfmLogin:
:
edUserCodeExit(TObject*Sender)
{
if(edUserCode->Text.IsEmpty())
return;
TQuery*pQuery=newTQuery(NULL);
pQuery->DatabaseName="db";
AnsiStringsql;
sql="select姓名,密码from用户清单where用户编号='"+edUserCode->Text+"'";
pQuery->SQL->Add(sql);
pQuery->Open();
TField*pField=pQuery->FieldByName("姓名");
if(pField->IsNull)
{
edUserCode->Text="";
edUserName->Text="";
edPassword->Text="";
edUserCode->SetFocus();
}
else
{
edUserName->Text=pField->AsString;
m_szUserCode=edUserCode->Text;
m_szUserName=pField->AsString;
m_szPassword=pQuery->FieldByName("密码")->AsString;
}
deletepQuery;
}
//---------------------------------------------------------------------------
void__fastcallTfmLogin:
:
edUserCodeKeyPress(TObject*Sender,char&Key)
{
if(Key==13)
edPassword->SetFocus();
}
//---------------------------------------------------------------------------
void__fastcallTfmLogin:
:
btLoginClick(TObject*Sender)
{
if(!
m_szUserName.IsEmpty()&&m_szPassword==edPassword->Text)
{
this->Close();
}
else
{
edPassword->Text="";
edPassword->SetFocus();
}
}
void__fastcallTfmLogin:
:
btExitClick(TObject*Sender)
{
m_szUserCode="";
m_szUserName="";
m_szPassword="";
this->Close();
}
//---------------------------------------------------------------------------
void__fastcallTfmLogin:
:
edPasswordKeyPress(TObject*Sender,char&Key)
{
if(Key==13)
btLoginClick(NULL);
}
3.2.2商品信息维护模块实现
本模块实现用户可以在模块中添加一个新的商品或者修改现有商品信息,窗体设计如下:
图3-2商品信息维护界面
完成窗体设计之后,为“查询”按钮控件的click事件添加如下代码,实现数据查询功能。
void__fastcallTfmGoodManage:
:
Button1Click(TObject*Sender)
{
Table1->Filtered=false;
if(Edit1->Text.Length()==0)
Table1->Filter="";
else
Table1->Filter="拼音编码='"+Edit1->Text+"*'";
Table1->Filtered=true;
}
3.2.3供货商资料维护模块实现
本模块实现操作员在窗体中添加新的供货商信息,并且能进行查询。
窗体设计如下,设计过程与商品信息维护相似。
图3-3供货商信息维护界面
为窗体添加如下代码完成查询功能和添加下拉数据辞典功能。
void__fastcallTfmSupplyManage:
:
FormCreate(TObject*Sender)
{
Table1->Open();
TQuery*pQuery=newTQuery(NULL);
pQuery->DatabaseName="db";
pQuery->SQL->Add("select姓名from业务员清单");
pQuery->Open();
TColumn*pCol=DBGrid1->Columns->Items[3];
while(!
pQuery->Eof)
{
pCol->PickList->Add(pQuery->FieldByName("姓名")->AsString);
pQuery->Next();
}
deletepQuery;
}
void__fastcallTfmSupplyManage:
:
FormClose(TObject*Sender,
TCloseAction&Action)
{