基于MFC的商品销售管理系统的设计与实现

更新时间:2024-03-02 作者:用户投稿原创标记本站原创 点赞:4786 浏览:12798

摘 要:本文从开发信息管理系统的技术方案入手,以商品销售管理系统为例,论述了系统的设计及其实现,研究了MFC、ADO等主流技术在实际开发中的应用.测试结果表明,本文所开发的商品销售管理系统具有较好的实用价值.

关 键 词:MFCADO商品销售管理

中图分类号:TP315文献标识码:A文章编号:1007-9416(2013)10-0156-03

随着信息技术的飞速发展,信息化管理已经引入并应用到各行业管理领域.采用计算机进行信息化管理已成为衡量企业管理科学化和现代化的重要标志.目前众多销售型企业不仅需要处理大量的库存及商品信息[1],还要时刻更新产品的销售信息,对销售情况进行分析评估.而开发信息管理软件则可以满足上述需求,提高企业对商品销售管理的效率、辅助管理决策,从而实现企业预期目标.现采用Oracle作为后台数据库,VC6.0作为前台开发工具,结合MFC、ADO等主流开发技术,实现了一个基于C/S架构的商品销售管理系统.

1技术方案

1.1C/S架构

C/S架构以怎么写作器作为数据处理和存储的平台,同时在客户端设计专门的应用程序进行数据的采集和初次处理,再将数据传递到怎么写作器端,用户必须使用客户端应用程序才能对数据进行操作.C/S架构具有专业化程度高、开发手段灵活、运行速度快等特点.与B/S架构相比,C/S模式的应用系统最大的好处是不依赖外网环境,只要局域网存在,都不影响应用[2].

1.2MFC

MFC(MicrosoftFoundationClass)类库,充分体现了微软公司的技术精华.MFC中封装了大部分WindowsAPI函数和Windows控件,它包含的功能涉及到整个Windows操作系统.MFC不仅给用户提供了Windows图形环境下应用程序的框架,而且还提供了创建应用程序的组件[3].

MFC提供的类库使得程序设计高度抽象,它使得程序员的主要精力不用放在程序设计的具体实现细节上,而放在程序的功能扩展上面.MFC提供了许多不同功能的类以适合广泛需求,绝大多数的MFC类都是直接或间接从CObject类派生,CObject类为其派生类提供了3个重要的特性支持:持久性支持、运行时类信息支持和诊断调试支持.

1.3ADO

ADO(ActiveXDataObject)是基于OLEDB的访问技术,继承了OLEDB可以访问关系数据库和非关系数据库的优点,并且对OLEDB的接口作了封装,属于数据库访问的高层接口,使数据库应用程序的开发得到了简化[4].ADO是所有数据访问接口对象模型中最简单的一种,现已逐渐演变成满足所有数据访问需要的完整解决办法.

本文开发中所使用的ADO对象主要包括以下两种:

(1)Connection对象:通过“连接”可从应用程序访问数据源,连接是交换数据所必需的环境.对象模型使用Connection对象使连接概念得以具体化.

(2)RecordSet对象:表示的是来自基本表或命令执行结果的记录全集.RecordSet对象可支持两类更新:立即更新和批更新.使用立即更新,一旦调用Update方法,对数据的所有更改将被立即写入基本数据源.


2系统设计

2.1功能设计

依据系统需求,本系统主要功能模块划分如下:

(1)公共管理模块:该模块主要包括一些通用的类,如ADO封装类、用户封装类、商品信息封装类及销售信息封装类等.

(2)商品信息管理模块:该模块主要涉及对商品信息进行日常的管理,包括添加商品信息、修改商品信息、删除商品信息及商品类别管理等功能.

(3)商场信息管理模块:该模块主要涉及对商场信息进行日常的管理,包括商场信息的增、删、改、查等功能.

(4)员工及用户管理模块:该模块用于对商场及客户基本信息的日常维护.能够根据不同的用户种类,分配不同的操作权限.

(5)销售管理模块:该模块主要完成销售信息的日常管理,包括销售信息的添加、查询、销售的统计与分析等功能.

2.2数据库设计

数据库设计是指给定一个应用环境,构造基于最优关系模式的数据库,使之能够有效地存储和管理数据,满足用户的各种应用需求[5].根据对用户的需求分析和对系统功能的划分,主要实体设计如下:

(1)员工(员工编号,员工姓名,所属部门的编号,职位,性别,出生日期,入职时间,员工类型)

(2)部门(部门编号,部门名称,部门经理编号)

(3)商品(商品编号,商品名称,商品,商品类别,商品描述)

(4)商场(商场编号,商场名称,位置,负责人)

(5)订单(订单编号,销售日期,订单,订单数量,订单详情,用户号)

3系统实现

3.1VC++可视化编程环境配置

VisualC++包含了两套完整的windows应用程序开发系统,即Win32API和MFC.本系统采用MFC开发.默认情况下,VisualC++MFCAppwizard有两种类型程序设置:一种是Debug版本,该版本中包含了大量用于调试的代码;另一种版本叫Release版本,该版本删除所有的调试代码[6].

3.2UDL文件配置

通过创建Connection对象的实例并使用Open()方法来连接数据库.建立ODBC数据源,连接串的格式较为繁琐,本系统提供一种通用数据库连接文件(UDL)来建立和测试ADO的连接属性,下面介绍如何建立和使用UDL文件.

在工程文件夹中新建一个UDL文件,新建一个txt文件,把扩展名改为.udl.本系统中UDL文件名:data.udl.双击该文件,打开数据库链接属性对话框,做如下配置如图1所示.可以在程序中使用该文件.把“FileName等于data.udl”作为连接串,Connection对象就可以通过Open方法实现数据库连接,代码如下:

_bstr_t_strConnect等于“FileName等于data.udl”;

m_pConnection->Open(strConnect,””,adModeUnknown);

3.3系统主要类

(1)ADO封装类.

ADO封装类封装了数据库的建立连接、执行查询、关闭连接等操作.主要代码如下:

①设计ADO的封装类

在ADOConn.h文件中添加如下代码:

#import"c:\ProgramFiles\CommonFiles\System\ado\msado15.dll"no_namespacerename("EOF","adoEOF")rename("BOF","adoBOF")

②ADO封装类的具体设计如下:

voidCADOConn::OnInitADOConn()

{

//初始化OLE/COM库环境

::CoInitialize(NULL);

try

{

//创建Connection对象

m_pConnection.CreateInstance("ADODB.Connection");

//设置连接字符串,必须是BSTR型或者_bstr_t类型

_bstr_tstrConnect等于"FileName等于data.udl";

m_pConnection->Open(strConnect,"","",adModeUnknown);

}

//捕捉异常

catch(__errore)

{

AfxMessageBox(e.Description());

}

}

//执行sql语句

_RecordsetPtr&CADOConn::GetRecordSet(_bstr_tbstrSQL)

{

try

{

//连接数据库,如果Connection对象为空,则重新连接数据库

if(m_pConnection等于等于NULL)

OnInitADOConn();

//创建记录集对象

m_pRecordset.CreateInstance(__uuidof(Recordset));

//取得表中的记录

m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);

}

//捕捉异常

catch(__errore)

{

//显示错误信息

AfxMessageBox(e.Description());

}

//返回记录集

returnm_pRecordset;

}

(2)封装表类.

为了方便地获取数据库中的数据,本系统为数据库中的每个表都创建了访问数据库的类.包括用户封装类、商场封装类、商品封装类、销售封装类等.

由于篇幅所限,现以用户封装类为例,给出部分代码.用户封装类封装了对用户信息的通用操作,包括校验、插入、删除、更新等.

代码如下:

classCUserInfo

{

public:

//分别对应yh表中的用户名称,用户

CStringm_UserName;

CStringm_Pwd;

public:

CUserInfo();

virtual~CUserInfo();

//数据库操作

voidGetData(CStringUserName);//根据用户名得到其他信息

boolHeUser(CStringUserName);//判断用户是否存在

boolHePwd(CStringPwd);//判断是否存在

voidSqlUpdate(CStringUserName);//更新数据

}

4结语

本文阐述了VC编程中的MFC编程技术,结合ADO实现了一个商品销售管理系统.实践表明,应用MFC技术进行C/S架构应用程序的开发,提高了系统的开发效率及系统的可维护性.