毕业设计 书店管理信息系统设计.docx

上传人:b****6 文档编号:6591917 上传时间:2023-01-08 格式:DOCX 页数:52 大小:600.28KB
下载 相关 举报
毕业设计 书店管理信息系统设计.docx_第1页
第1页 / 共52页
毕业设计 书店管理信息系统设计.docx_第2页
第2页 / 共52页
毕业设计 书店管理信息系统设计.docx_第3页
第3页 / 共52页
毕业设计 书店管理信息系统设计.docx_第4页
第4页 / 共52页
毕业设计 书店管理信息系统设计.docx_第5页
第5页 / 共52页
点击查看更多>>
下载资源
资源描述

毕业设计 书店管理信息系统设计.docx

《毕业设计 书店管理信息系统设计.docx》由会员分享,可在线阅读,更多相关《毕业设计 书店管理信息系统设计.docx(52页珍藏版)》请在冰豆网上搜索。

毕业设计 书店管理信息系统设计.docx

毕业设计书店管理信息系统设计

 

**学院课程设计报告

书店管理信息系统

 

 

文献综述

摘要

40多年来,计算机在处理各方面的应用发展迅速。

尤其在计算机飞速发展的今天,计算机的应用已在社会的各个领域深入开来,无论是在商业,工业还是政府部门都早已普及。

本文对实现书店图书销售系统的关键技术MFC和ADO进行了概括的描述,探讨了MFC的宏观框架体系、构成应用程序的对象、ADO以及在VC中使用ADO的步骤。

本次设计采用了MFC技术、ADO技术,并且结合Access2000来开发书店的图书销售系统。

 

关键词:

图书销售,MFC,ADO

 

1前言

在科技飞速发展的今天,计算机的应用已经深入到各行各业当中。

为了提高书店日常工作效率,因此设计了图书销售系统,协助书店的图书销售的管理。

该前台销售部分的开发是为了简化销售过程,能够方便快捷的销售图书,系统配合了后台管理系统和数据库使用,完成零售业的供销存等商业活动过程。

本次设计的实现采用VisualC++6.0和Access2000等工具来完成,其环境为单击环境,采用MFC连接数据库,设计出了简洁、易用的人性化界面。

实现的功能有:

登陆过程、增加记录、删除记录、查询功能、计费功能等。

特点:

操作简单,界面和谐,有一定安全性(登陆过程)和可维护性,查询和计费准确快捷等。

这些功能都在系统中实现,MFC将数据库的操作封装起来,通过用户对界面的操作产生相应的消息,从而进行相对应的消息处理并得出的结果。

 

2关键技术分析

根据任务书及系统的要求,采用VC++6.0和Access2000完成整个设计。

用Access2000作为后台数据库,并运用MFC技术和ADO技术等设计出简洁、易用的符合人们使用习惯的操作界面,完成书店图书销售系统的设计与实现。

2.1MFC概述

2.1.1MFC的宏观框架体系

MFC[1][4]实现了对应用程序概念的封装,把类、类的继承、动态约束、类的关系和相互作用等封装起来。

这样封装的结果对程序员来说,是一套开发模板(或者说模式)。

针对不同的应用和目的,程序员采用不同的模板。

例如,SDI应用程序的模板,MDI应用程序的模板,规则DLL应用程序的模板,扩展DLL应用程序的模板,OLE/ACTIVEX应用程序的模板等等。

这些模板都采用了以文档-视为中心的思想,每一个模板都包含一组特定的类。

为了支持对应用程序概念的封装,MFC内部必须作大量的工作。

例如,为了实现消息映射机制,MFC编程框架必须要保证首先得到消息,然后按既定的方法进行处理。

又如,为了实现对DLL编程的支持和多线程编程的支持,MFC内部使用了特别的处理方法,使用模块状态、线程状态等来管理一些重要信息。

虽然,这些内部处理对程序员来说是透明的,但是,懂得和理解MFC内部机制有助于写出功能灵活而强大的程序。

总之,MFC封装了Win32API,OLEAPI,ODBCAPI等底层函数的功能,并提供更高一层的接口,简化了Windows编程。

同时,MFC支持对底层API的直接调用。

MFC提供了一个Windows应用程序开发模式,对程序的控制主要是由MFC框架完成的,而且MFC也完成了大部分的功能,预定义或实现了许多事件和消息处理,等等。

框架或者由其本身处理事件,不依赖程序员的代码;或者调用程序员的代码来处理应用程序特定的事件。

MFC是C++类库[2][9],程序员就是通过使用、继承和扩展适当的类来实现特定的目的。

例如,继承时,应用程序特定的事件由程序员的派生类来处理,不感兴趣的由基类处理。

实现这种功能的基础是C++对继承的支持,对虚拟函数的支持,以及MFC实现的消息映射机制。

2.1.2构成应用程序的对象

(1)应用程序

应用程序类派生于CWinApp。

基于框架的应用程序必须有且只有一个应用程序对象,它负责应用程序的初始化、运行和结束。

(2)边框窗口

如果是SDI应用程序,从CFrameWnd类派生边框窗口类,边框窗口的客户子窗口(MDIClient)直接包含视窗口;如果是MDI应用程序,从CMDIFrameWnd类派生边框窗口类,边框窗口的客户子窗口(MDIClient)直接包含文档边框窗口。

如果要支持工具条、状态栏,则派生的边框窗口类还要添加CToolBar和CStatusBar类型的成员变量,以及在一个OnCreate消息处理函数中初始化这两个控制窗口。

边框窗口用来管理文档边框窗口、视窗口、工具条、菜单、加速键等,协调半模式状态(如上下文的帮助(SHIFT+F1模式)和打印预览)。

(3)文档边框窗口

文档边框窗口类从CMDIChildWnd类派生,MDI应用程序使用文档边框窗口来包含视窗口。

(4)文档

文档类从CDocument类派生,用来管理数据,数据的变化、存取都是通过文档实现的。

视窗口通过文档对象来访问和更新数据。

(5)视

视类从CView或它的派生类派生。

视和文档联系在一起,在文档和用户之间起中介作用,即视在屏幕上显示文档的内容,并把用户输入转换成对文档的操作。

(6)文档模板

文档模板类一般不需要派生。

MDI应用程序使用多文档模板类CMultiDocTemplate;SDI应用程序使用单文档模板类CSingleDocTemplate。

应用程序通过文档模板类对象来管理上述对象(应用程序对象、文档对象、主边框窗口对象、文档边框窗口对象、视对象)的创建。

2.2VC开发数据库之ADO

2.2.1ADO概述

ADO是Microsoft为最新和最强大的数据访问范例OLEDB而设计的,是一个便于使用的应用程序层接口。

ADO使您能够编写应用程序以通过OLEDB提供者访问和操作数据库服务器中的数据。

ADO最主要的优点是易于使用、速度快、内存支出少和磁盘遗迹小。

ADO在关键的应用方案中使用最少的网络流量,并且在前端和数据源之间使用最少的层数,所有这些都是为了提供轻量、高性能的接口。

之所以称为ADO,是用了一个比较熟悉的暗喻,OLE自动化接口。

OLEDB是一组”组件对象模型”(COM)接口,是新的数据库低层接口,它封装了ODBC的功能,并以统一的方式访问存储在不同信息源中的数据。

OLEDB并不局限于ISAM、Jet甚至关系数据源,它能够处理任何类型的数据,而不考虑它们的格式和存储方法。

OLEDB应用程序编程接口的目的是为各种应用程序提供最佳的功能,它并不符合简单化的要求。

您需要的API应该是一座连接应用程序和OLEDB的桥梁,这就是ActiveXDataObjects(ADO)。

2.2.2在VC中使用ADO

(1)引入ADO库文件

使用ADO前必须在工程的stdafx.h文件里用直接引入符号#import引入ADO库文件,以使编译器能正确编译。

代码如下所示:

代码1:

用#import引入ADO库文件

#import"c:

\programfiles\commonfiles\system\ado\msado15.dll"

no_namespacesrename("EOF"adoEOF")

这行语句声明在工程中使用ADO,但不使用ADO的名字空间,并且为了避免常数冲突,将常数EOF改名为adoEOF。

现在不需添加另外的头文件,就可以使用ADO接口了。

(2)初始化OLE/COM库环境

必须注意的是,ADO库是一组COM动态库,这意味应用程序在调用ADO前,必须初始化OLE/COM库环境。

在MFC应用程序里,一个比较好的方法是在应用程序主类的InitInstance成员函数里初始化OLE/COM库环境。

加入一句AfxOleInit();即可。

代码2:

初始化OLE/COM库环境

函数AfxOleInit在每次应用程序启动时初始化OLE/COM库环境。

同DAO和CDatabase一样,ADO由几个接口组成:

_ConnectionPtr,_CommandPtr和_RecordsetPtr.不同于DAO和Cdatabase的是,ADO基于COM的接口。

(3)ADO接口简介

ADO库包含三个基本接口:

_ConnectionPtr接口、_CommandPtr接口和_RecordsetPtr接口。

_ConnectionPtr接口返回一个记录集或一个空指针。

通常使用它来创建一个数据连接或执行一条不返回任何结果的SQL语句,如一个存储过程。

使用_ConnectionPtr接口返回一个记录集不是一个好的使用方法。

通常同CDatabase一样,使用它创建一个数据连接,然后使用其它对象执行数据输入输出操作。

_CommandPtr接口返回一个记录集。

它提供了一种简单的方法来执行返回记录集的存储过程和SQL语句。

在使用_CommandPtr接口时,你可以利用全局_ConnectionPtr接口,也可以在_CommandPtr接口里直接使用连接串。

如果你只执行一次或几次数据访问操作,后者是比较好的选择。

但如果你要频繁访问数据库,并要返回很多记录集,那么,你应该使用全局_ConnectionPtr接口创建一个数据连接,然后使用_CommandPtr接口执行存储过程和SQL语句。

_RecordsetPtr是一个记录集对象。

与以上两种对象相比,它对记录集提供了更多的控制功能,如记录锁定,游标控制等。

同_CommandPtr接口一样,它不一定要使用一个已经创建的数据连接,可以用一个连接串代替连接指针赋给_RecordsetPtr的connection成员变量,让它自己创建数据连接。

如果你要使用多个记录集,最好的方法是同Command对象一样使用已经创建了数据连接的全局_ConnectionPtr接口,然后使用_RecordsetPtr执行存储过程和SQL语句[7][8]。

代码3:

使用_RecordsetPtr执行SQL语句

_RecordsetPtrMySet;

MySet.CreateInstance(__uuidof(Recordset));

MySet->Open("SELECT*FROMsome_table",

MyDb.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);

现在我们已经有了一个数据连接和一个记录集,接下来就可以使用数据了。

使用ADO的_RecordsetPtr接口,就不需要象DAO那样频繁地使用大而复杂的数据结构VARIANT,并强制转换各种数据类型了,这也是ADO的优点之一。

假定程序有一个名称为m_List的的ListBox控件,下面代码我们用_RecordsetPtr接口获取记录集数据并填充这个ListBox控件:

代码4:

使用DAO访问数据

VARIANT*vFieldValue;

COleVariantcovFieldValue;

CStringHolder;

while(!

MySet->IsEOF()

{

MySet->GetFieldValue("FIELD_1",covFieldValue);

vFieldValue=(LPVARIANT)covFieldValue;

if(vFieldValue->vt!

-VT_NULL)

{

Holder.Format("%s",vFieldValue->pbVal);

m_List.AddString(Holder);

}

MySet.MoveNext();

}

代码5:

使用ADO访问数据

_variant_tHolder

try{

while(!

MySet->adoEOF)

{

Holder=MySet->GetCollect("FIELD_1");

if(Holder.vt!

=VT_NULL)

m_List.AddString((char*)_bstr_t(Holder));

MySet->MoveNext();

}

}

catch(_com_error*e)

{

CStringError=e->ErrorMessage();

AfxMessageBox(e->ErrorMessage());

}

catch(...)

{

MessageBox("ADO发生错误!

");

}

必须始终在代码中用try和catch来捕获ADO错误,否则ADO错误会使你的应用程序崩溃。

当ADO发生运行时错误时(如数据库不存在),OLEDB数据提供者将自动创建一个_com_error对象,并将有关错误信息填充到这个对象的成员变量.

3总结

书店图书销售系统是书店提高效率的必要组成部分,为其图书销售提供了方便快捷准确的操作。

通过以上的分析。

我们可以充分认识到设计开发一个图书销售系统的重要性,本次设计开发图书信息管理系统符合一个书店销售的基本规定,并达到操作过程中的直接,方便,实用,安全等要求。

系统采用模块化程序设计的方法,便于系统的组合和修改,又便于系统以后的维护和升级。

本设计采用的MFC技术,并使用ADO操作数据库,这是很多应用软件常用的一种方法,虽然技术还算比较陈旧,但很实用,也是很多企业常用的方法。

这几个月中我阅读了大量的专业类书籍,使我受益匪浅。

学会了如何把所学到的理论知识运用到实践当中去,同时对软件开发和设计有了更深一层的理解,这段时间的学习也锻炼了我的创新思维能力。

也为下一阶段的系统的开发和论文的撰写做好了充分的准备。

 

参考文献

[1]王华.VisualC++6.0编程实例与技巧.[M]北京:

中国水利水电出版社,1999

[2]朱晴婷.VisualC++程序设计.[M]北京:

清华大学出版社,2006

[3](美)StableyB.Lippman.C++Primer.[M]北京:

人民邮电出版社,2006

[4]侯俊杰.深入浅出MFC.[M]武汉:

华中科技大学出版社,2001

[5]陆惠恩.实用软件工程.[M]北京:

清华大学出版社,2006

[6]陈禹.软件开发工具.[M]北京:

经济科学出版社,2005

[7]王珊洒师煊.数据库系统概论.[M]北京:

高等教育出版社,2005

[8]罗骏.SQLServer2000实用教程.[M]北京:

清华大学出版社.,2007

[9]严华峰.VisualC++课程设计案例精编.[M]北京:

中国水力水电出版社,2002

[10]谭浩强.C++程序设计.[M]北京:

清华大学出版社,1998

 

1、书店管理信息系统概述(前言)

书店管理系统是一个大型书店不可缺少的部分。

人工管理方式存在着许多缺点:

效率低,保密性差,另外时间一长,将产生大量的文件和数据,这对于查找,更新和维护都带来不少困难。

随着科学技术的不断提高。

计算机学日渐成熟。

它已进入人类社会的各个领域并发挥重要作用。

使用计算机档案信息管理,有好多好处:

查找方便,可靠性高,存储量大,保密性好,成本低等,能够极大提高管理的效率,也是企业的科学化,与世界接轨的重要条件。

开发了书店管理系统就可以进行统一数字化管理,为书店工作人员提供明确,有效的信息,使工作人员工作更方便,更简单。

2、书店管理信息系统规划

2.1业务调查

了解书店的进书,售书,退书及会员管理等业务流程,分析功能实现的模块,大体制定设计方案,针对每一模块所要实现的具体要求进行详细的调查分析。

2.2业务及流程

系统总结构图图2-1

图2-1

本书店销售管理系统主要有以下四大模块:

(1)、系统管理包括用户的登陆、用户修改密码、重新登陆和退出系统。

(2)、经理子系统:

包括统计分析、用户管理和会员政策。

统计分析包括对销售、库存、退货等信息的统计这样管理员就能够很直观的了解当前书店的运营情况,可以及时的制定下一时间段的销售和管理策略。

用户管理包括对用户的添加、删除和修改,由于在系统用户中有部分是书店的管理人员聘请过来的,这些人员不是一成不变的,总是在不断变化,这就涉及到用户信息的添加、删除和修改。

另外,会员还分有不同的级别,有的在本店里买的书籍比较多了会员级别比较高,这样打的折也多,新入的会员等级低打的折也少,这样就需要对会员的等级进行管理

(3)、仓库管理子系统包括库存管理、供应商信息管理和图书分类管理。

图书存在仓库总有入库和出库,为了对图书的入库和出库信息进行详细的统计和管理我们需要对库存进行管理,并且我们要对库存里的书籍进行书目管理,这也属于库存管理的范畴。

由于现在供应商很多,书店会有选择的选取其中的一些作为固定的合作伙伴,这样就需要对他们的信息进行管理,这就涉及到供应商信息的添加、删除和修改。

另外,图书还分为不同的类型,有文学的,有经济类的等等,不同的类型的书籍的销售情况,摆放位置也不一样,这需要对图书的类型进行管理。

(4)、销售管理子系统包括图书的销售、销售统计和会员管理。

本系统的一个主要的功能就是销售图书的功能。

销售统计是让营业员查看一下当天的销售记录。

由于本书店是会员制的所有我们就需要对会员进行管理,这里面包括会员的增加,修改和删除。

(5)、查询子系统包括对图书的库存信息,会员信息,供应商信息进行查询。

如果想知道某本书的相关信息,可以输入该书的编号、书名任意查询,同时该操作还支持模糊查询。

如果想知道某会员的购买情况、某种书的销售情况同样可以通过查询得到。

2.2.1图书入库业务流程图2-2

图2-2

 

2.2.2会员注册业务流程图2-3

图2-3

会员优惠政策判断表:

决策规格号

1

2

3

4

会员时间>60天

Y

Y

N

N

购买金额>100元

Y

N

Y

N

应采取

的政策

优惠25%

Y

优惠20%

Y

优惠15%

Y

优惠5%

Y

 

2.2.3销售管理业务流程图2-4

图2-4

2.2.4库存管理业务流程图2-5

2.3E-R图

管理员:

职员:

部门:

会员:

书籍:

供应商

2.4关系数据模式

管理员(管理员编号,部门编号,姓名,工资,性别,年龄,学历,住址,电话)

部门(部门编号,部门名称,职员人数)

职员(职员编号,部门编号,工资,姓名,性别,年龄,学历,住址,电话)

书籍信息(书籍编号,书名,作者,价格,货架号,供书商编号,在库数量)

供书商(供书商编号,名称,地址,联系电话,书籍名称,供应量)

会员(会员编号,姓名,性别,联系方式,会员有效期,累计消费,享有优惠)

2.5应用系统体系结构设计

将业务流程与规划出的主题数据库结合在一起画出U-C矩阵。

矩阵中的U表示某项业务使用某一数据库,C表示某项业务负责产生某一主题数据库,同时也使用该主题数据库。

主题数据库与业务流程中的各项业务处理环节所组成的U-C矩阵见表3.1。

数据

项目

职员管理

C

会员注册业务

C

会员管理

U

图书分类管理

U

C

图书销售管理

库存管理

U

供应商信息管理

在U-C矩阵基础上进行的体系结构设计见表3.2。

将U-C矩阵进行调整,使C集中在对角线上,然后划分出信息系统的子系统,如表2.3所示。

其中,落在黑框外的U表示子系统之间的信息交换关系,从而可以看出数据库的共享性。

表2.3中各子系统的功能如下:

子系统1:

基础数据管理,提供了对各类编码数据的维护功能。

子系统2:

图书销售管理,提供了图书的信息、分类信息、车图书销售信息处理功能。

子系统3:

库存管理,提供了仓库基本信息的管理、出入库管理和库存结算以及供应商信息等。

数据

项目

职员管理

系统1

会员注册业务

会员管理

图书分类管理

系统2

图书销售管理

库存管理

U

系统3

供应商信息管理

3、书店管理信息系统分析

3.1系统需求

书店管理系统需要满足来自三个方面需求:

第一,书店工作人员通过计算机来管理各类图书,进行图书分类编号,调整图书结构,增加图书库存,适应读者的需求。

第二,工作人员对读者的需求情况能作好全面的掌握,及时得到历史销售记录。

第三,也是书店的核心工作,对图书的销售管理。

原始落后的管理已经远远不能满足,不但工作繁琐,出错的几率也是很大的,大大降低了工作效率。

另外现在比较有先见之明的书店都慢慢发展自己的特色业务,比如会员制度,针对会员有免费借阅书籍的业务,要求是每月消费达到一定金额,据悉这种举措很受市场的欢迎,极大的带动了书店的消费,为书店自身的发展积累了一定的资金和管理经验。

除此之外还有各色名目繁多的会员活动等等,给读者一种心理上的优越感,刺激了消费。

为了优化书店管理模式,我们尝试开发了这个书店综合管理系统,让用户很方便的通过这套系统管理书店的日常事务和繁琐数据,让用户在整洁的环境下轻松的进行书店的日常业务的开展。

3.2功能需求

基于系统需求分析,该系统需要实现以下基本功能:

3.2.1权限设置

本系统的使用用户分两种:

管理员和普通用户。

管理员具有使用本系统的所有功能,而普通用户是需要具有日常书店的管理功能即可。

用户权限的设置通过用户登陆界面的输入来进行。

会员注册数据流程图

3.2.2图书销售

图书管理人员通过此模块来销售各类图书并对销售情况进行记录,记录的信息包括图书销售的数量,价格,折扣比例等。

在进行销售图书时,输入图书的编号,系统就可以搜索到该图书编号对应的图书信息,然后列出该图书销售是需要的基本信息,书名,出版社﹑价格等。

销售可以输入折扣数以便打折,在购买相同的多本书时,可以直接输入图书数量,避免重复输入图书编号。

同时,也提供撤销销售记录的功能,销售员可以撤销销售时的上一条记录。

程序还能自动统计读者购买的总金额,便于销售员掌握。

销售管理数据流程图

3.2.3图书入库

书店工作人员通过此模块来管理各类图书库存的数目。

当一批图书入库时,只需要输入图书编号和图书数量,程序将自动更改库存的图书数量。

使用的公式为:

现有图书库存=原有图书库存+新入库图书数量。

图书入库数据流程图

3.2.4图书库存

书店工作人员通过次模块来管理各类图书信息,包括图书的库存。

当一种图书的库存数量规定值本时,系统将图书的信息列入不足表中,以便进

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 考试认证 > 公务员考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1