9.综合报告_基于windows下的QT字典设计与实现_第1页
9.综合报告_基于windows下的QT字典设计与实现_第2页
9.综合报告_基于windows下的QT字典设计与实现_第3页
9.综合报告_基于windows下的QT字典设计与实现_第4页
9.综合报告_基于windows下的QT字典设计与实现_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

南昌航空大学东软班 综合报告1基于 Qt 的跨平台的电子词典设计与实现关键词:字典 跨平台 C/S 结构 BOOST QT摘要:国内有金山,有道等 Windows 下很强大的电子词典,他们的主要功能有:中英查询,英中查询,例句显示,朗读,其他语言查询等;当今网络字典也越来越盛行,因为其具有良好的跨平台与节省容量性。随着手机的流行,手机电子词典也日趋占领了电子词典的主导地位,手机词典的优势是方便灵活。但是在国内,各种电子字典存在以下问题:以英文为主的 Linux 操作系统下,没有一款使用方便的;内存占用率高导致手机等移动设备出现使用不流畅;对于断网的情况下不能很好的使用。随着十八大报告中提出信息化与工业化的结合,LINUX 等英文软件将会逐步走入国人生活,一款跨平台的,内存占用率低的,本地词典就是迫切需求了。Abstract:It is strong and powerful that the dictionary , like the Kingsoft dictionary and the Youdao dictionary, is in China.The major function of these productions involve : to search the English by Chinese and its contour operation,the example sentence showing,to read aloud and to search the other languages rather than English and Chinese.With the advance of the cyber dictionary,it is high time that we need a dictionary that is cross platform ,to save memory.With the mobile phone ,especially the smart phone,occupying a dominant role ,the dictionary in mobile phone of which preponderance is convenient has increased in our life.Nevertheless, many issues hade in those dictionaries.The Linux system ofter use English but there ist any excellent production in Linux;the high occupation of memory lead the software isnt enough fluent in mobile phone;many dictionary ofter disuse without the network .With the 18th National Congress of the Communist Party of China insisting the informatization and the industrialization,the english software ,like linux, will enter into our life,a dictionary that is cross platform and efficient being necessary. 正文:南昌航空大学东软班 综合报告2一开发背景国内有金山,有道等 Windows 下很强大的电子词典,他们的主要功能有:中英查询,英中查询,例句显示,朗读,其他语言查询等;当今网络字典也越来越盛行,因为其具有良好的跨平台与节省容量性。随着手机的流行,手机电子词典也日趋占领了电子词典的主导地位,手机词典的优势是方便灵活。有道词典是网易有道推出的词典相关的服务与软件。 基于有道搜索引擎后台的海量网页数据以及自然语言处理中的数据挖掘技术,大量的中文与外语的并行语料(包括词汇和例句)被挖掘出来,并通过网络服务及桌面软件的方式让用户可以方便的查询。金山词霸是一款免费的词典翻译软件。由金山公司 1997 年推出第一个版本,经过 17年锤炼,今天已经是上亿用户的必备选择。它最大的亮点是内容海量权威, 收录了 141 本版权词典,32 万真人语音,17 个场景 2000 组常用对话。强烈建议您在阅读英文内容、写作、邮件、口语、单词复习等多个应用使用它。 最新版本还支持离线查词,电脑不联网也可以轻松用词霸!但是在国内,各种电子字典存在以下问题:以英文为主的 Linux 操作系统下,没有一款使用方便的;内存占用率高导致手机等移动设备出现使用不流畅;对于断网的情况下不能很好的使用。随着十八大报告中提出信息化与工业化的结合,LINUX 等英文软件将会逐步走入国人生活,一款跨平台的,内存占用率低的,本地词典就是迫切需求了。二产品特点1.跨平台性:跨平台概念是软件开发中一个重要的概念,即不依赖于操作系统,也不信赖硬件环境。一个操作系统下开发的应用,放到另一个操作系统下依然可以运行。相对而言如果某种计算机语言不用修改代码即可做到高度跨平台,那么此语言就越抽象,硬件控制力就越低,只适合开发高度抽象的模型系统。诸如 java,delphi 和易语言,都已做到了跨平台。它们将可以在多种系统下开发,运行和维护。本软件服务器端逻辑模块运用 BOOST 库的多线程,ASIO 通讯,LOCAL 本地化,智能指针模块。兼容 LINUX、WINDOWS、MACOS 、UNIX 等主流操作系统。Boost 库是一个可移植、提供源代码的 C+库,作为标准库的后备,是 C+标准化进程的开发引擎之一。 Boost 库由 C+标准委员会库工作组成员发起,其中有些内容有望成为下一代 C+标准库内容。在 C+社区中影响甚大,是不折不扣的“准” 标准库。Boost 由于其 南昌航空大学东软班 综合报告3对跨平台的强调,对标准 C+的强调,与编写平台无关。大部分 boost 库功能的使用只需包括相应头文件即可,少数(如正则表达式库,文件系统库等)需要链接库。但 Boost 中也有很多是实验性质的东西,在实际的开发中实用需要谨慎。boost 在一些播放软件和音效中指增强,比如 Bass Boost,低音增强。服务器数据模块使用 SQLITE3 数据库,在 UTF 编码操作系统下直接运行同时效率较高,在 WINDOWS 以 GBK 为系统编码的操作系统下会实现自动转码,运行效率稍逊。SQLite,是一款轻型的数据库,是遵守 ACID 的关系型数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百 K 的内存就够了。它能够支持 Windows/Linux/Unix 等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、 C#、PHP、Java 等,还有 ODBC 接口,同样比起 Mysql、PostgreSQL 这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。SQLite 第一个 Alpha 版本诞生于 2000 年 5 月。 至今已经有 13 个年头,SQLite 也迎来了一个版本 SQLite 3 已经发布。服务器 WEB 模块。由于考虑到本软件的数据量有限,必须借助网络上已有的一些免费在线翻译 API 来实现单词的扩充,C+中 STL 与 BOOST 都没有很好的实现 WEB 通讯的功能,所以借助 PYTHON 脚本语言( PYTHON 是一门可移植的脚本语言)来实现轻量级的 WEB 访问。访问的接口由有道提供,在此特别感谢有道对开发者提供的诸多便利。Python, 是一种 面向对象、解释型 计算机程序设计语言,由 Guido van Rossum 于 1989年底发明,第一个公开发行版发行于 1991 年。Python 语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够很轻松的把用其他语言制作的各种模块(尤其是C/C+)轻松地联结在一起。常见的一种应用情形是,使用 Python 快速生成程序的原型(有时甚至是程序的最终界面) ,然后对其中有特别要求的部分,用更合适的语言改写,比如 3D 游戏 中的图形渲染模块,性能要求特别高,就可以用 C+重写。由于它的开源本质,Python 已经被移植在许多平台上(经过改动使它能够工作在不同平台上) 。这些平台包括Linux、 Windows、 FreeBSD、Macintosh、Solaris、OS/2、Amiga 、AROS 、AS/400、BeOS、OS/390、z/OS 、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE、PocketPC、Symbian 以及 Google 基于 linux 开发的 android 平台。客户端 UI 模块使用 Qt 完成图形界面的显示,兼容LINUX、 WINDOWS、MACOS、UNIX、Symbian OS 等系统。南昌航空大学东软班 综合报告4Qt 是一个 1991 年由奇趣科技开发的跨平台 C+图形用户界面应用程序开发框架。它既可以开发 GUI 程式,也可用于开发非 GUI 程式,比如控制台工具和服务器。Qt 是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,易于扩展,允许组件编程。Qt 支持下列操作系统: Microsoft Windows 95/98, Microsoft Windows NT, Linux, Solaris, SunOS, HP-UX, Digital UNIX (OSF/1, Tru64), Irix, FreeBSD, BSD/OS, SCO, AIX, OS390,QNX 等等。客户端语音模块使用 Qt 第三方扩展库 Qt Speech 实现,在 Windows 系统下依附Microsoft Speech SDK(SAPI) ,在 LINUX/UNIX 下依附 Festival 库,在 MAC OS 下依附SpeechSynthesis 库。SAPI,软件中的语音技术包括两方面的内容,一个是语音识别(speech recognition) 和语音合成(speech synthesis)。这两个技术都需要语音引擎的支持。软件中的语音技术包括两方面的内容,一个是语音识别(speech recognition) 和语音合成(speech synthesis)。这两个技术都需要语音引擎的支持。微软推出的应用编程接口 API,虽然不是业界标准,但是应用比较广泛。SAPI 全称 The Microsoft Speech API.相关的 SR 和 SS 引擎位于 Speech SDK 开发包中。这个语音引擎支持多种语言的识别和朗读,包括英文、中文、日文等。2.内存占用率低内存占用率指的是此进程所开销的内存。占内存大的程序不一定会占用很多的 CPU 资源,而占 CPU 大的程序也不一定开销太大的内存。某一程序的 CPU 占用率过高会影响其他程序的运行。而某一程序占用内存过大,会影响机器的整体性能。服务器含单词量为 36,671 个,索引表占用内存仅为 3,105,029 字节,包括逻辑代码的内存申请,0 用户连接的情况下内存占用为 49,256KB47,448 KB。每增加一个用户,内存占用量增加 40KB28KB。客户端内存平均占用量为 12,856KB。相对于有道词典而言,YoudaoDictHelper.exe 进程相当于服务器,本地单词量为 20,000内存占用总量为 30,324KB,YoudaoDict.exe 进程相当于客户端,内存占用量为 14,152KB。3.硬盘容量占用小硬盘容量的单位为兆字节(MB)或千兆字节(GB) ,目前的主流硬盘容量为500G2TB ,影响硬盘容量的因素有单碟容量和 碟片数量。许多人发现,计算机中显示出南昌航空大学东软班 综合报告5来的容量往往比硬盘容量的标称值要小,这是由于不同的单位转换关系造成的。我们知道,在计算机中 1GB=1024MB,而硬盘厂家通常是按照 1GB=1000MB 进行换算的。 硬盘是个人电脑中存储数据的重要部件,其容量就决定着个人电脑的数据存储量大小的能力,这也就是用户购买硬盘所首先要注意的参数之一。服务器应用程序大小为 2.39 MB,数据库文件大小为 2.62 MB,索引表大小为 2.96 MB。总共占用为量为 7.97MB。客户端应用程序大小为 20.2 MB。4.界面友好界面友好一般指软件而言,界面友好概念应该软件界面给人感观印象介绍吧,说软件界面给人感觉美观, 舒适, 大方,信,种赞扬之语。 Windows 是以图形界面方式操作的,因为你可以用鼠标来点击按钮来进行操作,很直观。而 DOS 就不具备 GUI,所以他只能输入命令。对于客户端而言,充分运用了 Qt 的特性,界面代码和逻辑代码分离的编写方式,使得皮肤设置异常简单,同时支持不规则窗口的构建。如果需要换客户端的皮肤,只需要懂得PS 与 CSS(QSS )就可。5.输入优化由于考虑到当前字典都有一个公共的问题就是浪费查询量。所谓的浪费查询量就是当用户查询 apple 这个单词时,现在大部分字典的实现机制都是 a 到 e 每个字母后都进行一次查询并列出用户可能输入的查询结果。但是很明显,用户的输入速度决定了他所想查询的单词的有效位。所以本程序对输入做了优化,当用户在 0.3 秒的间隔内输入 a 到 e 之间的字母时,客户端是只接收不查询的,当用户输入间隔超过 0.3 秒时才会进行查询,这样的好处是大大减少了 CPU 的占用率并且使得输入的流畅性得到了保障。6.数据加载优化本程序运用期值的异步加载方式实现索引表的加载,这样的好处就是可以保证加载时不阻塞程序,只有当程序需要用加在变量时才会去查看变量是否加载完毕,加载完毕则直接运行,未加载完则大大缩短了等待时间。7.安全优化软件安全(Software Security)就是使软件在收到恶意攻击的情形下依然能够继续正确运行及确保软件被在授权范围内合法使用的思想。服务器端几乎所有动态申请的同时要长时间保留在堆空间的变量都使用了智能指针,这可以有效防止内存泄漏。同时对于客户端的异常数据或长时间未有任何请求的客户端,南昌航空大学东软班 综合报告6服务器将直接终止与客户端的对话并回收客户端占用内存,保证服务器的稳定性防止客户端的误操作异常或恶意攻击。8.易于维护性软件的可维护性是指理解、改正、改动、改进软件的难易程度。软件维护就是指在软件交付使用之后直至软件被淘汰的整个时期内为了改正错误或满足新的需求而修改软件的活动。本软件服务器端的设计运用了工厂模式,代理模式与前摄器模式。保证了服务器功能的扩展性。同时考虑到本服务器的搜索功能不仅限于查询中英文,所以没有用宽字符的方式去实现单词编码,而使用了自定义的编码方式,之后的开发者可以很容易的添加规则来实现不同编码方式,不同字节大小的信息查询。3 设计灵感本软件主要功能为蜘蛛爬网,动态搜索思想。对于大数据量的单词,本软件需要找出单词之间的联系并把相关单词编织成一张网,用户就如蜘蛛一样搜索这张网来获得对其有用的信息。搜索过程中网会动态增长同时蜘蛛可以观察到当前所在位置的周围(相似或相关单词)细节,来选择继续爬行的方向,同时对于临时改变的搜索条件,蜘蛛会记录自己爬过的每个位置,再退回与改变条件发生出路的位置,进行继续搜索。四技术架构图一.软件总体架构南昌航空大学东软班 综合报告7软件运用 C/S 架构 (服务器客户端架构)实现,优点有如下:1 数据冗余度小单词索引表数据只需要服务器端一份可供多用户同时查询2 实施灵活客户仅需要安装部署客户端即可实现软件功能3 管理集中多用户查询数据共享,方便词库扩展错误信息更正S T L 标准模版库词典服务器B O O S T 准标准库图二.服务器端技术架构服务器运用 C+标准模版库完成索引表结构组建的主要功能,使其高效的完成核心算法的实现。运用 BOOST 库的 THREAD 和 ASIO 模块完成多线程和 SOCKET 通讯,本多线程与网络通讯机制是高效可移植的,不依赖于任何版本的 LINUX 或 WINDOWS 系统,服务器数据库使用 SQLITE3 轻量级数据库,对于移植性支持较好。S T L 标准模版库词典客户端界面B O O S T 准标准库Q t 库图三.客户端技术架构客户端运用与服务端相同的 BOOST ASIO 实现通讯机制,实现了通讯模块的可分离,方便做不同版本的(如:桌面版,控制台版,远程操作版)客户端,同时对于桌面版的窗口实现,运用了 Qt 界面库,界面不仅美观大方,而且可移植性,灵活性,更改性高。五软件数据结构索引表为树状索引表(见下图四) ,切可扩展其他结构索引表。南昌航空大学东软班 综合报告8图四.索引表图四中,左侧为数据库中存储的单词的真实样貌,右侧为八个单词生成的索引表的样子。绿色方框为有效(数据库中存在对应数据)节点,蓝色为无效节点。这样的数据结构的好处有如下:1 节省空间,最有效的压缩节点存储容量。使用前缀编码的方式,灵感来源于哈夫曼树。2 查找效率高。通过树状存储的节点比线性存储的节点查找效率高,同时每个节点的子节点都是按照编码的二进制值排序的,查找可使用则半查找,效率最高。3 精确度高。树状存储的好处是相似节点分布密集,对于任何一个用户想查找的值其给出集合都是正态分布的。6 系统测试结果测试环境如下:(1 ) 实时室温:14 (2 ) 电源:220V(3 ) 机器数量:一台(4 ) A 机器配置:图五.机器配置图南昌航空大学东软班 综合报告9(5 ) A 机器实时温度:图六.机器实时温度(6 ) 测试方式为:运用控制台

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论