销售管理曹伟伟商品销售管理系统月.docx
《销售管理曹伟伟商品销售管理系统月.docx》由会员分享,可在线阅读,更多相关《销售管理曹伟伟商品销售管理系统月.docx(31页珍藏版)》请在冰豆网上搜索。
销售管理曹伟伟商品销售管理系统月
(销售管理)曹伟伟——商品销售管理系统月
吉林省高等教育自学考试
毕业论文
论文题目:
商品销售管理系统
专业:
计算机应用软件
:
010*********
学生姓名:
曹伟伟
指导教师:
卢奕南
2012年3月1日
摘要
在信息飞速发展的今天,无论是小型企业还是大中型企业,都逐渐采用计算机对商品的销售进行了管理,不在使用过多的人力对商品信息、商品进出库信息、商品销售信息等进行记录、核对、计算等等。
企业对商品的销售管理已经日益的重要,商品销售管理系统已然成为了不可或缺的企业管理软件。
一个优秀的企业管理软件,不仅需要含有大量的数据信息,还需要具有对这些息息相关的数据信息进行综合分析、整理的功能。
本文简要介绍了《商品销售管理系统》的项目背景和意义,着重阐述了该系统开发过程,从系统的需求分析、方案论证、关键技术设计、数据库设计、模块设计到系统实现等各个环节都进行了详尽的分析和描述。
该系统运用SQLSERVER2005数据库系统和VC++技术开发实现的,包括了商品的入库信息、商品的销售信息和商品的库存信息,可以通过简单的增、删、改、保存等操作对该商品信息进行管理。
该系统的界面友善、灵活性好、且系统的安全性高、运行稳定等功能,是一个企业的商品销售必备的管理软件。
关键词:
商品销售管理系统,SQLServer2005,数据库,需求分析
Abstract
Today,therapiddevelopmentofinformation,whethersmallorlargeandmedium-sizedenterprises,thegradualintroductionofcomputerstomanagementonthesaleofgoods,notusingtoomuchmanpowerforcommodityinformation,goodsinandoutofthelibraryinformation,salesinformation,recording,verifying,calculating,andsoon.Enterprisesalesmanagementhasbecomeincreasinglyimportantforcommodities,merchandisingmanagementsystemhasbecomeanintegralpartoftheenterprisemanagementsoftware.Agoodenterprisemanagementsoftware,requiresnotonlycontainslargeamountsofdata,youalsoneedtohaveacomprehensiveanalysis,consolidationofinformationiscloselyrelatedtothefunctionof..
Thisarticlebrieflydescribestheprojectbackgroundandsignificanceofthemerchandisemanagementsystem,highlightsthesystemsdevelopmentprocess,fromsystemrequirementsanalysis,design,databasedesign,plan,keytechnologymoduledesigntosystemimplementationandotherlinksforadetailedanalysisanddescription.
UsingtheSQLSERVER2005databasesystemandthesystemVC++technologydevelopment,includingproductstorageinformation,merchandisesalesandinventoryinformationongoods,throughsimpleoperationsincreased,bydeleting,modifying,savingontheproductinformationmanagement.Thesysteminterfaceisfriendly,goodflexibility,andsecurityfeaturessuchashighandstableoperationofthesystem,isthesaleofgoodsofanenterprisemanagementsoftware.
Keyword:
salesmanagementsystem,SQLServer2005,thedatabase,andneedsanalysis
第1章绪论4
1.1本课题的研究意义4
1.2商品销售管理系统的发展4
1.3本课题的研究内容5
第2章系统设计6
2.1系统目标设计6
2.2系统功能结构设计6
第3章数据库设计8
3.1数据库分析8
3.2数据库结构设计表8
3.3应用技术11
第4章系统模块设计与实现13
4.1登录模块设计与实现13
4.2入库管理模块设计与实现17
4.3销售管理模块设计23
4.4项目发布29
第5章项目总结30
参考文献31
致谢32
第1章绪论
1.1本课题的研究意义
公司随着业务的不断发展,商品销售的数量也不断增加,商品销售的流程也就更为复杂,传统的商品销售管理在商品的统计和管理上不但麻烦,而且还十分耗费人力和时间。
而商品管理系统对商品的进货、退货、存货和销售情况等进行了综合统计和管理,使管理人员通过对销售所涉及到的商品、订单、销售商、供应商等资料的录入,便可以轻松实现商品销售流程的管理。
方便管理人员更快更便捷的得到自己想要的信息。
1.2商品销售管理系统的发展
十年来国内软件工程方面的进展有目共睹,在软件需求方面,我们看到在大多数组织中已经建立起了一级或两级需求体系(业务需求和软件需求),在某些组织中,需求分析员已经成为一种专门的职位;甚至在某个大型国有商业银行已经成立一个专门的部门来负责需求分析工作。
应该来说,这是一些非常可喜的进步[1]。
商品销售管理系统随着软件工程的不断发展,也在逐渐发展,从一个只是用于小型企业小型数据录入、简单的销售处理过程的一个实现功能,发展到可以录入大量数据信息,并且可以快速智能的处理复杂的销售、销售退货、入库、入库退货以及与供应商之间的关系维护和与客户之间的关系维护等等过程,在商品销售管理系统的帮助下,大型企业的销售流程已经日益信息化、简单化。
在这个金融时代给企业带来了较高的利益,使得企业飞速的发展。
现在的商品销售管理系统已经在各个领域各个方面都具有较高的可行性[5],如:
(1)经济可行性:
即是否能取得很好的经济效益,要考虑开发成本是否能承受。
信息管理系统的规模不是很大,人力资源,经费要求都很少,只要有技术人员参与开发即可,很容易实现。
当系统投入运行后可以为节约大量的人力,物力,所带来的效益远远大于系统软件的开发成本。
信息管理系统在经济上完全可行。
(2)时间可行性:
即系统本身的适用范围,本系统包括了商品交易管理系统所必需的各个环节,具有相对稳定性。
因此,在世界上是可行的。
(3)操作可行性:
本信息管理系统在界面设计时充分考虑到管理人员的习惯,采用下拉菜单窗体模块,简明易懂,一目了然,使得操作简单:
数据录入迅速、规范、可靠:
信息统计准确:
制表灵活:
适应力强:
容易扩充。
(4)社会可行性:
面对当今注重速度、效益的时代,本软件的社会可行性是显而易见的。
它提高了工作效率,缩短了经费过程所需的时间,增大了信息传递的准确性、及时性、快速性,节约了人力、物力,具有一定的社会价值。
1.3本课题的研究内容
由于商品销售管理系统是一个用来帮助使用者管理商品销售流程的软件。
使用者通过对销售过程中涉及到的商品,订单,销售商等资料的录入,便可以轻松实现商品销售流程的管理[6]。
因此,从业务需求方面考虑,公司的商品销售管理系统这个课题的研究内容应该包括以下几点:
(1)大量数据信息的录入;
(2)项目开发环境的选择;
(3)数据信息存放的软件选择;
(4)商品销售管理的处理过程;
(5)系统安全性的管理。
第2章系统设计
2.1系统目标设计
商品销售管理系统以帮助使用者轻松实现商品销售的流程为设计目标,加以强大的数据库管理功能,此管理系统大大的提高了商品销售的效率。
本系统在设计时应满足一下几点:
(1)采用人机对话的操作方式,信息查询灵活、方便、快捷、准确、数据存储安全可靠。
(2)实现信息管理的添加、修改和删除功能。
(3)可以录入商品信息、库房信息、客户和供应商等信息。
(4)对往来账的管理。
(5)系统运行稳定、安全可靠。
2.2系统功能结构设计
通过上面的需求分析,可以总结出,在该商品销售管理系统中,应具备如下功能结构图[2],如图2.1所示。
2.1功能结构图
(1)基础信息管理模块,在该系统中,基础信息管理模块主要实现了操作员信息、商品信息、供应商信息、客户信息、商品库存信息的现实,以及添加和保存。
(2)入库管理模块,在该系统中,入库管理模块主要实现了商品入库的管理和入库退货的管理的信息显示、添加和保存等。
(3)销售管理模块,在该系统中,销售管理模块主要实现了商品销售的管理和销售退货管理的信息显示、添加和保存等。
(4)查询管理模块,在该系统中,查询管理模块主要实现了入库查询、入库退货查询、销售查询和销售退货查询的信息显示、添加和保存等。
(5)往来账管理模块,在该系统中,主要实现了供应商结款和客户结款管理的功能。
第3章数据库设计
3.1数据库分析
商品销售管理系统使用了MicrosoftSQLServer2005数据库满足系统的要求,数据库的名称为SellManage,在数据库中创建了18张表用于存储各种不同的信息,如图3.1所示。
图3.1数据库系统表
3.2数据库结构设计表
下面给出商品销售管理系统的几张主要表的表信息。
1、tb_operator(操作员信息表)
操作员列表数据表中,存放着对该软件使用的操作员的姓名、密码以及操作员的级别,操作员的级别在数据表中为0,表示普通管理员,若为1表示系统管理员。
该表主要用于保存管理员的信息[3],如图3.2所示。
图3.2操作员数据表
2、tb_merchandiseinfo(商品信息列表)
商品信息列表数据表中,存放着商品的id、商品姓名、商品的规格、商品的助记码、厂家等等信息。
该表主要用于保存商品的信息[3],如图3.3所示。
图3.3商品信息列表
3、tb_providerinfo(供应商信息列表)
供应商信息列表中,包括供应商名称、法人姓名、负责人、联系电话、详细地址等等。
该表主要用于保存供应商信息[3],如图3.4所示。
图3.4供应商信息列表
4、tb_customerinfo(客户信息列表)
客户信息列表中,包括客户名称、负责人、联系电话等客户的信息。
该表主要用于保存客户信息[3],如图3.5所示。
图3.5客户信息列表
5、tb_merchandisestorage(库存信息列表)
库存信息列表中包括库存编号、库存名称、库存数量这三类信息,该表主要用于保存上述提到的这三类信息[3],如图3.6所示。
图3.6库存信息列表
7、tb_cancelsell_main(销售退货列表)
销售退货列表中包括退货单号、客户、操作员、折扣等信息,该表主要用于记录销售退货的信息[3],如图3.7所示。
图3.7销售退货列表
3.3应用技术
在此销售管理系统中,主要采用了ADO技术操作数据库,在这个系统的设计过程中通过导入ADOCom接口实现对SQLServer2005的操作,为了操作的方便,将数据库的各种操作封装在一个自定义的CDataBase类中。
在实现数据库的过程中,首先要创建一个新类CDataBase,然后再向新创建的该类中添加一个成员函数和成员变量。
在程序连接和操作数据库时,需要设置数据库连接的相关信息,该系统是通过一个数据库配置的INI文件,与数据库进行连接的,当系统启动时,首先从INI文件中获取数据库的配置信息,如若系统所在的服务器与数据库发生变化,只需要修改INI文件中的配置信息即可,无需再改动代码。
在CDataBase类中,自定义了一个初始化数据库连接的函数,主要用于获取INI文件中的链接信息,如主机名、用户名、密码、默认库。
如果该初始化函数调用成功,即连接成功,则返回1,否则返回0,即表示连接数据库失败[4]。
该初始化函数为InitData(),实现代码如下:
intCDatabase:
:
InitData()
{
charm_szConnect[512];
charm_szTmp[1024]="";
charm_szHost[20],m_szUser[20],m_szPwd[20],m_szDef[20];
GetPrivateProfileString("数据库","主机名",NULL,m_szHost,sizeof(m_szHost),IniFile);
GetPrivateProfileString("数据库","用户名",NULL,m_szUser,sizeof(m_szUser),IniFile);
GetPrivateProfileString("数据库","密码",NULL,m_szPwd,sizeof(m_szPwd),IniFile);
GetPrivateProfileString("数据库","默认库",NULL,m_szDef,sizeof(m_szDef),IniFile);
try
{
//连接XdData
HRESULThr=m_Connection.CreateInstance(__uuidof(Connection));
sprintf(m_szConnect,"provider=sqloledb;server=%s;database=%s;",m_szHost,m_szDef);
hr=m_Connection->Open(_bstr_t(m_szConnect),_bstr_t(m_szUser),_bstr_t(m_szPwd),-1);
sprintf(m_szTmp,"数据库连接成功!
");
//连接XdData
}
catch(_com_error&e)
{
sprintf(m_szTmp,"数据库打开失败,错误原因:
%s\n",LPCTSTR(e.Description()));
return0;
}
return1;
}
第4章系统模块设计与实现
4.1登录模块设计与实现
用户登录模块是所有管理系统所应具备的基础模块之一,该模块主要用于实现系统的检验工作,只有具有相应权限的管理员用户可以使用这个系统,增加了系统的安全性,该系统用户登录的界面如图4.1所示。
图4.1系统登录模块
用户登录系统是整个系统中最先显示的一个窗体,在运行一个系统时,要首先通过这个窗体,以管理员的身份进入该系统,若输入用户名与密码正确,则进入此系统,若输入错误,则无法进入此系统。
在登录窗体创建的同时应该创建数据库的连接,与数据库连接这个过程,需要在应用程序类的初始化方法(CMerchandiseSellApp)中实现,连接数据库的操作代码如下:
if(!
m_hDatabase.InitData())
{
MessageBox(NULL,"数据库访问失败,程序异常关闭!
","出错啦",MB_OK);
exit
(1);
}
//login
CDlgLoginm_hDlg;/*定义登录对话框类的对象*/
if(m_hDlg.DoModal()==IDOK)/*显示登录对话框*/
{
}
else
{
//
exit
(1);
}
CMerchandiseSellDlgdlg;/*定义应用程序主窗体*/
m_pMainWnd=&dlg;
intnResponse=dlg.DoModal();/*显示主窗体*/
if(nResponse==IDOK)
{
//TODO:
Placecodeheretohandlewhenthedialogis
//dismissedwithOK
}
elseif(nResponse==IDCANCEL)
{
//TODO:
Placecodeheretohandlewhenthedialogis
//dismissedwithCancel
}
用户登录模块的实现主要经过如下几步:
(1)创建一个对话框,设置相应的对话框属性,在对话框中添加静态文本控件、编辑框控件和两个按钮控件。
由于显示密码的编辑框中输入的密码是看见的,因此,在密码相对应的这个编辑框需要设置特别的属性,即在Styles这个属性中,勾选Password这个属性。
如图4.2所示。
图4.2密码编辑框的特殊属性
(2)在对话框窗体的初始化方法中设置对话框的按钮背景图,以及相对应的图标,实现代码如下:
BOOLCDlgLogin:
:
OnInitDialog()
{
CDialog:
:
OnInitDialog();
//TODO:
Addextrainitializationhere
m_hBtnOk.SetIcon(IDI_ICON_OK);/*设置确定按钮的图标*/
m_hBtnOk.OffsetColor(CButtonST:
:
BTNST_COLOR_BK_IN,shBtnColor);
m_hBtnOk.SetColor(CButtonST:
:
BTNST_COLOR_FG_IN,RGB(0,128,0));
m_hBtnCancel.SetIcon(IDI_ICON_CANCEL);/*设置取消按钮的图标*/
m_hBtnCancel.OffsetColor(CButtonST:
:
BTNST_COLOR_BK_IN,shBtnColor);
m_hBtnCancel.SetColor(CButtonST:
:
BTNST_COLOR_FG_IN,RGB(0,128,0));
returnTRUE;//returnTRUEunlessyousetthefocustoacontrol
//EXCEPTION:
OCXPropertyPagesshouldreturnFALSE
}
(3)在“确定”按钮的事件中实现用户名和密码的验证。
在“确定”按钮的实现过程中,首先获取该对话框的编辑控件中的文本信息,即输入的姓名、密码,然后,将获取的姓名、密码字符串,复制给定义的数据库中的操作员姓名和密码的成员变量,如果与数据库操作员信息表中的数据相匹配,则登录成功,否则,登录失败,“确定”按钮的实现代码如下:
voidCDlgLogin:
:
OnOK()
{
charm_szName[30],m_szPwd[30];
GetDlgItemText(IDC_EDIT_NAME,m_szName,sizeof(m_szName));/*获取用户名*/
GetDlgItemText(IDC_EDIT_PWD,m_szPwd,sizeof(m_szPwd));/*获取密码*/
switch(m_hDatabase.IsVerifyUser(m_szName,m_szPwd,m_szLevel))
{
case1:
//成功
{
strcpy(m_szOpName,m_szName);
break;
}
case0:
//失败
{
MessageBox("登录失败,用户名/密码错误!
");
m_hEditName.SetFocus();
return;
}
case-1:
//数据库操作异常
{
MessageBox("数据库操作异常,请与系统管理员联络!
");
exit(0);
break;
}
}
CDialog:
:
OnOK();
}
4.2入库管理模块设计与实现
商品入库管理模块是销售过程中的重要处理过程,在入库的过程中,主要有两部分,一部分是商品的入库信息登记与显示,还有一部分是入库退货信息的录入与显示功能。
4.2.1商品入库管理
入库的商品主要需要记录商品的入库单号、操作员、供应商、单价、入库时间等等信息,在该模块可以添加、修改、删除这些入库的信息。
商品入库管理信息的录入功能,如图4.3所示。
图4.3商品入库录入
商品入库管理模块的实现过程主要有如下几点:
(1)添加一个商品入库管理模块的对话框资源,设置该对话框的属性,设置ID值,将标题改为“商品入库管理”。
(2)向对话框中添加按钮控件,标签控件,静态文本框控件,文本编辑框控件以及时间选择控件,每一个控件设置相应的属性信息。
(3)商品入库管理中主要有两方面内容,在对话框中通过标签控件进行设置,一面是录入入库单号等基本信息,一面是显示入库信息列表。
因此,在商品入库管理模块中实现了对列表信息的初始化操作,相应代码如下:
voidCDlgSprk:
:
InitCtrlData()
{
m_hTabSprk.InsertItem(0,"商口入库基本信息");//插入信息
m_hTabSprk.InsertItem(1,"商口入库信息列表");
m_hTabSprk.ShowWindow(TRUE);//设置窗口显示方式
m_hEditZk.ShowWindow(TRUE);
m_hEditYfje.ShowWindow(TRUE);
m_hEditSpbh.ShowWindow(TRUE);
m_hEditSl.ShowWindow(TRUE);
m_hEditSfje.ShowWindow(TRUE);
m_hEditRkdh.ShowWindow(TRUE);
m_hEditHj.ShowWindow(TRUE);
m_hEditGys.ShowWindow(TRUE);
m_hEditDj.ShowWindow(TRUE);
m_hEditCzy.ShowWindow(TRUE);
m_hEditCkmc.