欢迎来到天天文库
浏览记录
ID:33655108
大小:1.31 MB
页数:18页
时间:2019-02-28
《哈弗曼树课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、课程设计(论文)学号:课程设计题目哈夫曼树的应用教学院计算机学院专业班级姓名指导教师2012年06月日17课程设计(论文)课程设计任务书2011~2012学年第2学期学生姓名:专业班级:指导教师:工作部门:计算机学院一、课程设计题目:哈夫曼树的应用二、课程设计内容(含技术指标)1.从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树并将它存于文件hfmTree中.将已在内存中的哈夫曼树以直观的方式(比如树)显示在终端上;2.利用已经建好的哈夫曼树(如不在内存,则从文件htmTree中读入),对文件Text.txt中的正文进行编码,然后
2、将结果存入文件Code.txt中。3.利用已建好的哈夫曼树将文件Code.txt中的代码进行译码,结果存入文件Text.txt中,并输出结果。三、进度安排2012年6月11日设计动员,布置任务2012年6月12日~2012年6月13日,查阅资料,分析、讨论与设计2012年6月14日~2011年6月19日,编写程序,进行调试2012年6月20日~2011年6月21日,完成模块联调,进行测试2012年6月22日,成果验收,完成设计报告、答辩四、基本要求1.分析问题,给出数学模型,选择数据结构。2.设计算法,给出算法描述,给出源程序清单。3.编辑、
3、编译、调试源程序,撰写课程设计报告。4.界面友好,函数功能要划分好5.总体设计应画一流程图6.程序要加必要的注释7.要提供程序测试方案17课程设计(论文)8.程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。目录摘要1一概述21.课程设计的目的22.课程设计的要求23.哈夫曼算法的实现2二总体方案设计31.整体的设计思路32.算法的整体思路33.工作内容34.关键问题4三详细设计51.总体设计流程图52.建立哈夫曼树53.编码功能64.译码功能6四程序的调试与运行结果说明7五课程设计总结10程序部分代码11参考
4、文献1417课程设计(论文)摘要随着计算机的普遍应用与日益发展,其应用早已不局限于简单的数值运算,而涉及到问题的分析、数据结构框架的设计以及设计最短路线等复杂的非数值处理和操作。算法与数据结构的学习就是为以后利用计算机资源高效地开发非数值处理的计算机程序打下坚实的理论、方法和技术基础。算法与数据结构旨在分析研究计算机加工的数据对象的特性,以便选择适当的数据结构和存储结构,从而使建立在其上的解决问题的算法达到最优。数据结构是在整个计算机科学与技术领域上广泛被使用的术语。它用来反映一个数据的内部构成,即一个数据由那些成分数据构成,以什么方式构成,
5、呈什么结构。数据结构有逻辑上的数据结构和物理上的数据结构之分。逻辑上的数据结构反映成分数据之间的逻辑关系,而物理上的数据结构反映成分数据在计算机内部的存储安排。数据结构是数据存在的形式。《数据结构》主要介绍一些最常用的数据结构,阐明各种数据结构内在的逻辑关系,讨论其在计算机中的存储表示,以及在其上进行各种运算时的实现算法,并对算法的效率进行简单的分析和讨论。数据结构是介于数学、计算机软件和计算机硬件之间的一门计算机专业的核心课程,它是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要基础,广泛的应用于信息学、系统工程等各种领域。学习
6、数据结构是为了将实际问题中所涉及的对象在计算机中表示出来并对它们进行处理。通过课程设计可以提高学生的思维能力,促进学生的综合应用能力和专业素质的提高。17课程设计(论文)一概述1.课程设计的目的1.理解和掌握该课程中的有关基本概念,程序设计思想和方法。2.培养综合运用所学知识独立完成课题的能力。3.培养勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。4.掌握从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。2.课程设计的要求一个
7、完整的系统至少具有以下功能:(1)I:初始化(Initialization)。从终端读入字符集大小n,以及n个字符和n个权值,建立赫夫曼树,并将它存于文件hfmTree中。(2)E:编码(Encoding)。利用已建好的赫夫曼树(如不在内存,则从文件hfmTree中读入),对文件ToBeTran中的正文进行编码,然后将结果存入文件CodeFile中。(3)D:译码(Decoding)。利用已建好的赫夫曼树将文件CodeFile中的代码进行译码,结果存入文件Textfile中。3.哈夫曼算法的实现由哈夫曼树的构造过程可知,初始森林中共有n棵二叉
8、树,每棵树中都仅有一个孤立的结点,它们既是根,又是叶子。然后将当前森林中的两棵根结点权值最小的二叉树,合并成一棵新二叉树。每合并一次,森林中就减少一棵树。显然,要进
此文档下载收益归作者所有