哈弗曼编码课程设计实验报告

上传人:枫** 文档编号:487671255 上传时间:2023-09-21 格式:DOC 页数:19 大小:353.50KB
返回 下载 相关 举报
哈弗曼编码课程设计实验报告_第1页
第1页 / 共19页
哈弗曼编码课程设计实验报告_第2页
第2页 / 共19页
哈弗曼编码课程设计实验报告_第3页
第3页 / 共19页
哈弗曼编码课程设计实验报告_第4页
第4页 / 共19页
哈弗曼编码课程设计实验报告_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《哈弗曼编码课程设计实验报告》由会员分享,可在线阅读,更多相关《哈弗曼编码课程设计实验报告(19页珍藏版)》请在金锄头文库上搜索。

1、目录一、实训要求 .2二、课题分析和设计 .21、基本需求分析 2,32、对应的类 3,4,5三、主要功能界面 .51、主界面 52、读取文章并对字符编码 53、哈弗曼编码信息 .64、文章编码 .65、文章译码 .66、错误处理 .7四、 总结(课设心得体会) 7五、 附录(主要函数代码) 714、实训要求1、输入为:一段中文或英文的文章的文件名。2、读取文章的字符信息。3、对字符进行权值的计算。4 、根据权值构造哈弗曼树。5、生成对应的编码。6、输出为:原文章的编译(译文)。7、根据已经生成的编码表,输入任意的译文可以得到原文。、课题分析和设计1.基本需求分析:(1)在通信过程中,为了提高

2、信道利用率,缩短信息传输时间降低传输成本,需要一 编译码器。(2)此哈弗曼编码译码器应具有编码译码的双向功能,即在发送端通过编码系统对传 入的数据进行编码。(3)在接收端将数据译码,将具有两项功能的编码译码器用于双工信道就可满足,双 工信道的双向编译功能。(4)输入某段报文是,系统将自己完成编译输出。( 5)、程序设计流程 : 文字表述:开始进入功能选择界面,包含五种操作(1)读取文章并对字符编码。(2)哈夫曼编码信息。( 3 )文章编码。(4)文章译码。( 5 )退出程序。 操作:(1)给定一篇文章,统计字符出现的概率,并根据概率建立哈弗曼树,并利用哈弗曼 树对字符进哈夫曼编码。(2)显示哈

3、弗曼编码信息,包括字符和其哈弗曼编码。(3)对文章进行译码,显示译码信息,并保存。(4)对文章进行译码,显示并保存。 流程图 :程序开始显示编码显示译码保存编码保存译码返回主界 面2、对应的类:定义类: class Eleme nt/结点类public:char n ame;字符名int weight;/字符权值int lchild;/左孩子int rchild;/右孩子int pare nt;父结点Eleme nt()weight = 0; lchild = -1;rchild = -1;parent =-1;Element(); 定义字符和出现的次数:class Name / 字符类pub

4、lic:char pname;/ 字符名int num;/ 字符出现的次数double lweight;/ 字符的权值Name()num = 0;lweight = 0;Name(); 定义字符总类总数和存储信息:class GetName / 关于字符类public:char file_namemax2;/ 文件名int n; / 字符的种类int sum; / 字符的总数Name lettermax1; /存储字符信息的类的数组GetName()sum = 0;n = 0;; 定义编码类:class CodeNode/ 编码类public:char ch; / 存储字符char save_

5、codemax1; /存储编码;主要功能实现类:class Fun cti onpublic:GetName L;int fn; /定义哈夫曼数组大小Eleme nt Huffma nTmax3; /哈夫曼数组CodeNode Codemax1; /字符编码数组Fun cti on()fn = 0;;三、主要功能界面:1、主界面:X N K *- |-* i * ii j Jj _直驚抚倜齊4 *. m盖哦埼事供恫 竞 #at 嘏 寸开强眸世世呂 助乂宰护吃宇祀諮HtrirjciinEaiitiricBrhiHNM-K#f4 MrtNjvri kWNMzKkW芹户 M-4XMKM4 MMXM-

6、IM MMM-KM2、读取文章并对字符编码:警0flw3、哈弗曼编码信息:唱夫县编暫8n1 j. i mmLmi ie广null7JjiJmCJUJ-il的無的1材也:L甘甘JL4、文章编码:5、文章译码:S丐-匸爲码的丈件邑,12.txtrTuerbrjd is afrid uf failure!* 】土吧和製昨 Jl 朴世the wtonij id abcwt fLn fGtji failuirc i.D aloe aucGoos. If pvapl want tovuccocoFul tho nood to 匸爭AGion b P9 i lure atnewi people ) w v

7、& it vied to do* w|p s nor voplc c apn Itt-rt rn f rn n lb he i r1 niirisiJ.iEPul f?3(pKiir Je-ncr , so t Jia t t: liia!y 匸日 n ivnipr-nuF! the1 iir*- mt? 4:110dLc Every ai Lu means the closeness of sulcc&s-sa we ghouLd take tlhe pas Ltive ac t itudo to fuai Lualo P wo ca.n t over i 匕 soon ajnd peopl

8、e t in a 1 JLy can yet tho victci* Wi Uq MJien we ncct tJie dLFlleu丄tio. dan!, t Jbe alraid aF tlie bad 1311 丄Ju-t t KM !1-宴示文章绸韦马卜请选扌革功有氐四、总结(课设心得体会):三周的课程设计结束了, 在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,与同学分工设计,和同学们相互探讨, 相互学习,相互监督。学会了合作,学会了运筹帷幄,学会了宽容, 学会了理解,也学会了做人与处世。课程设计是我们专业

9、课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程 ”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础通过这次课程设计,本人在多方面都有所提高。 在这次设计过程中,体现出自己单独设计模具的能力以及综 合运用知识的能力, 体会了学以致用、 突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。六、附录(源代码):#in elude #i nclude #in elude #in elude #define max1 150#

10、define max2 50#define max3 256 using namespace std;class Element / 结点类public:char name;/ 字符名int weight;/ 字符权值int lchild;/ 左孩子int rchild;/ 右孩子int parent;/ 父结点Element()weight = 0; lchild = -1; rchild = -1; parent =-1;Element();class CodeNode/ 编码类public:char ch; / 存储字符char save_codemax1; / 存储编码 ;class

11、Name / 字符类public:char pname;/ 字符名 int num;/ 字符出现的次数 double lweight;/ 字符的权值 Name()num = 0; lweight = 0;Name() ;class GetName / 关于字符类public:char file_namemax2;/ 文件名 int n; / 字符的种类 int sum; / 字符的总数Name lettermax1; / 存储字符信息的类的数组GetName()sum = 0; n = 0;void GetWeight()/ 得到字符的权值for (int i = 0; i n; i+)出现的

12、次数除总数得到letteri.lweight = (double) letteri.num / sum; / 权值int ReadLetter()ifstream input;cout 请输入文件名: file_name;input.open(file_name); / 打开文件if (input.fail()cout 该文件不存在! endl; return 0;char ch;ch = input.get(); letter0.pname = ch; letter0.num+; sum+;while (!input.eof()/ 读取文件中的所有字符 int tag = 0;ch = input.get();for (int i = 0; i n + 1; i+) if (letteri.pname = ch)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号