数据结构课程设计哈夫曼编码达达正式版1

上传人:hs****ma 文档编号:506368762 上传时间:2023-07-11 格式:DOC 页数:18 大小:442.50KB
返回 下载 相关 举报
数据结构课程设计哈夫曼编码达达正式版1_第1页
第1页 / 共18页
数据结构课程设计哈夫曼编码达达正式版1_第2页
第2页 / 共18页
数据结构课程设计哈夫曼编码达达正式版1_第3页
第3页 / 共18页
数据结构课程设计哈夫曼编码达达正式版1_第4页
第4页 / 共18页
数据结构课程设计哈夫曼编码达达正式版1_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《数据结构课程设计哈夫曼编码达达正式版1》由会员分享,可在线阅读,更多相关《数据结构课程设计哈夫曼编码达达正式版1(18页珍藏版)》请在金锄头文库上搜索。

1、 湖南工业大学课 程 设 计资 料 袋 理 学院系、部 20212021 学年第 1 学期 课程名称 数据结构课程设计 指导教师 肖小克 职称 讲师 学生姓名 袁腾达 专业班级 信计092 学号 09411100216 题 目 哈夫曼编码/编译器 成 绩 起止日期2021 年 12月 12日 2021 年 12 月 17 日目 录 清 单序号材 料 名 称资料数量备 注1课程设计任务书12课程设计说明书1湖南工业大学课程设计任务书2021-2021学年第 1学期 理 学院系、部 信息与计算科学 专业 092 班级课程名称: 数据结构课程设计 设计题目: 哈夫曼编码/译码器 完成期限:自 202

2、1 年 12 月 12 日至 2021 年 12 月 17 日共 一 周内容及任务一、设计的任务及主要技术参数二、设计任务三、设计工作量进度安排起止日期工作内容12月12日至12月13日明确课程设计目的及任务,查找资料和文献12月14日至12月15日编写相关代码并经行调试12月15日至12月17日总结设计的心得与缺乏主要参考资料1 严蔚敏、吴伟民主编?数据结构?C语言版清华大学出版社 20022 金远平著?数据结构?C+描述清华大学出版社 2005 3 许卓群等著?数据结构与算法?高等教育出版社 2004指导教师签字: 年 月 日系教研室主任签字: 年 月 日数据结构设计说明书题目哈夫曼编码/

3、译码器起止日期: 2021 年 12月 12 日 至 2021 年 12 月 17 日学生姓名袁腾达班级信计092学号成绩指导教师(签字)理 学 院2011 年 12 月 16 日目录摘要5一?数据结构与算法?课程设计任务书5二、实验目的5三、题目哈夫曼编码/译码器61.问题描述62.根本要求63.测试要求74.实现提示7四、具体要求:7五、程序说明9六、调试分析15七、实验心得与体会16参考文献17摘要 随着计算机的普遍应用与日益开展,其应用早已不局限于简单的数值运算,而涉及到问题的分析、数据结构框架的设计以及设计最短路线等复杂的非数值处理和操作。算法与数据结构的学习就是为以后利用计算机资源

4、高效地开发非数值处理的计算机程序打下坚实的理论、方法和技术根底。 算法与数据结构旨在分析研究计算机加工的数据对象的特性,以便选择适当的数据结构和存储结构,从而使建立在其上的解决问题的算法到达最优。 数据结构是在整个计算机科学与技术领域上广泛被使用的术语。它用来反映一个数据的内部构成,即一个数据由那些成分数据构成,以什么方式构成,呈什么结构。数据结构有逻辑上的数据结构和物理上的数据结构之分。逻辑上的数据结构反映成分数据之间的逻辑关系,而物理上的数据结构反映成分数据在计算机内部的存储安排。数据结构是数据存在的形式。?数据结构?主要介绍一些最常用的数据结构,说明各种数据结构内在的逻辑关系,讨论其在计

5、算机中的存储表示,以及在其上进行各种运算时的实现算法,并对算法的效率进行简单的分析和讨论。数据结构是介于数学、计算机软件和计算机硬件之间的一门计算机专业的核心课程,它是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要根底,广泛的应用于信息学、系统工程等各种领域。学习数据结构是为了将实际问题中所涉及的对象在计算机中表示出来并对它们进行处理。通过课程设计可以提高学生的思维能力,促进学生的综合应用能力和专业素质的提高。一?数据结构与算法?课程设计任务书?数据结构与算法?是计算机专业重要的核心课程之一,在计算机专业的学习过程中占有非常重要的地位。?数据结构与算法课程设计?就是要运用本课程以

6、及到目前为止的有关课程中的知识和技术来解决实际问题。特别是面临非数值计算类型的应用问题时,需要选择适当的数据结构,设计出满足一定时间和空间限制的有效算法。本课程设计要求同学独立完成一个较为完整的应用需求分析。并在设计和编写具有一定规模程序的过程中,深化对?数据结构与算法?课程中根本概念、理论和方法的理解;训练综合运用所学知识处理实际问题的能力,强化面向对象的程序设计理念;使自己的程序设计与调试水平有一个明显的提高。 二、实验目的 数据结构作为一门学科主要研究数据的各种逻辑结构和存储结构,以及对数据的各种操作。因此,主要有三个方面的内容:数据的逻辑结构;数据的物理存储结构;对数据的操作或算法。通

7、常,算法的设计取决于数据的逻辑结构,算法的实现取决于数据的物理存储结构。数据结构是信息的一种组织方式,其目的是为了提高算法的效率,它通常与一组算法的集合相对应,通过这组算法集合可以对数据结构中的数据进行某种操作。 在当今信息时代,信息技术己成为当代知识经济的核心技术。我们时刻都在和数据打交道。比方人们在外出工作时找最短路径,在银行查询存款、通过互联网查新闻、以及远程教育报名等,所有这些都在与数据发生关系。实际上,现实世界中的实体经过抽象以后,就可以成为计算机上所处理的数据。 数据结构课程主要是研究非数值计算的程序设计问题中所出现的计算机操作对象以及它们之间的关系和操作的学科。数据结构是介于数学

8、、计算机软件和计算机硬件之间的一门计算机专业的核心课程,它是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要根底,广泛的应用于信息学、系统工程等各种领域。 学习数据结构是为了将实际问题中所涉及的对象在计算机中表示出来并对它们进行处理。通过课程设计可以提高学生的思维能力,促进学生的综合应用能力和专业素质的提高。通过此次课程设计主要到达以下目的:1.了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等根本方法和技能;3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4.训练用系统的观点和软件开发一般

9、标准进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。三、题目哈夫曼编码/译码器1.问题描述利用赫夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输本钱。这要求在发送端通过一个编码系统对待传输数据预先编码,在接收端将传来的数据进行译码复原。对于双工信道即可以双向传输信息的信道,每端都需要一个完整的编/译码系统。试为这样的信息收发站编写一个赫夫曼码的编/译码系统。2.根本要求一个完整的系统应具有以下功能:(1) I:初始化Initialization。从终端读入字符集大小n,以及n字符和n权值,建立哈夫曼树,并将它存于文件中。(2) E:编码Encoding。利用已建好

10、的哈夫曼树如不在内存,那么从文件中读入,对文件中的正文进行编码,然后将结果存入文件中。(3) D:译码Decoding。利用已建好的哈夫曼树将文件中的代码进行译码,结果存入文件中。以下为选做:(4) P:印代码文件Print。将文件以紧凑格式显示在终端上,每行50个代码。同时将此字符形式的编码文件写入文件中。(5) T:印哈夫曼树Tree printing。将已在内存中的哈夫曼树以直观的方式比方树显示在终端上,同时将此字符形式的哈夫曼树写入文件中。3.测试要求(1) 某系统在通信联络中只可能出现八种字符,其频率分别为,试设计哈夫曼编码。(2) 用下表给出的字符集和频度的实际统计数据建立哈夫曼树

11、,并实现以下报文的编码和译码:“THIS PROGRAME IS MY FAVORITE。字符ABCDEFGHIJKLM频度1866413223210321154757153220字符NOPQRSTUVWXYZ频度57631514851802381811614.实现提示(1) 编码结果以文本方式存储在文件中。(2) 用户界面可以设计为“菜单方式:显示上述功能符号,再加上“Q,表示退出运行Quit。请用户键入一个选择功能符。此功能执行完毕后再显示此菜单,直至某次用户选择了“Q为止。(3) 在程序的一次执行过程中,第一次执行I,D或C命令之后,哈夫曼树已经在内存了,不必再读入。每次执行中不一定执行

12、I命令,因为文件可能早已建好。四、具体要求:课程设计成果的内容必须由以下四个局部组成,缺一不可。(1) 上交源程序:学生按照实验题目的具体要求所开发的所有源程序应该放到一个文件夹中;(2) 上交程序的说明文件:保存在.txt中在说明文档中应该写明上交程序所在的目录,上交程序的主程序文件名,如果需要安装,要有程序的安装使用说明;(3) 设计报告:保存在word 文档中,文件名要求: 按照“姓名_学号_设计题目起名,如文件名为“ 张三_XXX_赫夫曼编码 .doc。打印稿用A4纸。其中包括: 题目; 实验目的; 需求分析:在该局部中表达实现的功能要求; 概要设计:在此说明每个局部的算法设计说明可以

13、是描述算法的流程图,每个程序中使用的存储结构设计说明如果指定存储结构请写出该存储结构的定义; 详细设计各个算法实现的源程序,对每个题目要有相应的源程序可以是一组源程序,每个功能模块采用不同的函数实现。源程序要按照写程序的规那么来编写。要结构清晰,重点函数的重点变量、重点功能局部要加上清晰的程序注释; 调试分析测试数据,测试输出的结果,时间复杂度分析,和每个模块设计和调试时存在问题的思考问题是哪些?问题如何解决?,算法的改良设想; 总结: 总结可以包括 : 设计过程的收获、遇到问题及解决问题过程的思考、程序调试能力的思考、对数据结构这门课程的思考、在设计过程中对?数据结构?课程的认识等内容。概要设计1) 问题分析哈夫曼树的定义1.哈夫曼树节点的数据类型定义为:typedef struct /哈夫曼树的结构体char ch;int weig

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

当前位置:首页 > 商业/管理/HR > 商业计划书

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