欢迎来到天天文库
浏览记录
ID:53963010
大小:131.52 KB
页数:19页
时间:2020-04-11
《哈弗曼编码课程设计实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、目录一、实训要求……………………………………………………………………………..2二、课题分析和设计……………………………………………………………………..21、基本需求分析……………………………………………………………………2,32、对应的类………………………………………………………………................3,4,5三、主要功能界面………………………………………………………………………...51、主界面……………………………………………………………………………52、读取文章并对字符编码……………………………………
2、……………………53、哈弗曼编码信息………………………………………………………………….64、文章编码………………………………………………………………………….65、文章译码………………………………………………………………………….66、错误处理………………………………………………………………………….7四、总结(课设心得体会)………………………………………………………………7五、附录(主要函数代码)………………………………………………………………7~14一、实训要求1、输入为:一段中文或英文的文章的文件名。2、读取文章的字符
3、信息。3、对字符进行权值的计算。4、根据权值构造哈弗曼树。5、生成对应的编码。6、输出为:原文章的编译(译文)。7、根据已经生成的编码表,输入任意的译文可以得到原文。二、课题分析和设计1.基本需求分析:(1)在通信过程中,为了提高信道利用率,缩短信息传输时间降低传输成本,需要一编译码器。(2)此哈弗曼编码译码器应具有编码译码的双向功能,即在发送端通过编码系统对传入的数据进行编码。(3)在接收端将数据译码,将具有两项功能的编码译码器用于双工信道就可满足,双工信道的双向编译功能。(4)输入某段报文是,系统将自己完成编译输出。(5)
4、、程序设计流程:<1>文字表述:开始进入功能选择界面,包含五种操作(1)读取文章并对字符编码。(2)哈夫曼编码信息。(3)文章编码。(4)文章译码。(5)退出程序。<2>操作:(1)给定一篇文章,统计字符出现的概率,并根据概率建立哈弗曼树,并利用哈弗曼树对字符进哈夫曼编码。(2)显示哈弗曼编码信息,包括字符和其哈弗曼编码。(3)对文章进行译码,显示译码信息,并保存。(4)对文章进行译码,显示并保存。<3>流程图:程序开始返回主界面显示编码保存译码程序主界面显示译码返回主界面保存编码退出程序文章译码文章编码哈夫曼编码信息读取文章
5、并对文章进行编码2、对应的类:<1>定义类:classElement//结点类{public:charname;//字符名intweight;//字符权值intlchild;//左孩子intrchild;//右孩子intparent;//父结点Element(){weight=0;lchild=-1;rchild=-1;parent=-1;}~Element(){}};<2>定义字符和出现的次数:className//字符类{public:charpname;//字符名intnum;//字符出现的次数doublelweight
6、;//字符的权值Name(){num=0;lweight=0;}~Name(){}};<3>定义字符总类总数和存储信息:classGetName//关于字符类{public:charfile_name[max2];//文件名intn;//字符的种类intsum;//字符的总数Nameletter[max1];//存储字符信息的类的数组GetName(){sum=0;n=0;}};<4>定义编码类:classCodeNode//编码类{public:charch;//存储字符charsave_code[max1];//存储编码}
7、;<5>主要功能实现类:classFunction{public:GetNameL;intfn;//定义哈夫曼数组大小ElementHuffmanT[max3];//哈夫曼数组CodeNodeCode[max1];//字符编码数组Function(){fn=0;}};三、主要功能界面:1、主界面:2、读取文章并对字符编码:3、哈弗曼编码信息:1、文章编码:2、文章译码:3、错误处理:四、总结(课设心得体会):三周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何
8、完成一件事情。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程.”千里之行始于足下”,通过
此文档下载收益归作者所有