数据结构应用设计设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构应用设计设计报告
题目名称:___基于哈夫曼编码的文件压缩器_
设计环境:____ __VC6.0 ____________
指导教师:_____ _蔡茂蓉______________
专业班级:______软件工程0601班__ ___
姓名:__ _ __杨文辉_____________
学号:___ ____ _____
联系电话:_ _
电子邮件:
设计日期:年月日至年月日
设计报告日期:年月日
1 .题目................................................................................................... 错误!未定义书签。
2 .需求分析........................................................................................... 错误!未定义书签。
2.1文件压缩过程:......................................................................... 错误!未定义书签。
2.2文件解压过程:......................................................................... 错误!未定义书签。
2.3压缩文件的存储结构设计图:................................................. 错误!未定义书签。
2.4HAF文件示例:...................................................................... 错误!未定义书签。
3 .详细设计........................................................................................... 错误!未定义书签。
3.1压缩流程图:............................................................................. 错误!未定义书签。
3.2解压流程图:............................................................................. 错误!未定义书签。
3.3节点类设计:............................................................................. 错误!未定义书签。
3.4编码和译码时的控制结构的实现............................................. 错误!未定义书签。
4.调试分析........................................................................................... 错误!未定义书签。
6 .测试结果........................................................................................... 错误!未定义书签。
6.1文件压缩..................................................................................... 错误!未定义书签。
6.2文件解压..................................................................................... 错误!未定义书签。
7.实验总结........................................................................................... 错误!未定义书签。
8 .参考文献........................................................................................... 错误!未定义书签。
1 .题目
基于哈夫曼编码的文件压缩器
2 .需求分析
哈夫曼编码在文件压缩中有其独特一点,它的编码方式特殊。在通信领域可以得到应用。本程序使用C++编写,在VC6.0上调试,完成了文件的读取,文件字符的统计,哈夫曼树的建立,哈夫曼编码的实现,文件转换为哈夫曼编码成为压缩文件以及文件从压缩状态进行解码。
2.1文件压缩过程:
1、找出一个待压缩文件,进行读取,并且统计其每种字节出现的频率。
2、根据已经统计的频率,进行哈夫曼树的构建。
3、对已经构建的哈夫曼树进行哈夫曼编码,将这个文件读入到一个新的文件中
4、再次读取文件并且对每一个字符编码,并继续读入到这个新的文件中,这个新的文
件就是压缩后的文件
5、压缩时函数调用关系为,使用类CHaffmanCode,所有的程度操作函数集中在该类
中。
float CHaffmanCode::OpenandCloseFile(char *OpenFile,char *CloseFile)
{//这个函数压缩函数,把所有要用的操作函数都集中在该函数中。
……
CreateHaffmanTree(hArray); //使用得到的权值构建哈夫曼树,这里用矩阵实现
EnHaffmanCode(hArray,codes);//对已经构建好的哈夫曼树的每个叶结点进行编
码
fCompre = ChangtoCode(OpenFile,CloseFile);//把所有的内容都按照编码存入一
个新文件,返回文件压缩率
return fCompre;//这是返回文件压缩率