1、 课课 程程 设设 计计 题题 目目 Huffman 编译码器 学学 院院 管理学院 专专 业业 信息管理与信息系统 班班 级级 姓姓 名名 指导教师指导教师 2010 年 07 月 09 日 课程设计任务书课程设计任务书 题题 目:目: HuffmanHuffman 编译码器编译码器 初始条件:初始条件: 利用 Huffman 编码进行通信可以大大提高信道利用率缩短信息传输时间,降低 传输成本,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的 数据进行译码(复原) 。对于双工信道(即可以双向传输信息的信道) ,每端都需要一个 完整的编译码系统。试为这样的信息收发站写一个 H
2、uffman 码的编译码系统。 要求完成的主要任务要求完成的主要任务: : (包括课程设计工作量及其技术要求、说明书撰写等具体要求) 一个完整的系统应具有以下功能: (l)I:初始化。从终端读入字符集大小 n,以及 n 个字符和 n 个权值,建立哈夫 曼树,并将它存于文件 hfmTree 中。 (2) E: 编码。 利用已建好的 Huffman 树 (如不在内存, 则从文件 hfmTree 中读入) , 对文件 ToBeTran 中的正文进行编码,然后将结果存入文件 CodeFile 中。 (3)D:译码。利用已建好的 Huffman 树将文件 CodeFile 中的代码进行译码,结 果存入文
3、件 TextFile 中。 (4) P: 印代码文件。 将文件 CodeFile 以紧凑格式显示在终端上, 每行 50 个代码。 (5)T:印哈夫曼树。将已在内存中的哈夫曼树以直观的方式(树或凹入表形式) 显示在终端上,同时将此字符形式的哈夫曼树写入文件 TreePrint 中。 时间安排:时间安排: 序号序号 设计内容设计内容 所用时间所用时间 1 问题分析和任务定义 0.5 天 2 数据类型和系统设计 0.5 天 3 编码实现和静态检查 3 天 4 上机准备和上机调试 2 天 5 总结和整理设计报告 1 天 合 计 7 天 指导教师签名:指导教师签名: 20102010 年年 0707 月
4、月 0202 日日 系主任(或责任教师)签名:系主任(或责任教师)签名: 20102010 年年 0707 月月 0202 日日 1 1. 需求分析需求分析 1.11.1 程序的任务:程序的任务: 利用 Huffman 编码进行通信可以大大提高信道利用率缩短信息传输时间,降 低传输成本,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将 传来的数据进行译码(复原) 。对于双工信道(即可以双向传输信息的信道) ,每端 都需要一个完整的编译码系统。此程序就是为这样的信息收发站写一个 Huffman 码的编译码系统。 1.21.2 程序的输入和输出:程序的输入和输出: 从终端读入字符集大小 n,以及 n 个字符及各个字符的权值,建立赫夫曼树,并 将它存储到文件 hfmTree 中;利用已建好的赫夫曼树将文件中的字符编码,如果赫 夫曼树不在内存中,则从文件 hfmTree 中读取到内存;将译得的代码存到文件 CodeFile 中; 利用已建