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

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构〔C++实现〕 实训报告 题 目:哈弗曼编码与译码 专 业:信息管理 班 级学 生: 吴昊翀 学 号:1251220237 指导老师:黄建灯 目录 TOC \o 1-3 \h \u 19870 一、实训要求 4 23983 二、课题分析和设计 4 31712 1. 根本需求分析 4 31315 2. 对应的结构体或类 5 26455 三、主要功能界面 7 19682 1.主界面 7 9579 2. 读取文章并对字符编码 8 4991 3. 哈弗曼编码信息 9 26791 4.文章编码 10 14261 四、 总结 12 6379 五、附录 13 一、实训要求 输入为:一段英文或中文的文章〔原文〕 对输入的文章构造哈夫曼树 生成对应的编码 输出为:原文所对应的编码〔译文〕 根据已经生成的编码表,输入任意的译文可以得到对应的原文 二、课题分析和设计 根本需求分析 1.在通信过程中,为了提高信道利用率,缩短信息传输时间降低传输本钱,需要一编码译码器。 2.此哈弗曼编码译码器应具有编码译码的双向功能,即在发送端通过编码系统对传入的数据进行编码。 3.在接收端将数据译码,将具有两项功能的编码译码器用于双工信道就可满足,双工信道的双向编译功能。 4.输入某段报文是,系统将自己完成编译输出。 程序设计流程 (1)文字表述 开始进入功能选择界面,包含五种操作: 读取文章并对字符编码。 2.哈夫曼编码信息。 3.文章编码。 4.文章译码。 5.退出程序。 〔2〕操作 1:给定一篇文章,统计字符出现的概率,并根据概率建立哈弗曼树,并利用哈弗曼树对字符进行哈弗曼编码。 2:显示哈弗曼编码信息,包括字符,字符出现的概率,哈弗曼编码。 3:对文章进行译码,显示译码信息,并保存。 4:对文章进行译码,显示并保存 〔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.文章译码 总结 为期两个星期的课程设计终于完美落下帷幕,回想起前前后后还是有苦有甜。当拿到课题是感觉还行!结果前几天做程序的代码时一点都不会做,课本也看不懂课程进度可以说是原地踏步!只能怪自己吧!老师讲的有时能听

文档评论(0)

展翅高飞2020 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档