【2017年整理】哈夫曼编码译码实训报告.docxVIP

【2017年整理】哈夫曼编码译码实训报告.docx

  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文档。上传文档
查看更多
【2017年整理】哈夫曼编码译码实训报告

实训报告题 目: 哈夫曼编码和译码 院 系: 信息科技学院专 业: 计算机科学与技术姓 名: 吴 平 学 号: 1451200205 指导教师: 邱勋拥 日 期:2016年6月29日 桂林电子科技大学信息科技学院目录一、设计目的4二、设计内容4三、概要设计4四、详细设计64.1、头文件的定义:64.2、模块接口设计:64.3、主函数main():64.4、主菜单界面:74.5、功能的执行过程:74.6、定义哈夫曼树类:104.7、哈夫曼树的建立:114.8、哈弗曼编码:124.9、哈夫曼译码:12五、测试与调试135.1、概述135.2、程序测试13六、系统维护15七、归纳总结15八、附源程序代码16哈夫曼编码译码一、设计目的通过对哈夫曼编码译码系统的设计编写原代码,深刻掌握C++语言中各个语法以及数据结构与C++的联系与结合,其中还应用了C语言的结构体的知识。函数的应用,使我们对结构体,链表,文件以及程序的操作更加熟悉。初步掌握中,大型程序设计中的各个步骤,流程,以及开发过程中遇到问题的处理方法,为以后的学习打下基础。并且通过课程设计,将上学期所学的C++程序设计以及这学期所学的数据结构的知识联系结合,培养自己的动手能力,加强相关学科之间的联系。二、设计内容本系统以哈夫曼编码译码为主要背景,设计和实现了一个小型哈夫曼编码译码器系统。主要有以下功能:系统以Dos界面显示来运行工作,界面清晰直观,便于用户操作。哈夫曼树的创建,包括双亲,左孩子、右孩子和权值。创建哈夫曼编码,输入一段字符和对应字符的权值并以.txt的形式保存在文件中。哈夫曼译码,对之前创建的编码进行译码。程序运行效果图如下图所示:三、概要设计采用模块化的程序设计方法,即将较大的任务按照一定的原则分为一个个较小的任务,然后分别设计各个小任务。需要注意的是划分出来的模块应该相对独立但又相关,且容易理解。可以用模块化层次结构图(即模块图)来分析其任务的划分,一般从上到下进行,最上面一层是主模块,下面各层是其上一层模块的逐步细化描述。本哈夫曼编码译码要求用c++语言编写实现,如图2.1所示,它由如下四大模块构成:.创建哈夫曼树:创建一个新的哈夫曼树,完成将字符初始化的操作。然后编码译码就可以读出相应的字符并进行编码译码。②.创建哈弗曼编码:在新建的哈夫曼树的基础下,对字符进行编码并保存到文件。③.进行哈夫曼译码:对之前已经进行好编码的字符进行译码。④.退出程序。开始结束结束并退出系统进行哈夫曼译码创建哈弗曼编码创建哈夫曼树按2键按0键按3键按1键启动哈夫曼编码译码系统四、详细设计4.1、头文件的定义:#includefstream //程序中要用到文件流类ofstream,ofstream是在这个中定义的#include iostream #includestdio.h#include string //系统自带的字符串库函数 ,strcpy包含在这个头文件中4.2、模块接口设计:class LinkList 定义一个链表类class HuffmanTree定义一个哈夫曼树void HuffmanTree::CreatHuffmanTree(char ch[], int w[], int n)创建哈夫曼树string HuffmanTree::Encode(char ch) 哈弗曼编码LinkListHuffmanTree::Decode(string strCode) 哈夫曼译码4.3、主函数main():main()函数主要实现了对整个程序的运行控制,以及相关功能模块的调用。int main() { char *ch;int *w,n=0;int *p=n;ch=new char[100];w=new int[100];int x;do{switch(x=actmenu()){case 1:f1(ch,w,p);break;case 2:f2(ch,w,n);break;case 3:f3(ch,w,n);break;case 4:f4(ch,w,n);break;}}while(x);coutendlendl;return 0;}4.4、主菜单界面:用户进入哈夫曼编码译码系统时,需要显示主菜单,提示用户进行选择,完成相应任务。此代码被main()函数调用。intactmenu() //主菜单{system(cls); //清屏函数int k=0;cout\n\n\n\n\n\n\t哈夫曼编码译码系统;cout\n\n**********

文档评论(0)

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

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

1亿VIP精品文档

相关文档