云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 哈夫曼编码译码器系统

哈夫曼编码译码器系统

  • 62 次阅读
  • 3 次下载
  • 2025/7/9 9:35:20

目录

一、系统开发的背景.......................................................................................................(1) 二、系统分析与设计.......................................................................................................(1) 三、系统的设计与实现...................................................................................................(2) (一)设计初始化(Initialization).......................................................................(2) (二)设计编码(Encoding).......................................................................................(3) (三)设计译码(Decoding).......................................................................................(3) (四)设计印代码文件(Print).................................................................................(4) (五)设计印哈夫曼树(TreePrinting)...................................................................(4) 四、系统测试...................................................................................................................(5) (一)测试main函数.....................................................................................................(5) (二)测试编码(Encoding)及译码(Decoding)函数............................................(5) (三)测试印代码文件(Print)函数..........................................................................(6) (四)测试相关的根目录................................................................................................(6) 五、总结............................................................................................................................(6) 六、附件(代码、部分图表)........................................................................................(7)

哈夫曼编/译码器系统

一、系统开发的背景

为了提高信道利用率,缩短信息传输时间,降低传输成本,且在信息发送端通过一个编码系统对待传数据预先编码,在信息接收端将传来的数据进行译码(复原),因此设计哈夫曼编码/译码器系统。

二、系统分析与设计

(一)系统功能要求:

【任务要求】

I:初始化(Initialization)。从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树,并将它存于文件hfmTree中。

E:编码(Encoding)。利用以建好的哈夫曼树(如不在内存,则从文件hfmTree中读入),对文件To Be Tran中的正文进行编码,然后将结果存入文件CodeFile中。

D:译码(Decoding)。利用已建好的哈夫曼树将文件Code File中的代码进行译码,结果存入文件Text File中。

P:印代码文件(Print)。将文件Code File以紧凑格式显示在终端上,每行50个代码。同时将此字符形式的编码文件写入文件Code Prin中。

T:印哈夫曼树(Tree Printing)。将已在内存中的哈夫曼树以直观的方式(树或凹入表形式)显示在终端上,同时将此字符形式的哈夫曼树写入文件Tree Print中。 【测试数据】

利用教科书中的数据调试程序。

用下表给出的字符集和频度的实际统计数据建立哈夫曼树,并实现以下报文的编码和译码:“THIS PROGRAM IS MY FAVORITE”。

字符 频度 字符 频度 A B C D E F G H I J K 5 Y L M 186 64 13 22 32 N 57 O P Q R 48 103 21 15 47 57 1 S 51 T U V W X 32 20 Z 63 15 1 80 23 8 18 1 16 1

(二)系统模块结构设计

通过对系统功能的分析,哈夫曼编码/译码器系统功能如图1所示。

哈夫曼编码/译码器系统

初 编 译 印

始 代

化 码 码 码

图1 哈夫曼编码/译码器系统功能图

印 哈 夫 曼 树 通过上图的功能分析,把整个系统划分为5个模块:

1、初始化(Initialization),该模块主要实现:初始化要编辑的语句,然后语句里面有个调用输入编码的语句 len=InputCode(); 2、编码(Encoding),该模块主要实现:void Encoding(); 3、译码(Incoding),该模块主要实现: void Decoding();

4、印代码文件(Print),该模块主要实现:由函数

void Code_printing()

和函数void Code_printing1()实现。

5、印哈夫曼树(TreePrinting),该模块主要实现: coprint(p,HT);

三、系统的设计与实现

(一) 初始化(Initialization),该模块主要实现

void Initialization()

{ int a,k,flag,len; a=0;

len=InputCode(); for(i=0;i

cou[i-a].data=str[i]; cou[i-a].count=1; while(i>k) {

if(str[i]==str[k]) {

a++; flag=0; } k++;

if(flag==0) break; } if(flag) {

for(j=i+1;j

n=len-a;

for(i=0;i

printf(\ printf(\ }

for(i=0;i<=n;i++) {

*(z+i)=cou[i].data; *(w+i)=cou[i].count; }

搜索更多关于: 哈夫曼编码译码器系统 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

目录 一、系统开发的背景.......................................................................................................(1) 二、系统分析与设计.......................................................................................................(1) 三、系统的设计与实现...................................................................................................(2) (一)设计初始化

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com