文档资料管理系统的设计与实现.docx

上传人:b****0 文档编号:9472381 上传时间:2023-05-19 格式:DOCX 页数:24 大小:185.33KB
下载 相关 举报
文档资料管理系统的设计与实现.docx_第1页
第1页 / 共24页
文档资料管理系统的设计与实现.docx_第2页
第2页 / 共24页
文档资料管理系统的设计与实现.docx_第3页
第3页 / 共24页
文档资料管理系统的设计与实现.docx_第4页
第4页 / 共24页
文档资料管理系统的设计与实现.docx_第5页
第5页 / 共24页
文档资料管理系统的设计与实现.docx_第6页
第6页 / 共24页
文档资料管理系统的设计与实现.docx_第7页
第7页 / 共24页
文档资料管理系统的设计与实现.docx_第8页
第8页 / 共24页
文档资料管理系统的设计与实现.docx_第9页
第9页 / 共24页
文档资料管理系统的设计与实现.docx_第10页
第10页 / 共24页
文档资料管理系统的设计与实现.docx_第11页
第11页 / 共24页
文档资料管理系统的设计与实现.docx_第12页
第12页 / 共24页
文档资料管理系统的设计与实现.docx_第13页
第13页 / 共24页
文档资料管理系统的设计与实现.docx_第14页
第14页 / 共24页
文档资料管理系统的设计与实现.docx_第15页
第15页 / 共24页
文档资料管理系统的设计与实现.docx_第16页
第16页 / 共24页
文档资料管理系统的设计与实现.docx_第17页
第17页 / 共24页
文档资料管理系统的设计与实现.docx_第18页
第18页 / 共24页
文档资料管理系统的设计与实现.docx_第19页
第19页 / 共24页
文档资料管理系统的设计与实现.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

文档资料管理系统的设计与实现.docx

《文档资料管理系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《文档资料管理系统的设计与实现.docx(24页珍藏版)》请在冰点文库上搜索。

文档资料管理系统的设计与实现.docx

文档资料管理系统的设计与实现

 

文档资料管理系统的设计与实现

 

利用本系统可以管理自己的各种资料(文本的和电子的),对每一份资料均有命名,对所有的资料进行归类,指明各资料的存放位置,可以给每一份资料指明关键字,便于用户查找资料。

若是电子资料(如电脑上的文件),可以通过鼠标点击直接打开文件。

整个系统实现了最初设计的各种功能,并能够快速方便的帮助用户查找到需要的资料信息,整个操作界面简洁和实用。

 

论文总页数:

20页

1引言1

2设计理论依据1

2.1MFC简介1

2.2XML介绍2

3文档资料管理系统简介4

3.1系统开发背景4

3.2系统开发环境5

3.2.1系统软件环境5

3.2.2工具简介5

3.3系统概述5

4文档资料管理系统的设计6

4.1系统需求分析及功能设计6

4.2XML存储结构的设计7

4.3用户界面和事物处理12

4.3.1用户界面12

4.3.2事务处理13

5软件测试15

结论18

参考文献18

 

1引言

当今世界是飞速发展的信息时代,在各行各业中离不开信息处理,这正是计算机被广泛用于管理系统的环境。

计算机的最大好处在于利用它能够进行信息管理。

但是在众多的资料中,如何规范,准确,快速,全面的管理自己的资料,如书籍,电子资料等,并且方便自己查阅。

使用计算机进行信息管理控制,不仅提高了工作效率,而且大大提高了其安全性。

本系统就是为了管理好自己的各种有用资料信息而设计的。

面对各种繁多的资料,很多人是没有进行合理的分类整理和建立一个资料管理系统来管理它们,有时候在手头研究需要一些资料的时候往往是靠记忆来寻找,但是这样做会浪费很多时间和精力。

由于数据繁多容易丢失,且不易查找。

总的来说缺乏系统,规范的信息处理手段。

尽管我们有计算机,但是尚未用于信息管理,没有发挥它的效益,资料闲置比较突出,就是管理信息开发的基本环境。

基于此类问题,我认为有必要建立一个资料管理系统,使资料管理工作规范化,程序化,避免资料管理随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改资料情况。

本次毕业设计是在老师指导下自己独立完整的进行软件的设计,程序编写,调试等工作。

通过自己对整个流程的设计和实现,能够完成最初提出的要求,也对一些功能进行了扩展和加深。

利用文档资料管理系统能够比较完善的管理自己的资料,也能比较快速的找到自己以前看过或是记录下的资料,使用起来也很方便,快速。

2设计理论依据

2.1MFC简介

MFC微软基础类(MicrosoftFoundationClasses),实际上是微软提供的,用于在C++环境下编写应用程序的一个框架和引擎。

MFC就是挂在它之上的一个输助软件开发包,MFC作为与VC++血肉相连的部分(注意C++和VC++的区别:

C++是一种程序设计语言,是一种大家都承认的软件编制的通用规范,而VC++只是一个编译器,或者说是一种编译器+源程序编辑器的IDE,WS,PlatForm),MFC同BC++集成的VCL一样是一个非外挂式的软件包,类库,只不过MFC类是微软为VC++专配的.

MFC是WinAPI与C++的结合,API,即微软提供的Winos下应用程序的编程语言接口,是一种软件编程的规范,但不是一种程序开发语言本身。

MFC不只是一个功能单纯的界面开发系统,它提供的类绝大部分用来进行界面开发,关联一个窗口的动作,但它提供的类中有好多类不与一个窗口关联,即类的作用不是一个界面类,不实现对一个窗口对象的控制(如创建,销毁)

MFC中的各种类结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立Windows下的应用程序。

MFC框架定义了应用程序的轮廓,并提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓。

MicrosoftVisualC++提供了相应的工具来完成这个工作:

AppWizard可以用来生成初步的框架文件(代码和资源等);资源编辑器用于帮助直观地设计用户接口;ClassWizard用来协助添加代码到框架文件;最后,编译,则通过类库实现了应用程序特定的逻辑。

2.2XML介绍

XML是ExtensibleMarkupLanguage的缩写,即可扩展标记语言是一种您可以用来创建自己标记的标记语言。

它由万维网协会(W3C)创建,用来克服HTML(即超文本标记语言(HypertextMarkupLanguage),它是所有网页的基础)的局限。

和HTML一样;XML基于SGML―标准通用标记语言(StandardGeneralizedMarkupLanguage)XML实际上是Web上表示结构化信息的一种标准文本格式,它没有复杂的语法和包罗万象的数据定义。

XML同HTML一样,都来自SGML(标准通用标记语言)。

SGML是一种在Web发明之前就早已存在的用标记来描述文档资料的通用语言。

但SGML十分庞大且难于学习和使用。

鉴于此,人们提出了HTML语言。

但近年来,随着Web应用的不断深入,HTML在需求广泛的应用中已显得捉襟见肘,有人建议直接使用SGML作为Web语言。

但SGML太庞大了,学用两难尚且不说,就是全面实现SGML的浏览器也非常困难。

于是Web标准化组织W3C建议使用一种精简的SGML版本——XML。

XML与SGML一样,是一个用来定义其他语言的元语言。

与SGML相比,XML规范不到SGML规范的1/10,简单易懂,是一门既无标签集也无语法的新一代标记语言。

可以说,XML的出现给数据交换带来了一场革命;XML的出现是至今为止最聪明的一种符号化语言;XML成为下一代网络发展的基石。

XML作为引人注目的核心技术应用于BtoB、Web服务、.NET等许多系统中。

XML可以作为电子数据交换的统一格式,用XML可以对数据关系进行定义形成特有的标准,因此各行各业都在建立自己的行业化标准,以应用于网络上处理电子商务,把后台系统通过Web站点表现出来。

XML还可以作为数据仓储,一个XML文件就是一个小的数据库,通过对数据关系的定义形成各种关系、属性的数据,实现数据交换、上下文检索、多媒体传输。

XML具有其他方法所不具备的数据描述特点XML是以文本形式来描述的一种文件格式由于XML是以文本形式描述的,所以适合于各种平台环境的数据交换。

同样由于使用文本来描述内容,可以越过不同平台的障碍进行正常的数据交换。

但是,文本形式也会因为文字代码的不同造成不能阅读的问题,在这一点上XML有着非常完美的解决方案。

XML使用有意义的标记(Tag)在XML中文件是由一个个称之为元素(Element)的部件构成。

使用标记(Tag)来描述元素。

由于使用了标记的描述方法,可以保持原数据的意思和构造在互联网上进行数据交换,进而可以保持不同系统之间数据交换的灵活性。

可以说,XML是“定义语言的语言”,也即是一种元语言。

由于XML具有元语言的功能,所以可以成为描述电子商务数据、多媒体演示数据、数学公式等各种各样数据应用语言的基础语言。

下面提供几个以XML为基础生成的数据描述语言(本文亦称为XML应用语言)的应用例子,即出版媒体:

OpeneBook(电子书籍)、NewsML(新闻媒体);科学:

MathML(数学表达式)、CML(化学);电子商务:

cXML(电子商务)、FpML(金融);多媒体:

SMIL(多媒体演示)、BML(卫星数据传送)。

  XML是描述内容的数据格式,在使用XML数据时,还需要XML数据的显示、打印、数据结构的变更等许多相关技术。

如果这些相关技术也都标准化的话,即使在不同平台开发应用程序也都可以用相同的方法,使开发难度降低。

处理XML数据时,一定要使用XMLProcessor(也就是XMLParser),把XML数据结构的检查等交给XMLParser去做。

应用程序对接收到XMLProcessor传递来的XML树进行处理,向用户提供服务。

此时,不管是电子商务,还是知识管理,都是定义XML数据结构的技术、显示打印XML数据的技术、XML数据结构变更技术、XML数据联接整合技术、用程序操作XML树的API和其它应用技术的组合。

  在XML中用户可以自由的定义标记名以及与标记相关的元素及元素层次,这是XML的主要特征。

但是,如果定义的都是只有自己才能理解的标记,就无法与其他人进行交换数据。

为了在企业团体之间进行XML格式的数据的交换,XML数据的结构、元素的名称、元素的数据类型以及元素的亲子关系都需要仔细考虑,一定要设计成人和系统能够理解的语言。

这样设计的XML数据结构在XML领域称为Schema,描述Schema的语言称为Schema语言。

DTD是最普通XML的Schema语言是DTD(DocumentTypeDefinition:

文档类型定义)。

DTD是远在SGML时期就一直使用的Schema语言,1998年制订XML语法时,沿用了描述Schema的DTD。

XMLSchema中有下述DTD中不具备的特征:

多个Schema复合使用XML名字空间;用XML语法描述;可以详细定义元素的内容及属性值的数据类型。

由于在XMLSchema中的数据结构也都是用XML数据来表现的,与DTD相比数据量增大很多。

但是,XMLSchema的表现力要远比DTD强得多,不仅支持字符串、10进制数、浮动小数点、日期等,还支持m回以上和n回以下出现的元素(m、n为整数)的指定。

例如“邮编xxxxxx”(x是字符)是邮政编码元素的格式指定等都是DTD所不能表现的内容。

XMLSchema于2001年5月成为W3C的推荐规范,对XML的利用产生了重要的影响。

  XML作为数据描述语言是非常优秀的,但是并不是所有的电子数据都是转换到XML是最有效的。

例如XML的文本表现手法、标记的符号化等会导致XML数据比二进制表现方法数据量增加,尤其当数据量很大时,会成为很大的问题。

也就是说,XML的导入要根据具体需求,比较其优缺点,在充分发挥XML优点的领域进行。

尽管XML具备了作为通用数据描述语言的优秀特征,但是XML不是编程语言,说到底它是一种数据描述的技术。

因此XML文件的显示、文件结构的变更、应用程序的操作等XML相关技术也是非常重要的。

随着计算机和网络技术的不断发展深入XML技术的应用也将不断扩大。

该技术不仅在传统的银行之间数据交换、证券公司对上市公司情况的数据统计、图书馆对图书的查询检索、企事业文件档案管理等领域的应用更加迫切,在电子商务、搜索引擎软件、自动智能翻译、文档发声软件等领域也将得到更大的发展,特别是近期发展起来的移动通讯网络服务的发展,将使各种各样的信息经过格式转换到达PDA、甚至到达手持电话机,将来我们可以通过网络数据格式转换服务使小小的手机可以阅读到大千世界的丰富信息。

3文档资料管理系统简介

3.1系统开发背景

本文档资料管理系统是为个人管理自己的各种资料的一个基于WindowsXP系统的一个应用软件.现在也有很多的资料管理系统,其中都是一个运用界面和逻辑接口嵌入一个数据库,这样在编写软件的时候也很方便和快速。

但是对于编程人员来说,利用别的工具来实现自己的东西总是不好的事,尤其对于我们这种经验不足的人来说,尤其是不好的事情。

因此我就想自己编写一个储存结构来代替数据库。

因为在以前学习过XML知道用它可以实现数据的存储功能,于是决定利用它编写文件存储结构来实现本系统的数据存储。

现在人们有了电脑,对于存储自己需要的资料有了一个好的地方,但是如何能够有效的把日益增多的这些各种资料管理起来,能够方便需要的时候取出来,这是一个难题;对于一些以前看过的书,如何在以后突然需要的时候,快速的找到它的摆放位子?

这些都是开发本资料管理系统的一个原因。

为了管理个人的资料例如:

电子资料,纸版资料等不同的资料并对所有的资料进行归类,如划分为VC++资料,windows类资料,健康类资料等。

当这些资料经过科学的分类,并把各种不同属性的资料各类管理起来,这样就实现了对资料的有效管理,也方便了用户在需要的时候很快能够找到想要的资料,节约了很多人力物力和精力。

3.2系统开发环境

3.2.1系统软件环境

本系统采用的软件工具有:

操作系统:

WindowsXP

开发环境:

VC++6.0

3.2.2工具简介

VC++6.0在提供可视化的编程方法的同时,也适用于编写直接对系统进行底层操作的程序,其生成代码的质量要优于很多其他的开发工具。

VC++6.0所提供的基本类库MFC,对Windows所用的Win32应用程序接口进行了十分彻底的封装,这使得开发人员可以使用完全面向对象的方法来进行Windows编程,从而大大节省了应用程序的开发周期,降低了开发成本。

而且,其强大的调试功能也为大型复杂软件的开发提供了有效的排错手段。

随着多媒体技术和图形图像技术的不断发展,可视化技术得到了广泛的重视,愈来愈多的人开始研究并应用可视化技术。

所谓可视化技术,一般是指软件开发阶段的可视化和对计算机图形技术和方法的应用。

VC++是一个很好的可视化编程工具,使用VC++环境来开发基于Windows的应用程序,其界面更友好,便于程序员操作。

开发环境是程序员同VC++的交互界面,通过它程序员可以访问C++源代码编辑器、资源编辑器,使用内部调试器,还可以创建项目文件

3.3系统概述

软件主要提供的功能包括:

资源管理方面——添加资源,删除资源;资源浏览——按照目录,按照搜索。

因此把软件大体分成三个部分进行实现:

第一部分:

用户界面。

包括整个程序的框架,以及用户操作的接口设计等即就是实现用户界面的部分.第二部分:

用于处理事务的模块.包括用户添加,删除,修改资源,用户通过目录浏览,通过搜索找寻,通过自己的收藏夹进行资源管理等业务逻辑的实现。

第三部分:

用于进行数据物理存储的模块。

使用XML文档进行数据的存储,所以在实现的过程中,XML的操作成为了这个模块的主要工作。

文档资料管理系统是为个人管理自己的各种资料的软件,首先将资料分为电子资料和非电子资料;电子资料主要包括自己电脑上面储存的例如:

电子文档,电子书籍,影像资料等各种电子资料。

非电子资料包括书籍,影碟,光碟等实物资料;对每一份资料均有命名,可以使用书名来指代这本书,也对每一份资料加了关键字和注释,便于后面需要时候准确的找到需要的资料。

对所有的资料进行归类,如划分为VC++资料,windows类资料,影像类资料等;指明资料的存放位置,若是电子资料(如电脑上的文件),可以通过鼠标点击直接打开文件,对于非电子资料和非本机子上的资料,在注释内注明其放置的位子,便于快速找到自己需要的资料;系统也有增加,删除,修改等工具条:

增加是在有新资料需要用本系统管理的时候,可以通过它来增加。

删除是对无用的资料进行删除。

修改是需要对已有的资料增加一些说明的。

另外也有目录,搜索和收藏夹等功能。

系统也在最下面的窗口有一个对选中的资料有一个类似统计的显示,便于使用者,更加方便的使用本系统。

4文档资料管理系统的设计

4.1系统需求分析及功能设计

随着信息时代的来临,电脑用户的资料日益增多,而这些资料可能有着不同的特点。

比如,它可能是一本书,也可能是一张光碟,也可能是个电子文档。

如果稍有疏忽,资料的存放位置失去了某些特征,例如,某些电子文档你可能放到了一个目录下,而另外一个文档你却放到了其它的目录下。

当你需要的时候,将难于准确迅速的找到,更谈不上有效的查询和管理了。

总之,资料属性的多元化和数量的增多给管理这些资料带来了很多不便。

文档资料管理系统的设计目标正是为了解决这些问题。

它将满足用户对资源的管理:

增加,删除,修改,搜索及查看资源。

具体说来,该系统将具备下面的功能:

(1)增加资源——用户能够添加一个资源,该资源可以是电子资源(比如PC上某个目录下的一张图片)或者是非电子资源(例如书桌上的本书)。

添加该资源后,用户将可以通过该系统直接管理和使用该资源。

(2)删除资源——用户能够将系统中的某个资源删除掉,从而放弃系统对该资源的管理。

(3)修改资源——当某个资源的属性发生变化的时候(例如存放位置发生变化),用户能够选中某个资源,对其属性进行修改,以反映这种变化。

(4)搜索资源——用户能够通过提供资源的某个特征属性进行查找,获得相关的资源。

(5)查看资源——如果所选择资源为电子文档,用户将能在系统中直接查看该资源。

 

 

图1整体框架设计图

资源应该具有以下属性:

资源的作者,资源名称,资源的位置(若是电子资源,则是资源在电脑上的文件位置),资源添加日期,资源所属目录情况(一个资源可以属于多个目录),关键字(用于搜索),资源的注释等。

下面就系统中对以上属性的定义:

structRESITEM

{

intid;//资源在文档中的唯一标志

stringname;//资源名称

stringauthor;//资源的作者

stringpath;//资源的位置(若是电子资源,则是资源在电脑上的文件位置)

boolbEbook;//是否是电子资源

stringdate;//资源添加日期

stringkeywords;//关键字,用于搜索

intcatalogs;//资源所属目录情况(一个资源可以属于多个目录)

doublebytes;//资源大小(只对电子资源有效)

stringnote;//资源的注释

};

4.2XML存储结构的设计

本系统的用XML编写存储结构,参照一般的XML编写方法包含以下几个

类:

XmlContainer(XmlTree),XmlFile,XmlLeaf,XmlNode,XmlParser。

表1XmlFile设计表

类名:

XmlFile

设计用途:

用于将一个磁盘上的XML文档以字符串的方式读入到内存中,或者将以字符串方式存于内存中的XML文档输出到磁盘。

方法/属性

作用

string_doc

保存XML字符串的内部成员变量。

boolload(constchar*file)

将参数file指定的文件载入类的成员变量doc中。

boolsave(constchar*file)

将成员变量doc的值保存到file指定的文件中。

conststring&getdoc()

返回doc的值。

boolsetdoc(conststring&_doc)

以_doc设置doc的值。

表2Xmlparser设计表

类名:

XmlParser

设计用途:

用于实现XmlTree和字符串化的XML文档的相互转换。

方法/属性

作用

staticXmlTree*doc2tree(conststring&doc)

将doc转换成一个XmlTree。

staticstringtree2doc(XmlTree*pXmlTree)

将一个XmlTree转换为字符串。

staticintgettoken(stringstrDoc,string&token)

从strDoc中获取第一个标记(或者值)

说明:

正是通过这两个类的协作,实现了XML文档的读写和转换。

例如:

XmlFilefile;

if(!

file.load("Settings\\items.xml"))

{

AfxMessageBox("打开数据文件items.xml失败");

return;

}

XmlTree*pTree=XmlParser:

:

doc2tree(file.getdoc());

if(!

pTree)

{

AfxMessageBox("转换数据文件items.xml失败");

return;

}

上面的代码段首先使用XmlFile的实例load了一个XML文档,然后使用XmlParser:

:

doc2tree创建了一个XmlTree,从而为内存中使用XML提供了基础。

下面说明一下对XML的处理方案。

使用树型结构表达XML文档,可以比较方便的进行相应的读写删改操作。

因为XML本身就是一个数型的结构。

例如:

tttttt

13

d

xx

7

xx

以上是一段程序中用到的XML文档结构。

注意到整个文档以开始,以结尾,表示之间的都是存储的数据(实际上就是资源的属性数据)。

中间共有两个item,而每个item又各有几个属性(如等)。

所以可以用一颗树来表示:

图2Xml树型结构图

注意到上面的树中有些节点只有Name没有Value,而有些却都有。

虽然它们都是节点,但类型上还是有区别的。

故,采用三个类表达这种信息:

XmlNode,XmlLeaf,XmlContainer。

首先定义一个接口类XmlNode,该类表达抽象的XML节点。

然后使用XmlLeaf类和XmlContainer类来实现XmlNode,XmlLeaf表示叶节点(有Name和Value双重属性的节点,但自己没有子节点),XmlContainer表示容器节点(只有Name属性的节点,而且自己可以有子节点)。

下面是它们的定义:

classXmlNode

{

public:

XmlNode(){name="node";parent=NULL;}

virtual~XmlNode(){};

virtualboolisleaf()=0;//是否叶节点

virtualbooliscontainer()=0;//是否容器节点

virtualXmlNode*getparent(){returnparent;};//返回父节点

virtualboolsetparent(XmlNode*_parent){parent=_parent;returntrue;};//设置父节点

virtualconststring&getname(){returnname;};//返回节点名称

virtualboolsetname(conststring&_name){name=_name;returntrue;};//设置节点名称

protected:

XmlNode*parent;

stringname;

};

classXmlContainer:

publicXmlNode

{

public:

XmlContainer(){pos=-1;name="container";};

XmlContainer(conststring&_name){name=_name;pos=-1;};

~XmlContainer(){release();};

boolisleaf(){returnfalse;};

booliscontainer(){returntrue;};

booladdchild(XmlNode*_node);//新增一个子节点

boolremove(XmlNode*pNode);//删除一个子节点

XmlNode*firstchild();//返回第一个子节点

XmlNode*nextchild();//返回下一

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

当前位置:首页 > 农林牧渔 > 农学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2