• 大小: 375KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-01-02
  • 语言: 其他
  • 标签: 哈夫曼  

资源简介

通过编程实现仿真模拟基于哈夫曼编码的信源编码与解码过程,对于给定的源文档SourceDoc.txt, 1) 统计其中所有字符的频度(某字符的频度等于其出现的总次数除以总字符数),字符包括字母(区分大小写)、标点符号、格式控制符(空格、回车等)以及特殊字符。 2)按频度统计结果构建哈夫曼编码表,输出哈夫曼码表信息文件Statistic.txt。 3)基于哈夫曼编码表进行编码,生成对应的二进制码流,并输出到文件Encode.dat,完成信源的编码过程。 4)根据生成的哈夫曼编码表,对二进制码流文件Encode.dat进行解码,把结果输出到文件TargetDoc.txt,完成信源的解码过程。 5)判

资源截图

代码片段和文件信息


#include “mystruct.h“

int Coding(FILE *fp1HuffmanCode HCint m )
{
FILE* fp2;
if((fp2=fopen(“D:\\Encode.dat““wb“))==NULL)
{
printf(“打开文件出错\n“);
exit (0);
}
char chch1;
int ij;
int k=0;
char c=0;
fseek(fp10LSEEK_SET);   //初始化,定位到文件开头
    ch=fgetc(fp1);
while(ch!=EOF)
{
for(i=1;i<=m;i++)
{
if(ch==HC[i].c)
{
for(j=HC[i].start;j {
ch1=HC[i].bits[j];
if(ch1==‘1‘)    //如果在HC[i].bits[j]是“1”时,对应的k位为1;否则为0
{
switch(k)
{
case 0: c=c|0x80;  break;
case 1: c=c|0x40;  break;
case 2: c=c|0x20;  break;
case 3: c=c|0x10;  break;
case 4: c=c|0x08;  break;
case 5: c=c|0x04;  break;
case 6: c=c|0x02;  break;
case 7: c=c|0x01;  break;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2015-12-23 21:58  project\
     目录           0  2015-12-23 21:58  project\Backup\
     文件        1175  2015-12-23 17:54  project\Coding.cpp
     文件        1815  2015-12-23 17:54  project\Coding.o
     文件        1296  2015-12-23 17:55  project\Comparing.cpp
     文件        2353  2015-12-23 17:55  project\Comparing.o
     文件         396  2015-12-23 17:55  project\CreateList.cpp
     文件         919  2015-12-23 17:55  project\CreateList.o
     目录           0  2015-12-23 21:58  project\Debug\
     文件        7023  2015-12-23 17:09  project\Debug\main.obj
     文件      186856  2015-12-23 17:03  project\Debug\test.pch
     文件       41984  2015-12-23 17:09  project\Debug\vc60.idb
     文件       53248  2015-12-23 17:09  project\Debug\vc60.pdb
     文件        1205  2015-12-23 17:55  project\DeCoding.cpp
     文件        1926  2015-12-23 17:55  project\DeCoding.o
     文件         595  2015-12-23 17:57  project\Frequent.cpp
     文件        1046  2015-12-23 17:57  project\Frequent.o
     文件        2268  2015-12-23 18:00  project\HuffmanCoding.cpp
     文件        2012  2015-12-23 18:00  project\HuffmanCoding.o
     文件        1296  2015-12-23 17:59  project\main.cpp
     文件         463  2015-12-23 23:41  project\main.dev
     文件        3377  2015-12-23 17:07  project\main.dsp
     文件         516  2015-12-23 17:08  project\main.dsw
     文件      142448  2015-12-23 18:00  project\main.exe
     文件         717  2015-12-23 23:41  project\main.layout
     文件       41984  2015-12-23 17:10  project\main.ncb
     文件        2538  2015-12-23 17:59  project\main.o
     文件       53760  2015-12-23 17:10  project\main.opt
     文件        2238  2015-12-23 17:09  project\main.plg
     文件        6244  2015-12-23 21:58  project\main.vcxproj
     文件        1009  2015-12-23 23:41  project\Makefile.win
............此处省略8个文件信息

评论

共有 条评论