1 / 26
文档名称:

哈弗曼编码译码器实验报告[1].doc

格式:doc   大小:132KB   页数:26页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

哈弗曼编码译码器实验报告[1].doc

上传人:小枷 2019/3/6 文件大小:132 KB

下载得到文件列表

哈弗曼编码译码器实验报告[1].doc

相关文档

文档介绍

文档介绍:《数据结构》实验报告班级:___姓名:__闫阳辉____学号:_64________E-mail::_◎实验题目:哈弗曼编码译码器◎实验目的:练****树的使用◎实验内容:给定(也可自己定相关内容)一、需求分析输入的形式;按照计算机界面的相关提醒进行操作输出的形式;;;二概要设计抽象数据类型定义typedefstruct{ charzifu; intweight; intparent,lchild,rchild;}HFNode,*Huffmantree;//数组元素的类型typedefchar**Huffmancode;//存放每个字符的哈弗曼编码基本操作哈弗曼编码器voidOPEN_FILE()///打开源文件voidJISUAN_weight();//计算权值voidhuffmancoding()//创建哈弗曼树和编码并保存哈弗曼编码voidJIAMI_file()//对电文进行编码voidSAVE_miwen()///保存密文voidSAVE_haffuman()////保存哈弗曼编码voidSAVE_quanzhi()////保存权值voidSelect(HuffmantreeHT,intj,int&s1,int&s2)哈弗曼译码器voidOPEN_weight()////打开权值文件voidOPEN_miwen()//打开密文voidSelect(HuffmantreeHT,intj,int&s1,int&s2)voidtranslate()//翻译密文voidhuffmancoding()//创建哈弗曼树和编码弗并保存哈曼编码主程序模块扫描字符求得权值进行哈弗曼编码对文件进行加密密文进行解密三详细设计 1. 抽象数据类型定义typedefstruct{ charzifu; intweight; intparent,lchild,rchild;}HFNode,*Huffmantree;//数组元素的类型typedefchar**Huffmancode;//存放每个字符的哈弗曼编码      :哈弗曼编码器保存密文voidSAVE_miwen()///////////////////////////////////////////用来保存加密后飞的文件{ FILE*fp; charch; char*p; charfilename[20]; printf("请输入要保存到的密文的名称\n"); scanf("%s",filename);//写入磁盘的文件名file3 if((fp=fopen(filename,"w"))==NULL) { printf("cannotopenfile"); exit(0);//终止程序 } ch=getchar();//此语句用来接收在执行scanf语句时最后输入的回车符p=str2;while(*p!='\0') { fputc(*p,fp); //putchar(ch); p++; } //*p='\0'; //fputc(*p,fp);/////把'\0'存储在相应的文件中 fclose(fp);}保存哈弗曼编码voidSAVE_haffuman()//保存哈弗曼编码{ FILE*fp; charch; char*p; intk; charfilename[20]; printf("请输入用来保存哈弗曼编码的文件名\n"); scanf("%s",filename);//写入磁盘的文件名 if((fp=fopen(filename,"w"))==NULL) { printf("cannotopenfile"); exit(0);//终止程序 } ch=getchar();//此语句用来接收在执行scanf语句时最后输入的回车符 for(k=1;k<=num;k++) { p=HC[k]; while(*p!='\0') {fputc(*p,fp); p++; } //*p='\n';//////////////////////////////////////////////////////////////////////////////////经典的错误fputc('\n',fp);//////////分行存储哈弗曼编码 }//fputc('@',fp);/////////将哈弗曼编码存储文件2中 fclose(fp); printf("你已成功保存字符的哈弗曼对应编码文件\n");}保存权值voidSAVE_quanzhi()//保存权值{ FILE*fp; intk; charfilename[20]; printf("请输入用来保存字符权值的文件名\n"); scanf("%s",fil