1. 问题描述:将任意一个指定的文本文件中的字符进行哈夫曼编码,生成一个编码文件(压缩文件);反过来,可将一个压缩文件解码还原为一个文本文件.
2. 要求:
1)可设计一个菜单:
Q----Quit
L----List Text Document
D----Decoding
C----Coding
2)选择C时:
输入一个待压缩的文本文件名称(可带路径).
如:D:\lu\lu.txt
统计文本文件中各字符的个数作为权值,生成哈夫曼树;
将文本文件利用哈夫曼树进行编码,生成压缩文件.
压缩文件名称=文本文件名.COD 如:D:\lu\lu.COD
压缩文件内容=哈夫曼树的核心内容+编码序列
3) 选择D时:
输入一个待解压的压缩文件名称(可带路径 )
如:D:\lu\lu.COD
从文件中读出哈夫曼树,并利用哈夫曼树将编码序列解码;
生成(还原)文本文件.
文件文件名称=压缩文件名+"_new.txt"
如:D:\lu\lu_new.txt
4)选择L时:
输入一个待压缩的文本文件名称(可带路径).
如:D:\lu\lu_new.txt
显示出该文本文件的内容
3. 功能扩展(自己定制):
编码使用二进制位,利用位运算进行真正的数据压缩.
可对任何文件进行压缩.
显示出各种重要信息,如压缩率,各字符的哈夫曼编码表