欢迎来到天天文库
浏览记录
ID:11190667
大小:149.63 KB
页数:23页
时间:2018-07-10
《哈夫曼编码译码器课程设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、课程设计说明书课程名称:数据结构与算法设计题目:哈夫曼编译码器院系:计算机科学与信息工程学院学生姓名:刘文杰学号:16031210229专业班级:软件工程16-2指导教师:孙高飞2017年12月11日设计题目哈夫曼编译码器限定人数3问题描述采用哈夫曼编码思想实现对字符串的编码,以及对编码的解码。字符串的长度不小于5000字节。读取要编码的文本文件,将文件的内容进行编码,生成新的文件。对编码文件进行解码,获得文本文件。将译码的文本文件和原文件进行比较,恢复文件和原文件必须完全一致。设字符集及频度如下表:字符空格ABCDEFGHIJKLM频度186641322321
2、0321154757153220字符NOPQRSTUVWXYZ频度5763151485180238181161基本要求与说明1、根据哈夫曼树编码原理,构造哈夫曼树,创建一套哈夫曼编码2、读取文本文件,并对文件内容编码,生成编码文件3、对编码文件进行译码,获得恢复文件4、比较恢复文件和原文件是否相同。课程设计任务书设计题目哈夫曼编译码器学生姓名刘文杰所在院系计算机科学与信息工程学院专业、年级、班软件工程16-2设计要求:1.根据哈夫曼树编码原理,构造哈夫曼树,创建一套哈夫曼编码。2.读取文本文件,并对文件内容编码,生成编码文件。3.对编码文件进行译码,获得恢复文件。
3、4.比较恢复文件和原文件是否相同。学生应完成的工作:1.学生应认真学习参考程序,理解每个文件、每个函数以及各个变量的作用和意义。在此基础上进一步改进程序,最后正确地运行程序。2.对程序进行测试,设计详细的测试计划,然后根据测试计划设计测试用例,对程序进行测试。测试时应注意对各种边缘情况进行测试。3.完成课程设计报告。参考文献阅读:1.严蔚敏.数据结构(C语言版).清华大学出版社,20112.谭浩强.C程序设计(第四版).清华大学出版,20103.蒋立翔.C++程序设计技能百练[M].中国铁道出版社,2004工作计划:1.小组审题,查阅资料,进行设计前的必要资料准备(
4、3天)。2.把程序完整运行出来(4天)。3.增加改进程序(3天)。4.写课程设计报告(3天)。5.提交课程设计报告及答辩(1天)任务下达日期:2017年12月01日任务完成日期:2017年12月19日指导教师(签名):学生(签名):哈夫曼编译码器摘要:采用哈夫曼编码思想实现对字符串的编码,以及对编码的解码。字符串的长度不小于5000字节。读取要编码的文本文件,将文件的内容进行编码,生成新的文件。对编码文件进行解码,获得文本文件。将译码的文本文件和原文件进行比较,恢复文件和原文件必须完全一致。关键词:构建哈夫曼树哈弗曼编码哈夫曼译码字符串编码打印编码函数目录1.设计
5、背景11.1哈夫曼树的介绍11.2设计的作用、目的11.3设计任务及要求22.设计方案22.1实验内容22.2操作思路22.3基本操作33.方案实施43.1C语言编程43.2程序介绍123.3程序流程图以及说明13图3主程序流程图134.结果与结论144.1程序运行结果144.2总结165.收获与致谢176.参考文献171.设计背景1.1哈夫曼树的介绍HuffmanTree,中文名是哈夫曼树或霍夫曼树或者赫夫曼树,它是最优二叉树。定义:给定n个权值作为n个叶子结点,构造一棵二叉树,若树的带权路径长度达到最小,则这棵树被称为哈夫曼树。(01)路径和路径长度定义:在一棵
6、树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径。通路中分支的数目称为路径长度。若规定根结点的层数为1,则从根结点到第L层结点的路径长度为L-1。(02)结点的权及带权路径长度定义:若将树中结点赋给一个有着某种含义的数值,则这个数值称为该结点的权。结点的带权路径长度为:从根结点到该结点之间的路径长度与该结点的权的乘积。(03)树的带权路径长度定义:树的带权路径长度规定为所有叶子结点的带权路径长度之和,记为WPL。1.2设计的作用、目的通过完成具体编码算法的程序设计和调试工作,提高编程能力,深刻理解信源编码、信道编译码的基本思想和目的,掌握编码的基本原
7、理与编码过程,增强逻辑思维能力,培养和提高自学能力以及综合运用所学理论知识去分析解决实际问题的能力,逐步熟悉开展科学实践的程序和方法。主要目的是加深对理论知识的理解,掌握查阅有关资料的技能,提高实践技能,培养独立分析问题、解决问题及实际应用的能力。通过课程设计各环节的实践,应达到如下要求:1.理解无失真信源编码的理论基础,掌握无失真信源编码的基本方法;2.根据哈夫曼编码算法,考虑一个有多种可能符号(各种符号发生的概率不同)的信源,得到哈夫曼编码和码树;3.掌握哈夫曼编码的优缺点;184.通过完成具体编码算法的程序设计和调试工作,提高编程能力,深刻理解信源编码、信
此文档下载收益归作者所有