全球旧事资料 分类
哈夫曼编码译码器
f哈夫曼编码译码器
学院班级指导教师小组成员本人学号报告书写学生成绩
信息工程学院软件1501朱俊武
刘洋蒋佳烨冀若含151303107冀若含
227
f目录
一、总体介绍0304二、详细设计0411三、运行测试1112四、课设总结1313五、附录代码1319
327
f一、总体介绍11任务概述
我们小组做了两个版本,其中一个为文件操作版,另一个为键盘操作版。两个版本都实现了哈夫曼编码译码操做。我主要负责的是构造哈夫曼树,给出各个字符的哈夫曼编码,加密操做,整个键盘操作版系统的代码重组、编辑。开发的过程中使用了Codelite、Dev、Vc等软件。参考书籍为《数据结构》(c语言版)。其中文件操作版的具体实现为:○1能够实现对26个小写字母外加空格进行哈夫曼编码,并能够对一整篇文章(有小写字母和空格组成)进行加密,生成密码文件。最后根据生成的密码翻译出原文并存档。○2在使用程序时,使用者只需要对ToBetra
文件进行原文的输入(使用小写字母或空格),加密和解密功能由程序自主来完成。○3程序运行的过程中会输出进行编码的26个小写字母和空格(字符型),并输出其对应的权值(整型)。还输出字符的编码及生成的密文。最后输出解密后的原文。键盘操作版为:○1要求从键盘输入字符集和字符的权值,大部分字符均可输入,需要各个字符的权值不能相同。○2利用输入的权值建立哈夫曼树,得到每个字符的前缀编码。○3输入字符串,程序对其进行加密。○4输入密文(1010101……………)对密文进行解密。
427
f两个版本都利用了哈夫曼树解决问题,通过建立哈夫曼树,得出每个字符的独特前缀编码,也就是密文,然后利用密文对明文进行加密得到密文。密文转换为明文则是通过对哈夫曼树的遍历。(之前想过字符串的匹配得到明文但是算法太为复杂)。
12系统功能框图
开始
构建哈夫曼树
编码
译码
本系统分为三个大的模块:构造哈夫曼树,编码,译码。
13功能难点
本系统的实现难点在于哈夫曼树的构造。编码、译码功能的实现
都是基于哈夫曼树的。
二、详细设计
21哈夫曼树的构造
哈夫曼树,又称最优树,是一类带权路径长度最短的树,有着广
泛的应用。哈夫曼树的构造过程如下:
1初始化:根据给定的
个权值w1w2r
好听全球资料 返回顶部