哈弗曼编码译码(C++实现).doc

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构(C++实现) 实训报告 题 目:哈弗曼编码与译码 专 业: 信息管理 班 级: 学 生: 吴昊翀 学 号: 1251220117 指导老师: 黄建灯 目录 一、实训要求 4 二、课题分析和设计 4 1. 基本需求分析 4 2. 对应的结构体或类 5 三、主要功能界面 7 1.主界面 7 2. 读取文章并对字符编码 8 3. 哈弗曼编码信息 9 4.文章编码 10 四、 总结 12 五、附录 13 一、实训要求 输入为:一段英文或中文的文章(原文) 对输入的文章构造哈夫曼树 生成对应的编码 输出为:原文所对应的编码(译文) 根据已经生成的编码表,输入任意的译文可以得到对应的原文 二、课题分析和设计 基本需求分析 1.在通信过程中,为了提高信道利用率,缩短信息传输时间降低传输成本,需要一编码译码器。 2.此哈弗曼编码译码器应具有编码译码的双向功能,即在发送端通过编码系统对传入的数据进行编码。 3.在接收端将数据译码,将具有两项功能的编码译码器用于双工信道就可满足,双工信道的双向编译功能。 4.输入某段报文是,系统将自己完成编译输出。 程序设计流程 (1)文字表述 开始进入功能选择界面,包含五种操作: 读取文章并对字符编码。 2.哈夫曼编码信息。 3.文章编码。 4.文章译码。 5.退出程序。 (2)(3) 对应的结构体或类 (1) class Htnote { public: char name; //字符名 double weight; //权重 int lchild; //左孩子 int rchild; //右孩子 int parent; //父亲 Htnote() { weight = 0; lchild = -1; parent = -1; rchild = -1; } }; (2) class Name { public: int num; //字符出现的次数 char pname; //字符名 double lweight; //权值 Name() { num = 0; lweight = 0; } }; (3) class GetName { public: char namef[max2]; int n; //字符的种类 int sum; //字符的总数 Name letter[max1]; //存储字符信息的类的数组 GetName() { sum = 0; n = 0; } 定义编码类 class CodeNode//编码类 { public: char ch; //存储字符 char bits[max1]; //存储编码 }; class Function { public: GetName L; int fn; //定义哈夫曼数组大小 Htnote HuffmanT[max3]; //哈夫曼数组 CodeNode Code[max1]; //字符编码数组 Function() { fn = 0; } 三、主要功能界面 1.主界面 读取文章并对字符编码 哈弗曼编码信息 4.文章编码 5.文章译码 总结 为期两个星期的课程设计终于完美落下帷幕,回想起前前后后还是有苦有甜。当拿到课题是感觉还行!结果前几天做程序的代码时一点都不会做,课本也看不懂课程进度可以说是原地踏步!只能怪自己吧!老师讲的有时能听懂有时就听不懂,到头来今天的局面,当时以为自己完成不了任务。过程中甜的是有老师和同学的帮忙,总算圆满完成任务。通过本次实训让我重新学习了算法和数据结构这门课程,也懂得了用代码来建立哈弗曼树,编码译码双向功能! 上机实验,将理论的知识与实际结合起来。增强了自己的动手能力,觉的任何知识都不是轻而易举的学懂,必须花点心思去学,必须要付出努力。以后上课就不能像以前那样,要好好学习这样不辜负老师对我们的心意。最后衷心感谢帮助我完成程序设计的老师和同学表示感谢! 五、附录 全部代码: #ifndef HUFFMANFUNCTION_H #define HUFFMANFUNCTION_H #include cstdlib #in

文档评论(0)

三四五 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档