1 / 19
文档名称:

哈弗曼编码课程设计实验报告材料.doc

格式:doc   大小:81KB   页数:19页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

哈弗曼编码课程设计实验报告材料.doc

上传人:beny00001 2021/12/18 文件大小:81 KB

下载得到文件列表

哈弗曼编码课程设计实验报告材料.doc

相关文档

文档介绍

文档介绍:word
word
1 / 19
word
目录
实训要求……………………………………………………………………………..2
课题分析和设计……………………………………………………………………..2
根本需求分析……………………………………………………………………2,3
对应的类………………………………………………………………................3,4,5
主要功能界面………………………………………………………………………...5
主界面……………………………………………………………………………5
读取文章并对字符编码…………………………………………………………5
哈弗曼编码信息………………………………………………………………….6
文章编码………………………………………………………………………….6
文章译码………………………………………………………………………….6
错误处理………………………………………………………………………….7
总结〔课设心得体会〕………………………………………………………………7
附录〔主要函数代码〕………………………………………………………………7~14
word
word
2 / 19
word
一、实训要求
1、输入为:一段中文或英文的文章的文件名。
2、读取文章的字符信息。
3、对字符进展权值的计算。
4、根据权值构造哈弗曼树。
5、生成对应的编码。
6、输出为:原文章的编译〔译文〕。
7、根据已经生成的编码表,输入任意的译文可以得到原文。
二、课题分析和设计

〔1〕在通信过程中,为了提高信道利用率,缩短信息传输时间降低传输本钱,需要一编译码器。
〔2〕此哈弗曼编码译码器应具有编码译码的双向功能,即在发送端通过编码系统对传入的数据进展编码。
〔3〕在接收端将数据译码,将具有两项功能的编码译码器用于双工信道就可满足,双工信道的双向编译功能。
〔4〕输入某段报文是,系统将自己完成编译输出。
〔5〕、程序设计流程:
<1>文字表述:
开始进入功能选择界面,包含五种操作
读取文章并对字符编码。
哈夫曼编码信息。
文章编码。
文章译码。
退出程序。
<2>操作:
给定一篇文章,统计字符出现的概率,并根据概率建立哈弗曼树,并利用哈弗曼 树对字符进哈夫曼编码。
显示哈弗曼编码信息,包括字符和其哈弗曼编码。
对文章进展译码,显示译码信息,并保存。
对文章进展译码,显示并保存。
<3>流程图:
word
word
3 / 19
word
程序开始
返回主界面
显示编码
保存译码
程序主界面
显示译码
返回主界面
保存编码
退出程序
文章译码
文章编码
哈夫曼编码信息
读取文章并对文章进展编码
对应的类:
<1>定义类:
class Element //结点类
{
public:
char name;//字符名
int weight;//字符权值
int lchild;//左孩子
int rchild;//右孩子
int parent;//父结点
Element()
{
weight = 0;
lchild = -1;
word
word
4 / 19
word
rchild = -1;
parent =-1;
}
~Element(){}
};
<2>定义字符和出现的次数:
class Name //字符类
{
public:
char pname;//字符名
int num;//字符出现的次数
double lweight;//字符的权值
Name()
{
num = 0;
lweight = 0;
}
~Name(){}
};
<3>定义字符总类总数和存储信息:
class GetName //关于字符类
{
public:
char file_name[max2];//文件名
int n; //字符的种类
int sum; //字符的总数
Name letter[max1]; //存储字符信息的类的数组
GetName()
{
sum = 0;
n = 0;