哈弗曼编码课程设计实验报告.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文档。上传文档
查看更多
哈弗曼编码课程设计实验报告.doc

目录 实训要求……………………………………………………………………………..2 课题分析和设计……………………………………………………………………..2 基本需求分析……………………………………………………………………2,3 对应的类………………………………………………………………................3,4,5 主要功能界面………………………………………………………………………...5 主界面……………………………………………………………………………5 读取文章并对字符编码…………………………………………………………5 哈弗曼编码信息………………………………………………………………….6 文章编码………………………………………………………………………….6 文章译码………………………………………………………………………….6 错误处理………………………………………………………………………….7 总结(课设心得体会)………………………………………………………………7 附录(主要函数代码)………………………………………………………………7~14 一、实训要求 1、输入为:一段中文或英文的文章的文件名。 2、读取文章的字符信息。 3、对字符进行权值的计算。 4、根据权值构造哈弗曼树。 5、生成对应的编码。 6、输出为:原文章的编译(译文)。 7、根据已经生成的编码表,输入任意的译文可以得到原文。 二、课题分析和设计 1.基本需求分析: (1)在通信过程中,为了提高信道利用率,缩短信息传输时间降低传输成本,需要一编译码器。 (2)此哈弗曼编码译码器应具有编码译码的双向功能,即在发送端通过编码系统对传入的数据进行编码。 (3)在接收端将数据译码,将具有两项功能的编码译码器用于双工信道就可满足,双工信道的双向编译功能。 (4)输入某段报文是,系统将自己完成编译输出。 (5)、程序设计流程: 1文字表述: 开始进入功能选择界面,包含五种操作 读取文章并对字符编码。 哈夫曼编码信息。 文章编码。 文章译码。 退出程序。 2操作: 给定一篇文章,统计字符出现的概率,并根据概率建立哈弗曼树,并利用哈弗曼 树对字符进哈夫曼编码。 显示哈弗曼编码信息,包括字符和其哈弗曼编码。 对文章进行译码,显示译码信息,并保存。 对文章进行译码,显示并保存。 3流程图: 对应的类: 1定义类: class Element //结点类 { public: char name;//字符名 int weight;//字符权值 int lchild;//左孩子 int rchild;//右孩子 int parent;//父结点 Element() { weight = 0; lchild = -1; rchild = -1; parent =-1; } ~Element(){} }; 2定义字符和出现的次数: class Name //字符类 { public: char pname;//字符名 int num;//字符出现的次数 double lweight;//字符的权值 Name() { num = 0; lweight = 0; } ~Name(){} }; 3定义字符总类总数和存储信息: class GetName //关于字符类 { public: char file_name[max2];//文件名 int n; //字符的种类 int sum; //字符的总数 Name letter[max1]; //存储字符信息的类的数组 GetName() { sum = 0; n = 0; } }; 4定义编码类: class CodeNode//编码类 { public: char ch; //存储字符 char save_code[max1]; //存储编码 }; 5主要功能实现类: class Function { public: GetName L; int fn; //定义哈夫曼数组大小 Element HuffmanT[max3]; //哈夫曼数组 CodeNode Code[max1]; //字符编码数组 Function() { fn = 0; } }; 主要功能界面: 主界面: 读取文章并对字符编码: 哈弗曼编码信息: 文章编码: 文章译码: 错误处理: 总结(课设心得体会): 三周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。学会了合作,学

文档评论(0)

光光文挡 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档