简易英汉词典 下载本文

图6-3 单词查不到测试图

图6-4 确定插入测试图

- 19 -

图6-5 单词插入测试图

图6-1 单词插入后测试图

- 20 -

7、存在的不足与对策

(1)从软件容错技术考虑:本程序采用MFC中调用消息框对没查到的单词进行选择处理,要么实现插入要么取消,重新输入。

提高软件质量和可靠性的技术大致分为两类,一类是避开错误(fault-avoidance)技术,即在开发的过程中不让差错潜入软件的技术;另一类是容错(fault-tolerance)技术,即对某些无法避开的差错,使其影响减少至最小的技术。

容错软件的定义,有以下四种:

①规定功能的软件,在一定程度上对自身错误的作用(软件错误)具有屏蔽能力,则称此软件为具有容错功能的软件,即容错软件。

②规定功能的软件,在一定程度上能从错误状态自动恢复到正常状态,则称之为容错软件。

③规定功能的软件,在因错误而发生错误时,仍然能在一定程度上完成预期的功能,则把该软件称为容错软件。

④规定功能的软件,在一定程度上具有容错能力,则称之为容错软件。 容错的一般方法:结构冗余。

①静态冗余。常用的有:三模冗余TMR(Triple Moduler Redundancy)和多模冗余。

②动态冗余。动态冗余的主要方式是多重模块待机储备,当系统检测到某工作模块出现错误时,就用一个备用的模块来顶替它并重新运行。

③混合冗余。它兼有静态冗余和动态冗余的长处。

为检测或纠正在运算或传输中的错误须外加一部分,这种现象称为冗余。 时间冗余是指以重复执行指令(指令复执)或程序(程序复算)来消除瞬时错误带来的影响。

冗余附加技术是指实现上述冗余技术所需的和技术。 通过各种冗余技术可以实现容错处理。 容错系统的设计过程包括以下设计步骤:

①按设计任务要求进行常规设计,尽量保证设计的正确。

按常规设计得到非容错结构,它是容错系统构成的基础。在结构冗余中,不论是主模块还是备用模块的设计和实现,都要在费用许可的 条件下,用调试的方法尽可能提高可靠性。

②对可能出现的错误分类,确定实现容错的范围。

对可能发生的错误进行正确的判断和分类,例如,对于硬件的瞬时错误,可以采用指令复执和程序复算;对于永久错误,则需要采用备份替换或者系统重构。对于软件来说,只有最大限度地弄清错误和暴露的规律,才能正确地判断和分类,实现成功的容错。

③按照“成本——效率”最优原则,选用某种冗余手段(结构、、时间)来实现对各类错误的屏蔽。

④分析或验证上述冗余结构的容错效果。如果效果没有达到预期的程度,则应重新进行冗余结构设计。如此反复,直到有一个满意的结果为止。

(2)词典算法的不足:从特色算法各方面的分析可以进一步进行优化,考虑到本词典并非功能十分强大,数据量一般,故采用原来的算法效率是很高,当数据量不断增大,词典功能变得跟强大时,该算法会变得不适应,此时可以研究并实现更优的算法,具体分析如下:

- 21 -

①词典散列索引

②词典散列索引的检索算法

? 利用散列(hash)函数直接定位 ? 效率高:常数 ? 不能按前缀查找 ? 冲突的解决

? 使用冲突队列 ? 使用再散列

? 散列函数(hash)的选择

? 算法改进:逐词散列,可以实现按前缀查找 ③词典分级索引

? 将词语分成若干部分,为每一部分分别建立索引

? 在分级索引中,每一级索引都可以采用各种不同的索引和查找算法 ? 对于汉语而言,第一级索引一般使用词语的首字,所以又常称为首字索

? 汉语的首字数量有限,可以使用直接定位法,效率最高,空间也不大 ④词典按首字顺序索引

- 22 -