商品销售管理系统.docx
《商品销售管理系统.docx》由会员分享,可在线阅读,更多相关《商品销售管理系统.docx(34页珍藏版)》请在冰豆网上搜索。
商品销售管理系统
1引言
1.1系统的开发背景
商品销售管理是企业经营管理的核心内容,在企业管理中占据首要地位,一个企业的经济实力如何,很大程度取决于企业的销售管理效果。
利用先进的计算机技术,对企业的销售及销售过程中所涉及的一系列账务关系进全面的跟踪管理,解决了人工管理过程中的管理效率低下、数据不准确、管理不及时等问题,从而大大提高了企业经营运转的速度,提升企业的管理水平、提高企业的经济效益,使企业的销售管理更加的科学、合理。
管理方式的转变,使企业能够及时通过计算机管理系统,对整个销售过程进行数据的统计与分析,并根据分析结果做出必要的调整,使企业在经济浪潮中占据有利地位,更好的适应市场的发展变化。
1.2系统调研与可行性分析
基于VC课程的商品销售管理系统的设计与开发,主要是利用VisualC++6.0和SQL数据库制作一个有特色的管理系统。
本系统的设计主要从以下几方面做起:
系统的开发环境、系统需求分析、系统的数据库结构设计、系统的页面设计等。
做这些工作需了解VisualC++6.0的使用和管理系统的相关知识。
(1)技术可行性:
本系统主要是用VisualC++6.0作为网站的开发工具,使用了SQL数据库来实现。
虽然本次开发使用的工具和技术是目前比较旧的,但是微软出的产品最大的好处就是快速入门、益于上手,所以从这方面来看,技术上是可行的。
(2)经济可行性:
现在各大企业都已经具有了自己的管理系统,这样就需要在管理中提供一个简单易操作可行性高的系统,也就是本项目所要开发的管理系统。
并且开发一个小型的管理系统的成本也不高,企业是完全可以承受的。
从这一方面来看,经济上是可行的。
1.3本文的内容安排
本文共分六章,各个章节的内容安排如下:
第一章是引言,介绍了项目的开发背景和系统调研与可行性分析。
第二章介绍系统的开发环境,着重介绍了VisualC++6.0和SQL数据库以及MFC的相关知识等。
第三章是管理系统的需求分析,包括商品销售管理系统的介绍,商品销售管理系统的角色,商品销售管理系统功能性需求。
第四章是概要设计,列出了系统的总体结构图,系统流程图,以基本系统所用到的数据库表。
第五章是系统的详细设计和实现,重点介绍了本系统权限模块的设计,并对各个界面进行了详细的分析。
第六章是总结,总结了本系统已经实现的功能和系统的不足。
2开发环境简介
2.1VisualC++6.0特点
VisualC++6.0[1]是功能最为强大的可视化开发工具之一,它不仅支持传统的软件开发方法,更重要的是它能支持面向对象、可视化的开发风格。
因此VisualC++6.0又称作是一个集成开发工具,它提供了软件代码自动生成和可视化的资源编辑功能。
VisualC++具有多种优点:
它提供了面向对象的应用程序框架MFC(MicrosoftFoundationClass),简化了程序员的编程工作,提高了模块的可重用性;提供了基于CASE技术的可视化软件的自动生成和维护工具AppWizard、ClassWizard、VisualStudio、WizardBar等,实现了直观、可视的程序设计风格,方便地编辑和管理各种类,维护程序的源代码;封装了Windows的API函数、USER、KERNEL、GDI函数,简化了编程时创建、维护窗口的许多复杂的工作。
2.2MFC的简介
MFC的英文全称是MicrosoftFoundationClassLibrary,MFC中的各种类结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立Windows下的应用程序,这是一种相对SDK来说更为简单的方法。
因为总体上,MFC框架定义了应用程序的轮廓,并提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓。
MicrosoftVisualC++提供了相应的工具来完成这个工作:
AppWizard可以用来生成初步的框架文件(代码和资源等);资源编辑器用于帮助直观地设计用户接口;ClassWizard用来协助添加代码到框架文件;最后,编译,则通过类库实现了应用程序特定的逻辑。
2.3SQL数据库的介绍
SQL是StructuredQueryLanguage(结构化查询语言)的缩写。
SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。
在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。
SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持SQL。
SQL数据库的数据体系结构基本上是三级结构,但使用术语与传统关系模型术语不同。
在SQL中,关系模式(模式)称为“基本表”(basetable);存储模式(内模式)称为“存储文件”(storedfile);子模式(外模式)称为“视图”(view);元组称为“行”(row);属性称为“列”(column)。
SQL语言的组成:
1.一个SQL数据库是表(Table)的集合,它由一个或多个SQL模式定义。
2.一个SQL表由行集构成,一行是列的序列(集合),每列与行对应一个数据项。
3.一个表或者是一个基本表或者是一个视图。
基本表是实际存储在数据库的表,而视图是由若干基本表或其他视图构成的表的定义。
4.一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。
每个存储文件与外部存储上一个物理文件对应。
5.用户可以用SQL语句对视图和基本表进行查询等操作。
在用户角度来看,视图和基本表是一样的,没有区别,都是关系(表格)。
6.SQL用户可以是应用程序,也可以是终端用户。
SQL语句可嵌入在宿主语言的程序中使用,宿主语言有FORTRAN,COBOL,PASCAL,PL/I,C和Ada语言等。
SQL用户也能作为独立的用户接口,供交互环境下的终端用户使用。
SQL包括了所有对数据库的操作,主要是由4个部分组成:
1.数据定义:
这一部分又称为“SQLDDL”,定义数据库的逻辑结构,包括定义数据库、基本表、视图和索引4部分。
2.数据操纵:
这一部分又称为“SQLDML”,其中包括数据查询和数据更新两大类操作,其中数据更新又包括插入、删除和更新三种操作。
3.数据控制:
对用户访问数据的控制有基本表和视图的授权、完整性规则的描述,事务控制语句等。
4.嵌入式SQL语言的使用规定:
规定SQL语句在宿主语言的程序中使用的规则。
SQL的优点:
1)非过程化语言
2)统一的语言
3)是所有关系数据库的公共语言
总之,SQL是一个既可以只用来存放数据的数据库,也可以作为一个客户端开发工具来进行数据库应用系统开发;既可以开发方便易用的小型软件,也可以用来开发大型的应用系统。
2.4本章小结
本章主要介绍了该商品销售管理系统的开发环境、MFC以及SQL数据库。
3需求分析
3.1商品销售管理系统的介绍
本系统是基于VC课程开发的管理系统。
用户使用本系统可以方便的对企业的销售及销售过程中所涉及的一系列账务关系进全面的跟踪管理。
该系统主要分为六个模块:
在基础信息管理模块中需要实现操作员信息、商品信息、供应商信息、客户信息的管理和商品库存表等功能。
在入库管理模块中需要实现商品入库管理、入库退货管理。
在销售管理模块中需要实现商品销售管理、销售退货管理。
在查询管理中需要实现商品入库查询、入库退货查询、销售查询、销售退货查询。
在往来帐管理模块中需要实现供应商结款管理、客户结款管理。
在系统管理模块中需要实现系统的退出功能。
基础信息管理模块各功能性需求见下表3-1、3-2所示:
表3-1用户登录界面
名称、标识符
用户登录界面
功能描述
使该系统的用户通过登录界面登陆系统
输入
用户名、用户密码
操作序列
验证输入信息的正确性
输出
登录成功/失败、错误提示
补充说明
管理员可使用此功能
表3-2基础数据管理界面
名称、标识符
基础数据管理界面
功能描述
对基本信息资料的管理包括:
操作员姓名、操作员密码、操作员级别
输入
把用户信息添加相应的基础数据模块里
操作序列
管理员对用户基础信息资料进行添加、删除操作
输出
用户对系统进行操作
补充说明
管理员可使用此功能
商品销售档案管理模块各功能性需求见下表3-3、3-4所示:
表3-3商品销售资料管理界面
名称、标识符
商品销售资料管理界面
功能描述
用户可对其商品销售资料进行管理
输入
商品销售资料的信息
操作序列
用户可对其商品销售资料进行添加、修改、删除操作
输出
添加、修改、删除成功
补充说明
管理员可使用此功能
表3-4商品销售资料查询界面
名称、标识符
商品销售资料查询界面
功能描述
用户可对其商品销售资料进行查询
输入
商品销售资料的查询信息要求
操作序列
用户可对其商品销售资料进行查询操作
输出
查询信息成功
补充说明
管理员可使用此功能
3.2商品销售管理系统的角色
在管理系统中不同的用户有不同的角色,而本管理系统只设置管理员权限,具体角色名称和职责描述见下表3-5所示:
表3-5角色信息表
角色名称
职责描述
管理员
可以对管理系统的所有功能进行管理,包括对数据库管理
3.3本章小结
本章主要介绍了基于VC课程的商品销售管理系统的介绍、商品销售管理系统中的角色、商品销售管理系统功能性需求。
其中商品销售管理系统中的角色分为普通用户和管理员,通过设定的权限来对不同的页面进行管理。
商品销售管理系统功能性需求介绍了各个模块各个页面的功能和实现。
4概要设计
在正式设计程序之前,先要作一个概要设计,概要设计目的主要是为程序系统的设计考虑,包括程序系统的总体结构,整个系统的流程,模块划分、功能分配等,为系统的详细设计、程序的具体实现打好基础。
本章将主要介绍概要设计说明书。
4.1系统总体结构
本论坛系统共划分为六个模块,包括基础信息管理、入库管理、销售管理、查询管理、往来帐管理和系统管理,每个模块都有各自所实现的功能。
系统总体结构如下图4-1所示[8]
图4-1系统结构图
4.2系统流程图
当用户登陆系统时,首先呈现在用户面前的是系统的主页,用户想要对商品销售信息进行管理需登录系统,点击主页上的登录按钮,输入正确的用户名和密码即可登录系统。
成功登陆后,管理员即可对商品销售进行管理,系统流程如下图4-2所示[8]
是否
图4-2系统流程图
4.3数据库设计
本系统利用SQL作为后台的数据库,建立数据库SellManage.MDF。
首先对系统分析得到的数据进行分析,说明数据库基本结构的设计。
图4-6为zw表中的信息
4.4本章小结
本章主要介绍了商品销售管理系统的框架机构和系统流程以及数据库中各个表的信息
图4-3数据库表图
4.4本章小结
本章主要介绍了商品销售管理系统的框架机构和系统流程以及数据库中各个表的信息。
5系统详细设计与实现
5.1用户登录页面
当用户进入到商品销售管理系统后,会进入登录页面,用户分为普通用户和管理员,普通用户无法对该系统进行设置、管理,而管理员可对该系统进行设置、管理。
在登录页面上,用户必须正确填写用户名,密码,成功登录后用户才具有商品销售管理系统普通用户的操作权限。
如图5-1所示
图5-1为用户登录页面
以下为用户登录页面部分代码:
voidCDlg_login:
:
OnOK()
{
//TODO:
Addextravalidationhere
//CDialog:
:
OnOK();
this->UpdateData(true);
if(this->m_login_name=="000"&&this->m_login_pwd=="000")
CDialog:
:
OnOK();
else
MessageBox("登录有误");
}
voidCDlg_login:
:
OnCancel()
{
//TODO:
Addextracleanuphere
//CDialog:
:
OnCancel();
exit(0);
}
5.2系统管理页面
商品销售管理系统主窗口主要由菜单、工具栏和客户区域3部分组成,其主要功能是实现对各个子功能模块的调用。
商品销售管理系统主界面效果如图5-2所示。
图5-2商品销售管理系统主界面
以下为系统管理页面部分代码:
BOOLCMerchandiseSellDlg:
:
OnInitDialog()
{
CDialog:
:
OnInitDialog();
ASSERT((IDM_ABOUTBOX&0xFFF0)==IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX<0xF000);
CMenu*pSysMenu=GetSystemMenu(FALSE);
if(pSysMenu!
=NULL)
{
CStringstrAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if(!
strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);
}
}
SetIcon(m_hIcon,TRUE);
SetIcon(m_hIcon,FALSE);
//显示标题栏标题
charm_szTitle[256]="";
sprintf(m_szTitle,"商品销售管理系统-----管理员:
%s,级别:
%s",m_szOpName,m_szLevel);
SetWindowText(m_szTitle);
//工具栏内容的设置
m_ImageList.Create(32,32,ILC_COLOR24|ILC_MASK,1,1);//创建图像列表
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONOper));//操作员信息管理
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONMech));//商品信息管理
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONSup));//供应商信息管理
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONClient));//客户信息管理
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONSPKC));//库存管理
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONSPRK));//入库管理
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONRKTH));//入库退货
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONSPXS));//商品销售
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONSXTH));//销售退货
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONRKCX));//入库查询
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONRKTHCX));//入库退货查询
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONXSCX));//销售查询
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONXSTHCX));//销售退货查询
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONGYSJK));//供应商结帐
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONKHJK));//客户结帐
UINTarray[19];
for(inti=0;i<19;i++)
{
if(i==5||i==8||i==11||i==16)
{
array[i]=ID_SEPARATOR;//第三个和第九个按钮为分隔条
}
elsearray[i]=i+1120;
}
m_ToolBar.Create(this);
m_ToolBar.SetButtons(array,19);
m_ToolBar.SetButtonText(0,"操作员信息");
m_ToolBar.SetButtonText(1,"商品信息");
m_ToolBar.SetButtonText(2,"供应商信息");
m_ToolBar.SetButtonText(3,"客户信息");
m_ToolBar.SetButtonText(4,"商品库存信息");
m_ToolBar.SetButtonText(6,"商品入库");
m_ToolBar.SetButtonText(7,"入库退货");
m_ToolBar.SetButtonText(9,"商品销售");
m_ToolBar.SetButtonText(10,"销售退货");
m_ToolBar.SetButtonText(12,"入库查询");
m_ToolBar.SetButtonText(13,"入库退货");
m_ToolBar.SetButtonText(14,"销售查询");
m_ToolBar.SetButtonText(15,"销售退货");
m_ToolBar.SetButtonText(17,"供应商结款");
m_ToolBar.SetButtonText(18,"客户结款");
m_ToolBar.GetToolBarCtrl().SetImageList(&m_ImageList);//关联图像列表
m_ToolBar.SetSizes(CSize(40,40),CSize(32,32));//设置按钮和按钮位图大小
m_ToolBar.EnableToolTips(true);
RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);//显示工具栏
returnTRUE;
}
}
else
{
CDialog:
:
OnSysCommand(nID,lParam);
}
}
5.3基础数据管理页面
基础数据管理包括:
基础信息管理、入库管理、销售管理、查询管理、往来帐管理和系统管理,它们要对数据库里的信息进行操作。
管理员在菜单栏或者工具栏根据需要点击按钮会弹出一个页面按照要求操作,操作完毕后同系统会将信息提交给数据库每项设置所对应的表。
选择要删除的信息点击删除按钮,系统会将选择的信息从数据库中删除。
管理员若要退出该页面可点击退出系统按钮退出。
如图5-3所示
图5-3操作员信息页面
以下为操作信息页面的部分代码:
voidCOpCtrlDlg:
:
OnBtnAdd()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
//增加操作员
switch(m_hTabCtrl.GetCurSel())
{
case0:
{
break;
}
case1:
{
TabCtrlOfSelect(0);
break;
}
}
m_hEditName.SetWindowText("");
m_hEditPwd.SetWindowText("");
m_hBtnSave.EnableWindow();
m_hEditName.SetFocus();
}
voidCOpCtrlDlg:
:
InitCtrlData()
{
//InitTabCtrlandListCtrl
m_hTabCtrl.InsertItem(0,"操作员基本信息");
m_hTabCtrl.InsertItem(1,"操作员列表");
m_hTabCtrl.ShowWindow
(1);
//InitbuttonCtrl
m_hListOp.InsertColumn(0,"操作员姓名",LVCFMT_CENTER,100);
m_hListOp.InsertColumn(1,"操作员密码",LVCFMT_CENTER,100);
m_hListOp.InsertColumn(2,"操作员级别",LVCFMT_CENTER,100);
m_hListOp.SetExtendedStyle(m_hListOp.GetStyle()|LVS_EX_FULLROWSELECT);
m_hBtnOk.SetIcon(IDI_ICON_CLOSE);
m_hBtnOk.OffsetColor(CButtonST:
:
BTNST_COLOR_BK_IN,shBtnColor);
m_hBtnOk.SetColor(CButtonST:
:
BTNST_COLOR_FG_IN,RGB(0,128,0));
m_hBtnSave.SetIcon(IDI_ICON_OK);
m_hBtnSave.OffsetColor(CButtonST:
:
BTNST_COLOR_BK_IN,shBtnColor);
m_hBtnSave.SetColor(CButtonST:
:
BTNST_COLOR_FG_IN,RGB(0,128,0));
m_hBtnSave.EnableWindow(FALSE);
m_hBtnDel.SetIcon(IDI_ICON_DEL);
m_hBtnDel.OffsetColor(CButtonST:
:
BTNST_COLOR_BK_IN,shBtnColor);
m_hBtnDel.SetColor(CButtonST:
:
BTNST_COLOR_FG_IN,RGB(0,128,0));
m_hBtnAdd.SetIcon(IDI_ICON_ADD);
m_hBtnAdd.OffsetColor(CButtonST:
:
BTNST_COLOR_BK_IN,shBtnColor);
m_hBtnAdd.SetColor(CButtonST:
:
BTNST_COLOR_FG_IN,RGB(0,128,0));
m_hBtnMod.SetIcon(IDI_ICON_MOD);
m_hBtnMod.OffsetColor(CButtonST:
:
BTNST_COL