- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
工学系课程设计报告
设 计 题 目:哈夫曼(huffman)编译码器
系 别:
专 业 (方 向):
年 级、 班:
学 生 姓 名:
学 生 学 号:
指 导 教 师:
年 月日
目 录
哈夫曼(huffman )编译码器 3
一、 编译码器开发的背景 3
二、系统的分析与设计 3
(一)系统功能要求 3
(二)系统模块结构设计 4
三、系统的设计与实现 6
(一)main() 6
(二)运算 7
1. 权值运算quanzhi() 7
2. 印二叉树函数huffmantree( ) 7
3.编译码运算huffmancode() 9
4. 输出运算 shuchu() 9
四、系统测试 10
(一)测试主函数 10
(二)测试印二叉树函数 10
(三) 测试译码运算函数 11
五、总结 12
六、附件(代码、部分图表) 13
哈夫曼(huffman )编译码器
编译码器开发的背景
利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码(复原)。对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。
二、系统的分析与设计
(一)系统功能要求
一个完整的系统应具有以下功能:
I:初始化(Initialization)。从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树,并将它存于文件hfmTree中。
E:编码(Encoding)。利用以建好的哈夫曼树(如不在内存,则从文件hfmTree中读入),对文件ToBeTran中的正文进行编码,然后将结果存入文件CodeFile中。
D:译码(Decoding)。利用已建好的哈夫曼树将文件CodeFile中的代码进行译码,结果存入文件TextFile中。
P:印代码文件(Print)。将文件CodeFile以紧凑格式显示在终端上,每行50个代码。同时将此字符形式的编码文件写入文件CodePrin中。
T:印哈夫曼树(Tree Printing)。将已在内存中的哈夫曼树以直观的方式(树或凹入表形式)显示在终端上,同时将此字符形式的哈夫曼树写入文件TreePrint中。
(二)系统模块结构设计
通过对系统功能的分析,哈夫曼(huffman)编译码器功能如图(1)所示。
图(1)哈夫曼(huffman)编译码器功能图
通过上图的功能分析,把整个系统分为四个模块:
1.初始化模块,该模块主要实现:输入二叉树的结点数,以及要加密的句子,建立哈夫曼树。
2.输出二叉树模块,该运算模块主要实现:将输入的字符串中每个字符出现的次数当作权值,建立二叉树,将二叉树的parent,weight,lchild,rchild输出。
3.译码模块,该操作主要实现:对编码后的代码进行译码,然后输出。
4.输出模块,该操作主要进行表头的输出。
图2 流程图
三、系统的设计与实现
(一)main()
输出1.输出二叉树操作2.进行输出二叉树操作3.退出编译码操作系统,并让用户选择所进行的操作,对其调用。
该模块的具体代码如下所示:
void main()
{
int i,n,s=1;
hnodetype huffnode[maxnode];
while(s)
{
shuchu();
scanf(%d,i);
switch(i)
{
case 1:
{
haffmantree(huffnode,n);
break;
}
case 2:
{
haffmancode();
break;
}
case 3:
s=0;
break;
}
}
}
分析:首先输出一个主菜单,方便用户进行操作,用switc
您可能关注的文档
最近下载
- 26. 26个英文字母-复习课件-1字母闯关游戏(共30张PPT).pdf VIP
- 上海市职业技能等级认定试卷 模具工(四级)考场、考生准备通知单02.doc VIP
- 健康险手册使用说明.pptx VIP
- 急性心肌梗死诊断及治疗课件.ppt VIP
- 饲料添加剂项目企业经营战略手册(参考).docx
- 光伏电站项目建设方案.docx
- 数字智慧方案5496丨商业综合体地块智能化系统设计汇报方案(66页PPT).pptx VIP
- 体例格式9:工学一体化课程《小型网络安装与调试》任务1学习任务工作页.docx VIP
- 城投集团防汛防台专项应急预案(2018版).docx VIP
- 量子之年:从2025年从概念到现实报告(英文版).pdf VIP
文档评论(0)