没有合适的资源?快使用搜索试试~ 我知道了~
DB课设报告白千一、金忠信,哈夫曼压缩软件设计1
需积分: 0 1 下载量 151 浏览量
2022-08-08
22:18:45
上传
评论
收藏 2.97MB DOCX 举报
温馨提示
试读
50页
在这个背景下,我们小组决定运用哈夫曼算法,设计一款符合大众要求的小压缩工具。方案设计3.1总体功能设计3.2数据结构设计/*字母表类:class alphaTa
资源详情
资源评论
资源推荐
东北大学计算机科学与工程学院
数据结构课程设计报告
题目 哈夫曼压缩软件设计
课题组长 白千一
课题组成员 金忠信
专业名称 计算机科学与技术
班级 计 1907
指导教师 杨雷
2021 年 1 月
课程设计任务书
题目:
哈夫曼压缩软件设计
问题描述:
采用哈夫曼树求得的用于通信的二进制编码称为哈夫曼编码。
利用哈夫曼编码的数据压缩技术,设计文本格式的压缩软件或位图
格式的压缩软件。
设计要求:
设计基于哈夫曼编码的压缩软件。
(1)采用静态链表的二叉树等数据结构的类实现。
(2)创建哈夫曼树。
(3)哈夫曼编码和译码。
(4)源码、编码和压缩后的信息均以文件形式保存。
(5)软件时间和空间性能分析。
(6)基于哈夫曼编码的位图压缩软件设计(可选)。
指导教师签字:
年 月 日
目录
1、 课题概述 ...................................................................................- 1 -
1.1 课题任务...............................................................................................................................................................- 1 -
1.2 课题原理..............................................................................................................................................................- 1 -
1.3 相关知识...............................................................................................................................................................- 1 -
2、 需求分析 ...................................................................................- 1 -
2.1 课题调研..............................................................................................................................................................- 1 -
2.2 用户需求分析.....................................................................................................................................................- 2 -
3、 方案设计 ...................................................................................- 2 -
3.1 总体功能设计......................................................................................................................................................- 2 -
3.2 数据结构设计......................................................................................................................................................- 3 -
3.3 类原型设计 ..........................................................................................................................................................- 3 -
3.4 主算法设计 ..........................................................................................................................................................- 8 -
3.5 用户界面设计 ...................................................................................................................................................- 15 -
4、 方案实现 .................................................................................- 17 -
4.1 开发环境与工具...............................................................................................................................................- 17 -
4.2 程序设计关键技术 ..........................................................................................................................................- 17 -
4.3 个人设计实现 ...................................................................................................................................................- 17 -
4.3.1 白千一个人设计实现.............................................................................................................................- 17 -
4.3.2 金忠信个人设计实现.............................................................................................................................- 22 -
5、 测试和调试 .............................................................................- 25 -
5.1 个人测试 ............................................................................................................................................................- 26 -
5.1.1 白千一测试...............................................................................................................................................- 26 -
5.1.2 金忠信测试...............................................................................................................................................- 32 -
5.2 组装与系统测试...............................................................................................................................................- 35 -
6、 课题总结 .................................................................................- 42 -
6.1 课题评价 ............................................................................................................................................................- 42 -
6.2 团队协作 ............................................................................................................................................................- 42 -
6.3 下一步工作........................................................................................................................................................- 42 -
6.4 个人设计小结 ...................................................................................................................................................- 43 -
6.4.1 白千一设计小结......................................................................................................................................- 43 -
6.4.2 金忠信设计小结......................................................................................................................................- 43 -
7、 附录 .........................................................................................- 44 -
A 课题任务分工........................................................................................................................................................- 44 -
A-1 课题程序设计分工......................................................................................................................................- 44 -
A-2 课题报告分工...............................................................................................................................................- 45 -
B 课题设计文档........................................................................................................................................................- 45 -
B-1 源程序代码(见附录项目文件夹)......................................................................................................- 45 -
B-2 工程与可执行文件(见附录项目文件夹)........................................................................................- 45 -
- 1 -
1、课题概述
1.1 课题任务
利用哈夫曼编码的数据压缩技术,设计压缩软件。使用静态链表的二叉树等数据结构。
实现能够将原码文件转化成编码文件或压缩文件,并能够将其复原为原码文件的功能。实现
能够进行对文本格式和位图格式或其他合适的文件进行压缩的功能。在此基础上,拥有较好
的时间和空间性能。
1.2 课题原理
1. 哈夫曼树
哈夫曼树又称最优二叉树,是一种带权路径长度最短的二叉树。树的带权路径长度,
即树中所有的叶子结点的权值乘上其到根结点的路径长度(若根结点为 0 层,叶结点到
根结点的路径长度为叶结点的层数)。树的带权路径长度记为 WPL =
𝑛
𝑘
=
1
𝜔
𝑘
𝑙
𝑘
,n 个权
值构成一颗有 n 个叶结点的二叉树,相应的叶结点的路径长度为
𝜔
𝑘
𝑙
𝑘
。可证明哈夫曼树
的 WPL 是最小的。
2. 哈夫曼压缩
哈夫曼压缩是个无损的压缩算法,一般用来压缩文本和程序文件。哈夫曼压缩属于可
变代码长度算法一族。意思是个体符号(例如,文本文件中的字符)用一个特定长度的
位序列替代。因此,在文件中出现频率高的符号,使用短的位序列,而那些很少出现的
符号,则用较长的位序列。
1.3 相关知识
1. 二进制文件的创建、读取、写入操作
2. 数学统计
3. 哈夫曼树的建立和运用
4. 哈夫曼编码的建立和获取
5. 字节的位运算
6. C++类、文件流相关知识的熟悉掌握。
7. QT 界面类创建以及相关知识的熟悉掌握
2、需求分析
2.1 课题调研
随着计算机技术的发展,人们对文件信息的需求量逐渐增大,不光对文件个数的使用量
增加,单个文件的内存也增大到几个 G ,这种现象的产生,将导致计算机上内存的消耗过大,
剩余49页未读,继续阅读
李诗旸
- 粉丝: 22
- 资源: 329
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Flume进阶-自定义拦截器jar包
- Dubins曲线算法讲解和在运动规划中的使用.pdf
- 上市公司-股票性质数据-工具变量(民企、国企、央企)2003-2022年.dta
- 上市公司-股票性质数据-工具变量(民企、国企、央企)2003-2022年.xlsx
- Reeds+Shepp曲线算法讲解和实现.pdf
- 毕业设计基于SpringBoot+MyBatisPlus+MySQL+Vue的外卖配送信息系统源代码+数据库
- 词向量(Word Embeddings)是自然语言处理(NLP)领域的一种重要技术.txt
- Surfer,线性函数
- MyBatis 的动态 SQL 是其核心特性之一.txt
- 时代的sdddsddsddsd
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0