哈夫曼编码课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计(论文)任务书
软件学院软件+电气专业 1 班
一、课程设计(论文)题目哈夫曼树及其编码
二、课程设计(论文)工作自 2015年 1 月 5 日起至 2015年 1 月 9日止。
三、课程设计(论文) 地点: 创新大楼303,305
四、课程设计(论文)内容要求:
1.课程设计的目的
为了配合《数据结构》课程的教学,使学生能更深刻的领会《数据
结构》课程的重要性,特开设此课程设计;编写一些在特定数据结构上的
算法,通过上机调试,更好的掌握各种数据结构及其特点,培养学生综合
运用所学理论知识解决复杂实际问题的实践能力、研究性学习能力和团队
合作能力。
2.课程设计的任务及要求
1)基本要求
(1)课程设计前必须选定课程设计题目,并认真进行需求分析与系统设
计;
(2)上机调试之前要认真准备实验程序及调试时所需的测试数据;
(3)独立思考,独立完成,严禁抄袭,调试过程要规范,认真记录调试
结果;
(4)上机结束后认真规范撰写课设报告,对设计进行总结和讨论。
2)课程设计论文编写要求
(1)要按照书稿的规格撰写打印课设论文
(2)论文包括任务书、目录、绪论、正文、总结、参考文献、附录等
(3)正文中要有问题描述、抽象数据类型的定义、数据的存储结构、设
计的求解算法、算法的实现、调试分析与测试结果
(4)课设论文装订按学校的统一要求完成
3)课设考核
从以下几方面来考查:
(1)考勤和态度;
(2)任务的难易程度及设计思路;
(3)动手调试能力;
(4)论文撰写的水平、格式的规范性。
4)参考文献
[1] 严蔚敏, 吴伟民. 数据结构(C语言版)[M]. 北京:清华大学出版社,
2007年.
[2] 严蔚敏, 吴伟民. 数据结构题集(C语言版)[M]. 北京:清华大学出版
社, 2007年.
[3] 谭浩强. C语言程序设计[M]. 北京:清华大学出版社,2006年.
5)课程设计进度安排
内容天数地点
构思及收集资料1图书馆
程序设计与调试3计算机房
撰写论文1图书馆
6)任务及具体要求
⑴初始化:键盘输入字符集大小n、n个字符和n个权值,建立哈夫曼树;
⑵编码:利用建好的哈夫曼树生成哈夫曼编码;
⑶输出其哈夫曼树及哈夫曼编码;
⑷设字符集及频度如下表:
字符空格 A B C D E F G H I J K L M
频度 197 64 13 22 32 103 21 15 47 57 5 1 20 32
字符 N O P Q R S T U V W X Y Z
频度 57 63 1 15 48 16 80 23 8 18 1 51 1
学生签名:
年月日
课程设计(论文)评审意见
(1)考勤和态度:优()、良()、中()、一般()、差()
(2)任务难易及设计思路:优()、良()、中()、一般()、差()
(3)动手调试能力评价:优()、良()、中()、一般()、差()
(4)论文撰写水平及规范性评价:优()、良()、中()、一般()、差()
评阅人:职称:讲师
年月日
目录
1 设计任务 (1)
2 需求分析 (1)
3 概要设计 (1)
3.1模块设计 (1)
3.2系统子程序即功能设计 (1)
4 详细设计 (2)
5 编码实现 (3)
5.1数据类型定义 (3)
5.2哈夫曼编码模块设计 (3)
5.3主程序模块 (6)
6 调试分析 (7)
7 课设总结 (9)
参考文献 (9)
附录 (10)
一设计任务
问题描述:
设计一个利用哈夫曼算法的编码系统,重复地显示并处理以下项目,直到选择退出为止。
基本要求:
⑴初始化:键盘输入字符集大小n、n个字符和n个权值,建立哈夫曼树;⑵编码:利用建好的哈夫曼树生成哈夫曼编码;⑶输出其哈夫曼树及哈夫曼编码;⑷设字符集及频度如下表:
字符空格 A B C D E F G H I J K L M
频度 197 64 13 22 32 103 21 15 47 57 5 1 20 32
字符 N O P Q R S T U V W X Y Z
频度 57 63 1 15 48 16 80 23 8 18 1 51 1
二需求分析
(1)设计哈夫曼树。具体构造方法如下:以字符集(空格 A B C D E F G H I J K N O P Q R S T U V W X Y Z L M)作为叶子结点。以各字母出现的次数即频度(197 64 13 22 32 103 21 15 47 57 5 1 20 32 57 63 1 15 48 16 80 23 8 18 1 51 1)作为叶子结点的权值构造一棵哈夫曼树。
(2)设计哈哈夫曼。按照构造出来的哈夫曼树,规定哈夫曼树的左分支为0,右分支为1,则从根结点到每个叶子结点所经过的分支对应的0和1 组成的序列便为该结点对应字符的哈夫曼编码。
三概要设计
3.1模块设计
本程序包含3个模块:主程序模块,哈夫曼编码模块,和选择模块。其调用关系如下图所示。
3.2系统子程序即功能设计
本程序共设置2个子程序,各子程序的函数名及各功能说明如