14信管数据结构课程设计报告模版资料.docx

上传人:b****6 文档编号:7074750 上传时间:2023-01-17 格式:DOCX 页数:10 大小:130.13KB
下载 相关 举报
14信管数据结构课程设计报告模版资料.docx_第1页
第1页 / 共10页
14信管数据结构课程设计报告模版资料.docx_第2页
第2页 / 共10页
14信管数据结构课程设计报告模版资料.docx_第3页
第3页 / 共10页
14信管数据结构课程设计报告模版资料.docx_第4页
第4页 / 共10页
14信管数据结构课程设计报告模版资料.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

14信管数据结构课程设计报告模版资料.docx

《14信管数据结构课程设计报告模版资料.docx》由会员分享,可在线阅读,更多相关《14信管数据结构课程设计报告模版资料.docx(10页珍藏版)》请在冰豆网上搜索。

14信管数据结构课程设计报告模版资料.docx

14信管数据结构课程设计报告模版资料

课程设计

 

课程名称__数据结构课程设计_

题目名称_哈夫曼编码与译码_

学生学院管理学院

专业班级信息管理与信息系统1401

学号

学生姓名

指导教师

 

2016年4月21日

课程设计(论文)指导教师成绩评定表

题目名称

学生搭配问题

评分项目

分值

得分

评价内涵

工作

表现

20%

01

学习态度

6

遵守各项纪律,工作刻苦努力,具有良好的科学工作态度。

02

科学实践、调研

7

通过实验、试验、查阅文献、深入生产实践等渠道获取与课程设计有关的材料。

03

课题工作量

7

按期圆满完成规定的任务,工作量饱满。

能力

水平

35%

04

综合运用知识的能力

10

能运用所学知识和技能去发现与解决实际问题,能正确处理实验数据,能对课题进行理论分析,得出有价值的结论。

05

应用文献的能力

5

能独立查阅相关文献和从事其他调研;能提出并较好地论述课题的实施方案;有收集、加工各种信息及获取新知识的能力。

06

设计(实验)能力,方案的设计能力

5

能正确设计实验方案,独立进行装置安装、调试、操作等实验工作,数据正确、可靠;研究思路清晰、完整。

07

计算及计算机应用能力

5

具有较强的数据运算与处理能力;能运用计算机进行资料搜集、加工、处理和辅助设计等。

08

对计算或实验结果的分析能力(综合分析能力、技术经济分析能力)

10

具有较强的数据收集、分析、处理、综合的能力。

成果

质量

45%

09

插图(或图纸)质量、篇幅、设计(论文)规范化程度

5

符合本专业相关规范或规定要求;规范化符合本文件第五条要求。

10

设计说明书(论文)质量

30

综述简练完整,有见解;立论正确,论述充分,结论严谨合理;实验正确,分析处理科学。

11

创新

10

对前人工作有改进或突破,或有独特见解。

成绩

指导教师评语

 

指导教师签名:

年 月 日

目录

1.方案设计2

1.1问题描述2

1.2需求分析2

1.3概要设计3

2.数据结构设计4

3.算法设计6

3.1设计思想6

3.2设计关键算法6

4.调试分析8

4.1、测试及结果8

5.总结10

参考文献11

程序清单12

1.方案设计

1.1问题描述

【哈夫曼编码与译码】

从某文本文件中统计其中字符使用频率(该文件由英语字母、标点和空格构成),建立对应的哈夫曼树,设计哈夫曼编码与译码方案,将该文本文件按此哈夫曼编码压缩存储,计算压缩比。

再编写程序将压缩文件解压为原文件。

1.2需求分析

核心问题:

哈夫曼树及其应用

一、哈夫曼编码

输入:

字符串形式的源文件路径及文件名(如:

“F:

/mydoc.txt”)

输出:

采用哈夫曼编码表示的源文件内容写入目标文件。

二、哈夫曼译码

输入:

字符串形式的哈夫曼编码文件路径及文件名

输出:

解压缩后的原文件

 

1.4概要设计

一、哈夫曼编码

图1.1

1、读文件

输入:

字符串形式的源文件路径及文件名(如:

“F:

/mydoc.txt”)

输出:

字符串形式的源文件内容

2、编码

设计编码表的存储结构,易于将整个内容字符串进行编码。

设计哈夫曼树的存储结构,考虑易于构造、易于编码、空间利用率高。

设计适当的存储结构表示各字符出现的频率(适合构造哈夫曼树)如:

二元组、二维数组、链表

“广东工业大学”返回编码后的字符串,形式为"010111101100....."

3、写文件

输入:

编码后得到的byte数组

输出:

写入目标文件

二、哈夫曼译码(略)

2.数据结构设计

一、存储各字符出现频率的统计表

字符

A

C

……

频率

0.02

0.11

0.2

0.01

0.2

……

publicclassCountChar{

publiccharch;

publicdoubleweight;

publicStringtoString(){

return"字符:

"+ch+"\t权重:

"+weight;

}

}

CountChar[]cc;//采用二元组存储字符出现频率统计表

二、存储哈夫曼树

参见教材P168图6.32

增加一个字符型成员变量记录对应的字符

publicclassHuffmanNode{

charch;

doubleweight;

intparent,left,right;

publicStringtoString(){

return"权值:

"+weight+",left:

"+left+",right"+right+",parent"+parent;

}

}

三、存储编码表

A

……

01

110

……

3.详细设计

3.1类的设计

一、读文件和写文件可以作为静态方法定义在一个类中(FileIO)无成员变量

1.publicstaticStringreadFile(Stringfilepath)//读文件的方法

2.publicstaticvoidsaveFile(byte[]huffb,intlen)//写文件的方法

二、哈夫曼编码类(HuffmanCode)

成员变量:

1.内容字符串StringfileStr;

2.字符频率统计表CountChar[]cc;

3.哈夫曼树HuffmanNode[]huffman;

4.编码表String[]hcode;

……

构造方法:

publicHuffmanCode(Stringstr)

成员方法:

1.publicvoidcountChars()//统计字符出现频率

2.publicvoidHuffmanTree()//构造哈夫曼树的方法

3.publicvoidhCode()//实现内容字符串的编码

…………

 

3.2设计关键算法

如:

publicvoidcountChars()

1、建立一个ArrayList对象

2、扫描内容字符串fileStr直到末尾(外循环)

2.1将从fileStr中取出的字符和ArrayList中的字符比较

没有:

加入该字符入ArrayList,weight=1;

有:

将对应字符的weight++;

3、将各字符的weight除以字符总数得到该字符的出现频率,存入weight中。

4、把ArrayList转换为CountChar类型数组,赋给成员变量cc。

…………

其他(略)

4.调试分析

4.1、测试及结果

(截屏并说明)

5.总结

附页一

程序清单

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1