资源简介
通过编程实现仿真模拟基于哈夫曼编码的信源编码与解码过程,对于给定的源文档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个文件信息
评论
共有 条评论