Linux下电子词典的设计与实现.doc
《Linux下电子词典的设计与实现.doc》由会员分享,可在线阅读,更多相关《Linux下电子词典的设计与实现.doc(39页珍藏版)》请在三一办公上搜索。
1、 毕业设计(论文)题目:Linux下电子词典的设计与实现学 生 姓 名 学 号 201022080223 班 级 通信102202H班 所属院(系) 电子信息工程系 指 导 教 师 2014 年 5 月 20日 Linux下电子词典的设计与实现摘要 随着嵌入式技术的发展,智能移动终端的普及,用户对数据处理和管理需求也不断提高,更多的用户群也越来越希望能对嵌入式产品中的数据进行更有效的管理,嵌入式数据库便是一个非常有效的工具。如何在智能终端中使用嵌入式数据库以及如何让嵌入式数据库在嵌入式设备中充分有效的使用有限的存储资源成为嵌入式系统研究的重要方向。本文的主要任务是对电子词典的设计,主要功能有英
2、译汉、汉译英、生词库储存等。本设计主要应用的技术有数据库、Qt、本设计用SQLite的B+树索引机制进行改进,将改进后的 SQLite与 Qt/Embedded相结合设计和实现智能终端中的电子词典。本设计的特点是操作简单、快速、实用性强。关键词:嵌入式,用户界面,数据库,B+树The Design and Implementation of Electronic Dictionary Based on LinuxAbstract With the development of embedded technology, the popularity of smart mobile devices
3、, users of data processing and management needs is also rising, more and more users want to be able to embedded products for more efficient data management, embedded database is a very effective tool. How intelligent terminal using the embedded database and how to make an embedded database in embedd
4、ed devices fully effective use of the limited storage resources has become an important research direction of embedded systems. The main task is to design electronic dictionary, the main function of Chinese Translation, Chinese to English, raw thesaurus storage. The main application of the technolog
5、y are designed database, Qt, this design SQLite B + tree indexing mechanism to improve the improved SQLite with Qt / Embedded combining design and implementation of intelligent terminal electronic dictionary. This design is characterized by simple, fast, and practical. KeyWords: Embedded,Qt,SQLite,B
6、+ tree目 录摘要IIAbstractIII第章 绪 论11.1 研究背景和意义11.2 数据库在电子词典中的应用1第2章 系统需求分析32.1用户需求分析32.2可行性分析3第3章 相关技术53.1 Qt/Embedded体系结构与框架53.2 Qt/Embedded的信号与槽机制53.2.1 信号与槽的连接与实现63.2.2 元对象编译器63.3 SQLite数据库73.4 SQLite的索引机制73.4.1 B+树的概念83.4.2 B+树查找83.4.3 B+树插入83.4.4 B+树删除9第4章 电子词典的设计与实现104.1 建立电子词典的开发与运行环境104.2 使用Qt/E
7、mbedded设计运用程序的方法104.3 电子词典的界面设计与实现114.4 电子词典的功能设计与实现124.4.1 系统的功能模块图124.4.2 功能的实现步骤12第5章 系统的界面实现155.1 主界面155.2 生词本界面155.3 添加单词界面165.4 编辑单词界面16第6章 电子词典设计中遇到的问题186.1 设计中文查询功能的问题186.2 音标正确显示的实现18第7章 总结19参考文献20致谢21附录22第章 绪 论1.1 研究背景和意义随着计算机技术的飞速发展,嵌入式系统已经成为该领域的一个重要方面,得到了更多的应用。“嵌入式对我们来说不再是一个陌生词,早已深入生活的每一
8、个角落,电子词典、自动取款机、电视机顶盒、PDA、MP4、智能手机、电子医疗仪器、电梯等等,嵌入式设备可谓说是在我们日常生活中处处可见。而且,随着智能移动终端的多样化,嵌入式技术快速发展,用户对管理的需求及数据的处理不断的提高,越来越多的用户渴望对嵌入式产品的数据进行更好的管理,嵌入式数据库可谓说是十分重要。电子词典是种将传统的印刷词典转成数码方式、进行快速查询的数字学习工具。电子词典以轻便易捷、查询快捷等特点,成为21世纪学生学习生活、社会人士移动办公的掌上利器。在中国,电子词典的主要目标客户是英语学习人群,应该说,这个人群庞大的基数和每年数以千万记的增长量,为电子词典市场提供了滚滚而来的商
9、机和极其广阔的发展空间。电子词典的设计就需要用到数据库,嵌入式数据库大多用于电子产品中,比如智能手机、PDA、车载设备等内存空间比较有限的嵌入式设备。由于嵌入式系统存储空间有限,所设计的产品需要对某种数据库处理数据时,则需利用的存储容量小,这样才能使效率更高。怎样让嵌入式数据库在嵌入式设备中更好的被应用及怎样在嵌入式设备中使嵌入式数据库更有效的利用存储资源成为电子产品设计及研究的重要方向。基于上述原因,对深入研究一种相对成熟、快速、简单易用和能改进空间利用率的电子词典具有重要的意义。1.2 数据库在电子词典中的应用随着移动计算机时代的到来,数据库技术随着计算机的发展不断的进步,嵌入式数据库的技
10、术已从初步的研究阶段步入应用阶段。数据库系统对嵌入式的操作系统的贡献为数据库的技术开辟了更广阔的发展空间。目前已经在移动平台、电子产品比如智能电子词典、数字电视机等领域有了广泛应用。随着用户对数据的管理要求及实时处理的不断提高,移动智能终端普及,嵌入式数据库的优越性越来越突出,得到了各个国家的青睐。各个研究机构都对嵌入式数据库展开了更进一步的研究。 在国内,北京网易研制的“有道词典”是网易有道推出的词典相关的服务和软件。基于有道搜索引擎后台的海量网页数据以及自然语言处理中的数据挖掘术。数据库在嵌入式操作系统中形成一个数据库环境,在电子词典的设计中嵌入式数据库主要是对其进行数据计算及数据存储管理
11、。它可以完成数据的查询、修改、增加、删除等功能。还有国内其他一些研究机构和公司已经推出了自己的嵌入式数据库系统或者正在进行着这方面的研究工作。第2章 系统需求分析2.1用户需求分析随着科学技术的不断提高,计算机科学日渐成熟,电子词典也越来越受到人们的欢迎。纵观传统的文本词典,不仅查询效率不高、不易携带,而且存储容量有限;与此同时,传统词典的单词印刷出错误码率高,同时内容越来越难以满足用户的需求。而电子词典与传统文本词典相比较,有着无法比拟的优越性:多种多样的检索方式、便利的查询窗口、灵活的显示界面和连续的参见功能,无一不体现这种知识媒体的智能化和人性化特色;电子多媒体在词典中的应用,更使得单调
12、、呆板的词典变得形象生动在词典中获取知识变得轻松和快捷。当今社会的发展使人们越来越清楚地看到单词查询方面的重要性,它直接决定查询效率与质量。所以电子词典软件将在当今个人单词查询中发挥越来越重要的作用。通过对目前软件市场的分析可知,大多的传统词典,有功能方面不能满足客户的需求。因此,开发这样一套多功能电子词典系统是一件很有必要的事情。2.2可行性分析 可行性分析的目的是使用最小的代价在尽可能短的时间里确定问题是否能解决,通过复杂系统的规模与目标,研究与此类似的系统后,我具体从下面几个方面考虑:(1) 技术上的可行性电子词典的开发已有一定的时期,而且有很多成功的实例,技术基础也已经非常雄厚,因而技
13、术上的准备应该不成问题。(2) 经济上的可行性由于所开发的是个电子词典,要求并不是很高,普通的计算机都可以实现,所以从各方面来说都是可行的。(3) 操作上的可行性本系统不要求使用者对开发工具有任何了解,用户仅需按自己的需求点击自己想要进入的界面,在查询模块里输入自己所需要查询的词汇,就可以得到自己所需要的与之相关的信息。(4) 结论通过各方面条件的调查和研究,对项目的可行性做出结论,电子词典项目的开发是可行的。第3章 相关技术3.1 Qt/Embedded体系结构与框架Qt/Embedded是著名开发商Trolltech的Qt库,它于2001年发明了嵌入式系统的Qt版本,是个针对嵌入式系统的应
14、用程序的框架与类库。由于Qt的便携性相当不错,很多基于Qt的Xwindow的程序可以很容易地移植到嵌入式系统。由于Qt/Embedded被发布在GPL条款下,所以有很多的嵌入式Linux开发人员研究Qt/Embedded系统,如摩托罗拉的Linux手机 “A780” 和“E680”使用的Qt/Embedded作为其图形用户界面。就像Qt,对于Qt/Embedded来说,它也是用c+编写的。虽然它会增加系统的资源消耗,但却为开发人员提供了一个清晰的程序框架,使开发人员快速适应,而且能轻松的编写自定义用户界面程序。由于Qt/Embedded是作为产品推出的,所以它有良好的技术支持和开发团队。这是利
15、用Qt/Embedded的开发来促进开发过程的,增加了产品的可靠性。综上所述Qt/Embedded具有一下特点:(1) 与Qt一样,有相同的API开发人员只需知道Qt的API,无需关心程序所使用的平台和系统。它具有良好的便携性。(2)Qt/Embedded不需要任何额外的图形库,拥有自己的图形引擎,底层的图形驱动frameBuffer可以直接被进行操作。(3) Qt/Embedded可运行在所有流行的CPU和平台上,与硬件平台无关。支持所有主要的嵌入式Linux,Qt/Embedded的基本需要。3.2 Qt/Embedded的信号与槽机制Qt的核心机制是信号和槽,为Qt的程序奠定好了基础。信
16、号和槽是一个高层次接口,用于对象之间的通信,也是其他工具包与之区别的重要之处。Qt自己定义的信号和槽,它是一种通信机制。它独立于标准的C/C+语言,因此要正确的处理信号和槽,必须使用一个被称为moc(Meta Object Compiler)的Qt工具,这是一个C+的Qt工具预处理程器,它是一个高层次的事件处理自动生成所需要的额外代码。信号和槽可以携带任何类型的参数和任何数量,它们是完全安全的类型,不会带来系统崩溃的危险。信号与槽构造了一个很大的组件编程机制,接收信号主要利用槽,槽是普通对象的成员函数。一开始一个槽不知道自己是否可以与任何信号连接。此外,一个对象成员并不是了解具体的通信机制。单
17、个的槽可以与很多信号进行连接,也可以是多个槽与单一的信号进行连接,还可以将单个信号之间进行连接。这样,当第一个信号传输系统时将立即启动第二个信号。 3.2.1 信号与槽的连接与实现当某一个信号的所有者或拥有者内部状态发生变化,信号由一个对象发送。这个信号只可以由定义过它的类及派生类进行传输。若一个信号被传输后,将立刻执行与其相关联的槽,就好像调用一个正常的函数。所有的槽先返回后,传输函数(emit)才返回。假若存在多个与一个信号相关联的槽,则发射该信号后,这些槽将一个个被执行,值得注意的是它们执行的顺序是不确定的、随机的。信号和槽的连接原理如图2.2所示。图2.2 信号和槽的连接原理3.2.2
18、 元对象编译器moc(meta object compiler) 即元对象编译器,它是用来分析C+文件中的类声明并生产C+代码,以便用于初始化元对象。所有链接到函数的指针以及全部信号和槽的名字都包含在元对象中。moc是信号与槽机制所必要的。元对象编译器读C+的源文件时,如果发现有Q_OBJECT宏声明的类,那么它就会生成另外一个C+的源文件,这个新生成的文件中包含有该类的元对象代码。元对象编译器并没有扩展#define宏定义或#include,它仅仅是跳过所有遇到的任意预处理指令。用元对象编译器生成的C+源文件必须与类实现一起进行连接和编译,或者用#include语句将其包含到类的源文件中。3
19、.3 SQLite数据库在2000年时,开发人员开发出一种小型的嵌入式数据库即SQLite。是一个自身就完全包含数据库引擎功能的小型的C语言链接库,它在嵌入式系统中很方便的可以使用。SQLtie对SQL92提供了大多数支持,它支持索引、视图、多个表、事务等一系列用户界面和驱动程序。速度非常快,易于使用,也提供了很多的数据库接口。这个库具有很强的凝聚力,它是完全开放的源代码可以应用于所有的领域。SQLite链接库的大部分接口的实现函数都能在main.c源文件中找到,为了避免和其它程序发生冲突,接口函数都以sqlite3为前缀。SQLite有自己的高度优化的分析器和生成器,它可以快速的生产出高效率
20、的代码,而且它的新颖设计对内存溢出有着特别的抵抗力。SQLite有以下特点:(1) 源代码完全开放,不管哪个界的用户都可以免费使用; (2) 不受外部的影响,相对独立;(3) 数据库是一个完整的,且储存在单一的磁盘文件中;(4) 附有很好的源代码,并且注释的很清楚,方便用户自己学习,而且准确率达到90%以上;(5) 当电源故障和系统崩溃之后,事务的操作仍是独立的、一致的、持久的;SQLite的应用程序界面非常好用,数据库的操作也非常简单。比如排序、删除、插入、修改、查询只需简单的三个用来获得数据和执行SQL的函数。使用C语言的应用程序界面需三个步骤:1.提供所需文件以及查询的模式以便调出sql
21、ite3 open()来与数据库连接,其中这里有两个参数,一个负责打开数据库的文件名,另外一个是用来返回数据库的。2.给出一个回调函数,SQLite执行回调函数(Callback)返回到数据库所获得的结果。3.执行sqtlite3_exec( ),将回调函数的指针和SQL查询语句作为函数参数进行传递。3.4 SQLite的索引机制对于电子词典的设计,查询的速度越快越好,这样我们就研究如何才能使查询单词的效率变得更高。sqlite3是使用优化的B树即B+进行结构索引。在关键字的顺序查找方面,数据库的效率得到大大的提升。这种索引可以进行多种方式进行查询,如随机查询、规范查询等。3.4.1 B+树的
22、概念(1) 有n棵子树的结点中含有n-1个关键字,每个关键字不保存数据,只用来索引,所有数据都保存在叶子结点。(2) 你的全部关键字的数据以及包含着所有关键字的记录指针都包括在叶子结点中,并且依据全部关键字的大小叶子结点自动连接。(3) 凡是非最末端的结点都可以看作是索引部分,他们中只含其子树(根结点)中的最大(或最小)关键字。3.4.2 B+树查找B+树有两种查找方法:1. 从根结点开始进行随机查找。2.从最小关键字起顺序查找。在查找时,若非最末端的结点的关键字等于给已知值时,并非终止,则是要继续查找直到叶子结点。其次B+树也可以通过由叶子结点所组成的链表来规范查找。3.4.3 B+树插入n
23、阶B树的插入操作在叶子结点上进行,假设要插入关键值a,找到叶子结点后插入a,做如下算法判别:1. 如果当前结点是根结点并且插入后结点关键字数目小于等于m,则算法结束;2. 如果当前结点是非根结点并且插入后结点关键字数目小于等于m,则判断若a 是新索引值时转步骤4后结束,若a不是新索引值则直接结束;3. 如果插入后关键字数目大于n(阶数),则结点先分裂成两个结点X和Y,并且他们各自所含的关键字个数分别为:u=大于(n+1)/2的最小整数,v=小于(n+1)/2的最大整数;由于索引值位于结点的最左端或者最右端,不妨假设索引值位于结点最右端,有如下操作:(1) 如果当前分裂成的X和Y结点原来所属的结
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux 电子词典 设计 实现
链接地址:https://www.31ppt.com/p-2388005.html