哈夫曼编码译码器课程设计

哈夫曼编码译码器课程设计

ID:12830195

大小:567.60 KB

页数:21页

时间:2018-07-19

哈夫曼编码译码器课程设计_第1页
哈夫曼编码译码器课程设计_第2页
哈夫曼编码译码器课程设计_第3页
哈夫曼编码译码器课程设计_第4页
哈夫曼编码译码器课程设计_第5页
资源描述:

《哈夫曼编码译码器课程设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、滁州学院本科学年设计学年设计报告设计题目哈夫曼树的建立与实现作者姓名所学专业网络工程指导教师2011年8月23日学年设计任务书21滁州学院本科学年设计课程设计题目哈夫曼树的建立与实现组长学号班级组别第组专业网络工程组员指导教师学年设计目的通过构建哈夫曼树对数据进行压缩,以节省存储空间。从而可以用更少的内存空间来存储更多的信息,缩短信息的传递时间。学年设计所需环境WindowsXPVC++6.0学年设计任务要求⑴收集有关的资料,对如何构建哈夫曼树有了更加清晰的认识,为哈夫曼树的编写提供了基本的框架。⑵将所输入的数据信息进行编码构造成哈夫曼树。⑶代码的编写和对每段的编码的解释使得源代码更

2、具可读性。学年设计工作进度计划序号起止日期工作内容分工情况12011年8月23日~2011年8月25日编辑打开文件的函数和哈夫曼树的输出初态和终态22011年8月26日~2011年8月27日查找资料对哈夫曼树相关的类型变量的定义32011年8月27日~2011年8月28日收集图片和生成哈夫曼树并写入文件42011年8月28日~2011年8月29日编写主函数以及修改文件的编辑52011年8月29日~2011年8月29日构建哈夫曼树和收集相关资料62011年8月29日~2011年8月31日编辑代码分配任务等其他相关事宜指导教师签字:年月日教研室审核意见:教研室主任签字:年月日21滁州学院

3、本科学年设计目录1引言42需求分析43概要设计43.1设计思路及方案43.2模块的设计及介绍54详细设计84.1主调函数84.2建立HuffmanTree94.3生成Huffman树并写入文件105调试与操作说明115.1读出文本115.2输出哈夫曼树存储结构的初态125.3输出哈夫曼树存储结构的终态125.4输出哈夫曼树构成后的抽象图146学年设计总结与体会147参考文献158致谢159附录1521滁州学院本科学年设计学年设计的主要内容1引言随着当今信息技术的发展,为了方便和节省信息的存储和传递速度,人们便创建了哈夫曼编码。哈夫曼编码是将文件进行压缩的一种压缩方法。哈夫曼编码的最大

4、的功能是能够用更少的内存空间来存储更多的信息。若要对文件进行编码则必须对其建立哈夫曼树,其次对这个哈夫曼树进行编码。本学年设计的主要目标就是对如何建立哈夫曼树和如何进行编码的一个详细介绍。2需求分析问题描述:打开一篇英文文章,统计该文章中每个字符出现的次数,然后以它作为权值,对所有字符进行构建哈夫曼树。问题补充:⑴从硬盘的一个文件里读出一段英语文章;⑵统计这篇文章中的每个字符出现的次数;⑶以字符出现字数作为权值,构建哈夫曼树,并将哈夫曼树的存储结构的初态和终态进行输出。具体介绍:在E盘中预先建立一个filel.txt文档,在文档中编辑一篇文章(大写)。然后运行程序,调用fileope

5、n()函数读出该文章,显示在界面;再调用jsq()函数对该文章的字符种类进行统计,并对每个字符的出现次数进行统计,并且在界面上显示;然后以每个字符出现次数作为权值,调用ChuffmanTree()函数构建哈夫曼树,并调用print1()和print2()函数将哈夫曼的存储结构的初态和终态进行输出。3概要设计3.1设计思路及方案假设每种字符在电文中出现的次数为Wi,编码长度为Li,电文中有n种字符,则电文编码总长度为(W1*L1)+(W2*L2)+.......(Wi*Li)。若将此对应到二叉树上,Wi为叶结点,Li为根结点到叶结点的路径长度。那么,(W1*L1)+(W2*L2)+..

6、.....(Wi*Li)恰好为二叉树上带权路径长度。以n种字符出现的频率作权,构造一棵哈夫曼树。该系统将实现以下几大功能:从硬盘读取字符串,建立哈夫曼树,输出哈夫曼树的存储结构的初态和终态。3.2模块的设计及介绍⑴从硬盘读取字符串21滁州学院本科学年设计fileopen(参数){//利用此函数进行对将文件打开实现命令;打印输出;}⑵建立HuffmanTree通过三个函数来实现:voidselect(参数){//从数组中选取两个最小的字符作为//根节点的左右结点初始化;for{接受命令;处理命令;}说明:在ht[l.......k]中选择parent为0且权值最小的两个根结点的算法in

7、tjsq(参数){//统计字符的种类及其个数初始化;for{接受命令;处理命令;}}说明:统计字符串中各种字母的个数以及字符的种类voidChuffmanTree(){初始化;//利用此函数构造出哈夫曼树for{接受命令;处理命令;}输出字符统计情况;}说明:构造哈夫曼树⑶输出哈夫曼树的存储结构的初态和终态分别调用print1()和print2()来实现voidprint1(参数){//输出哈夫曼树的初态21滁州学院本科学年设计初始化;输出初态;}说明:输

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。