数据结构课设报告+哈夫曼编译器+C语言+源码.doc

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据结构课设报告+哈夫曼编译器+C语言+源码

.中南大学数据结构课程设计报告题目哈夫曼编译器学生姓名孙毅指导教师杨希学院信息科学与工程学院专业班级信息安全1401班二○一六年十一月word教育资料目录

一、课程设计目的3

二、课程设计的内容32.

1、问题描述32.

2、基本要求3

三、问题描述,解决的方法33.1从键盘读入字符集大小n , 以及n个字符和权值,建立哈夫曼树。

33.2利用已建好的哈夫曼树对文件正文进行编码,将结果存入相关文件中。53.3利用已建好的哈夫曼树将编码文件中的代码进行译码,结果存入文件中。63.4输出代码文件,以紧凑格式显示。

73.5以直观的方式输出哈夫曼树,同时将此字符形式的哈夫曼树写入文件中。7

四、程序模块功能,程序设计组成框图、流程图84.1程序模块功能84.2程序设计框图84.3流程图9

五、调试与测试。

调试方法,测试结果的分析与讨论,遇到的主要问题及采取的解决措施。105.1调试方面105.2测试结果方面10

六、测试结果,用几组测试数据进行测试算法设计的正确性106.1第一组数据如下106.2第二组测试数据如下:

14

七、本次课程设计的心得体会16

八、附录:

源程序清单17

一、课程设计目的数据结构是计算机专业的核心课程,是计算机科学的算法理论基础和软件设计的技术基础,实践性强,课程设计是加强学生实践能力的一个重要手段。

课程设计要求学生在完成程序设计的同时能够写出规范的设计报告,培养学生分析问题、解决问题,提高学生软件设计能力。

二、课程设计的内容哈夫曼编译器2.

1、问题描述利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。

这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码。对于双向传输信息的信道,每端都需要一个完整的编译码系统。为这样的信息收发站编写哈夫曼编译系统。2.

2、基本要求(1)从键盘读入字符集大小n , 以及n个字符和权值,建立哈夫曼树。

(2)利用已建好的哈夫曼树对文件正文进行编码,将结果存入相关文件中。(3)利用已建好的哈夫曼树将编码文件中的代码进行译码,结果存入文件中。(4)输出代码文件,以紧凑格式显示。(5)以直观的方式输出哈夫曼树,同时将此字符形式的哈夫曼树写入文件

中。

三、问题描述,解决的方法 3.1从键盘读入字符集大小n , 以及n个字符和权值,建立哈夫曼树。

a.首先设计一个结构体,成员有权值、左右儿子、以及字符本身,再设计一个输入函数,函数中要求输入字符集大小n,以及这n个字符和他们各自对应的权值。

b.再根据以上的各种输入结合建立哈夫曼树的思想原理建立起哈夫曼树,设计的函数包括有两个,一个是选中最小权值的两棵树,另一个是创建哈夫曼树。3.2利用已建好的哈夫曼树对文件正文进行编码,将结果存入相关文件中。 a.第一步是要求用户输入待编码文件的路径,再根据路径读取待编码文件里的内容,再利用哈夫曼树将内容编码。b.将编-

一、课程设计目的3

二、课程设计的内容32.

1、问题描述32.

2、基本要求3

三、问题描述,解决的方法33.1从键盘读入字符集大小n , 以及n个字符和权值,建立哈夫曼树。

33.2利用已建好的哈夫曼树对文件正文进行编码,将结果存入相关文件中。53.3利用已建好的哈夫曼树将编码文件中的代码进行译码,结果存入文件中。63.4输出代码文件,以紧凑格式显示。

73.5以直观的方式输出哈夫曼树,同时将此字符形式的哈夫曼树写入文件中。7

四、程序模块功能,程序设计组成框图、流程图84.1程序模块功能84.2程序设计框图84.3流程图9

五、调试与测试。

调试方法,测试结果的分析与讨论,遇到的主要问题及采取的解决措施。105.1调试方面105.2测试结果方面10

六、测试结果,用几组测试数据进行测试算法设计的正确性106.1第一组数据如下106.2第二组测试数据如下:

14

七、本次课程设计的心得体会16

八、附录:

源程序清单17

一、课程设计目的数据结构是计算机专业的核心课程,是计算机科学的算法理论基础和软件设计的技术基础,实践性强,课程设计是加强学生实践能力的一个重要手段。

课程设计要求学生在完成程序设计的同时能够写出规范的设计报告,培养学生分析问题、解决问题,提高学生软件设计能力。

二、课程设计的内容哈夫曼编译器2.

1、问题描述利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。

这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码。对于双向传输信息的信道,每端都需要一个完整的编译码系统。为这样的信息收发站编写哈夫曼编译系

统。2.

2、基本要求(1)从键盘读入字符集大小n , 以及n个字符和权值,建立哈夫曼树。

(2)利用已建好的哈夫曼树对文件正文进行编码,将结果存入相关文件中。(3)利用已建好的哈夫曼树将编码文件中的代码进行译码,结果存入文件中。(4)输出代码文件,以紧凑格式显示。(5)以直观的方式输出哈夫曼树,同时将此字符形式的哈夫曼树写入文件中。

三、问题描述,解决的方法 3.1从键盘读入字符集大小n , 以及n个字符和权值,建立哈夫曼树。

a.首先设计一个结构体,成员有权值、左右儿子、以及字符本身,再设计一个输入函数,函数中要求输入字符集大小n,以及这n个字符和他们各自对应的权值。

b.再根据以上的各种输入结合建立哈夫曼树的思想原理建立起哈夫曼树,设计的函数包括有两个,一个是选中最小权值的两棵树,另一个是创建哈夫曼树。3.2利用已建好的哈夫曼树对文件正文进行编码,将结果存入相关文件中。 a.第一步是要求用户输入待编码文件的路径,再根据路径读取待编码文件里的内容,再利用哈夫曼树将内容编码。b.将编:"); flag=getchar(); getchar(); while(flag!='0') { if(flag=='1') { f2=fopen("编码结果.txt","wt"); encoding(ht); fclose(f2); } else if(flag=='2') { f5=fopen("译码结果.txt","wt"); decoding(ht); fclose(f5); } else printf("您的输入有误,请重新输入。\n"); printf("\n***************************编码译码退

相关文档
最新文档