1、
数据结构课程设计
实验报告书
姓名:
班级:12数字媒体技术二班
学号:
2014 年 06 月
赫夫曼编码/译码器
一、 实验目的
1. 进一步掌握最优二叉树的含义。
2. 掌握最优二叉树的结构特征,以及各种存储结构的特点及使用范围。
3. 熟练掌握哈夫曼树的建立和哈夫曼编码方法。
4. 掌握用指针类型描述、访问和处理运算。
二、 实验内容
编写一个哈夫曼码的编
2、/译码系统,一个完整的系统应具有以下功能:
(1) 初始化。从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树,并将它存于文件hfmTree.txt中。
(2) 编码。利用已建好的哈夫曼树,对文件ToBeTra.txt中的正文进行编码,然后将结果存入文件CodeFil.txt中。
(3) 译码。利用已建好的哈夫曼树将文件CodeFile.txt中的代码进行译码,结果存入文件Textfile.txt中。
(4) 打印哈夫曼树(Treeprinting).将已在内存中的哈夫曼树以直观的方式(比如树)显示在终端上,同时将此字符形式的哈夫曼树写入文件TreePrint.txt 中。
3、
三、 实验步骤
1. 定义结点结构,定义哈夫曼树结构;
2. 初始化哈夫曼树,存储哈夫曼树信息;
3. 定义求哈夫曼编码的函数;
4. 定义译哈夫曼编码的函数;
5. 写出主函数。
6. 测试系统。
四、 实验内容
1. 文件
工程包含两个头文件,Huffman.h用于定义显示选项菜单的相关函数,HuffmanTree.h用于定义与霍夫曼编码相关的类;包含三个cpp文件,Huffman.cpp用于实现显示选项菜单的相关函数,HuffmanTree.cpp用于实现与霍夫曼编码相关的类的成员函数等,HuffmanCode.cpp用于主函数的实现。
2. 霍夫曼编码相关
4、类
程序中将霍夫曼树结点与霍夫曼编码相关操作分别封装为类
通过对类内部数据的赋值与相关函数的操作,可以完成霍夫曼编码解码等操作
3. 选项菜单等相关函数
Init()函数用于从外部文件中加载霍夫曼树,因为树人工不好整理所以我设置了读入树的叶子结点与权值,然后内部编写函数将这两种数据整理成霍夫曼树
ChooseCode()函数用于执行从终端读取编码串,然后根据读取的霍夫曼树来解码
ChooseRecode()函数用以执行解码操作,对从终端或者从文件读取的编码串进行解码并输出
InputFromFile()函数用于从外部文件读取待解
5、码的编码串
OutputToFile()函数可以将霍夫曼树,解码后的字符串输出到外部文件中
4. 霍夫曼编码操作
编码首先从外部初始化霍夫曼树,即调用Init()函数从外部读取数据;
然后选择编码串来源,可以从外部文件读取,也可从终端输入;
最后是进行霍夫曼解码,调用HuffmanRecoding()函数;
五、 实验结果
首先在C盘下设置HuffmanTree.txt的初始值,第一行为叶子结点的值,第二行为权值
然后设置code.txt的初始值,为要解码的字符串
6、
运行程序
第一步初始化
第二步从code.txt读取编码串
第三步,解码
第四步,输出到HuffmanCode.txt文件
还可以选择从终端输入编码串然后解码,输出到外部,比如编码串000011010(lqt)
六、 实验心得
实验之后,我对于程序设计的思路又有了加深的理解,同时掌握了一定的霍夫曼编码方面的知识。在实验中犯下的错误也显示出基础掌握不够牢固的劣根,以后我定当注意。 目 录
第一章 总 论 1
一、项目概况 1
二、项目所在区域简介 1
三、报告编制依据 2
四、编制内容 3
五、简要结论 3
第二章
7、 项目建设背景及必要性 5
一、项目建设背景 5
二、项目建设必要性 5
第三章 服务对象与需求分析 8
第四章 建设内容及规模 9
一、建设内容 9
二、建设规模 9
第五章 项目选址及建设条件 10
一、项目选址 10
二、什邡市概况 10
三、建设条件 11
第六章 项目建设规划和工程方案设计 15
一、项目建设规划的指导思想、基本原则和重建目标 15
二、项目建设规划实施的保障措施 16
三、工程方案设计原则 16
四、总平面布局 17
五、建筑设计 17
六、结构设计 19
七、电气设计 21
八、给排水设计 21
九、通风及空调系统
8、 22
十、建筑装修和防护 23
第七章 节能方案 25
一、用能标准和节能规范 25
二、主要节能措施 25
第八章 环境保护与消防设计 28
一、施工期环境保护 28
二、营运期环境保护 28
三、消防设计 30
第九章、安全文明施工 33
第十章 项目建设管理机构及人力资源配置 36
一、什邡市卫生项目灾后重建项目领导机构 36
二、项目建设实施的管理机构 38
三、人力资源配置 39
第十一章 项目招投标及进度计划 40
一、招标方案 40
二、项目建设进度计划 40
第十二章 投资估算及资金筹措 42
一、投资估算范围 42
二、投资估算依据 42
三、编制说明 42
四、估算结果 43
五、资金筹措 45
第十三章 社会效益评价 46
一、项目对本地区社会影响分析 46
二、项目与本地区互适性分析 46
三、社会风险分析 48
第十四章 结论和建议 49
一、结论 49
二、建议 49
16