实验模板——哈夫曼编译码系统

实验模板——哈夫曼编译码系统

ID:15007341

大小:358.50 KB

页数:10页

时间:2018-07-31

实验模板——哈夫曼编译码系统_第1页
实验模板——哈夫曼编译码系统_第2页
实验模板——哈夫曼编译码系统_第3页
实验模板——哈夫曼编译码系统_第4页
实验模板——哈夫曼编译码系统_第5页
资源描述:

《实验模板——哈夫曼编译码系统》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、闽江学院电子系实验报告学生姓名:班级:学号:课程:数据结构与算法一、实验题目:哈夫曼编/译码系统的设计与实现二、实验地点:计算机软件与网络实验室-实验楼A210三、实验目的:1.理解哈夫曼树的特征及其应用;2.在对哈夫曼树进行理解的基础上,构造哈夫曼树,并用构造的哈夫曼树进行编码和译码;3.通过该实验,使学生对二叉树的构建、遍历等以及哈夫曼编码的应用有更深层次的理解。四、实验内容:1.初始化:从数据文件DataFile.data中读入字符及每个字符的权值,建立哈夫曼树HuffTree;2.编码(

2、EnCoding):用已建好的哈夫曼树,对输入的文本进行编码形成报文并输出;3.译码(Decoding):利用已建好的哈夫曼树,对输入的代码进行解码形成原文并输出;4.输出:输出字符以及各字符出现的频度(或概率);一、实验环境(使用的软硬件):利用VisualC++集成开发环境进行本实验的操作。二、实验步骤及操作:1.启动VC++,新建工程/Win32ConsoleApplication,选择“AnEmptyProject”建工程名为“哈夫曼编/译码系统”;2.新建/C/C++HeaderFol

3、e,文件名保存为“HuffmanUse.c”,选中菜单“addtoproject”;3.程序如下:…………………………………….《3》.开始界面设计voidStart_Screen(){printf("");printf("t********************************t");printf("t**t");printf("t***哈夫曼编译码系统***t");printf("t**t");pintf("t*1.构建哈夫曼树及哈夫曼

4、编码*t");printf("t**t");printf("t*2.将输入的文本编译为报文*t");printf("t**t");printf("t*3.将输入的报文编译为文本*t");printf("t**t");printf("t*4.退出系统*t");printf("t**t");printf("t********************************t");printf("t*请输入您的选择选择:");sc

5、anf("%d",&t);}《4》.哈夫曼编/译码的主要操作程序如下:…………………………..voidmain(){………………………….while(1){switch(t){case1:………………………//输出哈夫曼树//输出哈夫曼编码exit(0);//表示程序正常退出break;case2://编码,对所输入的文本进行编码形成报文break;case3://译码,对所输入的报文进行解译形成文本break;case4:exit(0);break;default:……….}}}一、实验结果:

6、《1》.测试数据用下表中给出的字符集和频度的实际统计数据建立哈夫曼树:字符ABCDEFGHIJKLM频度6413223210321154757153220字符NOPQRSTUVWXYZ频度5763151485180238181161并实现如下操作:1.更新哈夫曼树,输出哈夫曼树及其哈弗曼编码;2.通过‘程序’输入,实现报文的译码和输出:“THISPROGRAMISMYFAVORITE”;3.通过‘程序’输入,实现原文的解码和输出:“01011001111111111110100001110101

7、101111111110”;《2》.测试结果1.系统的开始界面,更新哈夫曼树,输出哈夫曼树及其哈弗曼编码2.通过‘程序’,输入:“THISPROGRAMISMYFAVORITE”3.通过‘程序’,输入:“01011001111111111110100001110101101111111110”2.退出系统一、实验总结及心得体会:(1)需求与规格说明利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进

8、行译码。对于双工信道,每端都需要一个完整的编/译码系统。(2)设计①设计思想:存储结构:……………………………主要算法思想:……………………………①设计表示:(具体函数名可改,下图仅作参考)③实现注释:开始界面Start_Screen()可实现7个功能选择,分别如下:<1>更新哈夫曼编码信息:通过输入重新创建哈夫曼树及哈弗曼编码;<2>显示哈夫曼树及哈弗曼编码:以合适的格式输出哈夫曼所有信息;<3>将输入的文本编译成报文:通过键盘输入文本,利用已建好的哈夫曼编码,对所输入的文本进行编码形成报文;

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。