- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构课程设计报告--Huffman编码和文件压缩
课 程 设 计 报 告
题目: 题目三
哈夫曼编码与文件压缩
课程名称: 数据结构
专业班级:计算机科学与技术1003班
学 号:
姓 名: 鲁辰
指导教师:
报告日期: 2012.09.26
计算机科学与技术学院
目 录
1 任务书 3
2 绪言 4
2.1 课题背景 4
2.2 课题研究的目的和意义 4
2.3 国内外概况 4
2.4 课题的主要研究工作 4
3 系统设计方案的研究 5
3.1 系统的控制特点与性能要求 5
3.2 系统实现的原理 5
3.2.1 Huffman算法 5
3.2.2 Huffman编码 5
3.2.3 压缩过程 5
3.2.4 解压过程 6
3.3 系统实现方案分析 6
3.3.1 实现Huffman编码及压缩所需的变量 6
3.3.2文件名处理 7
3.3.3 实现Huffman编码及压缩过程所需要的函数 7
3.3.4 实现解压缩过程所需要的函数 8
3.3.5 输入输出 8
4 基于Huffman编码的文件压缩程序的设计 9
4.1 主模块功能介绍 9
5 系统的实现 10
5.1 目标程序运行截图 10
5.2 测试及测试数据分析 10
5.2.1 测试数据 10
5.2.2 测试数据分析 11
6 总结与展望 12
参考文献 13
附录 英文缩写词 14
1 任务书
题目三 哈夫曼编码与文件压缩
设计目的:掌握二叉树、哈夫曼树的概念,性质与存储结构,能够利用哈夫曼算法实现哈夫曼编码,并应用于文件压缩,从而提高学生综合运用知识的技能与实践能力。
设计内容:分析与设计哈夫曼树的存储结构,实现哈夫曼算法以及编码与译码基本功能,并对任意文本文件利用哈夫曼编码进行压缩得到压缩文件,然后进行解压缩得到解压文件。有兴趣的同学可以查阅资料实现Lempel-Ziv sliding window压缩方法,并与之比较。
设计要求:
(1)要求界面友好,输入文本文件可带路径(如:D:\doc\original.txt),哈夫曼算法所得到的压缩文件名为*.cod,哈夫曼树也以文件形式保存,文件名为*.hfm。
(2)显示压缩比、压缩时间、解压时间与对应的编码表。
设计提示:统计文本文件中各字符的频度并作为权值生成哈夫曼树,并利用哈夫曼树进行二进制编码。
参考文献:
[1] 严蔚敏, 吴伟民. 数据结构(C语言版). 北京: 清华大学出版社,1997
[2] 王晓东. 计算机算法设计与分析. 北京: 电子工业出版社, 2007
[3] 严蔚敏, 吴伟民, 米宁. 数据结构题集(C语言版). 北京: 清华大学出版社,1999
2 绪言
2.1 课题背景
在计算机软件应用领域,文件压缩是一项重要的技术。为了减少传输数据量或者减少存储空间,都需要将大型文件压缩成较小的文件。
2.2 课题研究的目的和意义
Huffman编码具有速度快、简单等优点,是一种很好的压缩方法。
2.3 国内外概况
1952年,David A. Huffman在麻省理工攻读博士时所发明的,并发表于《一种构建极小多余编码的方法》(A Method for the Construction of Minimum-Redundancy Codes)一文。
2.4 课题的主要研究工作
(1)通过查阅书籍并在网上查看相关论文,对Huffman编码算法有一个清晰的认识。
(2) 使用 Microsoft Visual Studio 2010 实现基于Huffman编码的文件压缩程序。
(3)通过使用各种不同的测试文件对该程序进行测试,记录并分析压缩算法的压缩比、压缩时间等数据。
(4)分析测试数据,并根据需要对代码进行优化。
3 系统设计方案的研究
3.1 系统的控制特点与性能要求
本系统是使用VS2010开发的MFC应用程序,对话框是使用MFC生成的,而对文件读写操作以及Huffman编码的算法部分是用C语言实现的。
本系统的特点是图形界面,使用简单,便于操控。
本系统不要求使用者安装Visual Studio 或者 MFC类库(?)。
3.2 系统实现的原理
3.2.1 Huffman算法
(1)根据给定的n个权值{ω1,ω2,…,ωn}构成n棵二叉树的集合F={T1,T2,…,Tn},其中每棵二叉树Ti中只有一个带权为ωi的根结点,其左右子树为空。
(2)在F中选取两棵根结点权值最小的树作为左右子树构造一棵新的二叉
文档评论(0)