欢迎来到毕设资料网! | 帮助中心 毕设资料交流与分享平台
毕设资料网
全部分类
  • 毕业设计>
  • 毕业论文>
  • 外文翻译>
  • 课程设计>
  • 实习报告>
  • 相关资料>
  • ImageVerifierCode 换一换
    首页 毕设资料网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    哈夫曼(huffman)编译码器课程设计

    • 资源ID:1427344       资源大小:174.50KB        全文页数:16页
    • 资源格式: DOC        下载积分:100金币
    快捷下载 游客一键下载
    账号登录下载
    三方登录下载: QQ登录
    下载资源需要100金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

    哈夫曼(huffman)编译码器课程设计

    1、 1 工学系课程设计报告工学系课程设计报告 设设 计计 题题 目:目:哈夫曼哈夫曼(huffmanhuffman)编译码器编译码器 系系 别:别: 专专 业业 ( (方方 向向) ): 年年 级、级、 班:班: 学学 生生 姓姓 名:名: 学学 生生 学学 号:号: 指指 导导 教教 师:师: 年年 月日月日 2 目目 录录 哈夫曼(huffman )编译码器 2 一、 编译码器开发的背景 3 二、系统的分析与设计 3 (一)系统功能要求. 3 (二)系统模块结构设计. 4 三、系统的设计与实现 5 (一)main(). 5 (二)运算. 6 1. 权值运算 quanzhi(). 6 2. 印

    2、二叉树函数 huffmantree( ). 7 3.编译码运算 huffmancode(). 8 4. 输出运算 shuchu() 9 四、系统测试 10 (一)测试主函数. 10 (二)测试印二叉树函数. 10 (三) 测试译码运算函数. 11 五、总结 12 六、附件(代码、部分图表) 12 哈夫曼哈夫曼(huffman )编译码器编译码器 3 一、编译码器开发的背景编译码器开发的背景 利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息 传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统 对待传数据预先编码,在接收端将传来的数据进行译码(复原) 。对 于双工信道(即可以双向传

    3、输信息的信道) ,每端都需要一个完整的 编/译码系统。 二、系统的分析与设计二、系统的分析与设计 (一)系统功能要求(一)系统功能要求 一个完整的系统应具有以下功能: 1) I:初始化(Initialization) 。从终端读入字符集大小 n,以 及 n 个字符和 n 个权值,建立哈夫曼树,并将它存于文件 hfmTree 中。 2) E:编码(Encoding) 。利用以建好的哈夫曼树(如不在内存, 则从文件 hfmTree 中读入) , 对文件 ToBeTran 中的正文进行编 码,然后将结果存入文件 CodeFile 中。 3) D: 译码 (Decoding) 。 利用已建好的哈夫曼树

    4、将文件 CodeFile 中的代码进行译码,结果存入文件 TextFile 中。 4) P:印代码文件(Print) 。将文件 CodeFile 以紧凑格式显示在 终端上,每行 50 个代码。同时将此字符形式的编码文件写入 文件 CodePrin 中。 4 5) T:印哈夫曼树(Tree Printing) 。将已在内存中的哈夫曼树 以直观的方式(树或凹入表形式)显示在终端上,同时将此字 符形式的哈夫曼树写入文件 TreePrint 中。 (二)系统模块结(二)系统模块结构设计构设计 通过对系统功能的分析,哈夫曼(huffman)编译码器功能如图 (1)所示。 图(1)哈夫曼(huffman)

    5、编译码器功能图 通过上图的功能分析,把整个系统分为四个模块: 1.初始化模块,该模块主要实现:输入二叉树的结点数,以及要 加密的句子,建立哈夫曼树。 2.输出二叉树模块,该运算模块主要实现: 将输入的字符串中每 个 字 符 出 现 的 次 数 当 作 权 值 , 建 立 二 叉 树 , 将 二 叉 树 的 parent,weight,lchild,rchild 输出。 初 始 化 输 出 二 叉 树 编 译 码 输 出 代 码 选 择 操 作 哈夫曼(huffman )编译码器 5 3.译码模块,该操作主要实现:对编码后的代码进行译码,然后 输出。 4.输出模块,该操作主要进行表头的输出。 图

    6、 流程图 三、系统的设计与实现三、系统的设计与实现 (一)(一)main()main() 输出 1.输出二叉树操作2.进行输出二叉树操作3.退出编译码操 作系统,并让用户选择所进行的操作,对其调用。 开始 用户选择 y=1 y=2 y=3 建立二叉树, 输 出二叉树 输入叶子节点 数 对 输 入 的 句 子进行编码 结束 否 否 是 输入句子 退出系统 输出每个字符 的编码 6 该模块的具体代码如下所示: void main() int i,n,s=1; hnodetype huffnodemaxnode; while(s) shuchu(); scanf(“%d“, switch(i) case 1: haffmantree(huffnode, break; case 2: haffmancode(); break;


    注意事项

    本文(哈夫曼(huffman)编译码器课程设计)为本站会员(毕****文)主动上传,毕设资料网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请联系网站客服QQ:540560583,我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们
    本站所有资料均属于原创者所有,仅提供参考和学习交流之用,请勿用做其他用途,转载必究!如有侵犯您的权利请联系本站,一经查实我们会立即删除相关内容!
    copyright@ 2008-2025 毕设资料网所有
    联系QQ:540560583