哈夫曼编码译码器学院班级:信息工程学院软件1501指导教师:朱俊武小组成员:刘洋蒋佳烨冀若含本人学号:151303107报告书写:冀若含学生成绩:1/19目录一、总体介绍·····························03-04二、详细设计·····························04-11三、运行测试·····························11-12四、课设总结·····························13-13五、附录代码·····························13-192/19一、总体介绍1
1任务概述我们小组做了两个版本,其中一个为文件操作版,另一个为键盘操作版
两个版本都实现了哈夫曼编码/译码操做
我主要负责的是构造哈夫曼树,给出各个字符的哈夫曼编码,加密操做,整个键盘操作版系统的代码重组、编辑
开发的过程中使用了Codelite、Dev、Vc等软件
参考书籍为《数据结构》(c语言版)
其中文件操作版的具体实现为:能够实现对26个小写字母外加空格进行哈夫曼编码,并能够对一整篇文章(有小写字母和空格组成)进行加密,生成密码文件
最后根据生成的密码翻译出原文并存档
在使用程序时,使用者只需要对ToBetran文件进行原文的输入(使用小写字母或空格),加密和解密功能由程序自主来完成
程序运行的过程中会输出进行编码的26个小写字母和空格(字符型),并输出其对应的权值(整型)
还输出字符的编码及生成的密文
最后输出解密后的原文
键盘操作版为:要求从键盘输入字符集和字符的权值,大部分字符均可输入,需要各个字符的权值不能相同
利用输入的权值建立哈夫曼树,得到每个字符的前缀编码
输入字符串,程序对其进行加密
输入密文(1010101……………
)对密文进行解密
3/19两个版本都利用了哈夫曼树解决问题